Mundarija:
- 1 -qadam: Hammasi qanday ishlaydi: Dizayn tanlovi tushuntirilgan
- 2 -qadam: Qismlar - miya: Mikrokontroller va ekran
- 3 -qadam: qismlar - optika: murosaga kelish
- 4 -qadam: qismlar - barchasini ushlab turadigan konteyner
- 5 -qadam: Modulimiz uchun protokol yaratish
- 6 -qadam: Kod: ESP32 tomoni
- 7 -qadam: Kod: Android tomoni
- 8 -qadam: Keyin nima bo'ladi?
- 9 -qadam: Xulosa va alohida rahmat
Video: Smart mototsikl HUD prototipi (navbatma-navbat navigatsiya va boshqalar): 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Salom!
Bu ko'rsatma-men mototsikl dubulg'alariga o'rnatiladigan HUD (Heads-Up Display) platformasini qanday yaratganim va qurganim haqidagi hikoya. Bu "xaritalar" tanlovi kontekstida yozilgan. Afsuski, men bu loyihani tanlov muddati tugagunga qadar to'liq tugatolmadim, lekin men baribir o'z yutuqlarim bilan bo'lishishni, shuningdek, barcha sinov va xatolarni hujjatlashtirishni xohlardim.
Bu loyiha g'oyasi menga birinchi marta bir necha yil oldin, men mototsiklga o'tirganimda kelgan edi va men sayohatlarimni yanada zavqliroq qilish uchun qanday jihozlarni sotib olishni o'ylay boshladim. O'sha paytda, haydash paytida GPS -navigatsiyasini olishning eng yaxshi usuli - bu smartfonni velosipedingizning rulda -ruchkasiga ulash edi. O'ylaymanki, bunday ma'lumotni tezda olishning yaxshiroq yo'li bo'lishi mumkin.
Menga shunday bo'ldi: boshi baland ovozli displey, minish paytida, telefoningizning batareyasini bo'shatmasdan va elementlarga ta'sir qilmasdan navigatsiya qilishning yo'li bo'lishi mumkin.
Vaqt o'tishi bilan, bu fikr xayolimda vujudga keldi va menimcha, har doim oldimda HUD bo'lishi oddiy navigatsiyadan ko'ra ko'proq foydalanish imkonini beradi. Shuning uchun mening rejam platformani hammaga ochiq va modulli qilishdir, shuning uchun har kim o'z ma'lumotlarini HUD -da ko'rsatadigan modul yaratishi mumkin.
Bu vazifani bajaradigan tijorat mahsulotlari mavjud bo'lsa -da, mening platformam kabi modulli mahsulotlar yo'q va ular ham biroz qimmatga tushadi. Qanday bo'lmasin, ushbu loyihaga xush kelibsiz.
Hozircha nima ishlaydi
Yuqorida aytib o'tilganidek, bu loyiha hali ham juda rivojlangan va hozirda bu ishlamoqda.
- Smartfon va ESP32 asosidagi karta o'rtasidagi aloqa (telefon hushyor)
- Optika dizayni tugallandi (uzoq muddatda kichik o'zgarishlar kerak bo'lishi mumkin)
- Mapbox navigatsiya SDK yordamida Android navigatsiya ilovasi:
- xaritada foydalanuvchining pozitsiyasini, shuningdek undan manzilga boradigan yo'lni hisoblash va ko'rsatish imkoniyati
- Bluetooth qurilmasiga ulanish imkoniyati (qurilmaning MAC manzili hozircha qattiq kodlangan)
Haqiqiy vaqtda navigatsiya qilish, shu jumladan ketma -ket Bluetooth orqali manevr haqidagi ma'lumotlarni olish va yuborish (hozircha faqat burilishni qo'llab -quvvatlaydi).
Ishga nima kerak
Bu ro'yxatda HUDdan foydalanish uchun mutlaqo zarur bo'lgan, lekin hali bajarishga tayyor bo'lmagan narsalar mavjud.
- Umumiy dizayn (dubulg'a biriktirgichi, reflektorning burchakni sozlash mexanizmi,..)
- Android ilovasi:
- marshrutdan tashqari aniqlash va tuzatishni amalga oshirish
- Foydalanuvchining manzil manzilini kiritish qobiliyati
- Yo'nalish nuqtalari?
- Ergonomika / Estetika
Ta'minot:
Essentials
- esp32 asosidagi ishlab chiqish paneli
- Har qanday Android smartfoni (Bluetooth yoqilgan)
- SSD1306 yoki boshqa 96 dyuymli OLED ekran (meniki 128x64 piksel edi, "Miya: Mikrokontroller va ekran" bo'limiga qarang)
- Reflektor (har qanday akril/shisha/pleksiglas bo'lagi bajaradi)
- Fresnel linzalari (meniki 13 sm uzunlikda edi, "Ob'ektiv tanlash" bo'limiga qarang)
Asboblar
- Lehimlash temir
- Non paneli
- Bir nechta o'tish kabellari
- 3d printer / 3d bosib chiqarish xizmati
1 -qadam: Hammasi qanday ishlaydi: Dizayn tanlovi tushuntirilgan
"Heads Up Display" ning asosiy g'oyasi - bu kimningdir ko'z oldida tasvirni ko'rsatishdir, shuning uchun ular qilayotgan ishlaridan (masalan, samolyotni boshqarish yoki mototsikl haydashdan) chetga qaramasliklari kerak. misol misoli).
Optika
Texnik jihatdan, bunga to'g'ridan -to'g'ri foydalanuvchining ko'zlari oldida ekran qo'yish orqali erishish mumkin. Biroq, ekran shaffof emas, shuning uchun uning foydalanuvchining ko'rish qobiliyatiga to'sqinlik qiladi. Siz ekranni aks ettiruvchi yuzaning oldiga qo'yishingiz mumkin, bu ekranning mazmunini aks ettiradi, shu bilan birga, foydalanuvchi uning oldida turganini ko'ra oladi.
Biroq, bu yondashuvning katta kamchiliklari bor: haqiqiy ekran, odatda, foydalanuvchi e'tiborini qaratishi kerak bo'lgan narsalarga qaraganda (masalan, uning oldidagi yo'l) yaqinroq bo'ladi. Bu shuni anglatadiki, aks etuvchi yuzada nima borligini o'qish uchun, foydalanuvchining ko'zlari displeyning ko'zidan (masalan, 20 sm) masofasiga moslashishi kerak, keyin esa oldinga boradigan yo'lga diqqatni jamlash uchun yana moslashishi kerak bo'ladi. (~ 2/5 metr). Bu butun operatsiyani bajaradigan vaqt - bu yo'lni qidirishga sarflanadigan qimmatli vaqt, va tez -tez moslashish bir necha daqiqadan so'ng foydalanuvchiga noqulay bo'lishi mumkin.
Shuning uchun men ekran va reflektor o'rtasida linzalarni qo'shishga qaror qildim. Agar bu linzalar ehtiyotkorlik bilan tanlansa, ekranning virtual tasvirini yaratishga ruxsat berishi kerak (yuqoridagi sxemaga qarang), bu esa foydalanuvchining ko'zidan uzoqroq bo'lib ko'rinadi, shuning uchun kamroq keskin moslashishni talab qiladi (yoki umuman yo'q, mukammal stsenariyda). Ushbu dizayn foydalanuvchiga reflektorga tez ko'z bilan qarash, kerakli ma'lumotlarni olish va bir zumda yo'lga orqaga qarash imkonini beradi.
Smartfonning roli
Faqat ESP32 -da butun navigatsiya dasturini sinab ko'rish va amalga oshirish haqiqiy emas edi, shuning uchun men bu haqda g'amxo'rlik qiladigan android ilovasini yaratishga qaror qildim. Keyin dastur faqat ESP32 -ga foydalanuvchining o'z manziliga etib borishi uchun nima qilishi kerakligini aytishi kerak va ESP32 bu ma'lumotni HUD orqali uzatadi ("Modul qanday ishlaydi" rasmiga qarang).
2 -qadam: Qismlar - miya: Mikrokontroller va ekran
Yuqorida aytib o'tilganidek, men o'z modulimda navigatsiya ma'lumotlarini ko'rsatishni rejalashtirganman, lekin u aniq joylashishni, kuzatishni va real vaqtda navigatsiyani hisoblamagan. foydalanuvchining telefoni modul bilan aloqa o'rnatadi va ma'lumotlarni HUDda ko'rsatish uchun yuboradi.
Foydalanuvchi telefoni va modul o'rtasidagi aloqani osonlashtirish uchun men ushbu loyiha uchun ESP32 asosidagi taxtadan foydalanishni tanladim. Bu tanlov Bluetooth xususiyatlariga ega bo'lgan o'ziga xos modul va boshqa bir qancha qiziqarli texnik xususiyatlar bilan bog'liq edi (uchuvchan bo'lmagan xotira, ikki yadroli protsessor, OLED-displeyni I2C orqali ishlatish uchun etarli RAM, …). Men hisobga olgan ESP32 atrofida PCBlarni loyihalash juda oddiy. Menda ESP32 sxemalarini ishlatish va loyihalash bo'yicha professional tajribam bor, bu albatta tanlovimga ta'sir qildi.
Ekranni tanlash men topgan narsaga to'g'ri keldi, lekin men uni ishlatish uchun etarlicha ravshan bo'lardim, lekin iloji boricha kichkina bo'lardim. Men ekranning piksellar sonidan juda xavotirlanmadim, chunki mening maqsadim juda minimalist va sodda interfeysga ega bo'lish edi.
Shuni ta'kidlash kerakki, ekran drayveri tasvirni aks ettirishga imkon beradigan kutubxona tomonidan qo'llab -quvvatlanishi kerak. Buning sababi shundaki, u tasvirni linzadan o'tayotganda aylantiriladi va reflektorda paydo bo'ladi va ko'rsatiladigan narsani qo'lda teskari aylantirishning hojati yo'q.
3 -qadam: qismlar - optika: murosaga kelish
Bu loyihaning optikasiga yondashish juda qiyin edi, chunki men bu loyihani birinchi boshlaganimda nimani qidirayotganimni bilmasdim. Bir oz tadqiqotdan so'ng, men xohlagan narsam - bu OLED -ekranim "virtual tasvirini" yaratish edi, bu ko'zdan ancha uzoqroq bo'lib tuyuladi. Bu virtual tasvirni yaratish uchun ideal masofa haydovchining qarshisida taxminan 2-5 metrni tashkil qiladi, bu biz harakatlanayotganda diqqatimizni qaratadigan narsalarga (boshqa mashinalar, yo'ldagi to'siqlar va boshqalar) masofadir.).
Bu maqsadga erishish uchun men Fresnel linzasidan foydalanishni tanladim, chunki ular juda katta, arzon, ular mening loyiham uchun etarlicha yaxshi markazlashtirilgan masofani taklif qilganday tuyuldi va ularni oddiy qaychi bilan kesish mumkin (bunday emas) yanada nozik yumaloq shaklli shisha linzalar). Fresnel linzalari "cho'ntak kattalashtiruvchi" yoki "o'qish kartasi kattalashtiruvchi" kabi nomlarni topishi mumkin, chunki ular ko'rish qobiliyati yomon odamlarga o'qishga yordam beradi.
Asosan, bu erda hiyla -nayranglar to'g'ri kelishuvni topish edi:
- Aqlli virtual tasvir masofasiga ega bo'lish (ya'ni, HUD foydalanuvchi uchun qanchalik uzoq ko'rinadi yoki foydalanuvchi HUDda nima borligini ko'rish uchun ko'zlarini qanchalik sozlashi kerak)
- Ekrandagi matnni optikasi juda kattalashtirmasligi (bu asosan kattalashtiruvchi)
- OLED ekrani va optikasi o'rtasida o'rtacha masofaga ega bo'lish, aks holda juda katta modulga olib keladi
Men shaxsan Amazonda bir necha xil linzalarga buyurtma berdim va ularning uzunligi taxminan 13 sm bo'lgan linzalarni tanlashdan oldin ularning fokus uzunligini aniqladim. Men bu F. uzunligini topdim, OLED-linzali masofasi 9 sm, menga reflektorimda qoniqarli tasvirni berdi (yuqoridagi oxirgi rasmlarga qarang).
Mening rasmlarimda ko'rib turganingizdek, ko'rsatiladigan matnga to'g'ri e'tibor qaratish uchun, bu rasmlarni suratga oladigan kamera, xuddi uzoqdagi ob'ektga qaratilgandek, sozlanishi kerak, bu esa hamma narsani reflektor bilan bir tekisda xiralashgan ko'rinadi.. Bu bizning HUD uchun aynan biz xohlagan narsadir.
Ob'ektiv ushlagichi uchun 3d fayllarni bu erda topishingiz mumkin.
4 -qadam: qismlar - barchasini ushlab turadigan konteyner
Men bu ko'rsatmalarni yozayotganimda, displeyning har bir qismini ushlab turadigan konteyner to'liq ishlab chiqilmagan. Menda uning umumiy shakli va ba'zi muammolarga qanday yondashish haqida bir nechta fikrlar bor (masalan, reflektorni qanday ushlab turish va soatiga 100+ km shamolga bardosh berish). Bu hali juda ko'p davom etayotgan ish.
5 -qadam: Modulimiz uchun protokol yaratish
Navigatsiya bo'yicha ko'rsatmalarni telefondan ishlab chiqish kartasiga yuborish uchun men o'zimning aloqa protokolini ishlab chiqishim kerak edi, bu menga telefondan kerakli ma'lumotlarni osonlikcha yuborish imkonini beradi, shu bilan birga qabul qilinganidan keyin uni qayta ishlashni osonlashtiradi.
Ushbu yo'riqnomani yozish paytida, modulda harakat qilish uchun telefondan uzatilishi kerak bo'lgan ma'lumotlar:
- yaqinlashayotgan manevr turi (oddiy burilish, aylanma yo'l, boshqa yo'lga qo'shilish …)
- yaqinlashib kelayotgan manevrning aniq ko'rsatmalari (manevr turiga bog'liq: burilish uchun o'ngga/chapga; aylanma yo'l uchun qaysi chiqish kerak …)
- bo'lajak manevrdan oldin qolgan masofa (hozircha metrda)
Men ushbu ma'lumotlarni quyidagi ramka tuzilmasi yordamida tartibga solishga qaror qildim:
: turi.yo'riqnomalar, masofa;
Chiroyli echim bo'lmasa -da, bu bizga protokolimizning har bir maydonini osongina ajratish va ajratish imkonini beradi, bu esa ESP32 tomonida kodlashni osonlashtirdi.
Shuni yodda tutish kerakki, kelgusidagi funktsiyalar uchun ushbu ma'lumotlarga boshqa ma'lumotlarni qo'shish kerak bo'lishi mumkin (aniq kun va vaqt yoki foydalanuvchining telefonida yangrayotgan musiqa). hozirgi kabi mantiqni qurish.
6 -qadam: Kod: ESP32 tomoni
ESP32 kodi hozir juda oddiy. U U8g2lib kutubxonasidan foydalanadi, bu OLED ekranini oson boshqarish imkonini beradi (ko'rsatilgan tasvirni aks ettirish imkoniyatini beradi).
Asosan, barcha ESP32 - bu Bluetooth orqali ketma -ket ma'lumotlarni qabul qilish, uni ilova yuboradi, tahlil qiladi va ushbu ma'lumotlarga asoslangan ma'lumotlarni yoki rasmlarni ko'rsatadi (ya'ni "chapga/o'ngga burilish" jumlasi o'rniga o'qni ko'rsatish). Mana kod:
/*HUDni android ilovasidan ketma -ket bluetooth orqali boshqarish dasturi*/#"BluetoothSerial.h" ni o'z ichiga oladi // Serial Bluetooth uchun sarlavha fayli, sukut bo'yicha Arduino -ga qo'shiladi#include #include #ifdef U8X8_HAVE_HW_SPI#include#endif# ifdef U8X8_HAVE_HW_I2C #include #endif // OLED kutubxona konstruktori, ekraningizga mos ravishda o'zgartirilishi kerakU8G2_SSD1306_128X64_ALT0_F_HW_I2C u8g2 (U8G2_MIRROR,/* reset =*/U8XE_PIN_) // Davlat mashinasi aniqlangan_foydali qiymatlar + o'zgarmaydigan#manevrani belgilangField 1#ko'rsatmalarni belgilang2 -maydon#masofani belgilangField 3#endOfFrame 4intni aniqlang_fan = endOfFrame; BluetoothSerial serialBT; // Bluetoothchar kiruvchi_char uchun ob'ekt; char manevrasi [10]; char ko'rsatmalari [10]; char masofasi [10]; char tempManeuver [10]; char tempInstructions [10]; char tempDistance [10]; int nbr_char_maneuver = 0; int nbr_char_instructions = 0; int nbr_char_distance = 0; boolean fullsentence = false; void setup () {Serial.begin (9600); // Serial monitorni 9600 boddan ishga tushiring u8g2.begin (); // serialBT.begin ("ESP32_BT") OLED boshqaruvini ishga tushirish; // Bluetooth signalining kechikishining nomi (20); Serial.println ("Bluetooth qurilmasi ulanishga tayyor");} void loop () {if (serialBT.available () &&! Fullsentence) // Bluetooth seriali orqali qabul qilinayotgan belgilar {incoming_char = serialBT.read (); Serial.print ("Qabul qilindi:"); Serial.println (kiruvchi_char); } switch (detect_field) {case manevrField: Serial.println ("Aniqlangan maydon: manevr"); if (incoming_char == '.') // Keyingi maydon aniqlandi {detect_field = ko'rsatmalarField; } else {// Manevr turini to'ldiring axborot qatori manevrasi [nbr_char_maneuver] = incoming_char; nbr_char_maneuver ++; } tanaffus; holatlar bo'yicha ko'rsatmalarField: Serial.println ("Aniqlangan maydon: ko'rsatmalar"); if (incoming_char == ',') // Keyingi maydon aniqlandi {detect_field = distanceField; } else {// Ko'rsatmalar ma'lumotlari qatorini to'ldiring [nbr_char_instructions] = incoming_char; nbr_char_instructions ++; } tanaffus; ish masofasiField: Serial.println ("Aniqlangan maydon: masofa"); if (incoming_char == ';') // Frame oxiri aniqlandi {detect_field = endOfFrame; Serial.print ("manevr:"); Serial.println (manevr); Serial.print ("ko'rsatmalar:"); Serial.println (ko'rsatmalar); Serial.print ("masofa:"); Serial.println (masofa); to'liqlik = haqiqiy; update_Display (); // To'liq kadr qabul qilindi, uni tahlil qiling va qaytariladigan ma'lumotlarni aks ettiring} else {// Masofa ma'lumotlari qatorini to'ldiring [nbr_char_distance] = incoming_char; nbr_char_distance ++; } tanaffus; case endOfFrame: if (incoming_char == ':') detect_field = maneuverField; // Yangi freym aniqlandi; standart: // Hech narsa buzilmasin; } delay (20);} void update_Display () {// Memcpy (tempManeuver, manevr, nbr_char_maneuver) mumkin bo'lmagan to'qnashuvlarning oldini olish uchun har bir char qatorini keshlash; memcpy (tempInstructions, ko'rsatmalar, nbr_char_instructions); memcpy (tempDistance, masofa, nbr_char_distance); parseCache (); // Char massivlarini tahlil qilish va qayta ishlash fullsentence = false; // Hukm qayta ishlandi, keyingisiga tayyor} void parseCache () {u8g2.clearBuffer (); // ichki xotirani tozalash u8g2.setFont (u8g2_font_ncenB10_tr); // mos shriftni tanlang // char massivlari -> string substring () funktsiyasidan foydalanish uchun majburiy String maneuverString = tempManeuver; String ko'rsatmalarString = tempInstructions; // Bu erda protokolni amalga oshirish. Hozircha faqat burilishlarni qo'llab -quvvatlaydi. if (maneuverString.substring (0, 4) == "burilish") {// Serial.print manevr turini tekshiring ("TURN DETECTED"); if (ko'rsatmalarString.substring (0, 5) == "o'ng") {// Maxsus ko'rsatmalarni tekshiring va shunga mos ravishda u8g2.drawStr (5, 15, "-") ko'rsatiladi; } else if (ko'rsatmalarString.substring (0, 4) == "chapda") {// Maxsus ko'rsatmalarni tekshiring va shunga mos ravishda u8g2.drawStr (5, 15, "<---") ko'rsatiladi; } else u8g2.drawStr (5, 15, "Xato."); // Noto'g'ri ko'rsatma maydoni}/ * Boshqa manevr turlarini amalga oshirish (aylanma yo'llar va hk.) * Else if (tempManeuver == "rdbt") { * *] */ u8g2.drawStr (5, 30, tempDistance); // Qolgan masofani ko'rsatish u8g2.sendBuffer (); // ichki xotirani displeyga o'tkazish // Keyingi o'qish xotirasidan oldin barcha char massivlarini qayta o'rnatish (manevr, 0, 10); memset (ko'rsatmalar, 0, 10); xotira (masofa, 0, 10); memset (tempManeuver, 0, 10); memset (tempInstructions, 0, 10); memset (tempDistance, 0, 10); // Massivlardagi elementlar sonini tiklash nbr_char_distance = 0; nbr_char_instructions = 0; nbr_char_maneuver = 0;}
7 -qadam: Kod: Android tomoni
Smartfon ilovasi uchun men Mapbox navigatsiya SDK -dan foydalanishga qaror qildim, chunki u noldan navigatsiya xaritasini tuzishda juda ko'p foydali xususiyatlarni taklif qiladi. Bu, shuningdek, ushbu modulning ishlashiga yordam beradigan ko'plab foydali tinglovchilarni ishlatishga imkon beradi. Men ham android uchun harry1453 ning android-bluetooth-seriyali kutubxonasidan foydalandim, chunki u Bluetooth ketma-ket aloqasini birlashtirishni ancha osonlashtirdi.
Agar siz ushbu ilovani uyda qurmoqchi bo'lsangiz, har oy ma'lum miqdordagi so'rovlarga qadar bepul bo'lgan Mapbox kirish tokenini olishingiz kerak bo'ladi. Siz ushbu tokenni kodga kiritishingiz va ilovani o'zingiz tomoniga qurishingiz kerak bo'ladi. Shuningdek, siz o'zingizning ESP32 Bluetooth MAC manzilingizga kod kiritishingiz kerak bo'ladi.
Qanday bo'lmasin, ilova sizni hozirgi manzilingizdan xaritada bosishingiz mumkin bo'lgan har qanday joyga yo'naltirishi mumkin. Kirish qismida aytib o'tilganidek, u burilishdan boshqa hech qanday manevrani qo'llab-quvvatlamaydi va hozircha marshrutlardan tashqarida ishlamaydi.
Github -da manba kodini to'liq topishingiz mumkin.
8 -qadam: Keyin nima bo'ladi?
Endi ilova o'z foydalanuvchisini belgilangan marshrutga yo'naltirish uchun etarlicha funktsional bo'lsa (belgilangan yo'ldan hech qanday burilishlar bo'lmasa), mening asosiy e'tiborim smartfon ilovasini yaxshilash va modulni o'zgartiradigan bir nechta imkoniyatlarni amalga oshirish bo'ladi. harakatlanuvchi navigatsiya qurilmasi. Bunga ekran o'chirilgan bo'lsa ham telefondan Bluetooth aloqasini yoqish, shuningdek boshqa turdagi manevralarni qo'llab -quvvatlash (aylanma yo'llar, qo'shilish …) kiradi. Agar foydalanuvchi asl marshrutdan chetga chiqsa, men yo'nalishni o'zgartirish funktsiyasini ham amalga oshiraman.
Bularning barchasi bajarilgach, men konteynerni va uning biriktirish mexanizmini yaxshilayman, uni 3d chop etaman va modulni birinchi ishga tushirishga harakat qilaman.
Agar hammasi yaxshi ketsa, mening uzoq muddatli maqsadim - bu loyihaning o'rnatilgan elektronikasi uchun maxsus PCB ishlab chiqish, bu esa yakuniy mahsulotda ko'p joyni tejash imkonini beradi.
Kelgusida men ushbu modulga boshqa funktsiyalarni ham qo'shishim mumkin, jumladan, vaqtni ko'rsatish, shuningdek, telefon xabarnomasi signalidan foydalanuvchiga matnli xabar yoki qo'ng'iroq kelganida belgi paydo bo'lishi mumkin. Nihoyat, men ushbu modulga ulkan musiqa muxlisi sifatida Spotify imkoniyatlarini qo'shishni istardim. Biroq, ayni paytda, bu faqat yoqimli.
9 -qadam: Xulosa va alohida rahmat
Kirish qismida aytilganidek, garchi bu loyiha tugallanmagan bo'lsa -da, men uni dunyo bilan bo'lishishni juda xohlardim, umid qilamanki, bu boshqa birovni ilhomlantiradi. Men ham bu boradagi tadqiqotlarimni hujjatlashtirmoqchi edim, chunki AR va HUDga qiziquvchilar unchalik katta emas, menimcha bu uyat.
Men Awall99 va Danel Quintana -ga katta minnatdorchilik bildirmoqchiman, ularning loyihasi ushbu modulni yaratishda menga katta ilhom berdi.
E'tiboringiz uchun barchangizga rahmat, yaqin kelajakda ushbu loyiha takomillashtirilganda, men albatta yangilanishlarni joylashtiraman. Bu orada, keyinroq ko'rishguncha!
Tavsiya:
Qayta ishlangan mototsikl shishadan: 9 qadam (rasmlar bilan)
Qayta ishlangan mototsikl shishadan: v Uyda nima qilish kerak? Uyda poyga mashinalarini yasashning bir necha oddiy usullari. Men sizga bosqichma -bosqich ko'rsatma beraman, ilg'or poyga avtomashinalarini yaratish. Siz qila olasiz va sinab ko'rishingiz mumkin. yoki siz uni bolalaringizga yoki do'stlaringizga sovg'a sifatida to'plashingiz mumkin. Umid qilamanki
Uy hayvonlari ovqatlarini otish uchun avtomatik katapult (it, mushuk, tovuq va boshqalar), to'p tashlash va boshqalar!: 4 qadam (rasmlar bilan)
Uy hayvonlari ovqatlarini otish uchun avtomatik katapult (it, mushuk, tovuq, va hokazo), to'p tashlash va boshqalar!: Salom va mening birinchi ko'rsatmasimga xush kelibsiz! Bizning it o'z ovqatini yaxshi ko'radi, u bir soniya ichida hammasini yeydi. Men buni sekinlashtirishning yo'llarini o'ylab topdim, ichidagi taomlar to'pidan tortib, butun hovliga tashlashgacha. Ajablanarlisi shundaki, u
Smart RGB LEDlarini yangilash: WS2812B va boshqalar. WS2812: 6 qadam
Smart RGB LEDlarini yangilash: WS2812B va boshqalar. WS2812: So'nggi 3 yil ichida biz chiziqlar, modullar yoki maxsus PCBlar bo'ladimi -yo'qmi, aqlli RGB LED -laridan foydalangan holda ko'rgan ko'plab loyihalar juda hayratlanarli. RGB LEDni ishlatishning bu avj olishi muhim signal bilan yonma-yon o'tdi
☠WEEDINATOR☠ 2 -qism: Sun'iy yo'ldosh orqali navigatsiya: 7 qadam (rasmlar bilan)
☠WEEDINATOR☠ 2 -qism: Sun'iy yo'ldosh orqali navigatsiya: Weedinator navigatsiya tizimi tug'ildi! Qishloq xo'jaligi robotini aqlli telefon boshqarishi mumkin …. Va uni birlashtirishning oddiy jarayonidan o'tish o'rniga, men uning qanday ishlashini tushuntirib beraman deb o'yladim
Robotli navigatsiya uchun infraqizil er/ob'ekt sensori: 3 qadam
Infraqizil er/ob'ekt sensori robotli navigatsiya uchun: men bu sensorni ikkita robotimda ishlatganman. Ular stol usti ustida ishlaydilar, shuning uchun robotlar chekkaga kelganlarini aniqlashlari, to'xtashlari va orqaga burilishlari kerak edi … bu yo'ldagi to'siqlarni ham keltirib chiqarishi mumkin