Inhoudsopgave:

Raspberry Pi 3 FPV Lego Tank - Ajarnpa
Raspberry Pi 3 FPV Lego Tank - Ajarnpa

Video: Raspberry Pi 3 FPV Lego Tank - Ajarnpa

Video: Raspberry Pi 3 FPV Lego Tank - Ajarnpa
Video: Raspberry Pi FPV Lego tank demo 2024, Juli-
Anonim
Raspberry Pi 3 FPV Lego-tank
Raspberry Pi 3 FPV Lego-tank

Lego is geweldig om kinderen te leren hoe dingen werken en ze tegelijkertijd plezier te laten hebben. Ik weet dat ik het als kind altijd leuk vond om met lego te 'spelen'. Deze instructable beschrijft hoe ik een FPV-tank (First Person View) bouwde uit lego en een Raspberry Pi 3 (Raspi 3). ik heb geprobeerd het zo eenvoudig mogelijk te houden, alleen de stap waarbij je de motoren aanpast om met lego te werken, vereist gereedschap en een beetje vaardigheid.

De tank gebruikt in feite twee motoren, dus als je geen tank wilt, kun je een robot van het Romba-type maken, de constructie zal anders zijn, maar de bedrading en programma's zullen precies hetzelfde zijn.

### Dit project is eigenlijk een versie 1, dus als je het wilt verbeteren (waar genoeg ruimte voor is), laat dan een reactie achter. Ook zal alle code beschikbaar zijn, op mijn Github-pagina staan links in de stappen

Dingen die je nodig hebt:

  • Wat Lego, ik gebruikte een Lego Technic Arctic Truck die ik had liggen. Gebruik echter je fantasie, deze set had tracks en alles om die te laten werken, dus het was goed voor dit project.
  • Een Raspberry Pi, ik gebruikte een Raspberry Pi 3 omdat ik dat had, als je een ander model hebt, kun je het misschien laten werken, maar de GPIO-pinnen zullen verschillen.
  • Een micro SD-kaart met Raspian geïnstalleerd, voor de Raspi 3.
  • Een Pi-camera, Adafruit verkoopt een paar en verschillende lintkabels van verschillende lengtes. Een gekochte mijn van Aliexpress, het heeft een fisheye-lens en was goedkoop. Je kunt misschien een webcam gebruiken, maar een Pi-camera werkt direct uit de doos.
  • Een USB-powerbank om de Raspi 3 van stroom te voorzien, ik denk dat de mijne $ 8 kostte, zijn 2000 mAh, dus de Raspi 3 werkt een tijdje.
  • Een batterij om de motoren van stroom te voorzien, ik heb een batterij gebruikt die ik uit een goedkope RC-auto heb gehaald, hij is 7,2 volt, 500 mAh en oplaadbaar, dus hij werkt redelijk goed. Een 9V batterij zou goed zijn, maar dan heb je ook een connector nodig.
  • Startkabels, om GPIO-pinnen met elkaar te verbinden, minimaal 5 vrouwelijk naar vrouwelijk.
  • L298N Motor Driver Board, deze zijn vrij goedkoop en stellen je in staat om motoren afzonderlijk te besturen. Deze zijn ook vrij standaard voor dit soort toepassingen.
  • 2 x DC-versnellingsbakmotor, deze van Adafruit zijn goed, exact dezelfde kan ook bij Aliexpress worden gekocht

Diversen

  • Dubbelzijdige schuimtape
  • draad
  • Krimpkous
  • plakband
  • elastiekjes
  • micro-USB-kabel

Als je de DC-reductormotoren gaat aanpassen zoals ik deed, heb je nodig:

  • stanleymes
  • dremel met cirkelzaagblad
  • mini-bestanden
  • 5 minuten epoxy

Je hebt ook je eigen pc/laptop nodig om de Raspi 3 te bedienen en te programmeren.

Stap 1: Bouw de tank

Bouw de tank
Bouw de tank
Bouw de tank
Bouw de tank
Bouw de tank
Bouw de tank

Dit zijn dus niet echt instructies, want deze stap zou echt je eigen ontwerp moeten zijn. Ik zal het hebben over enkele dingen waarmee ik rekening moest houden bij het bouwen van dit, maar het echte plezier ligt in het zelf ontdekken (net als bij echte Lego). Gebruik de foto's als ze nuttig zijn, het kostte me eeuwen om dit ontwerp te ontwikkelen, uiteindelijk was de eenvoudige weg de beste.

  1. Bouw eerst de achterassen

    1. en zorg ervoor dat u voldoende ruimte overlaat voor de motoren en maak ze breed genoeg zodat uw componenten erin passen. Ik wilde dat de mijne vrij breed zou zijn, omdat ik wilde dat alles in de assen zat, hierdoor kon de tank vrij laag zijn en onder dingen passen en de kat achtervolgen.
    2. De wielen op de rails hebben hier een gat waar een Lego-dwarsas in past, dus houd er rekening mee dat dit is waar je motoren gaan monteren.
    3. Je hebt voldoende vrije ruimte nodig voor de baan aan de voor- en achterkant. Je kunt op foto 2 zien dat de "L" stukken niet semetrisch zijn, dit is om de baanruimte mogelijk te maken. Ik had ze oorspronkelijk semetrisch, maar de baan bleef wrijven en liep op een gegeven moment vast en brak de motoradapter.
  2. Zodra je de assen hebt gebouwd, kun je ze aansluiten

    1. met regelmatige tussenpozen lange bits met kruissteunen. Zorg ervoor dat u de dwarssteunen zo uit elkaar plaatst dat componenten ertussen passen, dit helpt om een laag profiel te behouden.
    2. de lengte wordt bepaald door hoeveel track je hebt. Deze track heeft geen rek, dus een beetje speling is nodig. Als je een rubberen rupsband hebt, kun je deze strakker maken. Ook een loopwiel is een leuk idee maar over het algemeen niet nodig.
    3. Deze stap was onbeduidend ongecompliceerd en omvat gewoon een beetje vallen en opstaan.
  3. De motoren zijn in wezen vastgeplakt met dubbelzijdige schuimtape, dus zorg voor een groot oppervlak waarop ze kunnen worden geplakt.
  4. De camerabevestiging die ik heb gemaakt is vrij rommel, je zou zeker moeten proberen om er zelf een te maken. Ik hou van laag omdat het lijkt alsof je snel reist op de camera. Dit zou een coole plek zijn om te upgraden met een of twee servo's om de camera beweegbaar te maken.

Hopelijk zijn deze opmerkingen nuttig. Ik heb dit ding gebouwd voordat ik de instructable schreef en ik aarzel een beetje om het uit elkaar te halen nu het aan de gang is. Ik geloof echt dat er een beter ontwerp kan worden gemaakt, dus ik denk dat je eigen ontwikkeling het beste is. Laat een reactie achter als je wilt dat ik er een volledige gids van maak, als er genoeg vraag is, zal ik het doen.

Stap 2: DC-versnellingsbakmotor naar Lego-adapter

DC-versnellingsbakmotor naar Lego-adapter
DC-versnellingsbakmotor naar Lego-adapter
DC-versnellingsbakmotor naar Lego-adapter
DC-versnellingsbakmotor naar Lego-adapter
DC-versnellingsbakmotor naar Lego-adapter
DC-versnellingsbakmotor naar Lego-adapter

Nogmaals, ik heb dit gemaakt voordat ik schreef en heb geen foto's gemaakt. Ik denk dat er een heleboel verschillende tutorials zijn die dit doen. Adafruit verkoopt eigenlijk een adapter, dit is de beste manier, en je hoeft je motorsteunen niet te vernietigen. Ik ben echter in NZ, dus Adafruit is niet beschikbaar, maar DIY wel:-). Dit is wat ik deed (sorry voor de slechte diagrammen):

  1. Zet al je gereedschap klaar, we gaan plastic snijden, dus dit zal niet zo moeilijk zijn. Ik heb een werkplaatsbril gebruikt omdat ik persoonlijk een hekel heb aan kleine stukjes plastic over mijn oogbollen. Ik gebruikte ook een van die groene snijplanken, zodat ik mijn tafel niet verprutste.
  2. Het diagram toont dus een boven- en zijaanzicht. Kortom, het grijs is het kleine witte deel op de DC-versnellingsbakmotor en het rood is waar we snijden. Het rood op het bovenaanzicht zou eigenlijk een dwarsdoorsnede moeten zijn voor een Lego-kruisas. We gaan dat materiaal verwijderen zodat de as er goed in past. Probeer dit zo dicht mogelijk bij het midden en bijna helemaal naar beneden te knippen. Ik begon met eerst grof te zagen met het cirkelzaagbit op mijn dremel, daarna begon ik met het scheren van bits met een stanleymes totdat ik een perfecte pasvorm had.
  3. Als je dat stukje eenmaal hebt gesneden en de as min of meer recht past (het zou eruit moeten zien als een rare ingevouwen halve vork), kun je de Lego-kruisas erin epoxyeren. Voordat je epoxy aanbrengt, moet je plakband over de gele behuizing aanbrengen van de motor, zodat u de as niet per ongeluk aan de behuizing plakt. Meng de 5 minuten epoxy goed en breng een dikke laag aan over het witte bit en de kruisas, we zoeken een 1-2 mm dikke laag. 5 minuten epoxy wordt vrij snel plakkerig en onbruikbaar, dus werk snel hier.
  4. Als je eenmaal een desent coat op hebt en de epoxy niet loopt, zou je klaar moeten zijn. Het loopt een beetje, dus wees voorzichtig. Als het eenmaal is ingesteld op een rubberachtige consistentie, kun je overtollige epoxy gemakkelijk wegsnijden, zo kreeg ik een mooi plat uiteinde op de mijne.
  5. Laat het een nacht drogen en je zou tegen de ochtend een Lego DC-versnellingsbakmotor moeten hebben

Stap 3: Bedrading Het Up

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

De bedrading voor dit project is vrij eenvoudig. We zullen de 4 vrouwelijke naar vrouwelijke startkabels gebruiken om onze GPIO-pinnen aan te sluiten op de L298N-motorcontroller en een mannelijke op vrouwelijke startkabel om de aarde van de Raspi 3 te verbinden met de aarde van de L298N-motorcontroller. We zullen ook wat draad gebruiken om de motoren aan te sluiten op de L298N-motorcontroller.

Ik kies ervoor om deze combinatie van pinnen op de Raspi te gebruiken omdat ze samen geclusterd zijn. Voel je vrij om elke set GPIO-pinnen en GND te gebruiken. Vergeet niet om het in de code te wijzigen.

U kunt het bedradingsschema gebruiken of de onderstaande stappen volgen:

Raspi 3 L298N

GND (pin 14) GND

GPIO27 (pin 13) IN1

GPIO22 (pin 15) IN2

GPIO23 (pin 16) IN3

GPIO24 (pin 18) IN4

Voor de motoren en de manier waarop ze zijn gemonteerd heb ik ze op deze manier aangesloten.

Uit2, Uit3 negatief

Uit1, Uit4 positief

In wezen negatief was naar achteren en positief was naar voren. Als je ze andersom krijgt, rijdt de tank gewoon in de tegenovergestelde richting wat eenvoudig softwarematig op te lossen is.

Stap 4: De programmering

Dus voor deze stap moeten we een paar dingen instellen als je dat nog niet hebt gedaan.

  • Raspian
  • Python 2 of 3
  • Git
  • MJPG-Streamer

Raspian installeren

Ten eerste moeten we Raspian op een micro SD-kaart hebben, dus een geformatteerde SD van minimaal 8GB klaar hebben (Je kunt NOOBS lite ook installeren als je alleen een 4GB-kaart hebt).

Om Raspian te installeren, raad ik aan om NOOBS te gebruiken. De officiële link staat hier. Download het zipbestand naar uw pc en pak de bestanden uit op de SD-kaart. Zorg ervoor dat de bestanden en mappen zich daar bevinden en niet in een noobs-map.

Zodra je dit hebt gedaan, plug je de SD-kaart in de Raspi 3, sluit je een scherm aan (een tv met HDMI werkt prima als je geen monitor hebt) en een toetsenbord en muis.

Je zou het installatiescherm moeten zien laden, verbinding maken met wifi (wifi is nodig om dit project te laten werken) en installeren, ik gebruik gewoon de standaardinstellingen omdat ze goed werken.

Configureren voor headless-modus

Dus zodra Raspian is geïnstalleerd en u bent ingelogd op de Raspi 3, kunt u beginnen met het configureren van de Raspi 3 om in headless-modus te werken (d.w.z. gebruik SSH in plaats van een scherm en toetsenbord). Gewoon een opmerking die je nodig hebt om sudo te gebruiken, dus zorg ervoor dat je het root-wachtwoord weet.

Open een terminal en typ 'sudo raspi-config', je zou een blauw en grijs scherm moeten hebben zoals in de afbeeldingen. Ga naar 'Interfacing options', druk op enter, ga dan naar 'P2 SSH' druk op enter en enter nogmaals voor 'yes', nogmaals voor 'ok'.

Ga nu terug naar 'interfacing options' en schakel de camera in.

Terug in het menu druk je op rechts en enter om 'voltooien' te selecteren.

Vervolgens moeten we ons IP-adres vinden, dit kunt u doen door 'ifconfig' in de terminal te typen. Zoek het blok dat begint met wlan0 (meestal de laatste) en noteer je IP-adres. Het zou op de tweede regel moeten staan en er ongeveer zo uit moeten zien 192.168.1. XX als je je wifi thuis gebruikt.

Geweldig dat is het einde van de configuratie

Extra software installeren

Dus om de scripts die ik heb uit te voeren, moet python 2 of 3 zijn geïnstalleerd. Als je python wilt leren, raad ik aan om python 3 te leren, de verschillen zijn klein, maar python 3 wordt nu op grotere schaal gebruikt. Het zou voorgeïnstalleerd moeten zijn met Raspian, maar we moeten het gewoon dubbel controleren.

Typ 'python --version', je zou een uitvoer moeten krijgen zoals 'Python 2.7.13', wat betekent dat je python 2 hebt geïnstalleerd. Om te controleren of je python 3 hebt, typ je gewoon 'python3 --version' en je zou een vergelijkbare uitvoer moeten krijgen. Als je python 2 of 3 niet hebt, kun je respectievelijk 'sudo apt-get install python' of 'sudo apt-get install python3' typen.

Je hebt ook Git nodig om de code te krijgen, nogmaals, deze moet vooraf zijn geïnstalleerd. Typ 'git --version' om te controleren en gebruik 'sudo apt-get install git' als je het niet hebt.

MJPG-Streamer installeren

MJPG-Streamer is een van de manieren waarop ik toegang kreeg tot de Picamera. Hiermee kunt u via een browser toegang krijgen tot de camera en het beeld manipuleren. Het is waarschijnlijk de leukere en gemakkelijkere manier om de camera te gebruiken als je niet vertrouwd bent met code.

  1. We gaan opnieuw Git gebruiken. Typ 'git clone https://github.com/jacksonliam/mjpg-streamer.git' in de Raspi 3-terminal. De software wordt gedownload, het duurt niet lang.
  2. Waarschijnlijk is het op dit moment het beste om naar het bestand 'README.md' te kijken en de installatie-instructies te volgen. Bij mij werkten ze naadloos. Als je vragen hebt, laat ze dan achter in de reacties en ik zal proberen te helpen

Eenmaal geïnstalleerd, kunt u het uitvoeren. Hoe ik dat doe, zal ik hieronder bespreken.

Alles op een rijtje

Geweldig, nu zouden we klaar moeten zijn om te gaan. Zorg ervoor dat uw Raspi 3 is ingeschakeld. Open een terminal op je pc/laptop (ik neem aan dat je linux of Mac gebruikt, als je Windows gebruikt, moet je putty downloaden. Er zijn tal van tutorials online over hoe je dit kunt gebruiken, maak je geen zorgen, het is gemakkelijk) en typ 'ssh [email protected]. XX (ervan uitgaande dat je de standaard gebruikersnaam niet hebt gewijzigd) of wat je IP-adres ook was dat we eerder hebben gevonden. Typ uw wachtwoord in (dit mag zeker niet de standaardinstelling zijn). Mooi, nu zit je via je pc/laptop in een terminalsessie op de Raspi 3.

Dus, in het terminaltype 'git clone https://github.com/astrobenhart/Raspi-3-FPV-Lego-T… Dit zou maar een paar seconden moeten duren omdat de bestanden erg klein zijn. U kunt dan naar de map navigeren met 'cd Raspi-3-FPV-Lego-Tank', typ nu 'ls' en zorg ervoor dat u deze 5 bestanden ziet: 'demo.py', 'drive.py', 'Picamera_tank. py, 'finished.jpg' en 'README.md'. Zorg ervoor dat u de readme bekijkt voor eventuele updates.

demo.py

Dit py-script is geweldig om te testen of je bedrading werkt. Het gaat gewoon door verschillende combinaties van het heen en weer rijden van de motoren.

gebruik 'python demo.py' om uit te voeren. Het duurt een halve minuut of zo om te voltooien.

drive.py

Dit is het py-script dat u uitvoert om de tank te besturen. Het stelt de GPIO-pintoewijzing in en creëert defs voor verplaatsen. Het legt ook toetsaanslagen vast om de tank te besturen.

Gebruik 'python drive.py' om uit te voeren. Geef het even, je terminal zou leeg moeten zijn.

gebruik 'w, a, s, d' om te bewegen en de spatiebalk om te stoppen. Als u klaar bent om het programma af te sluiten, drukt u op 'n'.

Picamera_tank.py

Dit is mijn versie van een streamer voor de camera. Dit werkt alleen met python 3 (d.w.z. gebruik 'python3 Picamera_tank.py' om te draaien). Dit kan in een tweede terminalvenster worden uitgevoerd of u kunt op ctrl-z drukken en bg typen om het op de achtergrond op dezelfde terminal uit te voeren. Persoonlijk gebruik ik graag een aparte terminal.

U hoeft niets extra's te installeren, maar als u pip. Als je problemen tegenkomt, laat dan een reactie achter.

Zodra dit op de Raspi 3 draait, logt u in op de browser van uw pc/laptop en gaat u naar 192.168.1. XX:8000 (het IP-adres dat we eerder hebben gevonden). U zou de camera-uitvoer moeten zien. Als de afbeelding moet worden geroteerd, moet u het py-script bewerken. Onderaan staat een opmerking, vul hieronder de graden van rotatie in die je nodig hebt. Voor mij was het 180 omdat mijn camera ondersteboven staat.

Om MJPG-Streamer uit te voeren

Om MJPG-Streamer uit te voeren, navigeer ik naar 'mjpg-streamer/mjpg-streamer-experimental' en voer ik './mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so -hf"' uit.

Zodra dat actief is, gaat u naar 192.168.1. XX:8080 (het IP-adres dat we eerder hebben gevonden) en klikt u op streaming. Speel wat met de andere opties, ze kunnen nuttig voor je zijn.

En dat is het. Je zou nu in staat moeten zijn om met je eigen FPV-tank rond te rijden waar je wifi kunt krijgen. Veel plezier.

Stap 5: Afgewerkt product

En hier is een video waarin het allemaal werkt.

Gewoon een opmerking dat ik de Raspi 3 op mijn laptop heb aangesloten om hem in de video van stroom te voorzien, aangezien de powerbank tijdens sommige tests opraakte. Het duurde bijna een uur waar ik best blij mee was.

Laat alsjeblieft opmerkingen achter als je die hebt en ik hoop dat je geniet van het maken van deze Raspberry Pi 3 FPV Lego Tank als je het probeert.

Bedankt, Ben

Aanbevolen: