sensor line tracking ใช้ LDR ไม่รู้จะเก่าไปรึเปล่า

  • 20 Replies
  • 7646 Views
*

Offline ozuke

  • *****
  • 118
    • View Profile
    • MCU & Computer Programing Learning by Wittawat Sompong
อยากดูโค้ดดีๆใหม อิอิ เดี๋ยวโพสให้ดูเป็นตัวอย่าง แต่ทำความเข้าใจเองนะ อิอิ ;D


*

Offline ozuke

  • *****
  • 118
    • View Profile
    • MCU & Computer Programing Learning by Wittawat Sompong
โค้ดครับ เป็น Atmega32 ใช้ AVR Studio เขียน
ทำไว้จะสองปีแล้ว
วงจรเดี๋ยวลงให้

อธิบายเล็กน้อย มันรองรับได้ 2 ชุด ชุดละ 8CH คือเอามาต่อเซ็นเซอร์ได้ 16 ช่อง
แต่อ่านได้ทีละ 8 ช่อง
ให้ Output เป็น Logic Output และ ให้เอ้าท์พุทเป็น Error +/- ได้ +/- 128 ซึ่งทำได้มากกว่านี้
การสื่อสารผ่าน SPI ครับไม่ก็ต่องขนานกับ LED ก็ได้ถ้าต้องการอ่านเฉพาะแบบ Logic Output ส่วน SPI
จะให้ Output มาสองชุดเป็น Logic Output กับ Error อย่างละ Byte

ความสามารถของโปรแกรม สามารถเปรียบเทียบสีได้สองสี คือเวลาปรับเซ็นเซอร์จะอ่านสองรอบ คือสีพื้นกับสีเส้น
การปรับสี ใช้วิธีลากผ่านหรือการกวาดให้เซ็นเซอร์ทุกตัวได้ผ่านเส้นและพื้น

การใช้ LDR ที่ค่าไม่เท่ากันหรือ LED ที่สว่างไม่เท่ากัน ทำให้เกิดผลเสียคือให้ค่าแรงดัวออกมาไม่เท่ากันทุกตัว
แต่โปรแกรมใน MCU นี้จะจัดการให้ มันจะอ่านค่าของ LDR ทุกตัวได้ 0-1000 ครับ โดยใช้หลักการคำนวนทางคณิตศาสตร์
ทำให้หมดปัญหาเรื่อง LED LDR มันไม่ได้มาตรฐาน

เรื่องอื่นๆเอาไว้ก่อน เดี๋ยวตั้งกระทู้แจกให้ทีหลัง เอาไปดูพรางๆก่อน อิอิ


*

Offline nont_peet

  • **
  • 52
  • คนรักหุ่นยนต์
    • View Profile
555 ปล่อยของเลยนะ ozuke     

@ Chairat   ที่ผมไม่ใช้ opamp เพราะเราจูนด้วยไขควง  ซึ่งค่าที่จูน มันจะไม่อยู่ระหว่างกลางพอดี   ดังนั้น จึงเอาไมโครมาอ่านค่าเอา 

ค่าขาว  100 ค่าดำ 300 

ดำ+ขาว = 100+300

ค่ากลางที่ได้ 400/2 = 200   

ดังนั้น มันจึงเป็นค่ากลางที่แท้จริง ของ LDR แต่ละหลอดครับ


เวลานำไปใช้งานก็ง่าย   ถ้าจากตัวอย่างของท่าน Ozuke  ก้อเอาไป ลากผ่าน  สี่ขาวและดำ  มันจะ หาค่ากลางเอง     จะเห็นว่า  เราจะจูนง่ายกว่า จูน vr เยอะครับ กดๆ ลากๆ  เสร็จแล้ว
คนรักหุ่นยนต์

*

Offline skytec

  • *****
  • 1030
  • "จินตนาการสำคัญกว่าความรู้ " --อัลเบิรต ไอสไตน์
    • View Profile
    • R&D , Technical Consultants , Sensor Developer  , Engineering consultants
@ skytec  สาเหตุที่ใช้ LDR เพราะ สนามที่ใช้ในการแข่งขันนั้นใช้รวมกันและแข่งหลายคู่  บางทีอาจมีเศษโฟม เศษอลูมิเนียม  แสงแฟรชกล้อง  เพราะงั้น LDR จึงยังดีกว่า เพราะความช้าของมันนี่ล่ะครับ   

ไอ้ที่ว่าช้าของ LDR  นี่ มันยังเร็วพอที่จะใช้วิ่งตามเส้น     มอเตอร์ 350rpm 12Vdc   แต่อัด 24Vdc  ล้อเส้นรอบวง 22cm   อัดเต็มๆยังอ่านทันเลย   ลองใช้ดูครับ เผื่อติดใจ


@ Chairat  ใช้งาน LDR ที่สมบูรณ์  ควรจะ  หักค่าให้เป็น 0  และรู้ค่าสูงสุด  จากนั้นนำมาทำเป็น %  และนำไปใช้งาน

อันนี้อาจมีความเข้าใจแตกต่าง การใช้ photo transistor นั้น เราสามารถกำหนดได้หลายอย่างครับ อยู่ที่เทคนิคของ software สังเกตง่ายๆ ก๊อกนำ้ล้างมือที่ผลิตขายเอาแบบมียี่ห้อ ใช้ photo tr อันนี้จะไม่ขึ้นกับสภาวะแวดล้อม ผมเคยทำหลอด led ที่ควบคุมความสว่างด้วย photo tr ขณะที่ปลอดยังติดอยู่ เราสามารถวัด lux ได้โดยเทคนิคทางโปรแกรมครับ สิ่งแวดล้อมสามารถแก้ไขได้หรือไม่ให้มีผลต่อระบบได้ ครับ
"จินตนาการสำคัญกว่าความรู้ ความรู้มีข้อจำกัด จิตนาการไร้ขอบเขต " --อัลเบิร์ต ไอสไตน์

*

Offline nont_peet

  • **
  • 52
  • คนรักหุ่นยนต์
    • View Profile
@ skytec  สาเหตุที่ใช้ LDR เพราะ สนามที่ใช้ในการแข่งขันนั้นใช้รวมกันและแข่งหลายคู่  บางทีอาจมีเศษโฟม เศษอลูมิเนียม  แสงแฟรชกล้อง  เพราะงั้น LDR จึงยังดีกว่า เพราะความช้าของมันนี่ล่ะครับ   

ไอ้ที่ว่าช้าของ LDR  นี่ มันยังเร็วพอที่จะใช้วิ่งตามเส้น     มอเตอร์ 350rpm 12Vdc   แต่อัด 24Vdc  ล้อเส้นรอบวง 22cm   อัดเต็มๆยังอ่านทันเลย   ลองใช้ดูครับ เผื่อติดใจ


@ Chairat  ใช้งาน LDR ที่สมบูรณ์  ควรจะ  หักค่าให้เป็น 0  และรู้ค่าสูงสุด  จากนั้นนำมาทำเป็น %  และนำไปใช้งาน

อันนี้อาจมีความเข้าใจแตกต่าง การใช้ photo transistor นั้น เราสามารถกำหนดได้หลายอย่างครับ อยู่ที่เทคนิคของ software สังเกตง่ายๆ ก๊อกนำ้ล้างมือที่ผลิตขายเอาแบบมียี่ห้อ ใช้ photo tr อันนี้จะไม่ขึ้นกับสภาวะแวดล้อม ผมเคยทำหลอด led ที่ควบคุมความสว่างด้วย photo tr ขณะที่ปลอดยังติดอยู่ เราสามารถวัด lux ได้โดยเทคนิคทางโปรแกรมครับ สิ่งแวดล้อมสามารถแก้ไขได้หรือไม่ให้มีผลต่อระบบได้ ครับ


โอ้ววว น่าสนใจ   เดี๋ยวผมลองหาข้อมูลดูเผื่อ เอามาพัฒนาให้น้องๆนักศึกษาเอาไปใช้กัน    ขอบคุณมากครับสำหรับคำแนะนำ
คนรักหุ่นยนต์

*

Offline nai102

  • ***
  • 177
    • View Profile
จากประสบการณ์ที่ทำหุ่นยนต์กับเด็กมาหลายปี
พบว่าเรื่องชนิดของเซ็นเซอร์ มีผลไม่เท่าไหร่ ไม่ว่าจะเป็น LDR Photo trasisitor ที่เป็น อินฟาเรด หรือแสงสีแดง ราคาถูก/แพงแค่ไหน จะมีผลกับการ track เส้นไม่เกิน 20 เปอร์เซ็น  โครงสร้างของหุ่นยนต์มีผลมาก ไม่ว่าจะเป็น CM  CG ระนาบของ sensor ความกว้าง/ยาวของตัวหุ่น  มีผลประมาณ 60 เปอร์เซ็นต์ ที่เหลือเป็นเรื่องของ software ผิวเผินเหมือนจะไม่มีอะไรมาก หลักการง่าย ๆ แต่จริง ๆ แล้ว มีความหลากหลายมาก อัลกอลิทึ่ม มากมายมหาศาล ส่วนใหญ่จะเป็นความลับของแต่ละคน ไม่ค่อยเปิดเผยกัน สาเหตุหลัก ๆ คือเรื่องของการแข่งขัน