Talaan ng mga Nilalaman:

Raspberry Pi, Android, IoT, at Bluetooth Powered Drone: 7 Hakbang (na may Mga Larawan)
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone: 7 Hakbang (na may Mga Larawan)

Video: Raspberry Pi, Android, IoT, at Bluetooth Powered Drone: 7 Hakbang (na may Mga Larawan)

Video: Raspberry Pi, Android, IoT, at Bluetooth Powered Drone: 7 Hakbang (na may Mga Larawan)
Video: Waveshare SIM7600X 4G HAT 2024, Nobyembre
Anonim
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone
Raspberry Pi, Android, IoT, at Bluetooth Powered Drone

Gamit ang isang Raspberry Pi para sa on-board na lohika, ang compact, mobile computer na ito, ay lilikha ng isang lokal na port na nag-stream ng isang video sa real-time habang sabay na lumilikha ng mga socket ng Bluetooth upang mabasa ang mga halagang ipinadala ng isang pasadyang android app. Ang app ay nagsi-sync sa drone at gumagamit ng input ng gumagamit upang magpadala ng mga tagubilin sa drone kaagad.

Ang proyektong ito ay medyo mahirap gawin mula sa simula. Sana, ang sumusunod na impormasyon ay magbibigay ng pananaw para sa maraming mga application ng drone. Ang lahat ng mga disenyo ng software at circuit na nauugnay sa proyektong ito ay ibinigay. Huwag mag-atubiling baguhin at ibahagi ang code ayon sa gusto mo. Mangyaring gamitin ang impormasyong ibinigay nang responsable at huwag mag-atubiling mag-iwan ng komento sa ibaba.

Hakbang 1: Ang Hardware

Ang Hardware
Ang Hardware
Ang Hardware
Ang Hardware
Ang Hardware
Ang Hardware
Ang Hardware
Ang Hardware

Nasa ibaba ang listahan ng hardware na ginamit ko.

  • Raspberry Pi 3 Model B
  • Module ng Raspberry PI Camera
  • L298N Motor Driver
  • 2, DC Motors
  • Isang Keyboard, Anumang Monitor, Mouse, Ethernet Cable, at HDMI Cable (para sa pi)
  • 8GB MicroSD Card
  • Mga tornilyo, Tape, ect.
  • 2 Gulong
  • Isang Android Bluetooth Device (Aking telepono)
  • 2, 18650 Mga Cell
  • Isang 5 Volt Regulator
  • Isang computer upang mai-program ang app

Isang Raspberry Pi: Para sa mas mataas na mga resolusyon ng stream (o para sa mga nagsisimula), inirerekumenda ko ang pinakabagong bersyon ng modelo ng B habang ang mas maraming mga compact na bersyon ay maaaring gumamit ng alinman sa pinakabagong Model A + o sa Pi Zero (Bersyon ng Camera). Tandaan na kung gumagamit ka ng isang raspberry pi zero, kakailanganin mo ng isang Bluetooth at / o WiFi dongle para dito. Ipagpalagay ng tutorial na ito ang iyong paggamit ng isang Raspberry Pi 3 B.

Isang driver ng motor: Gumamit ako ng L298N, bagaman ang anumang driver ng motor ay dapat na gumana. Tiyakin lamang na maaari itong hawakan ang iyong boltahe ng motor at kasalukuyang.

2 DC Motors: Tiyaking makakaya nila ang bigat ng iyong drone.

Isang katawan: Ginamit din ang paghawak sa lahat ng mga sangkap. Karaniwan matigas na plastik o aluminyo ay isang matibay, magaan na materyal na gagamitin. Para sa pinakamainam na mga resulta, kahit na isang 3D Printer ay maaaring magamit.

Isang Pinagmulan ng Kapangyarihan: Halos palaging ito ang pinakamahirap na desisyon kapag pumipili ng mga bahagi. Ang kinakailangang baterya ay nakasalalay sa kasalukuyang pagguhit. Para sa mga application na mababa ang pinapagana (tulad ng 1 o 2 amps), ang isang 9v na baterya ay dapat sapat. Para sa mas mataas na amperage, inirerekumenda ko ang alinman sa isang 18650 na cell ng Lithium Ion o isang baterya ng Lithium Polymer dahil ang mga ito ay magaan ang timbang, maaaring magkaroon ng maraming lakas para sa kanilang laki, at ma-rechargeable.

2 Mga Gulong: Siguraduhin lamang na ang iyong mga Gulong ay ang may parehong laki ng butas tulad ng baras ng iyong motor. Tiyakin din na ang mga diameter ng mga Gulong ay sapat na malaki para sa iyong drone. Dahil ang mga ito ay maraming posibleng mga pagkakaiba-iba at disenyo para sa proyektong ito, ang mga ito ay maraming iba't ibang mga uri at laki ng gulong gagamitin.

Mga regulator ng boltahe: Kinakailangan ang isang 5 volt regulator upang mapagana ang pi sa pamamagitan ng isang baterya. Gumamit ako ng isang LM2596 DC-DC buck converter.

Karamihan sa mga produkto sa mga link ay ginamit sa proyektong ito at ang pinakamahusay na mga deal na maaari kong makita sa oras.

Ngayon na mayroon ka ng lahat ng kailangan mo, hinayaan ang pag-set up ng pi.

Hakbang 2: Pag-set up ng Raspberry Pi

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

Ipapakita sa iyo ng hakbang na ito kung paano i-setup ang Raspberry Pi upang masimulan mong mag-coding. Kung mayroon ka nang isang pag-setup ng pi sa Raspbian, kaysa malayang lumipat sa susunod na hakbang.

Una, kailangan mong mag-download ng isang operating system para sa raspberry. Kumuha ng mga NOOBS kung ang iyong isang nagsisimula. Kung mayroon ka nang kapansin-pansin na karanasan sa isang raspberry pi, pagkatapos ay maaaring maging interesado ka sa Raspbian. Ipagpalagay ko na gumagamit ka ng mga NOOBS para sa tutorial na ito.

Habang nagda-download iyon, I-format ang iyong SD card gamit ang SD Formatter.

Ngayon i-extract at kopyahin ang mga nilalaman ng pag-download sa ugat ng iyong SD card. Nangangahulugan lamang ang Root na wala ito sa loob ng anumang mga folder. Kung ang isang bagong folder ay nilikha upang hawakan ang lahat ng mga nahango na file, kopyahin ang file na iyon.

Susunod na ikabit ang SD card sa pi. Habang pinapasok, dapat itong "mag-click" sa o umupo lamang sa ilalim ng pi.

I-plug ang iyong mouse at keyboard sa pi. Pagkatapos plug sa isang HDMI cable sa pi mula sa isang monitor. Panghuli plug sa isang 3 amp micro USB wall socket adapter sa pi. Bagaman inirerekumenda ang isang wall socket, ginamit ko ang aking laptop bilang isang mapagkukunan ng kuryente (USB mula sa aking laptop hanggang sa Micro USB sa pi).

Hayaan ang pi na gawin ang bagay nito. Kung na-prompt, piliin ang Raspbian at hayaan itong mag-install. Sundin ang mga tagubilin sa installer. Maaaring magtagal bago makumpleto. Kung tama ang lahat, dapat mong makita ang isang desktop screen na katulad ng sa itaas.

Mag-plug sa isang Ethernet cable mula sa iyong router papunta sa pi. Pagkatapos buksan ang linya ng utos (Ang itim na "kahon" na icon sa tuktok ng screen). Kakailanganin mong i-update ang pi sa pamamagitan ng isang wired network upang ikonekta ito sa isang wireless network.

Pagkatapos mag-click sa icon ng Cable sa tuktok ng screen. I-type ang mga detalye ng iyong network kung saan na-prompt.

I-type ang teksto sa susunod na linya nang eksakto tulad ng ipinakita at pindutin ang enter. Maa-update nito ang pi. Maaari itong tumagal ng ilang sandali. Hayaan mo lang itong gawin ang bagay nito.

sudo apt-get update

Pagkatapos i-type ang code sa susunod na linya. Magtatagal din ito. Huwag gumawa ng kahit ano hanggang sa matapos ito.

sudo apt-get dist-upgrade

Ngayon ay dapat mong maalis sa pagkakakonekta ang Ethernet cable, mag-click sa wireless na icon sa tuktok ng screen, ipasok ang impormasyon ng iyong mga network, at sa wakas ay kumonekta sa iyong network sa pamamagitan ng wireless.

Hinahayaan ngayon ang code sa bahagi ng drone na humahawak sa mga paggalaw.

Hakbang 3: Mga Pagkilos sa Paghawak (Bluetooth Server)

Mga Kilusang Pangangasiwaan (Bluetooth Server)
Mga Kilusang Pangangasiwaan (Bluetooth Server)

Para sa paghawak ng mga paggalaw, ginagamit ang wika ng programa na "Python 3". Ang mga mensahe na nagsasabi sa robot na lumipat ay ipapadala sa pamamagitan ng Bluetooth mula sa app.

Una, kailangan mong i-install ang Bluetooth library. I-type ang mga sumusunod na utos upang magawa ito.

sudo apt-get update

sudo apt-get install ng Bluetooth

sudo apt-get install bluez

sudo apt-get install python-bluez

Ngayon mula sa desktop, mag-click sa icon ng pagsisimula ng menu, pagkatapos Programming, pagkatapos Python 3. Pagkatapos mula sa toolbar, i-click ang File, bago. Ang isang bagong window ay dapat na lumitaw.

Kopyahin ang mga nilalaman ng attachment na "blu Bluetoothpi.rtf" sa window.

Sa toolbar, mag-click sa File, I-save bilang. I-save ito sa direktoryo / home / pi / Desktop / bilang gerakan.py.

Ngayon upang subukan ang code, mag-click sa icon ng Bluetooth sa kanang sulok sa itaas ng screen. Ipares ang raspberry pi sa iyong android device. Mag-download ng isang app na tinatawag na BlueTerm sa iyong android device. Pagkatapos sa linya ng utos, i-type ang sumusunod na code nang naka-bold. Isasagawa nito ang code ng sawa.

sudo python /home/pi/Desktop/movements.py

Ang teksto na "Naghihintay para sa mga koneksyon" ay dapat na lumitaw sa pi.

Simulan ang BlueTerm at mag-click sa icon ng mga pagpipilian at pagkatapos ay ang pindutang "tumingin para sa mga koneksyon".

Sa app, dapat lumitaw ang pangalan ng iyong raspberry pi. Mag-click sa pindutan na may pangalan ng pi. Ang teksto na "Tinanggap na koneksyon mula sa" ay dapat na lumitaw sa pi na sinusundan ng address nito. Ngayon kung ano man ang nai-type mo sa telepono, dapat ipakita sa pi.

Matagumpay mong na-code ang iyong sariling socket ng server ng Bluetooth!

Hakbang 4: Ang Android App (Bluetooth Client)

Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)
Ang Android App (Bluetooth Client)

Mag-download ng Android Studio dito. I-install ito at sundin ang mga tagubiling ibinigay sa installer.

Magsimula ng isang bagong proyekto. Lumikha ng isang blangko na aktibidad na tinatawag na MainActivity.

Kopyahin ang mga nilalaman ng kalakip na "Logic.txt" sa file na "MainActivity.java" (tab). Naglalaman ito ng lahat ng lohika sa likod ng app. Maaaring kailanganin mong baguhin ang pangalan ng iyong aparato sa ilalim ng file.

Pagkatapos kopyahin ang mga nilalaman ng file na "GUI" sa "aktibidad_main.xml" file (tab). Naglalaman ito ng isang napaka-simpleng GUI para sa app.

Ngayon ay kakailanganin mong i-import ang mga arrow button (larawan) sa app. I-zip ang mga Attachement arrow.zip. Sa kaliwa ng android studio, buksan ang istraktura ng file upang makita ang app, res, minimap. Kopyahin ang mga larawan ng arrow -p.webp

Panghuli kopyahin ang mga nilalaman ng file na "Manifest" sa iyong file na "AndroidManifest.xml" (tab).

Upang subukan ang app, kakailanganin mong patakbuhin ito sa iyong aparato. Upang magawa ito, kakailanganin mong itakda ang aparato sa mode ng developer at paganahin ang USB debugging. Para sa karamihan ng mga aparato, kakailanganin mong pumunta sa "Mga Setting", "Tungkol sa Telepono", mag-scroll sa ibaba at mag-click sa "Bumuo ng Numero" pitong beses hanggang sa makita mo ang mensahe na "Isa ka nang developer!" Bumalik at dapat mo na ngayong makita ang isang tab na "Mga pagpipilian ng developer". Mag-click dito at paganahin ang USB debugging.

Ikonekta ang iyong android device sa iyong computer sa pamamagitan ng USB, mag-click sa icon na run sa Android Studio, at piliin ang iyong aparato.

Sa pi, simulan ang code ng sawa na nilikha sa hakbang 3 sa pamamagitan ng pagta-type sa utos nang naka-bold:

sudo python /home/pi/Desktop/movements.py

Pagkatapos mag-click sa pindutan ng kumonekta sa app. Kapag nakakonekta, ang ilang mga arrow ay dapat na lumitaw ngayon sa app. Tuwing mag-click ka sa isa, ia-update nito ang "paglipat" ng estado ng pi.

Mabuti kung ang background ng app ay nagbibigay ng isang error. Maaayos ito mamaya.

Nilikha mo lang ang pagmamay-ari mo ng app at Bluetooth Client.

Hakbang 5: Pagkonekta sa Hardware

Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware

Solder ang mga koneksyon sa diagram sa itaas. Ikabit din ang module ng camera sa pi.

Patakbuhin ang app at ipatupad ang mga files ng Files.py. Kung ang mga motor ay gumalaw nang tama kapag ginagamit ang app, huwag mag-atubiling ilagay ang lahat ng mga bahagi sa isang tinapos na shell para sa drone. Maaaring kailanganin mong baguhin ang mga halagang "HIGH" at "LOW" na mga halaga upang maayos itong gumalaw.

Sa susunod na hakbang, idaragdag namin ang tampok na streaming ng drone.

Hakbang 6: Pag-streaming

Streaming
Streaming
Streaming
Streaming
Streaming
Streaming

Ang mga ito ay maraming paraan upang mag-stream ng isang video gamit ang isang Pi, ngunit ang paggamit ng uv4l ay ang pinakamadaling paraan na halos walang pagka-lag.

Isang tala lamang, kung naisaayos mo na ang iyong drone at hindi maikonekta ito sa iyong monitor at keyboard, kakailanganin mong SSH sa iyong drone. Upang magawa ito, i-download ang Putty sa iyong computer. Buksan ito at i-type ang IP address ng iyong raspberry (hanapin ang IP address sa pamamagitan ng pagta-type ng command ifconfig). Susubukan ka nito para sa isang username at password. Ang default na username at password ay pi at raspberry ayon sa pagkakabanggit. Ngayon kung ano man ang nai-type mo sa command box ay magiging tulad ng pagpasok ng mga utos nang direkta sa drone.

pagse-set up uv4l

I-type ang utos na ito:

sudo nano /etc/apt/source.list

Idagdag ang sumusunod na linya sa sa huling linya ng file.

deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

Lumabas at i-save ang file sa pamamagitan ng pagpindot sa Ctrl-X at pagkatapos ay i-type ang Oo.

Pagkatapos i-type ang sumusunod na linya at pindutin ang enter.

sudo apt-get update

pagkatapos ito:

sudo apt-get install uv4l uv4l-raspicam

I-type ang sumusunod na linya ng mga utos ayon sa linya. Hintaying matapos nito ang ginagawa nito bago mag-type sa susunod na linya.

sudo apt-get install uv4l-raspicam-extra

sudo service uv4l_raspicam restart

sudo rpi-update

sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp

sudo apt-get install uv4l-webrtc

sudo apt-get install uv4l-xmpp-tulay

sudo apt-get install uv4l-raspidisp-extra

Pagkatapos nito, ang kailangan mo lang gawin ay mag-type sa sumusunod na utos upang simulang mag-streaming (palitan ang "raspberrypi" gamit ang IP address / Host name ng raspberry sa iyong network)

cvlc https:// raspberrypi: 8080 / stream / video.mjpeg

Magsisimula itong mag-streaming ng video sa real time sa port 8080. Dapat makita ang stream sa background ng iyong app ngayon. Upang matingnan ang stream sa anumang browser, i-type ang URL na ito (kung saan "raspberrypi" ang iyong mga drone IP address).

https:// raspberrypi: 8080 / stream / video.mjpeg

Congrats, nakumpleto mo na ang iyong spy drone.

Hakbang 7: Magmaneho

I-flip ang power switch at simulang mag-explore.

Kung nais mong malaman kung paano gumawa ng iba pa, tanungin mo ako at makikita ko kung ano ang maaari kong gawin.

Kung mayroon kang anumang mga katanungan, mangyaring magkomento sa ibaba at gagawin ko ang aking makakaya upang sagutin ang mga ito.

Salamat sa pagbabasa!

Inirerekumendang: