Talaan ng mga Nilalaman:

Raspberry SPy Robot: 8 Hakbang (na may Mga Larawan)
Raspberry SPy Robot: 8 Hakbang (na may Mga Larawan)

Video: Raspberry SPy Robot: 8 Hakbang (na may Mga Larawan)

Video: Raspberry SPy Robot: 8 Hakbang (na may Mga Larawan)
Video: The Immortal Hulk: Full Story (The Big Spill) 2024, Hulyo
Anonim
Image
Image
Raspberry SPy Robot
Raspberry SPy Robot

Pinapayagan ka ng proyektong ito na magmaneho ng isang robot sa pamamagitan ng isang webpage at tingnan ang isang livestream. Maaari itong magamit upang mag-ispya ang mga alagang hayop, tiyakin na walang nasusunog sa iyong oven, at kahit na panonood ng ibon! Ibinigay ng DFRobot ang Raspberry Pi 3 at ang module ng Raspberry Pi camera.

Hakbang 1: Ang Robot Electronics

Ang Robot Electronics
Ang Robot Electronics

Nagsimula ako sa pamamagitan ng pag-iipon ng 2WD MiniQ chassis kit mula sa DFRobot. Inilagay ko ang mga gulong sa mga shaft ng motor, pagkatapos ay ipinasok ang mga ito sa mga braket at ikinabit sa mga chassis. Sa wakas, idinagdag ko ang mga metal na suporta. Ngayon ay oras na upang itayo ang pangunahing board. Ang driver ng L293d motor ay na-solder sa lugar, kasama ang mga wire na tumatakbo sa mga pin ng GPIO ng Raspberry Pi. Susunod, naghinang ako ng isang konektor para sa baterya, dahil magbibigay iyon ng pangunahing lakas. Matapos maidagdag ang mapagkukunan ng kuryente, nag-install ako ng isang 5V regulator.

Hakbang 2: Pag-set up ng Pi

Pag-set up ng Pi
Pag-set up ng Pi

Inabot ako ng DFRobot at ipinadala ang kanilang Raspberry Pi 3 at Raspberry Pi Camera Module. Kaya pagkatapos kong buksan ang mga kahon ay nakarating ako sa trabaho sa pamamagitan ng pagse-set up ng SD card. Una akong nagpunta sa pahina ng Mga Pag-download ng Raspberry Pi at na-download ang pinakabagong bersyon ng Raspbian. Kinuha ko pagkatapos ang file at ilagay ito sa isang maginhawang direktoryo. Hindi mo maaaring kopyahin / i-paste lamang ang isang.img file sa isang SD card, kailangan mong "sunugin ito" sa card. Maaari kang mag-download ng nasusunog na utility tulad ng Etcher.io upang madaling mailipat ang imahe ng OS. Matapos ang.img file ay nasa aking SD card ay ipinasok ko ito sa Raspberry Pi at binigyan ito ng lakas. Matapos ang halos 50 segundo ay inalis ko ang kurdon at tinanggal ang SD card. Susunod na ibalik ko ang SD card sa aking PC at pumunta sa direktoryo ng "boot". Binuksan ko ang notepad at nai-save ito bilang isang blangko na file na pinangalanang "ssh" na WALANG extension. Mayroon ding isang file na idinagdag kong tinawag na "wpa_supplicant.conf" at inilagay ang teksto na ito:

network = {ssid = psk =}

Pagkatapos ay nai-save ko at pinalabas ang card at ibalik ito sa Raspberry Pi 3. Dapat na itong payagan ang paggamit ng SSH at kumonekta sa WiFi.

Hakbang 3: Paghanda ng Camera

Paghahanda ng Camera
Paghahanda ng Camera

Bilang default, ang camera ay hindi pinagana sa Pi, kaya dapat mong buksan ang uri ng terminal sudo raspi-config upang ilabas ang menu. Pumunta sa "mga pagpipilian sa interfacing" at pagkatapos ay paganahin ang camera. Piliin lamang ang "Tapos na" at ipasok ang ribbon cable ng module ng camera sa tamang lugar ng Pi.

Hakbang 4: Pag-install ng Software

Mayroong maraming magkakaibang mga softwares na maaaring mag-stream ng video, tulad ng vlc at paggalaw, ngunit napagpasyahan kong gamitin ang mjpeg-streamer dahil sa mababang latency at madaling mai-install. Ayon sa mga tagubilin sa site, gawin ang isang clone ng git https://github.com/jacksonliam/m.jpg-streamer.git sa isang folder, pagkatapos ay i-type ang sudo apt-get install cmake libjpeg8-dev upang mai-install ang mga kinakailangang aklatan. Palitan ang iyong direktoryo sa folder na iyong na-download at pagkatapos ay i-type ang make na sinusundan ng sudo make install upang maipon ang software. Panghuli ipasok ang export LD_LIBRARY_PATH =. at upang patakbuhin ito.

Hakbang 5: Controller

Controller
Controller
Controller
Controller

Pagkatapos ay dumating ang bahagi ng kung paano makontrol ang isang Raspberry Pi sa paglipas ng WiFi, dahil ang Bluetooth ay may masyadong maliit na saklaw. Napagpasyahan kong gumamit ng isang Flask server na tumatakbo sa Raspberry PI at isang module na ESP8266 ESP12E upang magpadala ng data dito. Ang ESP8266 ay mayroon lamang isang analog input, na nangangahulugang hindi ko magagamit nang direkta ang joystick, dahil tumatagal ito ng dalawang analog input. Ang pinakamahusay na pagpipilian ay ang ADS1115, na isang aparato na I2C na nagbabasa ng mga analog signal sa 16 na piraso ng resolusyon. Pasimple kong nakakonekta ang SDA sa 4 at SCL sa 5, kasama ang VCC at GND. Ang joystick X axis ay kumokonekta sa A0 sa ADS1115, at ang axis ng Y ay kumokonekta sa A1. NGUNIT, aksidenteng nasunog ko ang ADS1115, kaya't kailangan kong gumamit ng susunod na pinakamahusay na bagay: mga pindutan! Kaya ngayon ang aking pag-setup ay isang ESP8266 Sparkfun Thing Dev Board na may 3 mga pindutan- pasulong, kanan, at kaliwa. Ngayon tuwing pinipilit ang isa, nagpapadala ito ng data upang paikutin ang mga gulong sa direksyong iyon.

Hakbang 6: Ang Code para sa Robot

Ang Code para sa Robot
Ang Code para sa Robot

Gumawa ako ng isang nakaraang proyekto na gumamit ng library ng Pi's GPIO PWM upang makontrol ang mga motor sa pamamagitan ng json, kaya nilayon ko ulit ang code upang tanggapin ang data sa pamamagitan ng isang Flask app sa halip. Ang Flask ay isang library ng Python na mahalagang gawin ang iyong Pi sa isang webserver na may kakayahang magpadala at tumanggap ng data. Sa pamamagitan ng paggamit ng PWM, ang mga motor ay maaaring makontrol na may higit na katumpakan kumpara sa tank drive. Nangangahulugan din ito na ang robot ay maaaring pumunta sa mga bilis ng variable kaysa sa isang nakapirming isa. Ang aking flask app ay na-configure upang baguhin ang PWM ng mga motor sa sandaling makatanggap ito ng data mula sa isang kahilingan sa GET sa pamamagitan ng http mula sa ESP12e. Gumagamit din ito ng subprocess. Buksan ang library upang patakbuhin ang webstreaming script sa background. Nag-attach ako ng code sa pahina ng proyekto, kaya ang kailangan lamang ay isang pag-download.

Hakbang 7: Controller Code

Ang code ay medyo simple, kumuha lamang ng mga pagbasa mula sa 3 mga pin, patakbuhin ang mga ito sa ilang mga kung pahayag upang matukoy ang direksyon ng gulong, at sa wakas ay ipadala ang mga halagang iyon sa Raspberry Pi. Ang pagdaragdag ng board ng ESP8266 para sa Arduino IDE ay mayroong HTTPClient library, na humahawak ng mga header at pagpapadala ng data. Ang Flask server ay kailangang makatanggap ng data sa pamamagitan ng isang tawag sa POST, kaya nagsisimula ang code ng isang koneksyon sa Raspberry Pi webserver, pagkatapos ay nagdaragdag ng isang header sa data na nagsasaad na naka-encode ito ng JSON, at sa wakas ay nagpapadala ito ng data sa anyo ng isang object na JSON. Nagdagdag ako ng isang 40 ms pagkaantala upang maiwasan ang Raspberry Pi mula sa pagiging sobrang karga sa data.

Hakbang 8: Pagpapatakbo ng Raspberry SPy

Pagpapatakbo ng Raspberry SPy
Pagpapatakbo ng Raspberry SPy
Pagpapatakbo ng Raspberry SPy
Pagpapatakbo ng Raspberry SPy

Ang kailangan lang ay magta-type ng sudo python.py! Dapat mong makita ang ilaw ng camera, at sa pamamagitan ng pagpunta sa web address ng pi na may port 8080 dapat makita ang stream. Ngayon ay maaari mong gamitin ang controller saanman sa bahay at magkaroon din ng live feed.

Inirerekumendang: