Innehållsförteckning:

Raspberry Pi 3 FPV Lego Tank: 5 steg (med bilder)
Raspberry Pi 3 FPV Lego Tank: 5 steg (med bilder)

Video: Raspberry Pi 3 FPV Lego Tank: 5 steg (med bilder)

Video: Raspberry Pi 3 FPV Lego Tank: 5 steg (med bilder)
Video: Raspberry Pi FPV Lego tank demo 2024, Juli
Anonim
Raspberry Pi 3 FPV Lego Tank
Raspberry Pi 3 FPV Lego Tank

Lego är bra för att lära barn om hur saker fungerar samtidigt som de låter dem ha kul samtidigt. Jag vet att jag alltid tyckte om att "leka" med lego när jag var liten. Denna instruerbara beskriver hur jag byggde en FPV (First Person View) tank av lego och en Raspberry Pi 3 (Raspi 3). Jag försökte hålla det så enkelt som möjligt, bara steget där du anpassar motorerna för att arbeta med lego kräver verktyg och lite skicklighet.

Tanken använder i princip två motorer, så om du inte vill ha en tank kan du göra en robot av Romba -typ, byggnaden blir annorlunda men kablarna och programmen kommer att vara exakt desamma.

### Detta projekt är i princip en version 1, så om du vill förbättra det (som det finns gott om plats att göra) lämna en kommentar. Alla koder kommer också att vara tillgängliga, på min Github -sida finns länkar i stegen

Saker du behöver:

  • Någon Lego, jag använde en Lego Technic Arctic Truck som jag hade liggande. Använd din fantasi, men den här uppsättningen hade spår och allt för att få dem att fungera så det var bra för det här projektet.
  • En Raspberry Pi, jag använde en Raspberry Pi 3 eftersom det var vad jag hade, om du har en annan modell kan du kanske få det att fungera men GPIO -stiften kommer att skilja sig åt.
  • Ett micro SD -kort med Raspian installerat för Raspi 3.
  • En Pi -kamera, Adafruit säljer några såväl som olika bandkablar i olika längder. En köpt gruva från Aliexpress, den har en fisheye -lins och var billig. Du kanske kan använda en webbkamera, men en Pi -kamera fungerar ur lådan.
  • En USB Power Bank för att driva Raspi 3, jag tror att min kostade $ 8, dess 2000mAh så kör Raspi 3 ett tag.
  • Ett batteri för att driva motorerna, jag använde ett batteri jag drog ur en billig RC -bil, den är 7,2 volt, 500 mah och laddningsbar så det fungerar ganska bra. Ett 9V batteri skulle vara bra men du behöver då också en kontakt.
  • Bygelkablar, för att ansluta GPIO -stift tillsammans, minst 5 hona till hona.
  • L298N Motor Driver Board, dessa är ganska billiga och låter dig styra till motorer separat. Dessa är också ganska standard för den här typen av applikationer.
  • 2 x DC -växellådsmotor, dessa från Adafruit är bra, exakt samma kan köpas från Aliexpress också

Diverse

  • Dubbelsidig skumtejp
  • tråd
  • värmekrympning
  • tejp
  • gummiband
  • mikro -USB -kabel

Om du ska anpassa DC -växellådsmotorerna som jag gjorde behöver du:

  • kartongkniv
  • dremel med cirkelsågblad
  • minifiler
  • 5 minuter epoxi

Du behöver också din egen dator/bärbar dator för att styra och programmera Raspi 3.

Steg 1: Bygg tanken

Bygg tanken
Bygg tanken
Bygg tanken
Bygg tanken
Bygg tanken
Bygg tanken

Så det här är inte riktigt instruktioner eftersom det här steget verkligen borde vara din egen design. Jag kommer att prata om några av de saker som jag var tvungen att tänka på när jag byggde det här, men det riktigt roliga ligger i att ta reda på det själv (ungefär som Lego). Använd bilderna om de är hjälpsamma, det tog mig evigheter att utveckla denna design, i slutändan var den enkla vägen den bästa.

  1. Bygg först bakaxlarna
    1. och se till att lämna tillräckligt med utrymme för motorerna och gör dem tillräckligt breda för att dina komponenter ska passa inuti. Jag ville att min skulle vara ganska bred eftersom jag ville att allt skulle sitta inuti axlarna, detta gjorde att tanken kunde vara ganska låg under saker och jaga katten.
    2. Hjulen på spåren här har ett hål som passar en Lego -tväraxel, så tänk på att det är här dina motorer kommer att montera.
    3. Du behöver tillräckligt med utrymme för banan bak och fram. Du kan märka på bild 2 att "L" peices inte är semetriska, detta är för att tillåta spårrummet. Jag hade dem ursprungligen semetriska men spåret fortsatte att gnugga och fastnade vid ett tillfälle och krossade motoradaptern.
  2. När du har byggt axlarna kan du ansluta dem

    1. med långa bitar med korsstöd med jämna mellanrum. Se till att du placerar korsstödet så att komponenter passar mellan dem, det hjälper till att hålla en låg profil.
    2. längden bestäms av hur mycket spår du har. Det här spåret har ingen stretch så det behövs lite slack. Om du har ett gummiband kan du göra det snävare. Också ett löphjul är en bra idé men totalt sett behövs det inte.
    3. Det här steget var smått rakt fram och innebär bara lite försök och fel.
  3. Motorerna fastnar i huvudsak med dubbelsidig skumtejp, så ge en stor yta för att de ska fastna på.
  4. Kamerafästet jag gjorde är ganska skräp, du borde definitivt försöka göra ditt eget. Jag gillar det lågt eftersom det ser ut som att du reser snabbt med kameran. Detta skulle vara en cool plats att uppgradera med en servo eller två för att göra kameran rörlig.

Förhoppningsvis är dessa anteckningar till hjälp. Jag byggde det här innan jag skrev det instruerbara och är lite tveksam till att dra isär det nu när det går. Jag tror verkligen att en bättre design kan göras så jag tror att din egen utveckling skulle vara bäst. Lämna en kommentar om du vill att jag ska göra det till en fullständig guide, om det finns tillräckligt med efterfrågan gör jag det.

Steg 2: DC -växellådsmotor till Lego -adapter

DC -växellådsmotor till Lego -adapter
DC -växellådsmotor till Lego -adapter
DC -växellådsmotor till Lego -adapter
DC -växellådsmotor till Lego -adapter
DC -växellådsmotor till Lego -adapter
DC -växellådsmotor till Lego -adapter

Återigen gjorde jag detta innan jag skrev och tog inga foton. Jag tror att det finns ett gäng olika handledning där ute som gör detta. Adafruit säljer faktiskt en adapter, det här är det bästa sättet, plus att du inte behöver förstöra dina motorfästen. Jag är i NZ dock så Adafruit är inte tillgänglig, men DIY är:-). Detta är vad jag gjorde (förlåt för de dåliga diagrammen):

  1. Gör alla dina verktyg redo, vi kommer att klippa plast, så det här kommer inte att vara svårt. Jag använde ett par verkstadsglasögon eftersom jag personligen hatar små skivor av plast över mina ögonbollar. Jag använde också en av de gröna skärbrädorna så jag förstörde inte mitt bord.
  2. Så diagrammet visar en vy uppifrån och från sidan. I grund och botten är det grå den lilla vita delen på DC -växellådsmotorn och den röda är där vi skär. Det röda uppifrån är egentligen tänkt att vara ett tvärsnitt för en Lego -tväraxel. Vi ska ta bort det materialet så att axeln sitter snyggt inuti. Försök att klippa den så nära mitten som möjligt och nästan ända ner till botten. Jag började med att grovt skära med cirkelsågbiten på min dremel, sedan började jag raka bitar med en lådskärare tills jag fick perfekt passform.
  3. När du har klippt biten och axeln sitter mer eller mindre rak (den ska se ut som en konstig hopfälld halvgaffel) kan du epoxa Lego -tväraxeln i. Innan du applicerar någon epoxi, se till att du applicerar maskeringstejp över det gula fodralet på motorn så att du inte oavsiktligt fastnar axeln i höljet. Blanda den 5 minuter långa epoxin väl och applicera ett tjockt lager över den vita biten och tväraxeln, vi letar efter ett 1-2 mm tjockt lager. 5 minuters epoxi blir klibbigt och oanvändbart ganska snabbt så arbeta snabbt här.
  4. När du har tagit på dig en nedstrykningsrock och epoxyn inte är igång bör du vara klar. Det går lite så var bara försiktig. När den väl är inställd på en gummiliknande konsistens kan du enkelt klippa bort eventuell överflödig epoxi, så fick jag en fin platt ände på min.
  5. Låt det torka över natten och du bör ha en Lego DC -växellådsmotor till morgonen

Steg 3: Anslut det

Koppla upp det
Koppla upp det
Koppla upp det
Koppla upp det
Koppla upp det
Koppla upp det

Ledningarna för detta projekt är ganska enkla. Vi kommer att använda de fyra kvinnliga till kvinnliga bygelkablarna för att ansluta våra GPIO -stift till motorstyrenheten L298N och en hane till honkabel för att ansluta jordningen på Raspi 3 till marken på L298N -motorstyrenheten. Vi kommer också att använda lite tråd för att ansluta motorerna till motorstyrenheten L298N.

Jag väljer att använda denna kombination av stift på Raspi eftersom de är sammanslagna. Använd dock gärna en uppsättning GPIO -stift och GND. Kom bara ihåg att ändra det i koden.

Du kan använda kopplingsschemat eller följa stegen nedan:

Raspi 3 L298N

GND (stift 14) GND

GPIO27 (stift 13) IN1

GPIO22 (stift 15) IN2

GPIO23 (stift 16) IN3

GPIO24 (stift 18) IN4

För motorerna och hur de är monterade kopplade jag upp dem på detta sätt.

Out2, Out3 negativ

Out1, Out4 positiv

I huvudsak negativt var bakåt och positivt var framåt. Om du får dem tvärtom kör tanken bara i motsatt riktning vilket är lätt att fixa i programvara.

Steg 4: Programmeringen

Så för det här steget kommer vi att behöva ställa in några saker om du inte redan har gjort det.

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

Installera Raspian

För det första måste vi ha Raspian på ett micro SD -kort, så ha ett formaterat SD på minst 8 GB klart (Du kan också installera NOOBS lite om du bara har ett 4 GB -kort).

För att installera Raspian skulle jag rekommendera att använda NOOBS. Den officiella länken finns här. Ladda ner zip -filen till din dator och extrahera filerna till sd -kortet. Se till att filerna och mapparna finns och inte i en noobs -mapp.

När du har gjort detta ansluter du SD -kortet till Raspi 3, ansluter en skärm (en TV med HDMI fungerar bra om du inte har en bildskärm) och ett tangentbord och en mus.

Du bör se installationsskärmen ladda, ansluta till wifi (wifi behövs för att detta projekt ska fungera) och installera, jag använder bara standardinställningarna eftersom de fungerar bra.

Konfigurera för huvudlöst läge

Så när Raspian har installerats och du är inloggad på Raspi 3 kan du börja konfigurera Raspi 3 för att köras i huvudlöst läge (dvs. använda SSH istället för en skärm och ett tangentbord). Bara en anteckning du behöver använda sudo så se till att du känner till rotlösenordet.

Öppna en terminal och skriv "sudo raspi-config", du bör ha en blå och grå skärm som på bilderna. Gå till "Gränssnittsalternativ", tryck på enter, gå sedan till "P2 SSH" tryck på enter och ange igen för "ja", igen för "ok".

Gå nu tillbaka till "gränssnittsalternativ" och aktivera kameran.

Tillbaka i menyn, tryck på höger och gå in för att välja "avsluta".

Därefter måste vi hitta vår IP -adress, du kan göra detta genom att skriva 'ifconfig' i terminalen. Hitta blocket som börjar med wlan0 (vanligtvis det sista) och anteckna din IP -adress. Det borde vara på den andra raden och se ut ungefär så här 192.168.1. XX om du använder ditt hem wifi.

Bra det är slutet på konfigurationen

Installera ytterligare programvara

Så för att köra skripten jag har måste du ha python 2 eller 3 installerat. Om du vill lära dig python, skulle jag rekommendera att lära dig python 3, skillnaderna är små men python 3 används nu mer. Det bör komma förinstallerat med Raspian men vi borde bara dubbelkolla.

Skriv 'python --version', du bör få en utmatning som 'Python 2.7.13' vilket innebär att du har installerat python 2. För att kontrollera om du har python 3 skriver du bara 'python3 --version' och du bör få en liknande utdata. Om du inte har python 2 eller 3 kan du skriva 'sudo apt-get install python' eller 'sudo apt-get install python3', respektfullt.

Du behöver också Git för att få koden, igen, den bör vara förinstallerad. Skriv 'git --version' för att kontrollera och använd 'sudo apt-get install git' om du inte har det.

Installera MJPG-Streamer

MJPG-Streamer är ett av de sätt jag fick tillgång till Picamera. Det låter dig komma åt kameran via en webbläsare och manipulera bilden. Det är förmodligen det trevligare och enklare sättet att använda kameran om du känner dig obekväm med kod.

  1. Återigen kommer vi att använda Git. Skriv 'git clone https://github.com/jacksonliam/mjpg-streamer.git' i Raspi 3-terminalen. Programvaran laddas ner, det tar inte för lång tid.
  2. Förmodligen det bästa du kan göra just nu är att titta på filen 'README.md' och följa installationsanvisningarna. De fungerade sömlöst för mig. Om du har några frågor, lämna dem i kommentarerna så ska jag försöka hjälpa till

Efter installationen kan du köra den. Jag kommer att gå igenom hur jag gör det nedan.

Få alltid att falla på plats

Bra, nu borde vi vara redo att gå. Se till att din Raspi 3 är påslagen. Öppna en terminal på din dator/bärbara dator (jag antar att du använder linux eller Mac, om du använder Windows måste du ladda ner kitt. Det finns gott om självstudier om hur du använder det här, oroa dig inte, det är enkelt) och skriv 'ssh [email protected]. XX (förutsatt att du inte har ändrat standardnamnet) eller vad din IP -adress någonsin var som vi hittade tidigare. Skriv in ditt lösenord (detta bör definitivt inte vara standard). Bra, nu är du i en terminalsession på Raspi 3 via din dator/bärbara dator.

Så i terminaltypen 'git clone https://github.com/astrobenhart/Raspi-3-FPV-Lego-T… Detta bör bara ta några sekunder eftersom filerna är riktigt små. Du kan sedan navigera in i katalogen med 'cd Raspi-3-FPV-Lego-Tank', skriv nu 'ls' och se till att du ser dessa 5 filer: 'demo.py', 'drive.py', 'Picamera_tank. py, 'finished.jpg' och 'README.md'. Se till att du tittar på readme för eventuella uppdateringar.

demo.py

Det här py -skriptet är bra för att testa att dina ledningar fungerar. Det går bara igenom olika kombinationer av att köra motorerna bakåt och framåt.

använd 'python demo.py' för att köra. Det tar en halv minut eller så att slutföra.

drive.py

Detta är py -skriptet du kommer att köra för att styra tanken. Det ställer in GPIO -stiftmappningen och skapar defs för att flytta. Det fångar också knapptryckningar för att styra tanken.

Använd 'python drive.py' för att köra. Ge det en sekund, din terminal ska bli tom.

använd 'w, a, s, d' för att flytta och mellanslagstangenten för att stanna. När du är redo att stänga programmet trycker du på 'n'.

Picamera_tank.py

Detta är min version av en streamer för kameran. Detta körs bara med python 3 (dvs använd 'python3 Picamera_tank.py' för att köra). Detta kan köras i ett andra terminalfönster eller så kan du trycka på ctrl-z och skriva bg för att köra det i bakgrunden på samma terminal. Personligen gillar jag att använda en separat terminal.

Du borde inte behöva installera något extra, men om du använder pip. Om du stöter på några problem, lämna en kommentar.

När detta körs på Raspi 3, loggar du in på din dator/bärbara dator och går till 192.168.1. XX: 8000 (IP -adressen vi hittade tidigare). Du bör se kamerans utgång. Om bilden behöver roteras måste du redigera py -skriptet. Nära botten är en kommentar, nedan anger du vilka rotationsgrader du behöver. För mig var det 180 eftersom min kamera är upp och ner.

För att köra MJPG-Streamer

För att köra -j.webp

När det körs går du till 192.168.1. XX: 8080 (IP -adressen vi hittade tidigare) och klickar på streaming. Lek med de andra alternativen, de kan vara användbara för dig.

Och det är allt. Du bör nu kunna köra din egen FPV -tank runt var du än kan få din wifi. Ha så kul.

Steg 5: Färdig produkt

Och här är en video av allt som fungerar.

Bara en anmärkning om att jag har Raspi 3 ansluten till min bärbara dator för att driva den i videon när powerbanken tog slut under några tester. Det varade nästan en timme vilket jag var ganska glad över.

Lämna gärna kommentarer om du har några och jag hoppas att du tycker om att göra denna Raspberry Pi 3 FPV Lego Tank om du ger det en chans.

Tack, Ben

Rekommenderad: