สารบัญ:
- วัสดุ:
- ขั้นตอนที่ 1: วัสดุ
- ขั้นตอนที่ 2: ทฤษฎีพื้นฐาน
- ขั้นตอนที่ 3: โมดูล ChipKit
- ขั้นตอนที่ 4: เซ็นเซอร์
- ขั้นตอนที่ 5: หุ่นยนต์ Roomba
- ขั้นตอนที่ 6: การเชื่อมต่อของโมดูล
นี่เป็นโครงการหุ่นยนต์ครั้งแรกของเราที่เราต้องการแสดง แผนของเราคือสร้างหุ่นยนต์ที่สามารถเคลื่อนที่ในสภาพแวดล้อมที่กำหนด จุดประสงค์คือทำให้ชีวิตของผู้สูงอายุง่ายขึ้น หุ่นยนต์จะต้องสามารถพกพาสิ่งเล็ก ๆ ที่สำคัญไปยังจุดที่ต้องการได้
มันเป็นรุ่นแรกของโครงการ
วัสดุ:
ขั้นตอนที่ 1: วัสดุ
เราใช้
-a chipKit Max32
- roomba irobot
- เข็มทิศดิจิตอล Pmod HMC5883L
- PmodWifi MRF24WG0MA
- PmodMAXSONAR Ultrasonic Range Finder 4 ชิ้น LV-EZ1
- mosfet จำนวน 4 ช่อง
- ตัวต้านทาน 200 โอห์ม 8 ชิ้น
- เขียงหั่นขนม
- บางสายเชื่อมต่อวัสดุ
และในที่สุดทุกสิ่งเหล่านี้จะอยู่ในกล่องพลาสติกด้านบนของหุ่นยนต์
ขั้นตอนที่ 2: ทฤษฎีพื้นฐาน
การทำแผนที่
หุ่นยนต์จัดการกับสภาพแวดล้อมในระบบพิกัดเดส์การ์ต จุดที่หุ่นยนต์ตั้งอยู่จุดนี้คือจุด (0,0) เรานึกภาพกริดตะแกรงไปที่ระบบพิกัดและหุ่นยนต์จะต้องอยู่ตรงกลางของกริด ตารางคือ 35 ซม. ซึ่งเป็นเส้นผ่านศูนย์กลางของหุ่นยนต์ เราเรียกกริดเป็นโหนด หุ่นยนต์แมปโหนดเพื่อนบ้านของเขาและกำหนดว่ามันว่างหรือไม่ถ้ามันว่างหุ่นยนต์จะบันทึกมันและเลือกโหนดอิสระจากสภาพแวดล้อมของเขาเพื่อย้ายไปที่นั่น กิจกรรมนี้ดำเนินต่อไปจนกระทั่งไม่มีโหนดเปิดใช้งาน ในที่สุดสภาพแวดล้อมที่แมป เราสร้างฐานข้อมูลจากโหนด หนึ่งโหนดมีคู่ของ (x, y) และโหนดเพื่อนบ้านที่มีอยู่ จากฐานข้อมูลเราสามารถค้นหาระหว่างสองจุดใดเส้นทางที่สั้นที่สุดด้วยอัลกอริทึมการค้นหาแบบฮิวริสติก (ความกว้างก่อน) และหนึ่งในนั้นคือตำแหน่งของหุ่นยนต์
ขั้นตอนที่ 3: โมดูล ChipKit
chipKit เป็นโมดูลหลักเพราะจัดการการเคลื่อนไหวของหุ่นยนต์และประมวลผลข้อมูลจากเซ็นเซอร์ มันสร้างและรักษาฐานข้อมูล เราต้องการหน่วยความจำเพิ่มเติมเพื่อสร้างฐานข้อมูลจากโหนดมากกว่าที่เรามี เพราะก่อนอื่นเรากำหนดขนาดของฮีป
#define CHANGE_HEAP_SIZE (ขนาด) __asm__ ความผันผวน (" t.globl _min_heap_size n t.equ _min_heap_size," #size " n")
CHANGE_HEAP_SIZE (0x5000); extern __attribute __ ((ส่วน ("linker_defined"))) char _heap; extern __attribute __ ((ส่วน ("linker_defined"))) char _min_heap_size;
ขั้นตอนที่ 4: เซ็นเซอร์
ช่วงการวัดหนึ่งเซ็นเซอร์คือ 15.24 ซม. - 6.45 ม. เราใช้เซ็นเซอร์ 4 ตัวและถ้าเราทำให้มันทำงานพร้อมกันพวกมันจะสับสนกัน นั่นเป็นเหตุผลที่เราใช้วงจร N chanel mosfet
กระบวนการของชุดข้อมูล:
- ประการแรกไม่มีเซ็นเซอร์รับพลังงานเนื่องจาก mosfet ทั้งหมดทำงานสูง
- มอสเซ็ตตัวหนึ่งตั้งค่าต่ำเพื่อให้เซ็นเซอร์รับพลังงาน
- ping เขาเซ็นเซอร์ของ RX
- อ่านข้อมูล
- mosfet ตั้งค่าสูง
ขั้นตอนที่ 5: หุ่นยนต์ Roomba
นี่เป็นส่วนที่ง่ายที่สุดของโครงการ การสื่อสารระหว่างหุ่นยนต์และ chipKit เป็นการสื่อสารแบบอนุกรม วิธีนี้ใช้หมุด RX และ TX มีแบตเตอรี่อยู่ในหุ่นยนต์ chipKit รับพลังงานจากแบตเตอรี่ ในภาพเส้นที่ไฮไลต์แสดงหมุดที่ใช้งานได้ การสื่อสารระหว่างหุ่นยนต์และ chipKit นั้นไม่ตรงกัน หุ่นยนต์สามารถควบคุมได้ด้วยรหัสการทำงาน ตัวอย่างเช่นถ้า 137 opcode จะถูกเขียนด้วยพารามิเตอร์ที่ถูกต้องหุ่นยนต์จะย้าย ไลบรารี Roomba มีรหัสการใช้งานเหล่านี้
ขั้นตอนที่ 6: การเชื่อมต่อของโมดูล
แบตเตอรี่ของหุ่นยนต์เชื่อมต่อกับเอาท์พุท 5 V ของ chipKit หนึ่งในพื้นดินของหุ่นยนต์เชื่อมต่อกับพื้นดินทั่วไป หมุดสื่อสารแบบอนุกรม 2 ตัวเชื่อมต่อกับ chipKit: RX (พิน 1) ของหุ่นยนต์เชื่อมต่อกับ TX1 ของชิปคิต (พิน 18) และ TX ของหุ่นยนต์ (พิน 2) ไปยังชิป RX1 (ไพน์ 19) ของชิป
4 พื้นของ MaxSONAR เชื่อมต่อกับพื้นทั่วไป หมุดหมุดเชื่อมต่อกับหมุด 82, 79, 76, 73 หมุด PWM เชื่อมต่อกับ 81, 78, 75, 72 พิน mosfet ทั้ง 4 พิสูจน์ให้เห็นถึงพลังของเสียงโซนาร์ Threat มอสเฟตที่เราสามารถเปิดและปิด sonars
หมุดเกทของ MOSFET เชื่อมต่อกับตัวต้านทาน 11, 8, 5, 2 ถึง 200 โอห์มตัวต้านทาน 4 ตัว แหล่งที่มาของ mosfets เชื่อมต่อกับหมุด 5 V ของโซนาร์และท่อระบายน้ำของ mosfets เชื่อมต่อกับแบตเตอรี่ 5 V
เข็มทิศมีหมุด SCL และ SDA ซึ่งเชื่อมต่อกับขาคล้ายชิปของ SCL และ SDA