Talaan ng mga Nilalaman:

Saging / Raspberry Pi + Arduino Rover Gamit ang Webcam: 9 Mga Hakbang
Saging / Raspberry Pi + Arduino Rover Gamit ang Webcam: 9 Mga Hakbang

Video: Saging / Raspberry Pi + Arduino Rover Gamit ang Webcam: 9 Mga Hakbang

Video: Saging / Raspberry Pi + Arduino Rover Gamit ang Webcam: 9 Mga Hakbang
Video: Raspberry Pi 4 Driving a DIY Rover Using a PS4 Controller | RC Robot 2024, Hulyo
Anonim
Saging / Raspberry Pi + Arduino Rover Sa Webcam
Saging / Raspberry Pi + Arduino Rover Sa Webcam

Isang proyekto na nagawa ko sa aking bakanteng oras. Ito ay isang full-drive na 4 wheel robot na kinokontrol sa pamamagitan ng isang web interface. Kung mayroon kang anumang mga komento o katanungan mangyaring huwag mag-atubiling makipag-ugnay sa akin. Ang proyektong ito mismo ay gumagamit ng mga naka-print na bahagi ng 3D at ilang mga piraso ng code na nilikha ng ibang mga tao. Maaari kang makahanap ng mga kredito at tingnan ang mga orihinal na piraso sa dulo ng Instructuble.

Magsisimula na ba tayo?

Hakbang 1: Mga Sangkap na Kailangan Mo

Mga Sangkap na Kailangan Mo
Mga Sangkap na Kailangan Mo
Mga Sangkap na Kailangan Mo
Mga Sangkap na Kailangan Mo
Mga Sangkap na Kailangan Mo
Mga Sangkap na Kailangan Mo

Narito ang listahan ng mga sangkap na ginamit ko sa mga link at mga kahalili. Nakatira ako sa Shenzhen, China at binili ko ang mga piyesa nang direkta sa Taobao.

4-motor robot chassis Alternatibong: Anumang sapat na malaking chassis ay gagawin. Ang isang ito ay may 4 na motor para sa ilang labis na metalikang kuwintas. Ang mga motor ay regular na murang dilaw na mga motor, rater para sa

L293D Arduino Motor Shield rev.1 clone Alternatibong: Mas mahusay na motor na kalasag na-rate para sa mas maraming kasalukuyang

Arduino Uno clone Alternative: Maaari kang gumamit ng anumang iba pang Arduino board nang walang mga makabuluhang pagbabago sa code.

6V 4.5Ah Pb baterya Alternatibong: Posibleng mag-eksperimento sa mas maliit na mga baterya ng LiPo kung nais mo ng mas magaan na robot / gumamit lamang ng dalawang mga motor.

Alternatibong Banana Pi: Maaaring magpalit para sa Raspberry Pi 1/2/3 o Orange Pi nang walang mga makabuluhang pagbabago sa code. Ginamit ko lamang ang Banana Pi dahil may nakahiga ako.

Alternatibong Web camera: Gumamit ng CSI camera para sa Raspberry Pi / Banana Pi / Orange Pi

Ang Camera Pan / ikiling na mount na may sg60 servos kahalili: 3D Print ikiling / pan mount halimbawa ay maaaring gamitin ang isang ito.

Mga naka-print na bahagi ng 3D Kahalili: Hayaan ang iyong imahinasyon at mga talento sa disenyo ng 3D na gabayan ka! Gayundin Thingverse:)

Hakbang 2: Ikonekta ang Mga Motors Sa L293D Motor Shield

Ikonekta ang Mga Motors Sa L293D Motor Shield
Ikonekta ang Mga Motors Sa L293D Motor Shield
Ikonekta ang Mga Motors Sa L293D Motor Shield
Ikonekta ang Mga Motors Sa L293D Motor Shield

Ikonekta ang bawat motor na may mga terminal ng tornilyo ng kalasag ng motor. Narito ang diagram ng mga kable. Kung mayroon ka lamang dalawang motor at ayaw mong baguhin ang code kaysa ikabit ang mga iyon sa MOTOR 1 at MOTOR 3.

TANDAAN: Para sa mga gumagamit ng iba't ibang mga motor na may mas mataas na kasalukuyang rating, maaaring kailanganin mo ng isa pang driver ng motor. Bilang kahalili, isang magandang maliit na pag-hack na natutunan ko kamakailan ay maaari kang mag-piggyback ng dalawa pang mga driver ng L293D sa tuktok ng mayroon (ito ang gitnang maliit na tilad sa board)!

Hakbang 3: Arduino Uno, Motor Shield Assembly

Arduino Uno, Motor Shield Assembly
Arduino Uno, Motor Shield Assembly

Ilagay ang Arduino Uno sa kaso at i-install ang Motor Shield sa itaas nito. Isa lamang ang paraan upang magawa iyon, kung hindi ito akma, gumagawa ka ng ilang-ting wong!

Kaso ng Arduino Uno Snug

Narito ang kaso na ginamit ko, modelo na nilikha ni Esquilo.

Hakbang 4: Ikonekta ang Lakas sa Banana Pi at Arduino

Ikonekta ang Lakas sa Banana Pi at Arduino
Ikonekta ang Lakas sa Banana Pi at Arduino

Gumamit ako ng interface ng SATA upang magbigay ng lakas sa Banana Pi (6v). Kung mayroon kang parehong board maaari mo ring gawin iyon, siguraduhin lamang na ang boltahe ay 5v-6v. Ito ay walang regulasyon na supply ng kuryente, kaya't ipinapalagay kong mayroong isang circuit ng proteksyon para sa kapangyarihan ng SATA sa Banana Pi M1.

Pansin: Para sa Raspberry Pi mayroon kang ilang mga pagpipilian: isang ligtas (gamit ang USB konektor upang magbigay ng 5v) at hindi ligtas (gamit ang mga GPIO pin). Narito ang link upang mabasa tungkol sa pagkonekta ng lakas sa mga pin ng Raspberry Pi GPIO. Siguraduhin na ikaw

1) Gumamit ng kinokontrol na supply ng kuryente

2) Itakda ang boltahe sa 5v

Walang protection circuit para sa mga GPIO pin! Kung gumawa ka ng isang maling bagay, mayroong isang seryosong pagkakataon na mapinsala ang electronics sa pisara.

Para kay Arduino i-wire mo lang ang lakas sa mga input screw terminal sa kalasag ng motor. Maaari itong tumagal ng hanggang sa 12v.

Hakbang 5: Ilagay ang Saging Pi sa 3D Naka-print na Kaso, Magtipon ng Natitirang Rover

Ilagay ang Saging Pi sa 3D Naka-print na Kaso, Magtipon ng Natitirang Rover
Ilagay ang Saging Pi sa 3D Naka-print na Kaso, Magtipon ng Natitirang Rover
Ilagay ang Saging Pi sa 3D Naka-print na Kaso, Magtipon ng Natitirang Rover
Ilagay ang Saging Pi sa 3D Naka-print na Kaso, Magtipon ng Natitirang Rover

Ginamit ko ang kasong ito para sa Banana Pi mula sa bagay, nilikha ng GermanRobotics. Ang pabalat para dito ay ginawa ko ang aking sarili.

Ilagay ang Banana Pi sa kaso, takpan ito ng takip, gumamit ng glue gun upang ikabit ang Arduino Uno sa tuktok ng kaso ng Banana Pi.

Takpan ang baterya ng takip na ito at ilakip ang web cam pan / ikiling ang mount sa itaas.

Kung gumagamit ka ng Banana Pi kakailanganin mo ang isang USB hub, dahil mayroon lamang itong dalawang mga puwang ng USB (Ang Raspberry 2, 3 ay mayroong apat). Purong wala sa mga alalahanin sa aesthetic nagpasya akong gumamit ng isang OTG 1-2 USB hub at itago ang mga wire sa loob ng kaso ng Banana Pi.

Hakbang 6: Tapos na ang Assembly Assembly

Tapos na ang Hardware Assembly!
Tapos na ang Hardware Assembly!

Mabilis nating ibuod ang nagawa natin sa ngayon.

Pinagsama namin ang platform ng robot, nakakonekta ang lakas sa Banana Pi, Arduino Uno, nakakonekta na mga motor at servos sa driver ng motor at ginamit ang USB hub upang ikonekta ang USB camera at Arduino Uno sa Banana Pi. Ngayon ay maaari mong subukan at i-troubleshoot ang hardware. Ang diagram ng mga kable na nagpapakita ng lahat ng mga koneksyon ay nasa larawan para sa hakbang na ito.

Hakbang 7: Pag-configure ng System

Pag-configure ng System
Pag-configure ng System

Gumamit ako ng Raspbian Lite na imahe para sa system sa aking pi. Ang Lite na bersyon ay walang GUI, at mayroong lamang mga pangunahing package bawat naka-install. Ngunit tumatagal ng mas kaunting puwang, na nangangahulugang maaari kaming gumamit ng mas maliit na SD card. Kung hindi ka komportable nang walang GUI maaari mo ring mai-install ang buong imahe.

Ikonekta ang iyong pi sa Internet gamit ang Ethernet cable. Matapos itong mag-boot ang unang hakbang ay upang ikonekta ito sa Wi-Fi.

Patakbuhin ang sumusunod na utos sa terminal

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

I-edit ang config file sa iyong mga kredensyal sa WiFi

network = {ssid = "pagsubok" psk = "pagsubokPassword"}

I-reboot ang pi. Voila! Nakakonekta ka na ngayon sa Wi-Fi.

Susunod kailangan naming mag-install ng pip (Python Package Manager)

sudo apt-get install python-setuptools

sudo easy_install pip

Gumagamit kami ngayon ng pip upang mai-install ang Flask para sa pagpapatakbo ng isang webserver at pyserial para sa pi upang makipag-usap kay Arduino sa serial connection.

sudo pip install flask

sudo pip install pyserial

Ang huling bagay ay ang mag-install at mag-configure ng package ng paggalaw, na ginagamit namin para sa streaming ng video mula sa aming webcam.

Sundin ang mahusay na itinuturo na gawin ito.

Ngayon handa na kaming gumulong!

Hakbang 8: Pagsisimula ng Up Software

Simula sa Up ang Software
Simula sa Up ang Software
Simula sa Up ang Software
Simula sa Up ang Software

Naaalala mo kung paano ko nasabing handa tayong gumulong?

Okay, medyo mas nakakagiling at pagkatapos ay maaari na tayong magsimulang magulong:)

I-download natin ang lahat ng kinakailangang mga file mula sa aking github repository.

git clone

Mag-upload ng rover.ino sa Arduino Uno. Kung gumawa ka ng mga pagbabago sa hardware (gamit ang iba't ibang kalasag sa motor, halimbawa) kailangan mong baguhin ang sketch.

Kung gumagamit ka ng isang web cam, baguhin ang linya malapit sa ilalim ng index.html file sa folder ng template. Baguhin ang URL sa linya ng IFRAME upang tumugma sa src URL para sa iyong stream ng video.

Maaari mo nang simulan ang webserver. Patakbuhin ang sumusunod na utos

sudo python pi_rover.py

Kung sinundan mo ang aking pagbuo ng napakalapit at nakakonekta ang Arduino makikita mo ang sumusunod (unang larawan) sa terminal.

I-type ang ip address ng iyong robot sa web browser (halimbawa sa aking kaso noong 192.168.1.104), maaari mong suriin ang ip address gamit ang $ ifconfig command sa Linux.

/ gawin ang pagdiriwang na sayaw dito! /

Kung mayroon kang anumang mga katanungan huwag mag-atubiling magtanong sa akin sa mga komento. Ang tutorial na ito ay naglalayon para sa antas ng nagsisimula, ngunit hindi zero-baguhan, kaya't naging maikli ako sa mga bagay na maaari mo lamang i-google (hal. Sunugin ang imahe ng system sa SD card, i-upload ang Arduino sketch atbp).

Hakbang 9: Mga Kredito

Ang ideya at web server code ay nagmula sa mahusay na itinuturo ng jscottb na ito. Binago ko ito upang magamit ang mas karaniwang hardware, tulad ng Arduino Uno.

Ang mga naka-print na bahagi ng 3D mula sa Thingverse.

www.thingiverse.com/thing:994827

www.thingiverse.com/thing:2816536/files

www.thingiverse.com/thing:661220

Inirerekumendang: