Turinys:

„Pasidaryk pats“skaitmeninė patirtis be kūno: 6 žingsniai
„Pasidaryk pats“skaitmeninė patirtis be kūno: 6 žingsniai

Video: „Pasidaryk pats“skaitmeninė patirtis be kūno: 6 žingsniai

Video: „Pasidaryk pats“skaitmeninė patirtis be kūno: 6 žingsniai
Video: Tesla Franz Von Holzhausen Keynote Address 2017 Audio Only W / Subs 2024, Lapkritis
Anonim
„Pasidaryk pats“skaitmeninė patirtis be kūno
„Pasidaryk pats“skaitmeninė patirtis be kūno

Šioje pamokoje sužinosite, kaip sukurti sistemą, leidžiančią matyti taip, tarsi būtumėte kažkur kitur. Pavadinau šį skaitmeninį vaizdą iš kūno patirties, nes pirmą kartą apie šią sistemą pagalvojau, kai praktikavau jogą ir pagalvojau, kad būtų labai įdomu praktikuoti save, matant 3D vaizdą, kaip kai kuriuose vaizdo žaidimuose. Galų gale aš taip pat pagalvojau, kad tai gali būti įdomus prietaisas apmąstyti save, stebint save iš šalies, kaip priemonė, padedanti man atsiriboti ir tiesiog stebėti savo mintis, emocijas ir jausmus. Tačiau pradedantysis jogas ir medituojantis manyje nebuvo tinkami žmonės, kurie mane sužavėjo šiuo projektu. Galų gale aš esu žaidėjas/žaidėjas, kuris manė, kad šis projektas būtų puikus žingsnis kuriant mobilųjį robotą, valdomą per pirmojo asmens vaizdą, kad būtų galima surengti tam tikras mobiliojo roboto pirmojo žvilgsnio lenktynes!

1 žingsnis: reikalingi dalykai

Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
  1. 2x „Raspberry Pi 3 B“modelis, kiekvienas su fotoaparatu ir kabeliu (15 cm ir 30 cm)
  2. Akumuliatoriaus skydas, 2 baterijos ir USB prie 2xmini-USB kabelis, skirtas prijungti prie „Raspberry“(aš naudoju dvigubą 10650 akumuliatoriaus skydą su USB išvestimi, 2xLiitoKala Lii-35A 18650 baterijas ir šį laidą)
  3. 240x140x5 mm MDF medienos gabalas (arba bet kuri kita mediena, suderinama su lazeriniu pjaustytuvu)
  4. Prieiga prie lazerio pjaustytuvo
  5. M2 varžtai ir varžtai
  6. Kompiuteris su python
  7. Išmanusis telefonas su chromu
  8. „Google“kartonas ar bet kuri sistema, leidžianti jums naudotis VR patirtimi iš jūsų telefono (aš gavau „Ednet Virtual Reality Brille“, suderinamą su telefonu, kurio matmenys yra iki 159,2 mm x 75,2 mm nuo to, ką perskaičiau)

2 veiksmas: priverskite „Rapsberry Pi“užfiksuoti tiesioginį vaizdo įrašą ir jį bendrinti

Pirmiausia įsitikinkime, kad mūsų Pi kamera prijungta prie aviečių Pi. Padaryta ? Tai buvo šio žingsnio techninė dalis. Tęskime programinės įrangos dalį.

Kalbant apie programinę įrangą, jei esate mano atveju ir jūsų PI nėra įdiegta OS ir kad neturite jokios atsarginės klaviatūros, pelės ir ekrano, atsisiųskime čia raspbian lite ir atlikime paprastus veiksmus, aprašytus čia: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Jei viskas pavyko gerai, jūsų Pi dabar prijungtas prie jūsų WIFI, jūs žinote jo IP adresą ir esate prisijungę prie jo per ssh.

Naudodamiesi ssh, leiskite „Pi“pasidalyti tuo, ką mato. Tam mes naudojame UV4L. Norėdami tai padaryti, atlikite veiksmus šiame tinklalapyje: https://raspberry-valley.azurewebsites.net/UV4L/. Jei baigsite UV4L sąranką, kaip aprašyta nuorodoje, dabar turėtumėte galėti peržiūrėti tiesioginį savo aviečių vaizdo įrašą savo kompiuteryje. Norėdami tai padaryti, tiesiog eikite į savo naršyklę adresu https:// raspberryip: 8080/stream, pakeisdami „raspberryip“į raspberry pi, kurį radote per lanScan, IP.

Dabar tai vienai iš mūsų dviejų „akių“. Ką apie kitą? Arba kartojame tą patį procesą, arba klonuojame tai, kas yra mūsų aviečių pi, į kitą SD kortelę. Norėdami sužinoti daugiau apie antrąją parinktį, galite patikrinti šį „github“:

Ir štai dabar jūs turėtumėte, kad jūsų du avietiniai pi dalintųsi tiesioginiu vaizdo srautu vietiniame tinkle! Mes dirbome, dabar išspręskime šią mažą strabismo problemą ir padarykime savo mažą sistemą nešiojamą!

3 žingsnis: padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite

Padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite
Padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite
Padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite
Padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite
Padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite
Padarykite jį nešiojamą: pjaustykite lazeriu ir pritvirtinkite

Kad fotoaparatų sistema būtų nešiojama, suprojektavau medinę konstrukciją, ant kurios galiu užsukti avietinį Pis fotoaparatą ir akumuliatoriaus skydą. Sukurtas čia pridedamas kaip svg failas. Priklausomai nuo jūsų skydo ir (arba) dizaino, priklausomai nuo jūsų medienos storio, gali tekti keisti akumuliatoriaus skydo varžtų padėtį.

Kai viską supjaustysite:

  1. Sumontuokite fotoaparatus kairėje konstrukcijos dalyje (8 M2 varžtai 5 mm, 8 M2 varžtai 8 mm ir 8 varžtai 8 mm)
  2. Sumontuokite akumuliatoriaus skydą (4 M2 varžtai 5 mm, 4 M2 varžtai 8 mm ir 4 varžtai 8 mm)
  3. Sumontuokite aviečių pi „spiečius“, kaip parodyta aukščiau esančiame paveikslėlyje (4 M2 varžtai 5 mm, 4 M2 varžtai 8 mm, 4 varžtai 5 mm ar daugiau, 4 21 mm varžtai). Pastaba: Aš neturėjau 21 mm varžtų, todėl aš juos padariau su 16 varžtų ir 5 varžtais.

Įspėjimas: čia apibrėžtus varžtų ilgius galima keisti, tik įsitikinkite, kad atstumas tarp aviečių Pis yra pakankamai didelis, kad nesusidarytų trumpasis jungimas …

Įkraukite ličio baterijas naudodami akumuliatoriaus skydo mini-USB jungtį ir sumontuokite medinę dalį, kaip parodyta aukščiau esančiame paveikslėlyje. Esate pasiruošę prijungti akumuliatoriaus skydą prie aviečių! Ir nebereikia nieko daryti, kai tik įjungiame „aviečių pi“, jis dabar pasidalija vaizdo įrašų srautu internete, kai tik prasideda UV4L dėka. Perdavimas baigtas!

4 žingsnis: vizualizuokite stereofoninį vaizdą

Vizualizuokite stereofoninį vaizdą
Vizualizuokite stereofoninį vaizdą

Dabar turime du vaizdų srautus, kuriuos galima pasiekti per vietinį tinklą. Pamatėme, kad galime juos peržiūrėti atskirai, naudodami naršyklės adresą https:// raspberryip {1, 2}/stream/. Ar galime pabandyti savo naršyklėje atidaryti du puslapius? Ne, neturėsime! 1. Tai būtų per daug negražu, nes tai 2. neveiks, nes ekranas po tam tikro laiko užmigs! Šis žingsnis parodys, kaip išspręsti šias problemas.

Pirmiausia pažiūrėkime, kas slypi už anksčiau naudoto adreso. Jei patikrinsite atidaryto puslapio html kodą, pamatysite, kad puslapyje rodomą srautą sudaro

žymą su šaltiniu, apibrėžtu kaip https://raspberryip/stream/video.mjpeg. Dėl to paskutinis žingsnis gali būti gana paprastas. Vienas iš būdų galėtų būti programuoti „Android“programą su dviem žiniatinklio peržiūromis, kad būtų rodomas vaizdo srautas, daug paprasčiau yra paleisti vietinį serverį mūsų kompiuteryje, kuris pateiks html puslapį, panašų į „https:// raspberryip/stream/“, išskyrus kad tai leis peržiūrėti ne vieną, o abu srautus ir neužmigdyti įrenginio.

Kaip sukurti tokį serverį? Su python nieko nėra paprasčiau. Sukurkite aplanką, į kurį įdėsite failus index.txt ir NoSleep.txt, kuriuos pervardysite kaip index.html ir NoSleep.js. „Index.html“ieškokite šių dviejų

žymes ir pakeiskite aviečių ips savo. Tai bus html puslapis, kuriame bus rodomi du vaizdų srautai su „JavaScript“, leidžiančiu jam budėti. Dabar norite, kad šis puslapis būtų pasiekiamas jūsų mobiliajame telefone, kur „python“yra patogus: įdėkite failą server.py į tą patį aplanką ir paleiskite scenarijų naudodami komandą python server.py (Atminkite, kad šis scenarijus suderinamas su „python 3“, jei naudojate python 2, turėsite redaguoti server.py ir pakeisti socketserver į SocketServer).

Štai ir jūs galite pasiekti stereo srautą iš bet kurio įrenginio, kurio naršyklė prijungta prie jūsų vietinio tinklo. Išbandykite, gaukite kompiuterio IP ir atidarykite https:// computerip: 8080. Tikriausiai galite pastebėti tris dalykus:

  • Puiku, kad mes beveik ten!
  • Tai nėra viso ekrano režimu,
  • Galų gale eina miegoti.

Kaip tai ? Kaip galite perskaityti čia, norint įjungti miego režimą, reikia atlikti netikrą veiksmą. Siekdamas atsižvelgti į šią būtinybę, aš susiejau paspaudimą ant pirmojo paveikslėlio su šia funkcija. Dėl to tiesiog spustelėkite pirmąjį vaizdą ir turėtumėte pamatyti įspėjimą, kuriame sakoma, kad neaktyvinamas miegas, o puslapis taip pat turėtų būti rodomas viso ekrano režimu.

Viskas! Dabar turėtumėte turėti galimybę įdėti telefoną į savo VR ausines ir pamatyti, kas vyksta prieš jūsų „Pi“! Arba tai yra?

5 žingsnis: sklandžiai atlikite darbus

Tiesą sakant, jei jūsų „Pi“ir tinklas yra panašūs į mano, tai, ką matote laisvų rankų įrangoje, gali būti šiek tiek nepatogu, nes gali kilti rimtų vėlavimų. Taigi, norėdami užbaigti sklandžią sistemą, išspręskime šią paskutinę problemą. Kaip išspręsti uždelsimą? Aš tiesiog spėjau, kad problema gali kilti dėl „Pi“suspaudimo realiuoju laiku, kuris yra pernelyg intensyvus skaičiavimo požiūriu, arba dėl belaidžio ryšio, kuriuo abejočiau. Bet kokiu atveju, norėdami tai išspręsti, galite padaryti labai paprastą dalyką - sumažinti skiriamąją gebą ir bitų spartą, kuria jūsų vaizdai gaunami ir užkoduoti „Pi“.

Norėdami pakeisti šiuos parametrus, grįžkite į savo terminalą ir prisijunkite prie „Raspberry Pi“. UV4L naudoja konfigūracijos failą. Šis failas yra /etc/uv4l/uv4l-raspicam.conf. Norėdami jį redaguoti, įveskite komandą sudo nano /etc/uv4l/uv4l-raspicam.conf. Dabar galėsite nustatyti norimą plotį, aukštį ir kiekybinį nustatymą. Aš naudojau reikšmes plotis = 320, aukštis = 240 ir kvantavimas = 40 ir gavau sklandų perdavimą.

6 žingsnis: mėgaukitės

Vienintelis dalykas, kurį dabar reikia padaryti, yra sukurti sistemą, kurioje norite, įdėkite telefoną į kartoną ir atlikite jogos užsiėmimus, meditaciją, alaus pongą su draugais ar bet ką! Jums gali prireikti šiek tiek laiko (1 ar 2 minutės), kad priprastumėte prie fotoaparato krypties. Vienas iš būdų greitai priprasti - pirmiausia sutelkti dėmesį į šalia esančius objektus, o tada pereiti prie tolimesnių.

Pagalvojau apie kelis plėtinius, kurie galėtų būti įdomūs:

  • kad būtų galima matyti ne savo namuose, tai yra, kad srautas būtų pasiekiamas iš išorinio tinklo.
  • padėkite jį ant mobiliosios robotų platformos, kad atliktumėte dronų lenktynes!

Kaip mokytojas, manau, kad šis projektas gali būti įdomus sužinoti daugiau apie:

  • „Raspberry Pi“, kokie yra pagrindiniai kompiuterio komponentai, kas yra OS sistema,
  • Bendrosios tinklo koncepcijos su vietiniu ir išoriniu IP, HTTP protokolu,
  • HTML ir javascript.

Tikiuosi, kad šis pamokymas, kuris buvo mano pirmasis, yra pakankamai aiškus ir nėra per sunkus skaitymui.

Rekomenduojamas: