ให้ใกล้กับฉัน (โครงการ digilent Robot): 6 ขั้นตอน

ให้ใกล้กับฉัน (โครงการ digilent Robot): 6 ขั้นตอน

สารบัญ:

Anonim

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

มันเป็นรุ่นแรกของโครงการ

วัสดุ:

ขั้นตอนที่ 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