Innholdsfortegnelse:
- Trinn 1: Litt informasjon om App.remoteme.org
- Trinn 2: Hva er nødvendig:
- Trinn 3: Tilkoblinger
- Trinn 4: PCB
- Trinn 5: PCB -utganger
- Trinn 6: Hvordan det fungerer
- Trinn 7: Bilmontering - Hjul
- Trinn 8: Strøm (AA -lade batterier) Alternativ 1/2
- Trinn 9: Strøm (Li-Po 7,2V batterier) Alternativ 2/2
- Trinn 10: Lodding
- Trinn 11: Kamera
- Trinn 12: Sett sammen bildeler
- Trinn 13: App.remoteme.org -konfigurasjon
- Trinn 14: RasbperryPi -konfigurasjon
- Trinn 15: Kontrollere tilkoblinger
- Trinn 16: Legge til Python Script
- Trinn 17: Kontroller om Python -skript ble lagt til med hell
- Trinn 18: Legge til webside i Control Car
- Trinn 19: Konfigurer websidenheten til å styre bilen 1/2
- Trinn 20: Konfigurer websidenheten til å styre bil 2/2
- Trinn 21: Åpne Car Control Center
- Trinn 22: Kamerakonfigurasjon 1/2
- Trinn 23: Kamerakonfigurasjon 2/2
- Trinn 24: Kjøring 1/2
- Trinn 25: Kjøring 2/2
- Trinn 26: Hvordan fungerer det
- Trinn 27: Nettbrett, mobilstyring
- Trinn 28: Åpne side på mobiltelefon
- Trinn 29: Legge til Turn Server
- Trinn 30: Mobilstyring
- Trinn 31: Oppsummering
Video: RasbperryPi -bil med FPV -kamera. Kontroll av nettleser: 31 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Vi skal bygge 4 -hjulet bil - styringen vil være lik som i en tank - for å snu den ene siden av hjulene vil rotere med annen hastighet enn den andre. Ved bilen vil det bli plassert kamera på spesiell holder der vi kan endre kameraposisjon. Roboten vil bli kontrollert av nettleser (chrome eller firefox på skrivebordet, eller firefox på mobiltelefon), i nettleseren, Vi får kameravideo (med bare 200 ms forsinkelse), og fra nettleseren kan vi kontrollere bilens bevegelser og kameraposisjon. For å gjøre kommunikasjonen enklere Jeg har brukt app.remoteme.org -systemet, det er også arbeid ut av boksen for å kontrollere denne typen biler, så du trenger ikke å skrive din egen kode, men selvfølgelig kan du endre skript legge til nye muligheter osv.
Før du kobler strøm til kretskortet, vennligst dobbeltsjekk alle tilkoblinger
Trinn 1: Litt informasjon om App.remoteme.org
Systemet har tre deler
- webapplikasjon - når du er vert for kontrollnettstedene dine og den kobler all kommunikasjon
- rasbperryPi -program - program som sender video, administrer python -skriptene dine
- biblioteker der du finner definisjoner av klasse, funksjoner
Remoteme.org er systemhurtig Du kobler alle enhetene dine sammen. Du kan være vertskap for Deres websider, se de tilkoblede enhetene dine. Remoteme.org -systemet ble laget for å hjelpe deg med å begynne å lage dine prosjekter, uten å bekymre deg for protokollkommunikasjon, hovedideen er å sende binære meldinger mellom forskjellige enheter, for eksempel websider, RasbeprryPI, arduino og skript.
På den annen side gir Remoteme.org deg full kontroll over filene dine. Du kan enkelt endre den ved å skrive din egen funksjonalitet
På denne opplæringen vil jeg vise deg hvordan du lager et fantastisk prosjekt uten å skrive noen kode.
På slutten av denne opplæringen har jeg lagt til nyttige lenker som hjelper deg å forstå remoteme.org -systemet.
Trinn 2: Hva er nødvendig:
- Bringebær PI Zero W
- Dedikert kamera
- Adafruit 16 -kanals 12 -biters PWM/servodriver - I2C -grensesnitt - PCA9685 eller dens klon
- To servomekanismer kompatible med kameraholderen
- Kameraholder
- Batterier - I opplæringen to muligheter for tilkobling
- H bro TB6612FNG, for å kontrollere hjulspeer
- PCB-ørnefiler Det er enkelt å gjøre det termisk overføringsmetode DC-DC
- Step Down Converter Module DC
- Robotetui
Trinn 3: Tilkoblinger
Raspberry pi -kontrollservomekanisme gjennom PWM -modul og motorhastighet ved H -bro som er koblet til RasbperryPi -pinner, PWM -inngang til H -bro genereres av den samme modulen jeg brukte for servoer (hvilke deler jeg nevner ovenfor, er ikke nødvendig med noen logiske omformere)
Trinn 4: PCB
Du kan laste ned PCB -ørnefiler herfra Baner er fete, så det er enkelt å lage det med termisk overføringsmetode
Trinn 5: PCB -utganger
- PWM -inngang for drivmotorer Bør kobles til PWM -modulens 15. og 16. pinner (sjekk grønt rektangel på bildet av PWM -modulen)
- Strøminngang for drivmotorer (sjekk hvilken maksimal spenning motorene dine kan jobbe med)
- Strøm for RasbperryPi og PWM -modulen - må være nøyaktig
- Drivmotorutganger (det er to utganger fordi vi vil koble drivmotorer)
- Servomekanismer makt - også Du må sjekke hvilken spenning som er bra for dem
- Jumper sin nåværende effekt fra femte inngang vil også drive motorer, så du trenger ikke koble noe til inngang 2
- Hopper hvis den er tilstede RasbperryPi vil være strøm fra tredje inngang - før du setter jumper her, sjekk om tilkoblingene er OK - Du vil ikke brenne RPi
- La lodde her kabler siden vi ikke trenger logiske omformere
Trinn 6: Hvordan det fungerer
På RasbperryPi er det python -script som bruker to biblioteker
- importer RPi. GPIO som GPIO-for pinner 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM-notasjon) som er koblet til H-broen
- importer Adafruit_PCA9685 for PWM -modul
Rpi-pinner er koblet til som følger 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) og kontrollmodus for H-broen (forover, bakover, stopp, kort pause). H bridge trenger også to PWM -signaler slik at vi kan kontrollere hastighet eller motorrotasjon. Fordi vi i prosjektet allerede har PWM -kontroller (brukt til servo), vil vi også bruke den til å generere PWM for H bridge.
PWM -modulen bruker I2C kommunikasjonsprotokoll. Jeg har brukt å jobbe ut av esken Adafruit_PCA9685. bibliotek
Trinn 7: Bilmontering - Hjul
Vi starter med å koble drivmotorer til bilhuset. Venstre/sidemotorer kobles sammen, og begge kobles til en strømkabel som senere vil bli koblet til kretskort. VIKTIG merknad mens motorene kobles til, må hjulene på hver side rotere i samme retning.
Trinn 8: Strøm (AA -lade batterier) Alternativ 1/2
Jeg vil skrive to muligheter for kraft Bilen første er fra 10xAA lade batterier. Til slutt har jeg tegnet av røde farger, hoppere som må settes.
Trinn 9: Strøm (Li-Po 7,2V batterier) Alternativ 2/2
Og det andre alternativet er 7,2 LI-PO batteri. I dette tilfellet fikk vi 3 spenninger - 5v For Rpi og modul, 6V for servoer og direkte fra batterier 7,2 volt for drivmotorer. Jeg måtte bruke to trinn ned moduler
Alternativ 2 med LI-PO er bedre:
- Batterier har større kapasitet - bilen vil kjøre lenger
- Større spenning for drivmotorer - bilen vil kjøre raskere
- Mindre sannsynlighet for at etter at motorer begynner å finne, kan vi få stort spenningsfall og RPI starter på nytt.
Trinn 10: Lodding
Jeg har satt på noen avstandsstykker på PCB for PWM -modul. Det er ingenting å skrive bare sjekk ut bilder hvordan du lodder alt sammen
Trinn 11: Kamera
vi kobler til kameraet, her er skrevet hvordan man sentrerer servomekanismer før montering i kameraholderen, men den korteste måten er å forsiktig manuelt kontrollere maksimal rotasjonsposisjon og sette servoer i midtposisjon. Disse sentrerte servomekanismene setter vi inn i kameraholderen i senterposisjonen (kameraet peker rett frem som på bildet)
Trinn 12: Sett sammen bildeler
Til PCB har jeg laget et lite plexiglassbord
Trinn 13: App.remoteme.org -konfigurasjon
Jeg har brukt et gratis app.remoteme.org -system, det hjelper deg med å lage tilkoblinger, og det har allerede skript som vi trenger
På dette instruktive, vil jeg bare vise trinn for trinn hva som bør gjøres for å få bilkjøring (her finner du flere detaljer)
- Syng opp på https://app.remoteme.org etter registrering Du blir automatisk logget på
- åpne kategorien Token til venstre, klikk deretter på "nytt token" gi et navn og klikk OK, Vi har nettopp opprettet nytt token (bilde på skjermen)
- i dette eksemplet er tokenverdien: ~ 1_ & p@+BNnZ@A+x8 (din vil være annerledes;))
Trinn 14: RasbperryPi -konfigurasjon
på kittkonsoll (her hvordan du konfigurerer vår RPi slå på kamera I2c kommunikasjon)
git -klon git: //github.com/remoteme/remoteme.git
fjernkontroll av cd
python3.5 install.py
- Instalator vil stille oss noen spørsmål for alt vi svarer [Y] es og bekrefte med [enter]
- når installasjonen vil be om token limer vi inn (shift+insert) token kopiert fra programmet og Enter
- navnet for eksempel Rpi
- deviceId 1 Skriv inn
- etter installasjon - kjør programmet
./runme.sh
Trinn 15: Kontrollere tilkoblinger
La oss gå tilbake til
På fanen enheter vil vi se vår tilkoblede RPi (grønt lenkeikon betyr at RPi er tilkoblet akkurat nå)
Trinn 16: Legge til Python Script
Nå vil vi legge til python -script, det er allerede på malene, så vi trenger ikke å programmere noe.
I kategorien enheter åpner du RasbperryPi -menyen og velger "Legg til eksternt skript".
Når nytt vindu vises, gi informasjon som på bildet ovenfor
Ikke glem å velge mal "car4wd". Etter disse trinnene vil remoteme.org legge til python -script til RasbperryPi og starte det på nytt
Trinn 17: Kontroller om Python -skript ble lagt til med hell
På fanen enheter bør det legges til ny python -skriptenhet, og enhetens ID er 2. På denne enhets -ID -siden vil sendes meldinger for å styre bilen
Trinn 18: Legge til webside i Control Car
i kategorien enheter klikker du "Ny" og deretter "Webside". Vi legger bare til en annen enhet - websiden vi vil bruke den til å kontrollere bilen vår. Og fordi vi brukte malen "car4wdDesktop" på nettsiden er filer allerede nesten klare til bruk
Trinn 19: Konfigurer websidenheten til å styre bilen 1/2
Utvid websiden på kategorien enhet, og klikk på index.html og deretter Åpne
Trinn 20: Konfigurer websidenheten til å styre bil 2/2
Vinduet vises, så må vi oppgi deviceId av python -skriptet vårt på case -enheten. Id er 2. La oss endre stedet som vises på bildet
Trinn 21: Åpne Car Control Center
Nå er det på tide å åpne siden vår og se hvordan den fungerer. På enhetsfanen klikker du index.html og deretter "Åpne i ny fane" For å få forhåndsvisninger av video Du må bruke Chrome eller Firefox nettleser, andre nettleser støtter ikke webRTC fullt ut
Trinn 22: Kamerakonfigurasjon 1/2
Når vi flytter musen på videoområdet, bør kameraet endre posisjon, og det skal fungere akkurat som i FPS -spill. Det vil sannsynligvis ikke bevege seg riktig
Trinn 23: Kamerakonfigurasjon 2/2
Åpne script.js (kategorien enheter utvid nettsiden, klikk deretter på script.js og åpne deretter) og finn stedet jeg viste på skjermen
i min senterposisjon er 560 og 430 og bevegelsesområdet er for begge aksene 200
Du må eksperimentere med disse tallene, slik at du får kameraposisjonssenter og jevne bevegelser. Hvis du brukte denne opplæringen, kopierer du bare inngitte verdier
Trinn 24: Kjøring 1/2
Hvis du trykker på pil opp på tastaturet, måler måle posisjoner og bilen skal kjøre. Hvis du trykker på "opp" -pilen og bilen svinger, må du legge til/fjerne minus på steder på skjermen.
Etter denne operasjonen etter å ha truffet "opp" pilen skal bilen kjøre foran og nedover pilen bilen skal kjøre bakover.
Trinn 25: Kjøring 2/2
Nå svinger - treffer venstre pil hvis bilen svinger til høyre Du må snu kabler (sjekk bildet ovenfor)
Hvis du lodder disse kablene Du kan endre det på script.jsjust endre rekkefølge for å sende motorhastighet, før:
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));
etter:
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));
og nå må du leke med minuser som et skritt før for å få det til å fungere riktig;). Som du sikkert la merke til etter at pilen har slått opp, kjører bilen ikke med full hastighet for å få bilen til å bevege seg raskere, bare slipp opp pilen når den er i maksimal posisjon og trykk og hold den igjen
Trinn 26: Hvordan fungerer det
Nettsiden sender melding om 9. byte til python-script i format:
- 1 byte ett byte heltall verdi 1
- 2 byte heltall X kameraposisjon
- 2 byte heltall Y kameraposisjon
- 1 byte heltall venstre motormodus (3 = bakover, 1 = fremover, 2 = stopp)
- 1 byte heltall motorhastighet
- 1 byte heltall høyre motormodus (3 = bakover, 1 = fremover, 2 = stopp)
- 1 byte heltall høyre motorhastighet
sendemeldingen blir laget i script.js -filen ved funksjonen "sendNow ()"
på RasbperryPi får python.py denne meldingen i funksjon "onUserMessage"
Du kan sjekke det ut og spille litt, slik at du vet hva som skjer.
beskrivelse av klassefunksjoner her
Trinn 27: Nettbrett, mobilstyring
Vi legger til ny webside eksakt som vi gjorde forrige gang, men nå velger vi malen "car4wdMobile"
Deretter konfigurerer vi alt i script.js som vi gjorde for desktop control webpage Meldingsformatet er nøyaktig det samme, slik at vi ikke trenger å endre python.py script.
Trinn 28: Åpne side på mobiltelefon
I stedet for å logge på kontoen din fra mobilen, er det bare å skanne QR anymous url.
detaljer om QR her
Hvis mobilkontrollen din fungerer når RPi og mobil er på samme wifi, men ikke hvis du bruker mobilt internett, må du legge til en server, hvordan gjør jeg det jeg har skrevet her
Trinn 29: Legge til Turn Server
Noen ganger (når du står bak NAT eller noen brannmurinnstillinger) kan du ikke koble roboten din fra et annet nettverk, så er roboten din tilkoblet. Det er ikke et stort problem, og da må du legge til turn -server.
Jeg har testet server fra XIRSYS -firmaet (det er gratis for utviklerbruk), og jeg vil vise hvordan du konfigurerer turn -server ved hjelp av XIRSYS -system
registrere:
global.xirsys.net/dashboard/signup
klikk deretter "pluss" for å legge til applikasjon
til høyre under "static turn credentials" Du har alle dataene du trenger. Kopier den til filen webrtc_streamer.conf for å gjøre det, gå til
utvide RaspberryPi -enheter
klikk på filen webrtc_streamer.conf
klikk på åpne
og legge til informasjon
turn_server = turn_username =
turn_credential =
etter at du har avsluttet redigeringen Du bør ha noe som skjermen.
klikk deretter på Lagre og start You Rpi på nytt, ved å klikke på menyen på RasbperryPi -enheten og velge omstart
Etter at RPi -programmet er startet på nytt Du kan se forhåndsvisning av video på mobiltelefonen din selv om du bruker mobilt internett.
Trinn 30: Mobilstyring
i sirkel 1 plasserer vi venstre tommel, 2 til høyre - trenger ikke å være nøyaktig på dette punktet - websiden vil sette nullposisjon like etter at du har berørt skjermen, og ved å flytte tommelen (venstre kjøring, høyre kameraposisjon) Du kan kontrollere din bil
Trinn 31: Oppsummering
Jeg håper du likte denne opplæringen, som jeg skrev før i denne opplæringen er flere detaljer om hvordan det fungerer under hetten.
noen lenker:
remoteme.org - hjemmesiden til remoteme.org der Du finner dokumentasjoner og opplæringsprogrammer
FB fanpage - Facebook fanpage nyeste informasjon om remoteme.org
Youtube - noen videoer av prosjektet, opplæringsprogrammer
Jubel, Maciek
Anbefalt:
Kontroller enheter over internett gjennom nettleser. (IoT): 6 trinn
Kontroller enheter over internett gjennom nettleser. (IoT): I denne instruksjonsboken vil jeg vise deg hvordan du kan kontrollere enheter som lysdioder, reléer, motorer etc. over internett via nettleser. Og du kan få tilgang til kontrollene sikkert over hvilken som helst enhet. Nettplattformen jeg brukte her er RemoteMe.org -besøk
Augmented Reality -nettleser: 9 trinn
Augmented Reality Web Browser: I dag skal vi gå igjennom å lage en Augmented Reality -nettleser for Android. Denne ideen startet da ExpressVPN ba meg om å lage en sponset YouTube -video. Siden dette er min første, ønsket jeg å gjøre noe som var relevant for produktet deres. Pr
Lag en nettleser i Visual Basic: 12 trinn
Lag en nettleser i Visual Basic: Jeg skal lære deg hvordan du lager en nettleser i Visual Basic 2005
Opprette et program i Visual Basic: Nettleser: 9 trinn
Opprette et program i Visual Basic: Nettleser: Denne instruksen forklarer prosessen med å lage et enkelt nettleserprogram i VB.NET Det er designet som en oppfølging av min første VB.NET Instructable: Opprette ditt første program i Visual Basic. Det anbefales at du leser gjennom denne inst
Gjør Firefox mer enn en nettleser: 5 trinn
Gjør Firefox mer enn en nettleser: Årsaken til at Firefox er så populær, er ikke på grunn av de allerede gode surfemulighetene, det er på grunn av tilleggene som er tilgjengelige for det, som gjør nettleseren til en utvidelse av deg. Wow. Den siste setningen var fantastisk hvordan jeg formulerte det, ikke sant? Li