Inhoudsopgave:

Banana/Raspberry Pi + Arduino Rover met webcam - Ajarnpa
Banana/Raspberry Pi + Arduino Rover met webcam - Ajarnpa

Video: Banana/Raspberry Pi + Arduino Rover met webcam - Ajarnpa

Video: Banana/Raspberry Pi + Arduino Rover met webcam - Ajarnpa
Video: DIY Pan Tilt Camera with Raspberry Pi and Arduino 2024, Juli-
Anonim
Banana/Raspberry Pi + Arduino Rover met webcam
Banana/Raspberry Pi + Arduino Rover met webcam

Een project dat ik in mijn vrije tijd heb gedaan. Het is een full-drive vierwielige robot die wordt bestuurd via een webinterface. Als u opmerkingen of vragen heeft, neem dan gerust contact met mij op. Dit project zelf maakt gebruik van 3D-geprinte onderdelen en bepaalde stukjes code die door andere mensen zijn gemaakt. Je kunt credits vinden en de originele stukken bekijken aan het einde van Instructuble.

Zullen we beginnen?

Stap 1: Onderdelen die u nodig hebt

Onderdelen die u nodig heeft
Onderdelen die u nodig heeft
Onderdelen die u nodig heeft
Onderdelen die u nodig heeft
Onderdelen die u nodig heeft
Onderdelen die u nodig heeft

Hier is de lijst met componenten die ik heb gebruikt met de links en de alternatieven. Ik woon in Shenzhen, China en heb de onderdelen rechtstreeks op Taobao gekocht.

4-motorig robotchassis Alternatief: Elk voldoende groot chassis is voldoende. Deze heeft 4 motoren voor wat extra koppel. De motoren zijn gewone goedkope gele motoren, beoordelaar voor

L293D Arduino Motor Shield rev.1 kloon Alternatief: Beter motorschild geschikt voor meer stroom

Arduino Uno-kloonalternatief: u kunt elk ander Arduino-bord gebruiken zonder significante wijzigingen in de code.

6V 4.5Ah Pb-batterij Alternatief: Het is mogelijk om te experimenteren met kleinere LiPo-batterijen als u een lichtere robot wilt / slechts twee motoren gebruikt.

Banana Pi-alternatief: kan worden omgewisseld voor Raspberry Pi 1/2/3 of Orange Pi zonder significante codewijzigingen. Ik gebruikte Banana Pi alleen omdat ik er een had liggen.

Webcamera Alternatief: gebruik CSI-camera voor Raspberry Pi/Banana Pi/Orange Pi

Camera Pan/tilt mount met sg60 servo's Alternatief: 3D Print tilt/pan mount kan bijvoorbeeld deze gebruiken.

3D-geprinte onderdelen Alternatief: laat je fantasie en 3D-ontwerptalenten je leiden! Ook Thingverse:)

Stap 2: Verbind de motoren met L293D Motor Shield

Verbind de motoren met L293D Motor Shield
Verbind de motoren met L293D Motor Shield
Verbind de motoren met L293D Motor Shield
Verbind de motoren met L293D Motor Shield

Sluit elke motor aan met motorafschermingsschroefklemmen. Hier is het bedradingsschema. Als u slechts twee motoren heeft en de code niet wilt wijzigen, bevestig deze dan aan MOTOR 1 en MOTOR 3.

OPMERKING: voor degenen die verschillende motoren met een hogere stroomsterkte gebruiken, hebt u mogelijk een andere motordriver nodig. Als alternatief, een leuke kleine hack die ik onlangs heb geleerd, is dat je nog twee L293D-stuurprogramma's kunt meeliften bovenop de bestaande (het is de middelste chip op het bord)!

Stap 3: Arduino Uno, Motor Shield-montage

Arduino Uno, Motor Shield-montage
Arduino Uno, Motor Shield-montage

Doe Arduino Uno in de koffer en installeer Motor Shield erop. Er is maar één manier om dat te doen, als het niet past, doe je wat!

Arduino Uno Snug Case

Dit is het geval dat ik heb gebruikt, model gemaakt door Esquilo.

Stap 4: Sluit de stroom aan op Banana Pi en Arduino

Sluit de stroom aan op Banana Pi en Arduino
Sluit de stroom aan op Banana Pi en Arduino

Ik heb een SATA-interface gebruikt om Banana Pi (6v) van stroom te voorzien. Als je hetzelfde bord hebt, kun je dat ook doen, zorg er gewoon voor dat de spanning 5v-6v is. Het is een niet-gereguleerde voeding, dus ik neem aan dat er een beveiligingscircuit is voor SATA-voeding op Banana Pi M1.

LET OP: Voor Raspberry Pi heb je een paar opties: een veilige (met USB-connector om 5v te leveren) en een niet zo veilige (met GPIO-pinnen). Hier is de link om te lezen over het aansluiten van stroom op Raspberry Pi GPIO-pinnen. Zorg ervoor dat je

1) Gebruik gereguleerde voeding

2) Stel de spanning in op 5v

Er is geen beveiligingscircuit voor GPIO-pinnen! Doe je iets fout, dan is de kans groot dat je de elektronica op het bord beschadigt.

Voor Arduino sluit u gewoon de stroom aan op de ingangsschroefklemmen op het motorschild. Het kan tot 12v duren.

Stap 5: Plaats Banana Pi in de 3D-geprinte behuizing, monteer de rest van de Rover

Plaats Banana Pi in de 3D-geprinte behuizing, monteer de rest van de Rover
Plaats Banana Pi in de 3D-geprinte behuizing, monteer de rest van de Rover
Zet Banana Pi in de 3D-geprinte behuizing, monteer de rest van de Rover
Zet Banana Pi in de 3D-geprinte behuizing, monteer de rest van de Rover

Ik gebruikte deze hoes voor Banana Pi van thingverse, gemaakt door GermanRobotics. De hoes ervoor heb ik zelf gemaakt.

Plaats Banana Pi in de behuizing, bedek deze met het deksel, gebruik een lijmpistool om Arduino Uno bovenop de Banana Pi-behuizing te bevestigen.

Dek de batterij af met dit deksel en bevestig de webcam pan/tilt mount aan de bovenkant.

Als je Banana Pi gebruikt, heb je een USB-hub nodig, omdat deze maar twee USB-slots heeft (Raspberry 2, 3 heeft er vier). Puur uit esthetische overwegingen besloot ik een OTG 1-2 USB-hub te gebruiken en de draden in de Banana Pi-behuizing te verbergen.

Stap 6: Hardware montage klaar

Hardwaremontage klaar!
Hardwaremontage klaar!

Laten we snel samenvatten wat we tot nu toe hebben gedaan.

We hebben het robotplatform geassembleerd, de voeding aangesloten op Banana Pi, Arduino Uno, motoren en servo's aangesloten op de motordriver en een USB-hub gebruikt om de USB-camera en Arduino Uno op de Banana Pi aan te sluiten. Nu kunt u de hardware testen en problemen oplossen. Bedradingsschema met alle verbindingen is in beeld voor deze stap.

Stap 7: Systeemconfiguratie

Systeem configuratie
Systeem configuratie

Ik gebruikte Raspbian Lite-afbeelding voor systeem op mijn pi. Lite-versie heeft geen GUI en wordt geleverd met alleen basispakketten per geïnstalleerd. Maar het neemt veel minder ruimte in beslag, wat betekent dat we een kleinere SD-kaart kunnen gebruiken. Als u zich niet op uw gemak voelt zonder GUI, kunt u ook de volledige afbeelding installeren.

Verbind uw pi met internet met de Ethernet-kabel. Nadat het is opgestart, is de eerste stap om het te verbinden met wifi.

Voer de volgende opdracht uit in de terminal:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Bewerk het configuratiebestand met uw WiFi-inloggegevens

netwerk={ ssid="testing" psk="testingPassword" }

Start de pi opnieuw op. Voila! Je bent nu verbonden met wifi.

Vervolgens moeten we pip (Python Package Manager) installeren

sudo apt-get install python-setuptools

sudo easy_install pip

Nu gebruiken we pip om Flask te installeren voor het uitvoeren van een webserver en pyserial voor pi om via seriële verbinding met Arduino te communiceren.

sudo pip install flask

sudo pip install pyserial

Het laatste is om het bewegingspakket te installeren en configureren, dat we gebruiken voor het streamen van video vanaf onze webcam.

Volg deze geweldige instructable om dit te doen.

Nu zijn we klaar om te rommelen!

Stap 8: De software opstarten

De software opstarten
De software opstarten
De software opstarten
De software opstarten

Weet je nog hoe ik zei dat we klaar zijn om te rommelen?

Oké, nog een beetje schuren en dan kunnen we beginnen te rommelen:)

Laten we alle benodigde bestanden downloaden van mijn github-repository.

git clone

Upload rover.ino naar Arduino Uno. Als u hardwarewijzigingen hebt aangebracht (bijvoorbeeld met een ander motorscherm), moet u de schets wijzigen.

Als u een webcam gebruikt, wijzigt u de regel onderaan het bestand index.html in de sjabloonmap. Wijzig de URL in de IFRAME-regel zodat deze overeenkomt met de src-URL voor uw videostream.

Nu kunt u de webserver starten. Voer de volgende opdracht uit:

sudo python pi_rover.py

Als je mijn build van heel dichtbij hebt gevolgd en Arduino hebt aangesloten, zie je het volgende (eerste afbeelding) in de terminal.

Typ het ip-adres van je robot in de webbrowser (in mijn geval was het bijvoorbeeld 192.168.1.104), je kunt het ip-adres controleren met de opdracht $ifconfig op Linux.

/doe de feestelijke dans hier!/

Als je vragen hebt, stel ze dan gerust in de comments. Deze tutorial is bedoeld voor beginners, maar niet voor beginners, daarom was ik vrij kort over de dingen waar je gewoon op kunt googlen (bijvoorbeeld systeemafbeelding op SD-kaart branden, Arduino-schets uploaden, enz.).

Stap 9: Tegoeden

Het idee en de webservercode komen van deze geweldige instructable van jscottb. Ik heb het aangepast om meer algemene hardware te gebruiken, zoals Arduino Uno.

De 3D geprinte onderdelen van Thingverse.

www.thingiverse.com/thing:994827

www.thingiverse.com/thing:2816536/files

www.thingiverse.com/thing:661220

Aanbevolen: