INHOUDSOPGAWE:

RC -motor met virtuele realiteit: 9 stappe
RC -motor met virtuele realiteit: 9 stappe

Video: RC -motor met virtuele realiteit: 9 stappe

Video: RC -motor met virtuele realiteit: 9 stappe
Video: (100% точность) Как была создана песня Future Is Good Life 2024, November
Anonim
Image
Image

Wou u al ooit gekrimp word en 'n vaartuig soos Innerspace of Fantastic Voyage bestuur? Wel, ek dink dit is so naby as wat u op kort kennisgewing gaan kry!

Hier is die toonhoogte:

'N Real-Life-afstandsbedieningsmotor wat van 'n Virtual Reality-opdragkonsole geloods is. Dit beteken dat u 'n VR -headset vasmaak, 'n skakelaar op 'n RC -motor draai, en dan vanaf VR met lewendige videostroom direk na u gesig kan stuur.

Daar is dinge wat ek geïmplementeer het wat u op die VR -motor kan beheer.

  1. Wiele
  2. Horn
  3. Ligte

Al hierdie dinge het 'n knoppie of hefboom in VR wat u kan omdraai of omskakel om die motor te bestuur.

Besoek my Github en my webwerf vir die volledige repo en meer inligting!

Stap 1: Materiaal en gereedskap

Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap

Meganiese:

Onderstelstel met vierwielaandrywing

Elektries:

  • Wielkodeerder
  • 3S 1300mAh battery
  • Arduino Uno
  • Arduino motorskerm
  • Piezo elektriese gonser
  • Klein LED
  • XT60 -verbindings
  • Boost / Buck -omskakelaar

Rekenaar:

  • Enige ingeboude rekenaarstelsel: Framboos Pi, Jetson Nano, ens.
  • USB -kamera (verkieslik - 180 grade kamera)

Gereedskap / Ekstra:

  • Soldeerbout
  • Sommige VR -instellings - ek het die Oculus Rift
  • Multimeter

Stap 2: Bou motor

Bou motor
Bou motor
Bou motor
Bou motor
Bou motor
Bou motor

Die onderstel vir die motor is baie maklik om te bou. U hoef net die motors aan die hoofbord te koppel via die oortjies wat hulle u gee. Nadat u die wiele en motors aangebring het, benodig u ook iets om die kamera aan die voorkant van die motor vas te maak.

Ek het die kartondoos waarmee die kamera gekom het, gebruik om dit te monteer. Ek sny 'n groot L -vorm uit en sny 'n gat vir die kamera om deeglik te steek. Daarna kan u die kamera net deursteek en 'n band agterin sit om dit op sy plek te hou. As u wil, kan u ook nou gate vir u kopligte insit, of dit later doen as u die lengte van die draad meet.

U moet ook die wielkodeerder aan een van die wiele koppel. Dit maak nie saak watter een nie, ek plaas dit op die linkerwiel agter. U moet die magnetiese skyf op die werklike as van die wiel sit, en die enkodeerder moet aan die motor langsaan vasgemaak word. Dit is redelik ontvanklik, so dit hoef nie reg te wees nie, maar so na as moontlik. Ek het my encoder vasgemaak met band en 'n rits. Die encoder is wat ons sal gebruik om die snelheid van ons motor te meet.

Stap 3: Soldeerkringe

Soldeerkringe
Soldeerkringe
Soldeerkringe
Soldeerkringe

Hierdie deel is nogal vervelig, maar nie ingewikkeld nie. As u die prentjie volg en alles meet voordat u u draad sny, is dit nie so erg nie.

Terwyl u dit doen, moet u u omskakelaar ook kalibreer om die korrekte spanning uit te voer. Die Raspberry Pi en Jetson Nano neem albei 5v in, maar ons battery is op 11.1v. Ons moet dus sorg dat ons nie ons elektronika braai nie. Om dit te doen, steek u battery in die ingangskant van die boksomskakelaar. Terwyl die battery ingeprop is, gebruik u multimeter om die uitsetkant van die boksomskakelaar te meet. Gebruik 'n klein platkopskroewedraaier om die potensiometer op die omskakelaar te draai totdat die uitsetspanning 5v is. As die uitset korrek is, hoef u nie meer die potensiometer te draai nie.

Stap 4: Installeer afhanklikhede op die ingebedde stelsel

Installeer afhanklikhede op die ingebedde stelsel
Installeer afhanklikhede op die ingebedde stelsel

Nie te veel om hier te doen nie, maar tog ongelooflik belangrik.

Maak eers seker dat u verbinding maak met die router wat u gaan gebruik, sodat hy voortaan outomaties kan koppel.

Maak dan 'n terminale oop en tik die volgende in:

sudo apt -opdatering

sudo apt installeer openssh-bediener

sudo apt installeer python-pip pip installeer numpy pip installeer opencv-python pip installeer pyzmq

Sodra hierdie dinge geïnstalleer is, moet ons seker maak dat dit altyd herken word, ongeag die poort waarop die arduino gekoppel is. Ons skryf dus wat UDEV -reëls genoem word. Dit is reëls vir u bedryfstelsel wat bepaal wat gebeur wanneer u dinge inprop. Ons wil die arduino identifiseer wanneer dit ingeprop is, en dit 'n naam gee om toegang daartoe te verkry. Die naam sal 'arduino_0' wees. Om dit te doen, gebruik ons die interne reeksnommer van die arduino om dit te identifiseer.

udevadm info -a -n /dev /ttyUSB1 | grep '{serial}' | kop -n1

Dit spoeg 'n waarde vir die reeksnommer uit, en kopieer die waarde.

Ons moet dan 'n lêer met die naam "99-usb-serial.rules" wysig (of skep as dit nie bestaan nie). Hierdie lêer leef in die volgende lêerpad "/etc/udev/rules.d/99-usb-serial.rules". Soos ek genoem het, as die lêer nie bestaan nie, skep dit dan en plak dit in die volgende reël met VALUE_FROM_ABOVE vervang met u waarde van tevore.

SUBSYSTEM == "tty", ATTRS {serial} == "VALUE_FROM_ABOVE", SYMLINK+= "arduino_0"

Dit vertel die bedryfstelsel dat wanneer dit hierdie spesifieke reeksnommer sien, dit arduino_0 noem.

Die laaste ding wat u hier moet doen, is om die pushArucoVideoPullCommands.py af te laai en op 'n maklike plek te plaas. Ek sou die tuisgids vir u gebruiker aanbeveel, want dit is waar ons sal eindig wanneer ons later in die ingebedde stelsel inskakel.

Stap 5: Stel 'n statiese IP -adres op

Stel 'n statiese IP -adres op
Stel 'n statiese IP -adres op

Dit is nou die deel waarvan almal hou, IP -adres. Vir hierdie projek om te werk, moet die kode weet waarheen hulle beelde en bedieningsopdragte moet stuur, en dit beteken dat ons toestelle 'n statiese IP benodig.

Daar is baie maniere om u toestel 'n statiese IP toe te ken, maar omdat ons 'n router het wat ons grondstasie en ons ingeboude stelsel verbind, kan ons dit baie maklik aan ons spesifieke IP -adresse gee.

Navigeer na die admin -afdeling van u router, gewoonlik (vir die meeste routers) word dit gedoen deur 'n webblaaier oop te maak en na "192.168.1.1" te gaan. Dit sal u vra om aan te meld, en die tipiese standaard gebruikersnaam en wagwoord vir die meeste routers is "admin".

As u daar is, navigeer na iets wat 'DHCP -bediener' noem. Dit is 'n proses wat op u router werk en byhou watter toestelle daaraan gekoppel is deur hul MAC -adres, wat altyd konstant is. Ons wil die toestelle kies wat ons omgee oor, die grondstasie -rekenaar en ingebedde stelsel, en voeg dit by die gereserveerde kliëntgedeelte. Dit gee hulle 'n statiese IP wanneer hulle aan hierdie router gekoppel is.

Maak seker dat u die IP van die ingebedde stelsel op 192.168.1.122 stel. Die grondstasie se IP kan op enigiets gestel word.

Stap 6: Laai kode op na Arduino

Laai kode op na Arduino
Laai kode op na Arduino

Om die arduino -kode op te laai, moet ons eers 'n biblioteek installeer om met die motorskerm te werk.

Gaan op u Arduino IDE na Sketch-> Include Library-> Manage Libraries … Soek dan na Adafruit Motor Shield Library. Installeer hierdie biblioteek en laai die kode op na u arduino; niks anders hoef nodig te wees nie.

Stap 7: Koppel stroombane en rekenaar aan die motor

Koppel kring en rekenaar aan motor
Koppel kring en rekenaar aan motor

Noudat die kring gebou is, is dit tyd om alles op die motor te plaas. Ek gaan nie lieg nie, baie dinge word net met band vasgehou, want dit was die maklikste manier om vinnig saam te klap. Dit gesê, daar is montagegate aangebring soos in die prent hierbo gesien.

Die meeste dinge is redelik maklik om net iewers bo -op die motor te laat sit, dus moenie bekommerd wees as daar nie baie ruimte is nie.

Stap 8: Stel VR -omgewing op

Stel VR -omgewing op
Stel VR -omgewing op

Hierdie afdeling gaan 'n bietjie anders lyk, afhangende van die soort VR -opstelling wat u aan die gang het. Hoe dit ook al sy, ek het SteamVR gebruik om hierdie sagteware te ontwikkel, sodat u dit moontlik moet installeer.

Solank u SteamVR gebruik, moet die kontroles by verskillende beheerders aanpas. Ek het die kontroles gekies na "Aksies", nie noodwendig knoppies nie, so in teorie sal dit vir almal pas.

U hoef net die lêer met die build Unity -wêreld af te laai en uit te pak en gereed te wees om die VR_Bot.exe uit te voer.

Stap 9: Begin alles saam

Begin dit alles saam
Begin dit alles saam
Begin dit alles saam
Begin dit alles saam

Dus, noudat ons die motor opgestel het en die grondstasie gereed is om te begin, hoe bestuur ons hierdie slegte seun nou eintlik? Vanuit die oogpunt van die grondstasie, al wat u hoef te doen is om die VR_Bot.exe -lêer te gebruik wat ons vroeër gesien het.

Terselfdertyd moet u die battery by die ingebedde stelsel aansluit en dit outomaties oplaai en aan u router koppel. Sodra dit opgestart is, SSH daarin. Om toegang te verkry, benodig u 'n soort terminale op die grondstasie, ek beveel GitBash aan.

SSH staan vir Secure Shell en dit is 'n protokol om veilig toegang tot afgeleë stelsels te verkry. In ons geval gee dit ons toegang tot die ingebedde stelsel vanaf die grondstasie. Klik hier om meer te wete te kom.

U moet die gebruikersnaam ken waarmee u u ingebedde stelsel opgestel het. Vir framboos pi's is die standaard gebruikersnaam 'pi' en wagwoord 'framboos'.

Sodra dit geïnstalleer is, maak u 'n terminale oop en tik die volgende in:

ssh {Ingebedde stelsel se gebruikersnaam}@192.168.1.122

Dit sal 'n terminaal in die ingebedde stelsel oopmaak.

As u daar is, hoef u net die python -script wat ons vroeër gekopieer het, uit te voer.

python /path/to/pushArucoVideoPullCommands.py

Nadat u dit gedoen het, begin die ingebedde stelsel beelde uitpomp en opdragte na en van die grondstasie ontvang.

Dan is u goed om te begin ry en pret te hê!

Aanbeveel: