Innehållsförteckning:
- Steg 1: Lite information om App.remoteme.org
- Steg 2: Vad behövs:
- Steg 3: Anslutningar
- Steg 4: PCB
- Steg 5: PCB -utgångar
- Steg 6: Hur det fungerar
- Steg 7: Bilmontering - hjul
- Steg 8: Ström (AA -laddningsbatterier) Alternativ 1/2
- Steg 9: Ström (Li-Po 7,2V batterier) Alternativ 2/2
- Steg 10: Lödning
- Steg 11: Kamera
- Steg 12: Sätta ihop bildelar
- Steg 13: App.remoteme.org -konfiguration
- Steg 14: RasbperryPi -konfiguration
- Steg 15: Kontrollera anslutningar
- Steg 16: Lägga till Python Script
- Steg 17: Kontrollera om Python -skript har lagts till framgångsrikt
- Steg 18: Lägga till webbsida i Control Car
- Steg 19: Konfigurera webbsidan för att styra bilen 1/2
- Steg 20: Konfigurera webbsidan för att styra bilen 2/2
- Steg 21: Öppna Car Control Center
- Steg 22: Kamerakonfiguration 1/2
- Steg 23: Kamerakonfiguration 2/2
- Steg 24: Kör 1/2
- Steg 25: Kör 2/2
- Steg 26: Hur fungerar det
- Steg 27: Surfplatta, mobilstyrning
- Steg 28: Öppna sidan på mobiltelefonen
- Steg 29: Lägga till Turn Server
- Steg 30: Mobilstyrning
- Steg 31: Sammanfattning
Video: RasbperryPi -bil med FPV -kamera. Kontroll med webbläsare: 31 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Vi kommer att bygga 4wd bil - styrningen kommer att likna den som i en tank - för att vända ena sidan av hjulen kommer att rotera med annan hastighet än den andra. Vid bilen kommer kameran att placeras på en speciell hållare där vi kan ändra kameraposition. Roboten kommer att styras av webbläsare (krom eller firefox på skrivbordet eller firefox på mobiltelefon), i webbläsaren, Vi kommer att få kameravideo (med endast 200ms latens), och från webbläsaren kan vi styra bilens rörelser och kameraposition. För att göra kommunikationen enklare har jag använt app.remoteme.org -systemet, det fungerar också ur rutan för att styra den här typen av bilar, så du behöver inte skriva din egen kod, men självklart kan du ändra skript lägga till nya möjligheter etc.
Kontrollera alla anslutningar innan du ansluter ström till ditt kretskort
Steg 1: Lite information om App.remoteme.org
Systemet har tre delar
- webbapplikation - när du är värd för dina kontrollwebbsidor och den länkar all kommunikation
- rasbperryPi -program - program som skickar video, hanterar dina python -skript
- bibliotek där du hittar klass, funktioner definitioner
Remoteme.org är systemsnabb Du länkar alla dina enheter ihop, du kan vara värd för dina webbsidor, se dina anslutna enheter. Remoteme.org -systemet har gjorts för att hjälpa dig att börja göra dina projekt, utan att oroa dig för protokollkommunikation, huvudidén är att skicka binära meddelanden mellan olika enheter, till exempel en webbsida, RasbeprryPI, arduino och skript.
Å andra sidan ger Remoteme.org dig full kontroll över dina filer, du kan enkelt ändra den genom att skriva din egen funktionalitet
I den här handledningen kommer jag att visa dig hur du gör ett fantastiskt projekt som är allmänt utan att skriva någon kod.
I slutet av denna handledning har jag lagt till användbara länkar som hjälper dig att förstå remoteme.org -systemet.
Steg 2: Vad behövs:
- Hallon PI Zero W
- Dedikerad kamera
- Adafruit 16 -kanals 12 -bitars PWM/Servodrivrutin - I2C -gränssnitt - PCA9685 eller dess klon
- Två servomekanismer kompatibla med kamerahållaren
- Kamerahållare
- Batterier - I handledning finns två anslutningsmöjligheter
- H -brygga TB6612FNG, för att styra hjulspiren
- PCB-örnfiler Det är enkelt att göra det värmeöverföringsmetod DC-DC
- Step Down Converter Module DC
- Robotfodral
Steg 3: Anslutningar
Raspberry pi -styrservomekanism genom PWM -modul och motorhastighet med H -brygga som är ansluten till RasbperryPi -stift, PWM -ingång till H -brygga genereras av samma modul som jag använde för servon (vilka delar jag nämner ovan behövs inga logiska omvandlare)
Steg 4: PCB
Du kan ladda ner PCB -örnfiler härifrån Banor är feta så det är enkelt att göra det genom termisk överföringsmetod
Steg 5: PCB -utgångar
- PWM -ingång för drivmotorer Bör anslutas till PWM -modulens 15: e och 16: e stift (kontrollera grön rektangel vid PWM -modulbild)
- Effektingång för drivmotorer (kontrollera vilken högsta spänning dina motorer kan arbeta med)
- Effekt för RasbperryPi och PWM -modulen - måste vara exakt
- Drivmotorutgångar (det finns två utgångar eftersom vi kommer att koppla drivmotorer)
- Servomekanismer kraft - också Du måste kontrollera vilken spänning som är bra för dem
- Bygelns nuvarande effekt från femte ingången kommer också att driva motorer så du behöver inte ansluta någonting till ingång 2
- Bygel om den finns RasbperryPi kommer att vara ström från tredje ingången - innan du sätter bygeln här, kontrollera om anslutningarna är OK - du vill inte bränna din RPi
- Låt oss löda här kablar eftersom vi inte behöver logiska omvandlare
Steg 6: Hur det fungerar
På RasbperryPi finns det python -skript som använder två bibliotek
- importera RPi. GPIO som GPIO-för stift 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM-notation) som är anslutna till H-bron
- importera Adafruit_PCA9685 för PWM -modul
Rpi-stift är anslutna enligt följande 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) och kontrolläge för H-bron (framåt, bakåt, stopp, kort paus). H -bron behöver också två PWM -signaler så att vi kan styra hastighet eller motorrotation. Eftersom vi i projektet redan har PWM -controller (används för servo) kommer vi också att använda den för att generera PWM för H bridge.
PWM -modul använder I2C -kommunikationsprotokoll. Jag har använt träningslådan Adafruit_PCA9685. bibliotek
Steg 7: Bilmontering - hjul
Vi börjar med att ansluta drivmotorer till bilväska. Vänster/sidomotorer kopplas ihop, och båda paras, ansluter till någon strömkabel som senare kommer att anslutas till kretskort. Viktigt att tänka på när hjulmotorerna på varje sida ansluts måste rotera åt samma håll.
Steg 8: Ström (AA -laddningsbatterier) Alternativ 1/2
Jag kommer att skriva två möjligheter till kraft Bilen först är från 10xAA ladda batterier. Till sist har jag ritat av röda färger hoppare som måste sättas.
Steg 9: Ström (Li-Po 7,2V batterier) Alternativ 2/2
Och det andra alternativet är 7,2 LI-PO-batteri. I det här fallet fick vi 3 spänningar - 5v för Rpi och modul, 6V för servon och direkt från batterier 7,2 volt för drivmotorer. Jag var tvungen att använda två steg ned moduler
Alternativ 2 med LI-PO är bättre:
- Batterier har större kapacitet - bilen kommer att köra längre
- Större spänning för drivmotorer - bilen kommer att köra snabbare
- Mindre sannolikhet att efter att drivmotorerna har börjat lokalisera kan vi få ett stort spänningsfall och RPI startar om.
Steg 10: Lödning
Jag har lagt några distanser för PWM -modul på PCB. Det finns inget att skriva bara kolla bilder hur man lödar ihop allt
Steg 11: Kamera
vi ansluter kameran, här är skrivet hur man centrerar servomekanismer innan de monteras i kamerahållaren, men det kortaste sättet är att försiktigt manuellt kontrollera maximal rotationsposition och ställa servon i mittläge. Dessa centrerade servomekanismer sätter vi i kamerahållaren i mittläget (kameran pekar rakt fram som på fotot)
Steg 12: Sätta ihop bildelar
Till PCB har jag gjort ett litet plexiglasbord
Steg 13: App.remoteme.org -konfiguration
Jag har använt gratis app.remoteme.org -system, det hjälper dig att skapa anslutningar, och det har redan skript som vi behöver
På denna instruerbara, kommer jag bara att visa steg för steg vad som bör göras för att göra bilkörning (här hittar du mer information)
- Sjung upp på https://app.remoteme.org efter registrering Du loggas in automatiskt
- öppna fliken Token till vänster, klicka sedan på "ny token" ge ett namn och klicka på OK, Vi har just skapat ny token (bild på skärmen)
- i det här exemplet är tokenvärdet: ~ 1_ & p@+BNnZ@A+x8 (ditt kommer att vara annorlunda;))
Steg 14: RasbperryPi -konfiguration
på spackelkonsol (här hur du ställer in vår RPi -aktivering av kamera I2c -kommunikation)
git -klon git: //github.com/remoteme/remoteme.git
cd remoteme
python3.5 install.py
- Instalator kommer att ställa oss några frågor för allt vi svarar [Y] es och bekräfta med [enter]
- när installationen kommer att be om token klistrar vi in (skift+infoga) token kopierat från programmet och Enter
- namnet till exempel Rpi
- deviceId 1 Ange
- efter installationen - kör programmet
./runme.sh
Steg 15: Kontrollera anslutningar
Låt oss gå tillbaka till
På fliken enheter ser vi vår anslutna RPi (grön länkikon betyder att RPi är ansluten just nu)
Steg 16: Lägga till Python Script
Nu lägger vi till python -skript, det finns redan vid mallarna så vi behöver inte programmera någonting.
Öppna RasbperryPi -menyn på fliken enheter och välj "Lägg till externt skript".
När ett nytt fönster visas, ge information enligt bilden ovan
Glöm inte att välja mall "car4wd". Efter det här steget kommer remoteme.org att lägga till python -skript till vår RasbperryPi och starta om det
Steg 17: Kontrollera om Python -skript har lagts till framgångsrikt
På fliken enheter bör en ny python -skriptenhet läggas till, och dess deviceId är 2. På den här enhets -id -webbsidan skickas meddelanden för att styra bilen
Steg 18: Lägga till webbsida i Control Car
på fliken enheter, klicka på "Ny" och sedan på "Webbsida". Vi lägger bara till en annan enhet - webbsida vi kommer att använda den för att styra vår bil. Och eftersom vi använde mallen "car4wdDesktop" på webbsidan är filer redan nästan klara att användas
Steg 19: Konfigurera webbsidan för att styra bilen 1/2
Expandera webbsidan på fliken enhet och klicka på index.html och sedan på Öppna
Steg 20: Konfigurera webbsidan för att styra bilen 2/2
Fönstret visas då måste vi tillhandahålla deviceId av vårt python -skript vid vårt case deviceId är 2. Låt oss ändra platsen som visas i bilden
Steg 21: Öppna Car Control Center
Nu är det dags att öppna vår sida och se hur det fungerar. På enhetsfliken klickar du index.html och sedan "Öppna i ny flik" För att få förhandsgranskning av video Du måste använda Chrome- eller Firefox -webbläsaren, andra webbläsare stöder inte webRTC helt
Steg 22: Kamerakonfiguration 1/2
När vi flyttar musen vid videoområdet bör kameran ändra position och den ska fungera precis som i FPS -spel. Det kommer förmodligen inte att röra sig korrekt
Steg 23: Kamerakonfiguration 2/2
Öppna script.js (fliken enheter expandera webbsidan klicka sedan på script.js och öppna sedan) och hitta platsen jag visade på skärmen
vid mitt fodral är mittläget 560 och 430 och rörelseomfånget är för båda axlarna 200
Du måste experimentera med dessa siffror så att du får kamerapositionens mitt och smidiga rörelser. Om du använde den här självstudien kopierar du bara in klistrade givna värden
Steg 24: Kör 1/2
Om du trycker upp pilen på tangentbordet bör mätare ändra position och bilen ska köra. Om du trycker på "upp" -pilen och bilen svänger måste du lägga till/ta bort minus på platser på skärmen.
Efter denna operation efter att ha träffat”upp” pilen ska bilen köra framåt och nedåt pilen bilen ska köra bakåt.
Steg 25: Kör 2/2
Nu svänger - slå vänsterpil om bilen svänger åt höger Du måste vända kablar (kolla bilden ovan)
Om du lödar dessa kablar Du kan ändra den på script.jsjust ändra ordning för att skicka motorns hastighet, innan:
pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ())); pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));
pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));
efter:
pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));
pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));
och nu måste du spela med minus som ett steg innan för att få det att fungera korrekt;). Som du antagligen märkte efter att pilen träffades kör inte bilen med full hastighet för att få bilen att gå snabbare bara släpp upp pilen när den är i maxläge och tryck och håll kvar den igen
Steg 26: Hur fungerar det
Webbsidan skickar 9: e bytes meddelande till python script i format:
- 1 byte ett byte heltal 1
- 2 bytes heltal X kameraposition
- 2 bytes heltal Y kameraposition
- 1 byte heltal vänster motorläge (3 = bakåt, 1 = framåt, 2 = stopp)
- 1 byte heltal vänster motorvarvtal
- 1 byte heltal höger motorläge (3 = bakåt, 1 = framåt, 2 = stopp)
- 1 byte heltal höger motorvarvtal
sändningsmeddelande görs i script.js -filen vid funktionen "sendNow ()"
på RasbperryPi får python.py detta meddelande i funktion "onUserMessage"
Du kan kolla upp det och spela lite så att du vet vad som händer.
klassfunktionsbeskrivning här
Steg 27: Surfplatta, mobilstyrning
Vi lägger till ny webbsida precis som vi gjorde tidigare men nu väljer vi mall "car4wdMobile"
Därefter konfigurerar vi allt i script.js som vi gjorde för skrivbordskontrollwebbsida Meddelandeformatet är exakt samma så att vi inte behöver ändra python.py -skriptet.
Steg 28: Öppna sidan på mobiltelefonen
Istället för att logga in på ditt konto från mobilen är det bara att skanna QR anymous url.
detaljer om QR här
Om din mobilkontroll fungerar när RPi och mobil är på samma wifi men inte om du använder mobilt internet måste du lägga till turn server, hur gör jag det jag har skrivit här
Steg 29: Lägga till Turn Server
Ibland (när du ligger bakom NAT eller vissa brandväggsinställningar) kan du inte ansluta din robot från ett annat nätverk då är din robot ansluten. Det är ingen stor fråga och då måste du lägga till turn server.
Jag har testat server från XIRSYS -företaget (det är gratis för utvecklaranvändning) och jag kommer att visa hur jag konfigurerar turn server med XIRSYS -system
Registrera:
global.xirsys.net/dashboard/signup
klicka sedan på "plus" för att lägga till applikation
till höger under "static turn credentials" Du har all data du behöver. Kopiera den till filen webrtc_streamer.conf för att göra det, gå till
expandera RaspberryPi -enheter
klicka på filen webrtc_streamer.conf
klicka på öppna
och lägg till information
turn_server = turn_username =
turn_credential =
efter att du slutat redigera Du borde ha något som på skärmen.
klicka sedan på Spara och starta om din Rpi, genom att klicka på menyn på RasbperryPi -enheten och välj starta om
Efter att RPi -programmet startats om Du kan se förhandsgranskning av video på din mobiltelefon även om du använder mobilt internet.
Steg 30: Mobilstyrning
i cirkel 1 placerar vi vänster tumme, vid 2 höger - behöver inte vara exakt vid dessa punkter - webbsidan ställer in nolläget precis efter att du har pekat på skärmen och genom att flytta tummarna (vänster körning, höger kameraposition) Du kan styra din bil
Steg 31: Sammanfattning
Jag hoppas att du gillade den här självstudien, som jag skrev tidigare i denna handledning finns mer information om hur det fungerar under huven.
några länkar:
remoteme.org - remoteme.org hemsida där Du hittar dokumentationer och självstudier
FB fanpage - Facebook fanpage nyaste information om remoteme.org
Youtube - några filmer av projekt, självstudier
Skål, Maciek
Rekommenderad:
ESP8266 Nodemcu temperaturövervakning med DHT11 på en lokal webbserver - Få rumstemperatur och luftfuktighet i din webbläsare: 6 steg
ESP8266 Nodemcu temperaturövervakning med DHT11 på en lokal webbserver | Få rumstemperatur och luftfuktighet i din webbläsare: Hej killar idag, vi kommer att göra en luftfuktighet & temperaturövervakningssystem med ESP 8266 NODEMCU & DHT11 temperaturgivare. Temperatur och luftfuktighet kommer från DHT11 Sensor & det kan ses i en webbläsare vilken webbsida som kommer att hanteras
ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare: 5 steg
ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare: Hej killar i de flesta projekt vi använder ESP8266 och i de flesta projekt använder vi ESP8266 som en webbserver så att data kan nås på vilken enhet som helst via wifi genom att komma åt webbservern som ESP8266 är värd för, men det enda problemet är att vi behöver en fungerande router för
ESP8266 RGB LED STRIP WIFI -kontroll - NODEMCU Som IR -fjärrkontroll för Led Strip kontrollerad över Wifi - RGB LED STRIP Smartphone -kontroll: 4 steg
ESP8266 RGB LED STRIP WIFI -kontroll | NODEMCU Som IR -fjärrkontroll för Led Strip kontrollerad över Wifi | RGB LED STRIP Smartphone Control: Hej killar i den här självstudien kommer vi att lära oss hur man använder nodemcu eller esp8266 som en IR -fjärrkontroll för att styra en RGB LED -remsa och Nodemcu kommer att styras av smartphone via wifi. Så i princip kan du styra RGB LED STRIP med din smartphone
Kontrollera enheter över internet via webbläsare. (IoT): 6 steg
Kontrollera enheter över internet via webbläsare. (IoT): I den här instruktionsboken kommer jag att visa dig hur du kan styra enheter som lysdioder, reläer, motorer etc. över internet via webbläsare. Och du kan komma åt kontrollerna säkert över vilken enhet som helst. Webbplattformen jag använde här är RemoteMe.org -besök
Augmented Reality -webbläsare: 9 steg
Augmented Reality -webbläsare: Idag ska vi gå igenom en Augmented Reality -webbläsare för Android. Denna idé började när ExpressVPN bad mig göra en sponsrad YouTube -video. Eftersom det här är min första ville jag göra något som var relevant för deras produkt. Pr