สารบัญ:

Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม: 9 ขั้นตอน
Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม: 9 ขั้นตอน

วีดีโอ: Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม: 9 ขั้นตอน

วีดีโอ: Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม: 9 ขั้นตอน
วีดีโอ: Arduino project 😎^ Arduino #arduino #2022 #2021 #2023 #dc #arduinoproject #diy #foryou 2024, พฤศจิกายน
Anonim
Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม
Banana/Raspberry Pi + Arduino Rover พร้อมเว็บแคม

โครงการที่ฉันทำในเวลาว่าง เป็นหุ่นยนต์ 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

เชื่อมต่อมอเตอร์ด้วย L293D Motor Shield
เชื่อมต่อมอเตอร์ด้วย L293D Motor Shield
เชื่อมต่อมอเตอร์ด้วย L293D Motor Shield
เชื่อมต่อมอเตอร์ด้วย L293D Motor Shield

เชื่อมต่อมอเตอร์แต่ละตัวกับขั้วต่อสกรูของตัวป้องกันมอเตอร์ นี่คือแผนภาพการเดินสายไฟ หากคุณมีมอเตอร์เพียงสองตัวและไม่ต้องการเปลี่ยนรหัส ให้แนบมอเตอร์เหล่านั้นกับมอเตอร์ 1 และมอเตอร์ 3

หมายเหตุ: สำหรับผู้ที่ใช้มอเตอร์หลายตัวที่มีพิกัดกระแสไฟสูงกว่า คุณอาจต้องใช้ตัวขับมอเตอร์ตัวอื่น อีกทางหนึ่ง แฮ็คเล็กๆ น้อยๆ ที่ฉันได้เรียนรู้เมื่อเร็วๆ นี้ก็คือ คุณสามารถใส่ไดรเวอร์ L293D อีกสองตัวที่อยู่ด้านบนของตัวที่มีอยู่ (เป็นชิปตัวกลางบนกระดาน)!

ขั้นตอนที่ 3: Arduino Uno, Motor Shield Assembly

Arduino Uno, ชุดประกอบมอเตอร์ชิลด์
Arduino Uno, ชุดประกอบมอเตอร์ชิลด์

ใส่ Arduino Uno ลงในเคสแล้วติดตั้ง Motor Shield ที่ด้านบน มีทางเดียวเท่านั้นที่จะทำเช่นนั้น หากไม่พอดี แสดงว่าคุณกำลังทำอะไรอยู่!

เคส Arduino Uno Snug

กรณีนี้ผมใช้ โมเดลที่สร้างโดย Esquilo

ขั้นตอนที่ 4: เชื่อมต่อพลังงานกับ Banana Pi และ Arduino

เชื่อมต่อพลังงานกับ Banana Pi และ Arduino
เชื่อมต่อพลังงานกับ 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 ลงในเคสที่พิมพ์ 3 มิติ ประกอบส่วนที่เหลือของ Rover
ใส่ Banana Pi ลงในเคสที่พิมพ์ 3 มิติ ประกอบส่วนที่เหลือของ Rover
ใส่ Banana Pi ลงในเคสที่พิมพ์ 3 มิติ ประกอบส่วนที่เหลือของ Rover
ใส่ 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

แนะนำ: