สารบัญ:

ผู้ติดตาม PID Line Atmega328P: 4 ขั้นตอน
ผู้ติดตาม PID Line Atmega328P: 4 ขั้นตอน

วีดีโอ: ผู้ติดตาม PID Line Atmega328P: 4 ขั้นตอน

วีดีโอ: ผู้ติดตาม PID Line Atmega328P: 4 ขั้นตอน
วีดีโอ: Installing Robot Programming Software AVRDUDE 2021 2024, กรกฎาคม
Anonim
Image
Image

การแนะนำ

คำแนะนำนี้เป็นเรื่องเกี่ยวกับการสร้าง Line Follower ที่มีประสิทธิภาพและเชื่อถือได้ด้วย PID (proportional-integral-derivative) Control (Mathematical) ที่ทำงานอยู่ในสมอง (Atmega328P)

Line follower เป็นหุ่นยนต์อิสระที่ตามเส้นสีดำสีขาวหรือเส้นสีขาวในพื้นที่สีดำ หุ่นยนต์จะต้องสามารถตรวจจับเส้นเฉพาะและติดตามต่อไปได้

ดังนั้นจะมีบางส่วน/ขั้นตอนในการสร้าง LINE FOLLOWER ฉันจะพูดถึงพวกเขาทีละขั้นตอน

  1. เซนเซอร์ (ตาดูเส้น)
  2. ไมโครคอนโทรลเลอร์ (ใช้สมองคิดคำนวน)
  3. มอเตอร์ (กำลังของกล้ามเนื้อ)
  4. ตัวขับมอเตอร์
  5. แชสซี
  6. แบตเตอรี่ (แหล่งพลังงาน)
  7. ล้อ
  8. อื่น ๆ

นี่คือวิดีโอของ THE LINE FOLLOWER

ในขั้นตอนต่อไป ฉันจะพูดถึงรายละเอียดเกี่ยวกับส่วนประกอบทั้งหมด

ขั้นตอนที่ 1: เซ็นเซอร์ (ตา) QTR 8RC

เซนเซอร์ (ตา) QTR 8RC
เซนเซอร์ (ตา) QTR 8RC
เซนเซอร์ (ตา) QTR 8RC
เซนเซอร์ (ตา) QTR 8RC
เซนเซอร์ (ตา) QTR 8RC
เซนเซอร์ (ตา) QTR 8RC

ขอบคุณ Pololu สำหรับการผลิตเซ็นเซอร์ที่ยอดเยี่ยมนี้

โมดูลนี้เป็นตัวพาที่สะดวกสำหรับตัวปล่อย IR และตัวรับ (โฟโตทรานซิสเตอร์) แปดคู่โดยเว้นระยะห่างเท่าๆ กันที่ช่วง 0.375 (9.525 มม.) ในการใช้เซ็นเซอร์ คุณต้องชาร์จโหนดเอาต์พุต (การชาร์จตัวเก็บประจุ) ก่อนโดยใช้แรงดันไฟฟ้าไปที่ ขาออก จากนั้น คุณสามารถอ่านค่าการสะท้อนกลับได้โดยการถอนแรงดันไฟจากภายนอกและระยะเวลาที่แรงดันเอาต์พุตจะสลายตัวเนื่องจากโฟโตทรานซิสเตอร์ในตัว เวลาสลายที่สั้นลงเป็นตัวบ่งชี้ถึงการสะท้อนที่มากขึ้น วิธีการวัดนี้มีข้อดีหลายประการ โดยเฉพาะอย่างยิ่งเมื่อรวมกับความสามารถของโมดูล QTR-8RC ในการปิดไฟ LED:

  • ไม่จำเป็นต้องใช้ตัวแปลงอนาล็อกเป็นดิจิตอล (ADC)
  • ปรับปรุงความไวของเอาต์พุตอนาล็อกแบบแบ่งแรงดัน
  • การอ่านค่าเซ็นเซอร์หลายตัวแบบขนานสามารถทำได้กับไมโครคอนโทรลเลอร์ส่วนใหญ่
  • การอ่านแบบขนานช่วยให้สามารถใช้ตัวเลือกการเปิดใช้งานไฟ LED ได้อย่างเหมาะสมที่สุด

ข้อมูลจำเพาะ

  • ขนาด: 2.95" x 0.5" x 0.125" (ไม่ได้ติดตั้งหมุดส่วนหัว)
  • แรงดันไฟฟ้าที่ใช้งาน: 3.3-5.0 V
  • กระแสไฟจ่าย: 100 mA
  • รูปแบบเอาต์พุต: 8 สัญญาณดิจิตอลที่เข้ากันได้กับ I/O ที่สามารถอ่านเป็นพัลส์สูงแบบตั้งเวลาได้
  • ระยะการตรวจจับที่เหมาะสมที่สุด: 0.125" (3 มม.)ระยะการตรวจจับสูงสุดที่แนะนำ: 0.375" (9.5 มม.)
  • น้ำหนักไม่รวมหมุดส่วนหัว: 0.11 ออนซ์ (3.09 ก.)

การเชื่อมต่อเอาต์พุต QTR-8RC กับสาย Digital I/O

โมดูล QTR-8RC มีเอาต์พุตเซ็นเซอร์เหมือนกันแปดตัว ซึ่งเหมือนกับ Parallax QTI ที่ต้องการสาย I/O ดิจิทัลที่สามารถขับเคลื่อนสายเอาต์พุตให้สูง จากนั้นจึงวัดเวลาที่แรงดันเอาต์พุตจะสลายตัว ลำดับทั่วไปสำหรับการอ่านเซ็นเซอร์คือ:

  1. เปิดไฟ LED IR (อุปกรณ์เสริม)
  2. ตั้งค่าสาย I/O เป็นเอาต์พุตและขับให้สูง
  3. ปล่อยให้เอาต์พุตเซ็นเซอร์เพิ่มขึ้นอย่างน้อย 10 μs
  4. ทำให้สาย I/O เป็นอินพุต (อิมพีแดนซ์สูง)
  5. วัดเวลาที่แรงดันไฟฟ้าเสื่อมโดยรอให้สาย I/O ต่ำ
  6. ปิดไฟ LED IR (อุปกรณ์เสริม)

โดยทั่วไปขั้นตอนเหล่านี้สามารถดำเนินการแบบขนานบนสาย I/O หลายสาย

ด้วยการสะท้อนแสงที่แข็งแกร่ง เวลาสลายตัวอาจต่ำถึงหลายสิบไมโครวินาที โดยไม่มีแสงสะท้อน เวลาในการสลายอาจสูงถึงสองสามมิลลิวินาที เวลาที่แน่นอนของการสลายตัวขึ้นอยู่กับลักษณะสาย I/O ของไมโครคอนโทรลเลอร์ ผลลัพธ์ที่มีความหมายสามารถใช้ได้ภายใน 1 มิลลิวินาทีในกรณีทั่วไป (เช่น เมื่อไม่ได้พยายามวัดความแตกต่างที่ละเอียดอ่อนในสถานการณ์ที่มีการสะท้อนแสงต่ำ) ซึ่งอนุญาตให้สุ่มตัวอย่างสูงสุด 1 kHz ของเซ็นเซอร์ทั้ง 8 ตัว หากการสุ่มตัวอย่างความถี่ต่ำเพียงพอ ประหยัดพลังงานได้มากโดยการปิดไฟ LED ตัวอย่างเช่น หากยอมรับอัตราการสุ่มตัวอย่าง 100 Hz ไฟ LED สามารถปิดได้ 90% ของเวลา ซึ่งช่วยลดการใช้กระแสไฟเฉลี่ยจาก 100 mA เป็น 10 mA

ขั้นตอนที่ 2: ไมโครคอนโทรลเลอร์ (สมอง) Atmega328P

ไมโครคอนโทรลเลอร์ (สมอง) Atmega328P
ไมโครคอนโทรลเลอร์ (สมอง) Atmega328P
ไมโครคอนโทรลเลอร์ (สมอง) Atmega328P
ไมโครคอนโทรลเลอร์ (สมอง) Atmega328P

ขอบคุณ Atmel Corporation สำหรับการผลิตไมโครคอนโทรลเลอร์ที่ยอดเยี่ยมนี้ AKA Atmega328

พารามิเตอร์หลักสำหรับ ATmega328P

ค่าพารามิเตอร์

  • แฟลช (Kbytes): 32 Kbytes
  • จำนวนพิน: 32
  • แม็กซ์ ความถี่ในการใช้งาน (MHz): 20 MHz
  • ซีพียู: 8 บิต AVR
  • พิน I/O สูงสุด: 23
  • การขัดจังหวะภายนอก: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • ช่อง ADC: 8
  • ความละเอียด ADC (บิต): 10
  • SRAM (กิโลไบต์): 2
  • EEPROM (ไบต์): 1024
  • ระดับการจ่าย I/O: 1.8 ถึง 5.5
  • แรงดันไฟฟ้าที่ใช้งาน (Vcc): 1.8 ถึง 5.5
  • ตัวจับเวลา: 3

สำหรับข้อมูลโดยละเอียด โปรดอ่านเอกสารข้อมูลของ Atmega328P

ในโครงการนี้ ฉันใช้ Atmega328P ด้วยเหตุผลบางประการ

  1. ราคาถูก
  2. มีแรมเพียงพอสำหรับการคำนวณ
  3. พิน I/O เพียงพอสำหรับโปรเจ็กต์นี้
  4. Atmega328P ใช้ใน Arduino …. คุณอาจสังเกตเห็น Arduino Uno ในรูปภาพและวิดีโอ แต่กลางคืนฉันใช้ Arduino IDE หรือ Arduino ใด ๆ.. ฉันใช้เฉพาะฮาร์ดแวร์เป็นบอร์ดเชื่อมต่อ ฉันลบ bootloader แล้วและใช้ USB ASP สำหรับการเขียนโปรแกรมชิป

สำหรับการเขียนโปรแกรม The Chip ฉันใช้ Atmel Studio 6

รหัสแหล่งที่มาทั้งหมดอยู่ใน GitHub ดาวน์โหลดและตรวจสอบไฟล์ test.c

ในการคอมไพล์แพ็คเกจนี้ คุณต้องดาวน์โหลดและติดตั้ง The POLOLU AVR LIBRARY SETUP Check The Attachments …

ฉันกำลังอัพโหลด Atmega328P Development Board Schematic และ Board File … คุณผลิตเองได้…

ขั้นตอนที่ 3: ตัวขับมอเตอร์และมอเตอร์

มอเตอร์และตัวขับมอเตอร์
มอเตอร์และตัวขับมอเตอร์
มอเตอร์และตัวขับมอเตอร์
มอเตอร์และตัวขับมอเตอร์
มอเตอร์และตัวขับมอเตอร์
มอเตอร์และตัวขับมอเตอร์

ฉันใช้มอเตอร์ DC แบบมีเกียร์ 350RPM 12V BO เป็นตัวกระตุ้น ต้องการทราบข้อมูลเพิ่มเติม… MOTOR LINK

ในฐานะที่เป็นไดรเวอร์มอเตอร์ ฉันใช้ L293D H- สะพานไอซี

ฉันกำลังแนบไฟล์ Schematic และ Board File สำหรับสิ่งเดียวกัน

ขั้นตอนที่ 4: แชสซีและเบ็ดเตล็ด

แชสซีและเบ็ดเตล็ด
แชสซีและเบ็ดเตล็ด
แชสซีและเบ็ดเตล็ด
แชสซีและเบ็ดเตล็ด
แชสซีและเบ็ดเตล็ด
แชสซีและเบ็ดเตล็ด

ตัวบอทเป็นไม้อัดหนา 6 มม.

แนะนำ: