Inhoudsopgave:

Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone - Ajarnpa
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone - Ajarnpa

Video: Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone - Ajarnpa

Video: Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone - Ajarnpa
Video: Installing the Octo Sphincter 8000 - DIY Air Ride Auto Leveling 2024, Juli-
Anonim
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone
Raspberry Pi, Android, IoT en Bluetooth-aangedreven drone

Met behulp van een Raspberry Pi voor de ingebouwde logica, zal deze compacte, mobiele computer een lokale poort creëren die een video in realtime streamt en tegelijkertijd Bluetooth-sockets creëert om waarden te lezen die worden verzonden door een aangepaste Android-app. De app synchroniseert met de drone en gebruikt gebruikersinvoer om direct instructies naar de drone te sturen.

Dit project is vrij moeilijk om vanaf het begin te maken. Hopelijk geeft de volgende informatie inzicht voor meerdere drone-toepassingen. Alle software en circuitontwerpen met betrekking tot dit project worden geleverd. Voel je vrij om de code naar wens aan te passen en te delen. Gebruik de verstrekte informatie op een verantwoorde manier en laat hieronder een reactie achter.

Stap 1: De hardware

de hardware
de hardware
de hardware
de hardware
de hardware
de hardware
de hardware
de hardware

Hieronder staat de lijst met hardware die ik heb gebruikt.

  • Raspberry Pi 3 Model B
  • Raspberry PI-cameramodule
  • L298N-motorstuurprogramma
  • 2, gelijkstroommotoren
  • Een toetsenbord, elke monitor, muis, Ethernet-kabel en HDMI-kabel (voor de pi)
  • 8 GB MicroSD-kaart
  • Schroeven, tape, enz.
  • 2 wielen
  • Een Android Bluetooth-apparaat (mijn telefoon)
  • 2, 18650 cellen
  • Een 5 Volt-regelaar
  • Een computer om de app op te programmeren

Een Raspberry Pi: voor hogere streamresoluties (of voor beginners), zou ik de nieuwste versie van het B-model aanbevelen, terwijl compactere versies ofwel het nieuwste Model A+ of de Pi Zero (cameraversie) kunnen gebruiken. Onthoud dat als je een Raspberry Pi Zero gebruikt, je daarvoor een Bluetooth- en/of WiFi-dongle nodig hebt. Deze tutorial gaat ervan uit dat je een Raspberry Pi 3 B gebruikt.

Een motordriver: ik heb een L298N gebruikt, hoewel elke motordriver zou moeten werken. Zorg er gewoon voor dat het de spanning en stroom van uw motoren aankan.

2 DC-motoren: zorg ervoor dat ze het gewicht van je drone aankunnen.

Een lichaam: Gebruikt om alle componenten in te houden. Gewoonlijk is hard plastic of aluminium een duurzaam, lichtgewicht materiaal om te gebruiken. Voor optimale resultaten kan zelfs een 3D-printer worden gebruikt.

Een krachtbron: het is bijna altijd de moeilijkste beslissing bij het kiezen van onderdelen. De benodigde batterij is afhankelijk van het stroomverbruik. Voor toepassingen met laag vermogen (zoals 1 of 2 ampère) zou een 9v-batterij voldoende moeten zijn. Voor een hogere stroomsterkte raad ik een 18650 lithium-ion-cel of een lithium-polymeerbatterij aan, omdat ze licht van gewicht zijn, veel stroom kunnen bevatten voor hun formaat en oplaadbaar zijn.

2 wielen: zorg ervoor dat uw wielen dezelfde gatgrootte hebben als de as van uw motor. Zorg er ook voor dat de diameters van de Wheels groot genoeg zijn voor je drone. Omdat er meerdere mogelijke variaties en ontwerpen voor dit project zijn, zijn er meerdere verschillende wieltypes en -maten om te gebruiken.

Spanningsregelaars: Een 5 volt regelaar is nodig om de pi via een batterij van stroom te voorzien. Ik gebruikte een LM2596 DC-DC buck-converter.

De meeste producten in de links werden gebruikt in dit project en waren de beste deals die ik op dat moment kon vinden.

Nu je alles hebt wat je nodig hebt, kun je de pi instellen.

Stap 2: De Raspberry Pi instellen

De Raspberry Pi instellen
De Raspberry Pi instellen
De Raspberry Pi instellen
De Raspberry Pi instellen
De Raspberry Pi instellen
De Raspberry Pi instellen

Deze stap laat je zien hoe je de Raspberry Pi instelt, zodat je kunt beginnen met coderen. Als je al een pi-configuratie hebt met Raspbian, ga dan gerust naar de volgende stap.

Eerst moet je een besturingssysteem voor de Raspberry downloaden. Krijg NOOBS als je een beginner bent. Als je al opmerkelijke ervaring hebt met een Raspberry Pi, dan ben je misschien geïnteresseerd in Raspbian. Ik ga ervan uit dat je NOOBS gebruikt voor deze tutorial.

Terwijl dat aan het downloaden is, formatteert u uw SD-kaart met SD Formatter.

Pak nu de inhoud van de download uit en kopieer deze naar de hoofdmap van uw SD-kaart. Root betekent simpelweg dat het niet in mappen staat. Als er een nieuwe map is gemaakt om alle uitgepakte bestanden te bevatten, kopieer dan over dat bestand.

Sluit vervolgens de SD-kaart aan op de pi. Tijdens het invoegen moet het ofwel "klikken" of gewoon in de onderkant van de pi zitten.

Sluit je muis en toetsenbord aan op de pi. Sluit vervolgens een HDMI-kabel aan op de pi vanaf een monitor. Sluit ten slotte een 3 amp micro-USB-wandcontactdoosadapter aan op de pi. Hoewel een stopcontact aan te raden is, heb ik mijn laptop als stroombron gebruikt (USB van mijn laptop naar Micro USB in de pi).

Laat de pi zijn ding doen. Selecteer Raspbian als daarom wordt gevraagd en laat het installeren. Volg de instructies in het installatieprogramma. Het kan even duren om te voltooien. Als alles goed gaat, zou u een bureaubladscherm moeten zien dat lijkt op het bovenstaande.

Sluit een Ethernet-kabel van uw router aan op de pi. Open vervolgens de opdrachtregel (het zwarte "box"-pictogram bovenaan het scherm). U moet de pi updaten via een bekabeld netwerk om verbinding te maken met een draadloos netwerk.

Klik vervolgens op het kabelpictogram bovenaan het scherm. Typ uw netwerkgegevens in waar daarom wordt gevraagd.

Typ de tekst in de volgende regel precies zoals weergegeven en druk op enter. Hiermee wordt de pi bijgewerkt. Het kan even duren. Laat het gewoon zijn ding doen.

sudo apt-get update

Typ vervolgens de code in de volgende regel. Dit zal ook enige tijd duren. Doe niets totdat het klaar is.

sudo apt-get dist-upgrade

Nu zou u in staat moeten zijn om de Ethernet-kabel los te koppelen, op het draadloze pictogram bovenaan het scherm te klikken, uw netwerkinformatie in te voeren en tenslotte draadloos verbinding te maken met uw netwerk.

Laten we nu het deel van de drone coderen dat bewegingen afhandelt.

Stap 3: Bewegingen afhandelen (Bluetooth Server)

Bewegingen afhandelen (Bluetooth Server)
Bewegingen afhandelen (Bluetooth Server)

Voor het afhandelen van bewegingen wordt de programmeertaal "Python 3" gebruikt. De berichten die de robot vertellen dat hij moet bewegen, worden via Bluetooth verzonden vanuit de app.

Eerst moet u de Bluetooth-bibliotheek installeren. Typ hiervoor de volgende opdrachten.

sudo apt-get update

sudo apt-get install bluetooth

sudo apt-get install bluez

sudo apt-get install python-bluez

Klik nu vanaf het bureaublad op het startmenupictogram, vervolgens op Programmeren en vervolgens op Python 3. Klik vervolgens op de werkbalk op Bestand, nieuw. Er zou een nieuw venster moeten verschijnen.

Kopieer de inhoud van de bijlage "bluetoothpi.rtf" naar het venster.

Klik in de werkbalk op Bestand, Opslaan als. Sla het op in de map /home/pi/Desktop/ als bewegingen.py.

Om de code nu te testen, klikt u op het Bluetooth-pictogram in de rechterbovenhoek van het scherm. Koppel de Raspberry Pi met je Android-apparaat. Download een app genaamd BlueTerm op je Android-apparaat. Typ vervolgens in de opdrachtregel de volgende vetgedrukte code. Hiermee wordt de python-code uitgevoerd.

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

De tekst "Wachten op verbindingen" zou op de pi moeten verschijnen.

Start BlueTerm en klik op het optiepictogram en vervolgens op de knop "verbindingen zoeken".

In de app zou de naam van je raspberry pi moeten verschijnen. Klik op de knop met de naam van de pi. De tekst "Geaccepteerde verbinding van" zou op de pi moeten verschijnen, gevolgd door het adres. Wat u nu in de telefoon typt, moet in de pi worden weergegeven.

Je hebt met succes je eigen Bluetooth-serveraansluiting gecodeerd!

Stap 4: De Android-app (Bluetooth-client)

De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)
De Android-app (Bluetooth-client)

Download hier Android Studio. Installeer het en volg de instructies in het installatieprogramma.

Start een nieuw project. Maak een lege activiteit met de naam MainActivity.

Kopieer de inhoud van de bijlage "Logic.txt" in het bestand "MainActivity.java" (tabblad). Hierin zit alle logica achter de app. Mogelijk moet u de naam van uw apparaat onder aan het bestand wijzigen.

Kopieer vervolgens de inhoud van het bestand "GUI" in het bestand "activity_main.xml" (tabblad). Dit bevat een zeer eenvoudige GUI voor de app.

Nu moet u de pijlknoppen (afbeeldingen) in de app importeren. Pak de bijlage Arrows.zip uit. Open aan de linkerkant van Android Studio de bestandsstructuur om app, res, minimap te zien. Kopieer de pijlafbeeldingen (PNG-bestanden), klik met de rechtermuisknop op de minimap van het bestand en plak de afbeeldingen in het bestand, waarbij de namen van de pijlen hetzelfde blijven. Het moet eruit zien als op de foto als het klaar is.

Kopieer tot slot de inhoud van het bestand "Manifest" naar uw "AndroidManifest.xml"-bestand (tabblad).

Om de app te testen, moet u deze op uw apparaat uitvoeren. Om dit te doen, moet u het apparaat in de ontwikkelaarsmodus zetten en USB-foutopsporing inschakelen. Voor de meeste apparaten moet je naar "Instellingen", "Over de telefoon" gaan, naar beneden scrollen en zeven keer op "Build-nummer" klikken totdat je het bericht "Je bent nu een ontwikkelaar!" Ga terug en je zou nu een tabblad "Opties voor ontwikkelaars" moeten zien. Klik erop en schakel USB-foutopsporing in.

Verbind uw Android-apparaat via USB met uw computer, klik op het pictogram Uitvoeren in Android Studio en selecteer uw apparaat.

Start op de pi de python-code die in stap 3 is gemaakt door het vetgedrukte commando in te voeren:

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

Klik dan op de connect-knop in de app. Wanneer verbonden, zouden er nu enkele pijlen op de app moeten verschijnen. Telkens wanneer u er op klikt, wordt de "verplaats" -status van de pi bijgewerkt.

Het is goed als de achtergrond van de app een foutmelding geeft. Dit wordt later opgelost.

Je hebt zojuist je eigen app en Bluetooth Client gemaakt.

Stap 5: De hardware aansluiten

De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten

Soldeer de verbindingen in het bovenstaande schema. Bevestig ook de cameramodule aan de pi.

Start de app en voer het bestand Movements.py uit. Als de motoren correct bewegen bij het gebruik van de app, voel je vrij om alle componenten in een definitieve schaal voor de drone te plaatsen. Mogelijk moet u de codes "HOOG" en "LAAG" wijzigen, zodat deze correct beweegt.

In de volgende stap zullen we de streamingfunctie van de drone toevoegen.

Stap 6: Streamen

Streamen
Streamen
Streamen
Streamen
Streamen
Streamen

Er zijn meerdere manieren om een video te streamen met een Pi, maar het gebruik van uv4l is verreweg de gemakkelijkste manier met vrijwel geen vertraging.

Even een kanttekening: als je je drone al in elkaar hebt gezet en deze niet kunt verbinden met je monitor en toetsenbord, moet je SSH naar je drone sturen. Download hiervoor Putty op uw computer. Open het en typ het IP-adres van je raspberry in (vind het IP-adres door het commando ifconfig te typen). Het zal u om een gebruikersnaam en wachtwoord vragen. De standaard gebruikersnaam en het wachtwoord zijn respectievelijk pi en raspberry. Wat u nu in het opdrachtvenster typt, is alsof u opdrachten rechtstreeks in de drone invoert.

uv4l instellen

Typ deze opdracht in:

sudo nano /etc/apt/sources.list

Voeg de volgende regel toe in de laatste regel van het bestand.

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

Sluit het bestand af en sla het op door op Ctrl-X te drukken en vervolgens Ja te typen.

Typ vervolgens de volgende regel en druk op enter.

sudo apt-get update

dan dit:

sudo apt-get install uv4l uv4l-raspicam

Typ de volgende opdrachten regel voor regel. Wacht tot het klaar is met wat het doet voordat je de volgende regel typt.

sudo apt-get install uv4l-raspicam-extras

sudo-service uv4l_raspicam opnieuw opstarten

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-bridge

sudo apt-get install uv4l-raspidisp-extras

Daarna hoeft u alleen maar de volgende opdracht in te voeren om te beginnen met streamen (vervang "raspberrypi" door het IP-adres/hostnaam van de raspberry in uw netwerk)

cvlc

Hierdoor wordt het streamen van video in realtime gestart op poort 8080. De stream zou nu op de achtergrond van uw app te zien moeten zijn. Om de stream in elke browser te bekijken, typt u deze URL (waarbij "raspberrypi" het IP-adres van uw drone is).

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

Gefeliciteerd, je hebt je spionagedrone voltooid.

Stap 7: Rijd

Draai de aan / uit-schakelaar om en begin met verkennen.

Als je wilt weten hoe je iets anders kunt maken, vraag het me en ik zal zien wat ik kan doen.

Als u vragen heeft, kunt u hieronder reageren en ik zal mijn best doen om ze te beantwoorden.

Bedankt voor het lezen!

Aanbevolen: