Съдържание:
- Стъпка 1: Неща, от които се нуждаете
- Стъпка 2: Накарайте Rapsberry Pi да заснеме видео на живо и да го сподели
- Стъпка 3: Направете го преносим: Лазерно изрязване и монтиране
- Стъпка 4: Визуализирайте стерео изображението
- Стъпка 5: Изгладете нещата
- Стъпка 6: Насладете се
Видео: DIY Digital Out of Body Experience: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
В този урок ще научите как да изградите система, която ви позволява да виждате сякаш сте някъде другаде. Нарекох този дигитален опит извън тялото, защото за първи път се сетих за тази система, когато практикувах йога и си помислих, че би било много интересно да се упражнявам, докато се виждам с 3D изглед на човек, както в някои видео игри. В крайна сметка също си помислих, че може да бъде интересно устройство за медитация върху не-аз, наблюдавайки себе си отвън, като инструмент, който да ми помогне да се отдалеча и просто да наблюдавам мислите, емоциите и чувствата си. Но начинаещият йогин и медитиращият в мен не бяха правилните хора, които да ме увлекат с този проект. В крайна сметка аз съм геймърът/играчът, който мислех, че този проект би бил хубава постепенна стъпка към изграждането на мобилен робот, контролиран чрез изглед от първо лице, за да направя някакъв вид състезания от пръв поглед на мобилен робот!
Стъпка 1: Неща, от които се нуждаете
- 2xRaspberry Pi 3 модел B, всеки оборудван с камера и кабел с размери (15 см и 30 см)
- Екран на батерията, 2 батерии и usb към 2xmini-USB кабел за свързване към Raspberry's (използвах двоен щит за батерии 10650 с USB изход, 2xLiitoKala Lii-35A 18650 батерии и този кабел)
- 240x140x5mm парче MDF дърво (или всяко друго дърво, съвместимо с лазерен нож)
- Достъп до лазерен уред
- M2 винтове и болтове
- Компютър с python
- Смартфон с хром
- Картон на Google или която и да е система, която ви позволява да получите VR опит от телефона си (имам ednet Virtual Reality Brille, която е съвместима с телефон с размери до 159,2 мм х 75,2 мм от това, което прочетох)
Стъпка 2: Накарайте Rapsberry Pi да заснеме видео на живо и да го сподели
Първо нека се уверим, че нашата Pi камера е включена към малиновия Pi. Свършен ? Това беше хардуерната част за тази стъпка. Нека продължим със софтуерната част.
Що се отнася до софтуера, ако сте в моя случай и нямате инсталирана операционна система на вашия PI и нямате резервна клавиатура, мишка и екран, тогава нека изтеглим raspbian lite тук и следваме простите стъпки, описани тук: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Ако всичко вървеше добре, вашият Pi вече е свързан с вашия WIFI, знаете неговия ip адрес и сте свързани с него чрез ssh.
Използвайки ssh, нека накараме Pi да сподели това, което гледа. За това ще използваме UV4L. За това следвайте стъпките на следната уеб страница: https://raspberry-valley.azurewebsites.net/UV4L/. Ако сте приключили с настройката на UV4L, както е описано в линка, сега би трябвало да можете да гледате видеото на живо на вашата малина на вашия компютър. За целта просто отидете в браузъра си на адрес https:// raspberryip: 8080/stream, като замените „raspberryip“с ip на малиновото пи, което сте намерили чрез lanScan.
Сега това е всичко за едно от двете ни „очи“. Ами другото? Или повтаряме същия процес, или клонираме това, което е на нашия малинов пи, към друга SD карта. За да научите повече за втората опция, можете да проверите този github:
И така, сега трябва да имате вашите два малинови пи, споделящи своя видео поток на живо в локалната мрежа! Получихме работа, сега нека разрешим този малък проблем със страбизма и нека направим нашата малка система преносима!
Стъпка 3: Направете го преносим: Лазерно изрязване и монтиране
За да направя системата на камерата преносима, проектирах дървена конструкция, върху която мога да завинтвам малиновите пис камерите и щита на батерията. Проектираният е прикачен тук като svg файл. Може да се наложи да промените позициите на винтовете за щита на батерията в зависимост от щита и/или дизайна в зависимост от дебелината на дървото.
След като изрежете всичко:
- Монтирайте камерите в лявата част на дизайна (8 M2 винта от 5 mm, 8 M2 винта от 8 mm и 8 болта от 8 mm)
- Монтирайте щита на батерията (4 M2 винта от 5 mm, 4 M2 винта от 8 mm и 4 болта от 8 mm)
- Монтирайте малиновия пи "клъстер", както е показано на снимката по-горе (4 M2 винта от 5 mm, 4 M2 винта от 8 mm, 4 мъжки болта с 5 мм или повече, 4 21 мм болта). Забележка: Нямах 21 мм болтове, затова направих моите с 16 болта и 5 болта с женски и мъжки болтове.
Внимание: дължините на болтовете, дефинирани тук, могат да се променят, единственото нещо е просто да се уверите, че разстоянието между малиновия Pis е достатъчно голямо, за да не възникне късо съединение …
Заредете литиевите си батерии с помощта на mini-usb конектора на щита за батерии и монтирайте дървеното парче заедно, както е показано на снимката по-горе. Готови сте да свържете щита на батерията си с малините! И не се изисква повече ssh-ing, веднага щом включим малиновото пи, сега той споделя видео потока онлайн веднага щом започне благодарение на UV4L. Предаването свърши!
Стъпка 4: Визуализирайте стерео изображението
Сега имаме два потока изображения, които са достъпни чрез локалната мрежа, видяхме, че можем да ги преглеждаме поотделно, като използваме адреса https:// raspberryip {1, 2}/stream/в браузър. Можем ли да опитаме да отворим две страници в браузъра си? Не, няма да го направим! 1. Това би било твърде грозно хайде 2. това няма да работи, тъй като дисплеят ще заспи след известно време! Тази стъпка ще ви покаже как да решите тези проблеми.
Първо нека видим какво стои зад адреса, използван преди. Ако проверите html кода на отворената страница, ще видите, че потокът, показан на страницата, се състои от
етикет с източник, определен като https://raspberryip/stream/video.mjpeg. В резултат на това последната стъпка може да бъде съвсем проста. Един от начините може да бъде да програмирате андроид приложение с две Webviews за показване на потока от изображения, много по -опростен е да стартирате локален сървър на нашия компютър, който ще обслужва html страница, подобна на „https:// raspberryip/stream/“, с изключение на че ще ви позволи да видите двата потока вместо един и да поддържате устройството будно.
Как да настроим такъв сървър? Нищо по -просто с python. Създайте папка, в която поставяте файловете index.txt и NoSleep.txt, които ще преименувате на index.html и NoSleep.js. В index.html потърсете двете
тагове и заменете малиновите ips с вашите. Това ще бъде html страницата, която показва двата ни потока от изображения с javascript, което му позволява да остане буден. Сега искате да направите тази страница достъпна за мобилния си телефон, където python е удобен: поставете файла server.py в същата папка и стартирайте скрипта, като използвате командата python server.py (Обърнете внимание, че този скрипт е съвместим с python 3, ако използвате python 2, ще трябва да редактирате server.py и да замените socketserver от SocketServer).
Това е всичко, което можете да получите достъп до стерео потока от всяко устройство с браузър, свързан към вашата локална мрежа. Изпробвайте, вземете ip на компютъра си и отворете https:// computerip: 8080. Вероятно можете да забележите три неща:
- Страхотно е, че сме почти там!
- Няма го на цял екран,
- Накрая заспива.
Как така ? Както можете да прочетете тук, функцията за активиране на режим без заспиване се нуждае от измислено действие, за да бъде извикана. За да уважа тази необходимост, свързах щракване върху първото изображение към тази функция. В резултат на това просто щракнете върху първото изображение и трябва да видите предупреждение, което ви казва, че режимът на безсъние е активиран и страницата също трябва да е на цял екран.
Това е! Вече би трябвало да можете да поставите телефона си във вашата VR слушалка и да видите какво се случва пред вашите Pi! Или това е?
Стъпка 5: Изгладете нещата
Всъщност, ако вашите Pi и мрежата са подобни на моите, това, което виждате в слушалките си, може да е малко неудобно, тъй като може да има силни забавяния. Така че, за да завършим с гладка система, нека разрешим този последен проблем. Как да разрешим забавянето? Просто предположих, че проблемът може да дойде или от компресирането в реално време от Pi, което е твърде изчислително интензивно, или от безжичната връзка, в която бих се усъмнил. Както и да е, за да го разрешите, можете да направите нещо много просто, което е да намалите разделителната способност и битрейта, с които вашите изображения се придобиват и кодират на Pi.
За да промените тези параметри, върнете се към терминала си и влезте в своя Raspberry Pi. UV4L използва конфигурационен файл. Този файл е /etc/uv4l/uv4l-raspicam.conf. За да го редактирате, въведете командата sudo nano /etc/uv4l/uv4l-raspicam.conf. Сега ще можете да зададете ширината, височината и количественото определяне, както желаете. Използвах стойностите width = 320, height = 240 и quantisation = 40 и получих гладко предаване с тях.
Стъпка 6: Насладете се
Единственото нещо, което остава да направите сега, е да настроите системата там, където искате да бъде, да поставите телефона си в картона си и да правите йога сесия, медитация, бирен понг с приятелите си или каквото и да било! Може да ви трябва известно време (1 или 2 минути), за да свикнете с посоката на камерата, която отначало ще се почувства, сякаш изведнъж имате проблем със страбизъм. Един от начините да свикна бързо с това е първо да се фокусирам върху близки обекти и след това да премина към други.
Сетих се за няколко разширения, които биха могли да бъдат интересни:
- направете възможно да виждате извън дома си, тоест направете потока достъпен извън вашата локална мрежа.
- поставете го на мобилна роботизирана платформа, за да правите състезания с дронове!
Като учител мисля, че този проект може да бъде интересен, за да научите повече за:
- Raspberry Pi, какви са основните компоненти на компютъра, какво е OS система,
- Общи мрежови концепции, с локален и външен IP, HTTP протокол,
- HTML и javascript.
Надявам се, че тази инструкция, която беше първата ми, е достатъчно ясна, без да е твърде тежка за четене.
Препоръчано:
Guitar Looper Fade Out и Tremolo безплатно!: 5 стъпки (със снимки)
Guitar Looper Fade Out и Tremolo … безплатно!: Някога, когато електрическата китара трябваше да звучи като китара и всяко отклонение се наричаше нежелано изкривяване, нямаше никакви китарни ефекти, освен … твоят приятел и потенциометъра, работейки заедно! Практически докато играете, вашият
DIY Digital Spirit Level: 5 стъпки (със снимки)
DIY Digital Spirit Level: В този проект ще разгледаме по -отблизо микросхемите на акселерометъра и ще разберем как можем да ги използваме с Arduino. След това ще комбинираме такава интегрална схема с няколко допълнителни компонента и 3D отпечатан корпус, за да създадем цифров
BEND_it: Не стресирайте само „BEND_it“Out: 8 стъпки (със снимки)
BEND_it: Не стресирайте само „BEND_it“Out: INTRODUCTIONBEND_it е малка машина за бързо тестване. Той е доста добър в огъването и счупването на нещата. Понякога може да бъде полезно. Това би могло да помогне на човек да извлече информация като: Хоризонтална сила на тяга поради извиване
Rock Buggy Body за RedCat Gen7: 9 стъпки (със снимки)
Rock Buggy Body за RedCat Gen7: Inspiration3D Печатните аксесоари и дори цели тела са много популярни сред RC общността, особено в жанра RC Crawlers. Аз и другите пуснахме всякакви безплатни проекти, но това, което не е чуто, е производителите да пуснат
Fake-Out на Windows Paint: 4 стъпки
Windows Paint Fake-Out: Това е как да фалшифицирате хора с помощта на Microsoft Paint и бутона „Print Screen“на клавиатурата. (За съжаление, потребители на Mac!)