Inhoudsopgave:
- Stap 1: Onderdelen die u nodig hebt
- Stap 2: Verbind de motoren met L293D Motor Shield
- Stap 3: Arduino Uno, Motor Shield-montage
- Stap 4: Sluit de stroom aan op Banana Pi en Arduino
- Stap 5: Plaats Banana Pi in de 3D-geprinte behuizing, monteer de rest van de Rover
- Stap 6: Hardware montage klaar
- Stap 7: Systeemconfiguratie
- Stap 8: De software opstarten
- Stap 9: Tegoeden
Video: Banana/Raspberry Pi + Arduino Rover met webcam - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
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
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
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
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
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
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
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
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
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:
DIY Ambilight met Raspberry Pi en GEEN Arduino! Werkt op elke HDMI-bron: 17 stappen (met afbeeldingen)
DIY Ambilight met Raspberry Pi en GEEN Arduino! Werkt op elke HDMI-bron.: Ik heb een vrij basaal begrip van elektronica, daarom ben ik supertrots op mijn doe-het-zelf Ambilight-opstelling in een eenvoudige houten behuizing met de mogelijkheid om de lichten aan en uit te zetten wanneer en wanneer ik wil. Voor wie niet weet wat een Ambilight is;
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Wi-fi-gestuurde FPV Rover-robot (met Arduino, ESP8266 en stappenmotoren): 11 stappen (met afbeeldingen)
Wi-fi-gestuurde FPV Rover-robot (met Arduino, ESP8266 en stappenmotoren): deze instructable laat zien hoe je een op afstand bestuurbare tweewielige robotrover via een wifi-netwerk kunt ontwerpen, met behulp van een Arduino Uno die is aangesloten op een ESP8266 wifi-module en twee stappenmotoren. De robot is te besturen vanaf een gewone internetbrows