สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบที่คุณต้องการ
- ขั้นตอนที่ 2: เชื่อมต่อมอเตอร์ด้วย L293D Motor Shield
- ขั้นตอนที่ 3: Arduino Uno, Motor Shield Assembly
- ขั้นตอนที่ 4: เชื่อมต่อพลังงานกับ Banana Pi และ Arduino
- ขั้นตอนที่ 5: ใส่ Banana Pi ลงในเคสที่พิมพ์ 3 มิติ ประกอบส่วนที่เหลือของ Rover
- ขั้นตอนที่ 6: การประกอบฮาร์ดแวร์เสร็จสิ้น
- ขั้นตอนที่ 7: การกำหนดค่าระบบ
- ขั้นตอนที่ 8: การเริ่มต้นซอฟต์แวร์
- ขั้นตอนที่ 9: เครดิต
วีดีโอ: Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
โครงการที่ฉันทำในเวลาว่าง เป็นหุ่นยนต์ 4 ล้อฟูลไดรฟ์ที่ควบคุมผ่านเว็บอินเตอร์เฟส หากคุณมีความคิดเห็นหรือคำถามใด ๆ โปรดติดต่อฉัน โปรเจ็กต์นี้ใช้ชิ้นส่วนที่พิมพ์ 3 มิติและโค้ดบางส่วนที่ผู้อื่นสร้างขึ้น คุณสามารถค้นหาเครดิตและดูต้นฉบับได้ที่ส่วนท้ายของ Instructuble
เรามาเริ่มกันเลยไหม?
ขั้นตอนที่ 1: ส่วนประกอบที่คุณต้องการ
นี่คือรายการส่วนประกอบที่ฉันใช้กับลิงก์และทางเลือกอื่น ฉันอาศัยอยู่ในเซินเจิ้น ประเทศจีน และฉันซื้อชิ้นส่วนโดยตรงบน Taobao
แชสซีหุ่นยนต์ 4 ตัว ทางเลือก: แชสซีใด ๆ ที่ใหญ่เพียงพอจะทำได้ คันนี้มีมอเตอร์ 4 ตัวสำหรับแรงบิดพิเศษ มอเตอร์เป็นมอเตอร์สีเหลืองราคาถูกทั่วไป เรเตอร์สำหรับ
L293D Arduino Motor Shield rev.1 clone ทางเลือก: เกราะป้องกันมอเตอร์ที่ดีกว่าได้รับการจัดอันดับสำหรับกระแสที่มากขึ้น
Arduino Uno clone Alternative: คุณสามารถใช้บอร์ด Arduino อื่น ๆ ได้โดยไม่มีการเปลี่ยนแปลงที่สำคัญในโค้ด
ทางเลือกแบตเตอรี่ 6V 4.5Ah Pb: เป็นไปได้ที่จะทดลองกับแบตเตอรี่ LiPo ที่มีขนาดเล็กลง หากคุณต้องการหุ่นยนต์ที่เบากว่า/ใช้มอเตอร์เพียงสองตัว
ทางเลือก Banana Pi: สามารถสลับเป็น Raspberry Pi 1/2/3 หรือ Orange Pi ได้โดยไม่ต้องเปลี่ยนรหัสอย่างมีนัยสำคัญ ฉันใช้ Banana Pi เพียงเพราะฉันมีตัวหนึ่งนอนอยู่รอบ ๆ
ทางเลือกของกล้องเว็บ: ใช้กล้อง CSI สำหรับ Raspberry Pi/Banana Pi/Orange Pi
ตัวยึดกล้องแบบแพน/เอียงด้วยเซอร์โว sg60 ทางเลือกอื่น: ตัวอย่างเช่น แท่นยึดเอียง/แพนสำหรับพิมพ์ 3 มิติ สามารถใช้อันนี้ได้
ทางเลือกของชิ้นส่วนที่พิมพ์ 3 มิติ: ให้จินตนาการและพรสวรรค์ด้านการออกแบบ 3 มิติของคุณนำทางคุณ! ยัง Thingverse:)
ขั้นตอนที่ 2: เชื่อมต่อมอเตอร์ด้วย L293D Motor Shield
เชื่อมต่อมอเตอร์แต่ละตัวกับขั้วต่อสกรูของตัวป้องกันมอเตอร์ นี่คือแผนภาพการเดินสายไฟ หากคุณมีมอเตอร์เพียงสองตัวและไม่ต้องการเปลี่ยนรหัส ให้แนบมอเตอร์เหล่านั้นกับมอเตอร์ 1 และมอเตอร์ 3
หมายเหตุ: สำหรับผู้ที่ใช้มอเตอร์หลายตัวที่มีพิกัดกระแสไฟสูงกว่า คุณอาจต้องใช้ตัวขับมอเตอร์ตัวอื่น อีกทางหนึ่ง แฮ็คเล็กๆ น้อยๆ ที่ฉันได้เรียนรู้เมื่อเร็วๆ นี้ก็คือ คุณสามารถใส่ไดรเวอร์ L293D อีกสองตัวที่อยู่ด้านบนของตัวที่มีอยู่ (เป็นชิปตัวกลางบนกระดาน)!
ขั้นตอนที่ 3: Arduino Uno, Motor Shield Assembly
ใส่ Arduino Uno ลงในเคสแล้วติดตั้ง Motor Shield ที่ด้านบน มีทางเดียวเท่านั้นที่จะทำเช่นนั้น หากไม่พอดี แสดงว่าคุณกำลังทำอะไรอยู่!
เคส Arduino Uno Snug
กรณีนี้ผมใช้ โมเดลที่สร้างโดย Esquilo
ขั้นตอนที่ 4: เชื่อมต่อพลังงานกับ Banana Pi และ Arduino
ฉันใช้อินเทอร์เฟซ SATA เพื่อจ่ายไฟให้กับ Banana Pi(6v) หากคุณมีบอร์ดแบบเดียวกัน คุณก็สามารถทำเช่นนั้นได้ เพียงตรวจสอบให้แน่ใจว่าแรงดันไฟฟ้าอยู่ที่ 5v-6v มันเป็นแหล่งจ่ายไฟที่ไม่มีการควบคุม ดังนั้นฉันคิดว่ามีวงจรป้องกันสำหรับพลังงาน SATA บน Banana Pi M1
ข้อควรระวัง: สำหรับ Raspberry Pi คุณมีตัวเลือกสองสามอย่าง: ตัวเลือกที่ปลอดภัย (โดยใช้ขั้วต่อ USB เพื่อให้ 5v) และตัวที่ไม่ปลอดภัย (โดยใช้หมุด GPIO) นี่คือลิงค์สำหรับอ่านเกี่ยวกับการเชื่อมต่อพลังงานกับพิน Raspberry Pi GPIO รับรองว่า
1) ใช้แหล่งจ่ายไฟที่มีการควบคุม
2) ตั้งแรงดันไฟฟ้าเป็น 5v
ไม่มีวงจรป้องกันสำหรับพิน GPIO! หากคุณทำอะไรผิดพลาด มีโอกาสร้ายแรงที่จะทำให้อุปกรณ์อิเล็กทรอนิกส์บนบอร์ดเสียหาย
สำหรับ Arduino เพียงต่อสายไฟเข้ากับขั้วสกรูอินพุตบนแผงป้องกันมอเตอร์ อาจใช้ไฟสูงสุด 12v.
ขั้นตอนที่ 5: ใส่ Banana Pi ลงในเคสที่พิมพ์ 3 มิติ ประกอบส่วนที่เหลือของ Rover
ฉันใช้กรณีนี้สำหรับ Banana Pi จาก thingverse ซึ่งสร้างโดย GermanRobotics หน้าปกฉันทำเอง
ใส่ Banana Pi ลงในเคส ปิดฝา ใช้ปืนกาวติด Arduino Uno บนเคส Banana Pi
คลุมแบตเตอรี่ด้วยฝาปิดนี้และติดตัวยึดเว็บแคมแบบแพน/เอียงที่ด้านบน
หากคุณกำลังใช้ Banana Pi คุณจะต้องมีฮับ USB เนื่องจากมีช่องเสียบ USB สองช่องเท่านั้น (ราสเบอร์รี่ 2, 3 มีสี่ช่อง) ฉันตัดสินใจใช้ฮับ USB OTG 1-2 และซ่อนสายไฟไว้ในเคส Banana Pi ด้วยเหตุผลด้านสุนทรียภาพอย่างแท้จริง
ขั้นตอนที่ 6: การประกอบฮาร์ดแวร์เสร็จสิ้น
มาสรุปสิ่งที่เราได้ทำไปแล้วอย่างรวดเร็ว
เราได้ประกอบแพลตฟอร์มหุ่นยนต์ เชื่อมต่อพลังงานกับ Banana Pi, Arduino Uno, เชื่อมต่อมอเตอร์และเซอร์โวกับไดรเวอร์มอเตอร์ และใช้ฮับ USB เพื่อเชื่อมต่อกล้อง USB และ Arduino Uno กับ Banana Pi ตอนนี้คุณสามารถทดสอบและแก้ไขปัญหาฮาร์ดแวร์ได้แล้ว แผนภาพการเดินสายไฟแสดงการเชื่อมต่อทั้งหมดอยู่ในรูปภาพสำหรับขั้นตอนนี้
ขั้นตอนที่ 7: การกำหนดค่าระบบ
ฉันใช้อิมเมจ Raspbian Lite สำหรับระบบบน pi ของฉัน รุ่น Lite ไม่มี GUI และมาพร้อมกับแพ็คเกจพื้นฐานต่อการติดตั้งเท่านั้น แต่ใช้พื้นที่น้อยกว่ามาก ซึ่งหมายความว่าเราสามารถใช้การ์ด SD ที่เล็กกว่าได้ หากคุณไม่สะดวกหากไม่มี GUI คุณสามารถติดตั้งภาพเต็มได้
เชื่อมต่อ pi ของคุณกับอินเทอร์เน็ตด้วยสายอีเธอร์เน็ต หลังจากบูทเครื่องแล้ว ขั้นตอนแรกคือการเชื่อมต่อกับ Wi-Fi
เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
แก้ไขไฟล์กำหนดค่าด้วยข้อมูลรับรอง WiFi ของคุณ
เครือข่าย={ ssid="การทดสอบ" psk="การทดสอบรหัสผ่าน" }
รีบูต pi โว้ว! ตอนนี้คุณเชื่อมต่อกับ Wi-Fi แล้ว
ต่อไปเราจะต้องติดตั้ง pip (Python Package Manager)
sudo apt-get ติดตั้ง python-setuptools
sudo easy_install pip
ตอนนี้เราใช้ pip เพื่อติดตั้ง Flask สำหรับใช้งานเว็บเซิร์ฟเวอร์และ pyserial สำหรับ pi เพื่อสื่อสารกับ Arduino ผ่านการเชื่อมต่อแบบอนุกรม
sudo pip ติดตั้งขวด
sudo pip ติดตั้ง pyserial
สิ่งสุดท้ายคือการติดตั้งและกำหนดค่าแพ็คเกจการเคลื่อนไหว ซึ่งเราใช้สำหรับการสตรีมวิดีโอจากเว็บแคมของเรา
ทำตามคำแนะนำที่ยอดเยี่ยมนี้เพื่อทำสิ่งนี้
ตอนนี้เราพร้อมที่จะดังก้อง!
ขั้นตอนที่ 8: การเริ่มต้นซอฟต์แวร์
จำที่ฉันบอกว่าเราพร้อมที่จะดังก้อง?
โอเค ซ้อมกันอีกหน่อย แล้วค่อยเริ่มส่งเสียงครวญคราง:)
ดาวน์โหลดไฟล์ที่จำเป็นทั้งหมดจากที่เก็บ github ของฉัน
โคลน git
อัปโหลด rover.ino ไปยัง Arduino Uno หากคุณทำการเปลี่ยนแปลงฮาร์ดแวร์ (เช่น ใช้มอเตอร์ชิลด์ที่แตกต่างกัน) คุณต้องเปลี่ยนภาพสเก็ตช์
หากคุณกำลังใช้เว็บแคม ให้แก้ไขบรรทัดใกล้กับด้านล่างของไฟล์ index.html ในโฟลเดอร์เทมเพลต เปลี่ยน URL ในบรรทัด IFRAME เพื่อให้ตรงกับ src URL สำหรับสตรีมวิดีโอของคุณ
ตอนนี้คุณสามารถเริ่มต้นเว็บเซิร์ฟเวอร์ เรียกใช้คำสั่งต่อไปนี้
sudo python pi_rover.py
หากคุณติดตามงานสร้างของฉันอย่างใกล้ชิดและเชื่อมต่อ Arduino คุณจะเห็นสิ่งต่อไปนี้ (ภาพแรก) ในเทอร์มินัล
พิมพ์ที่อยู่ IP ของหุ่นยนต์ในเว็บเบราว์เซอร์ (เช่น ในกรณีของฉันคือ 192.168.1.104) คุณสามารถตรวจสอบที่อยู่ IP ด้วยคำสั่ง $ifconfig บน Linux
/เต้นฉลองที่นี่!/
หากคุณมีคำถามใด ๆ โปรดถามฉันในความคิดเห็น บทช่วยสอนนี้มีจุดมุ่งหมายสำหรับระดับเริ่มต้น แต่ไม่ใช่ระดับเริ่มต้น นั่นเป็นเหตุผลที่ฉันค่อนข้างสั้นเกี่ยวกับสิ่งที่คุณสามารถทำใน Google ได้ (เช่น เบิร์นอิมเมจระบบไปยังการ์ด SD, อัปโหลด Arduino Sketch เป็นต้น)
ขั้นตอนที่ 9: เครดิต
แนวคิดและรหัสเว็บเซิร์ฟเวอร์มาจากคำแนะนำที่ยอดเยี่ยมนี้โดย jscottb ฉันแก้ไขให้ใช้ฮาร์ดแวร์ทั่วไป เช่น Arduino Uno
ชิ้นส่วนที่พิมพ์ 3 มิติจาก Thingverse
www.thingiverse.com/thing:994827
www.thingiverse.com/thing:2816536/files
www.thingiverse.com/thing:661220
แนะนำ:
ย่อขนาดหุ่นยนต์อัตโนมัติ Arduino (Land Rover / Car) Stage1Model3: 6 Steps
การย่อขนาดหุ่นยนต์อัตโนมัติของ Arduino (Land Rover / Car) Stage1Model3: ฉันตัดสินใจย่อขนาด Land Rover / Car / Bot เพื่อลดขนาดและการใช้พลังงานของโครงการ
IOT Lunar Rover Raspberrypi+Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)
IOT Lunar Rover Raspberrypi+Arduino: โครงการนี้ได้รับแรงบันดาลใจจากภารกิจดวงจันทร์ของอินเดีย Chandryaan-2 ซึ่งจะเกิดขึ้นในเดือนกันยายน 2019 นี่เป็นภารกิจพิเศษเพราะพวกเขากำลังจะลงจอดในจุดที่ไม่มีใครเคยลงจอดมาก่อน ดังนั้น เพื่อแสดงการสนับสนุนของฉัน ฉันตัดสินใจซื้อ
Arduino 4WD Rover Bluetooth ควบคุมโดยโทรศัพท์/แท็บเล็ต Android: 5 ขั้นตอน
Arduino 4WD Rover Bluetooth ควบคุมโดยโทรศัพท์/แท็บเล็ต Android: Arduino 4WD bluetooth ควบคุม rover นี่คือรถแลนด์โรเวอร์ 4WD ธรรมดาที่ฉันสร้างด้วย Arduino รถแลนด์โรเวอร์ถูกควบคุมด้วยโทรศัพท์ Android หรือแท็บเล็ตผ่านบลูทูธ ด้วยแอปนั้น คุณสามารถควบคุมความเร็วได้ (โดยใช้ PWM ของ Arduino) รันด้วย
หุ่นยนต์ FPV Rover ที่ควบคุมด้วย Wi-Fi (พร้อม Arduino, ESP8266 และ Stepper Motors): 11 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์ FPV Rover ที่ควบคุมด้วย Wi-Fi (พร้อม Arduino, ESP8266 และ Stepper Motors): คำแนะนำนี้แสดงวิธีออกแบบหุ่นยนต์โรเวอร์สองล้อที่ควบคุมจากระยะไกลผ่านเครือข่าย wi-fi โดยใช้ Arduino Uno ที่เชื่อมต่อกับโมดูล Wi-Fi ของ ESP8266 และสเต็ปเปอร์มอเตอร์สองตัว หุ่นยนต์สามารถควบคุมได้จากการท่องอินเทอร์เน็ตทั่วไป
Arduino RC Amphibious Rover: 39 ขั้นตอน (พร้อมรูปภาพ)
Arduino RC Amphibious Rover: ในช่วงสองสามเดือนที่ผ่านมา เราได้พัฒนารถแลนด์โรเวอร์ที่มีการควบคุมระยะไกลที่สามารถเคลื่อนที่ได้ทั้งบนบกและในน้ำ แม้ว่ายานพาหนะที่มีคุณสมบัติคล้ายคลึงกันจะใช้กลไกขับเคลื่อนที่แตกต่างกัน แต่เราพยายามที่จะบรรลุทุกวิถีทางในการขับเคลื่อน