Mundarija:
- 1 -qadam: Telefonlaringizni joylashuvingizni Pi -ga yuborish uchun sozlash (MQTT brokerining birinchi qismi)
- 2 -qadam: Telefoningizni joylashuvingizni Pi -ga yuborish uchun sozlash (II qismning izlari)
- 3 -qadam: Raspberry Pi -ni sozlash
- 4 -qadam: Qizil tugunni o'rnatish (MQTT serveridan Python skriptiga xabarlarni olish)
- 5 -qadam: Pi -da Python bilan servolarni harakatlantirish
- 6 -qadam: Dasturiy ta'minotni tugatish - Servislarga telefonlar
- 7 -qadam: Jismoniy soatni qurish - I qism - Servo va aks
- 8 -qadam: soat qo'llari
- 9 -qadam: To'liq
- 10 -qadam: Men o'rgangan narsalar va boshqacha qilardim, agar men buni takrorlashim kerak bo'lsa
- 11 -qadam: Mumkin bo'lgan kelajakdagi kengaytmalar …?
Video: "Uizli" joylashuv soati 4 qo'l bilan: 11 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Shunday qilib, bir muddat tepib kelayotgan Raspberry Pi bilan men undan eng yaxshi foydalanishimga imkon beradigan yaxshi loyihani topmoqchi edim. Men ppeters0502 tomonidan tuzilgan "Uizli uchun o'z joyingni yaratish bo'yicha buyuk ko'rsatma" ni uchratdim va sinab ko'rish yaxshi bo'lardi deb o'yladim.
Soat, asosan, soat qo'llarini burish uchun servolarni boshqaradigan Raspberry Pi -dan iborat. Garri Potter kitoblari/filmlaridagi Uizli oilasining uyida bo'lgani kabi, har bir oila a'zosining o'z qo'li bor. Har bir qo'l o'sha oila a'zosining hozirgi manzilini ko'rsatadi. Soat bunga har doim uyali telefonlardan oldindan belgilangan radiusga kirganda yoki undan chiqib ketganda xabar olish orqali erishadi.
Oldingi yo'riqnomaning asosiy farqlari shundaki, menda 2 ta emas, 4 ta qo'lim bo'lishi kerak edi (aks holda qizim shikoyat qilgan bo'lardi) va men eski soatni emas, balki qayta ishlatishga qaror qildim. Buning sababi shundaki, bo'sh joy mavjud soat korpusida 4 ta servo va boshqalarga mos keladigan muammo bo'lishi mumkinligidan xavotirda edim.
Bu men kutganimdan ancha uzoq davom etdi, lekin ko'p hollarda men o'zimni to'sib qo'ygan va asl postda yoritilmagan ko'rinadi. Asl Instructable -ga qarshi hech narsa yo'q, umuman olganda juda zo'r edi, lekin bir necha yillar o'tdi va narsalarning versiyalari o'zgardi … va hokazo. Buyuk Britaniyada bo'lish Imperial/Metrik elementlarning ba'zilari men kutganimdan ko'ra ko'proq qiyinchiliklarni keltirib chiqardi.
Bundan tashqari, men kodlashni yaxshi bilgan bo'lsam -da, soatning jismoniy ishlab chiqarilishi, albatta, meni cho'zdi va ba'zi qo'shimcha vositalarni talab qildi, bu esa meni biroz sekinlashtirdi.
Oxirida men "Men boshqacha qilsam yaxshi bo'lardi/agar men buni takrorlaganimda …" bo'limini o'z ichiga olaman.
Ta'minot:
Meni hayratga solgan narsalardan biri shundaki, qimmat komponentlar soat qo'llari bilan qilingan. 4 qo'l, albatta, 2 -ga qaraganda qimmatroq. Men sizda qandaydir tasavvurga ega bo'lish uchun bir qancha xarajatlar qo'yishga qaror qildim. Men birinchi marta hammasini qo'shdim va asboblarni hisobga olmagan holda, men taxminan 200 funt sarfladim. Bundan tashqari, men ishlatmagan (va quyida ko'rsatilmagan) ba'zi narsalar, shuningdek, Pi, shuningdek, menda mavjud bo'lgan quvvat manbai.
Pi va boshqalar
- Raspberry Pi - uning narxi qancha bo'lganini eslay olmayman, lekin u Model 2B edi. Menimcha, agar sizda hozircha yo'q bo'lsa, ehtimol Pi Zero ham shunday qilar edi. Men Wi -Fi dongle va SD -kartani Raspbian bilan qo'shganman. Menda eski Android telefon zaryadlovchisi bor edi.
- Pi uchun Adafruit Servohat - 16 funt
- Servohat uchun elektr ta'minoti - Men buni topishga qiynaldim, chunki barcha veb -saytlar adafruit saytiga ishora qilar edi, u erda AQSh elektr ta'minoti tavsiya etiladi. Keyin men o'zgarmaydigan uchlari bo'lgan eski o'zgaruvchan kuchlanish manbai borligini angladim, shuning uchun men uni ishlatardim. Ammo AQShning narxi 8 dollar, shuning uchun bu o'yin maydoni.
- Pi uchun sumka, shuning uchun uni soat ramkasiga biriktirishim mumkin. 5 funt
Servo va viteslar
Bu erda men 4 kishining narxini keltiraman, shuning uchun agar siz kamroq qo'llar bo'lishni xohlasangiz, bo'ling (uni qo'shish-qo'liga ~ 40 funt sterling = 160 funt: -o)
- 4 x Servo-men ppeters0502 tomonidan tavsiya etilganlardan foydalandim-ebayda har biri 15 funtdan = 60 funtdan topilgan-"GWS-Raqamli-Servo-Yelkan-Vinch-S125-1T-2BB-360 darajali" matnini qidirib topdim. "Ammo ba'zida ular mavjud emas edi
- Bir -biriga to'liq o'rnatilgan 4 ta guruch naychalari - har biri ~ 3 funt. Menda 1/4 ", 7/32", 3/16 ", 5/32" = 11 funtdan bittasi bor
- Guruch trubkalariga mahkamlanadigan 4 ta qisqich, viteslarni ulash imkonini beradi. ~ Har biri 7 funtdan = 28 funtdan. Men ularni AQShdagi Servocity kompaniyasidan muntazam buyurtmalarni bajaradigan ActiveRobots -dan oldim, bu sizga xalqaro yuk tashishdan qochish imkonini beradi. Shuningdek, ular Servocity -ning AQShdagi asosiy saytida topishingiz mumkin bo'lgan hamma narsani olishlari mumkin. Bu keyingi 2 ta element uchun juda qulay bo'ldi
- 4 x asetil 0,770 dyuymli siqish uyalariga o'rnatish uchun tishli g'ildiraklar. ~ Har biri 6 funtdan = 24 funt
- Servoga o'rnatish uchun 4 x asetil spline o'rnatilgan asetil tishli. ~ Har biri 6,50 funt = 26 funt
- 1 x olti burchakli yong'oq biriktiruvchi vintlardek qisqichlarga = 2,60 funt
- 1 x 7/64 dyuymli olti kalit (allen kaliti), chunki AQShdan keladigan narsa imperatorlikdir, shuning uchun menda mavjud bo'lgan yuzlab allen kalitlari foydasiz = 1 funt
Jismoniy qurilish uchun
Bu erda men asosan yolg'on gapirgan narsalarimdan foydalanardim
- "Yuz" va "orqa" plastinka uchun 2 x kvadrat kontrplak
- Keyin men orqamni yuzga bog'lash uchun eski panjaradan 4x10 sm o'lchamdagi tsilindrlarni kesib tashladim.
- Servolarni to'g'ri ofsetga o'rnatish uchun ba'zi bloklar - men kesgan yumshoq daraxtlar.
- Har xil vintlardek. juda kichikdan (Pi korpusini ramkaga biriktirish uchun) o'rta darajagacha (ramkani bir -biriga biriktirish uchun)
- Taxminan 50 sm x 20 sm yumshoq po'latdan yasalgan 0,75 mm varaq (qo'llarni kesish uchun). Bu Uiksdan ~ 9 funt sterling sotib olgan yagona narsa edi
Asboblar
Menda bor narsalarning ba'zilari qarzga olingan yoki sotib olingan
- Lehimlash temir + elektr lehim - ulagichlarni Adafruit Hat & Pi ga ulash uchun.
- Jigsaw - qo'llarning qo'pol shaklini kesish uchun
- Matkap. oddiy simsiz 18V matkap
- Matkap uchlari - Shuni yodda tutingki, guruch quvurlariga mos keladigan teshiklarni yaratish uchun sizga imperatorli matkaplar kerak bo'ladi. Men biroz qarz olishga muvaffaq bo'ldim.
- arra - guruch quvurlarini kesish uchun. Men qilgan ishni qilmang va trubkaga 3 funt sarflamang, u bosim bilan ishlaydi va quvurlarning ichki qismi biroz kichrayadi. shuning uchun keyingi o'lchamdagi quvur pastga tushmaydi
- Tegirmonli dastgoh - menda bunisi yo'q edi, lekin do'stim shunday qildi va bu qo'llarni shakllantirishni ancha osonlashtirdi. Ungacha men faqat fayllardan foydalanardim. Men bu loyihani sotib olmagan bo'lardim, lekin metall qo'llar uchun bu juda yaxshi edi.
- Men turli xil olmos nuqtali fayllarni sotib oldim (juda kichik). 15 funt atrofida qo'llar va naychalar uchun foydalidir
- qo'pol va silliq zımpara
- ba'zi kichik qisqichlar burg'ulash paytida narsalarni ushlab turadi.
- xuddi shu sababga ko'ra vitse.
1 -qadam: Telefonlaringizni joylashuvingizni Pi -ga yuborish uchun sozlash (MQTT brokerining birinchi qismi)
Bu bitni ppeters0502 o'zining ajoyib Weasley Clock Instructable asarida juda yaxshi tasvirlab bergan. G'alati, garchi u turli xil ko'nikmalarni aks ettirsa -da, u qurilishdan boshlagan va keyin dasturiy ta'minotga o'tgan, men buni boshqa yo'l bilan qilganman. Shunday qilib, men telefondan boshladim … to'xtating, yo'q, men MQTT brokeridan boshladim, bu uning ko'rsatmasida 6 -qadam. Men juda yaxshi bajaradigan barcha bitlarni tashlab ketaman va men qo'shadigan ba'zi bitlarni tashlayman. Men u aytgan CloudMQTT marshrutiga bordim.
Ammo men buni yozayotganimda, rejalar havolasini tekshirib ko'rdim, endi bepul reja yo'q! Ular buni asosli bo'lib tuyulgani uchun olib qo'yishdi. ya'ni odamlar bepul misol o'rnatadilar va undan hech qachon foydalanmaydilar. Men sezmadim, chunki hozirgi holatlar davom etishi mumkin. Shunday qilib, men o'zgarmayman. Ammo bu ko'rsatmalarni biroz ortiqcha qiladi. 3 variant borga o'xshaydi.
- Cloud MQTT uchun oyiga 5 dollar to'lang (lekin bu doimiy ravishda soat uchun qimmatga tushadi).
- Birinchi yo'riqnomada ta'riflanganidek, "Mosquitto on Pi" yo'nalishiga boring. Men bu haqda izoh berolmayman, lekin yaxshi variant bo'lishi mumkin.
- Faqat Google "bepul MQTT bulutli brokeri" va boshqalari borga o'xshaydi.
Shunday qilib, sizda ishlaydigan MQTT brokeri bor deb taxmin qilish mumkin, agar u CloudMQTTga o'xshasa, u erda server, foydalanuvchi, parol va port ko'rsatiladi. Sizga bularning barchasi kerak bo'ladi, telefoningizni sozlash uchun broker sizning manzilingizni/harakatingizni yuboradi.
2 -qadam: Telefoningizni joylashuvingizni Pi -ga yuborish uchun sozlash (II qismning izlari)
Bu, shuningdek, "Instructable" ning asl nusxasida, 7 (Android), 8 (iOS) va 9 -bosqichlarda (Hududlarni sozlash) juda yaxshi yoritilgan.
Menda faqat iOS qurilmalari bor edi, shuning uchun 7 -qadamni sinab ko'rmadim.
Men bu ko'rsatmalarga nima qo'shardim?
- O'rnatishda TrackerID va DeviceID maydonlari ham mavjud. Siz o'z oilangizda o'zingizni aniqlay olishingiz kerak. Masalan, Menda ularni R va RPhone mos ravishda bor edi. Bu shuni anglatadiki, siz qaysi Servo va qaysi qo'lni burishingiz kerak bo'lgan soatga o'tishingiz mumkin.
- Mintaqalar - bu siz kuzatmoqchi bo'lgan joylarning nomi.
- Har bir mintaqa nom, kenglik, uzunlik va radius bilan belgilanadi.
-
Men soatimning bir bo'limi sifatida bir nechta joylarga ega bo'lishni xohlaganim uchun nomlash konventsiyasidan foydalandim. Boshqa usullar mumkin, lekin bu men uchun ishladi.
- Masalan, OILA soat bo'limida men ota -onam va ukalarim, xotinimning ota -onasi va ukalari bo'lishini xohlardim. Shuning uchun menda "Oilaviy Tom", "Oilaviy Dik", Oilaviy Garri "va" Oila ota -onasi "kabi joylar bor edi, bu esa keyingi bosqichda soatga nima o'tish kerakligini bilishini anglatardi.
- Shuni yodda tutingki, odamlar turli joylarga ega bo'lishi mumkin. Ammo ular nom berish konventsiyasiga mos kelsa, bu yaxshi. Masalan, mening ishim xotinining ish joyidan farq qiladi va boshqacha chaqiriladi. lekin ikkalasi ham "Ish" ni boshlagan ekan, hammasi yaxshi.
- Siz rejimni "Xaritalar" ekranida "Muhim" deb belgilashni xohlaysiz. Bu shuni anglatadiki, siz (asosan) faqat mintaqalarga kirganingizda yoki undan chiqqaningizda xabar olasiz. Bu "MUHIM" deb belgilangan eslatmaning yangilangan versiyasi bo'lib ko'rinadi: 8 -qadam oxirida, asl yo'riqnomada.
- "Instructable" ning asl nusxasida aytib o'tilganidek, Google Xaritalardan foydalanish - bu biron bir joyning Lat/Longini aniqlashning ajoyib usuli. Men buni ommaviy ravishda, o'z joyimdagi barcha Lat/Longs-ni bilib, samaraliroq deb topdim, so'ngra ularni Notes-ga (Mac-da) joylashtirdim va bulutli sinxronlash bilan, ular sehrli tarzda mening iPhone-da paydo bo'ldi. Notes -da va men ularni Owntracks -ga nusxalashim/joylashtirishim mumkin edi. Bu, shuningdek, men faylni oilamning telefonlariga yuborishim mumkinligini anglatar edi va bizda hamma joy aniq edi.
- Bir -biriga yaqin joylashgan joylar muammolarga olib kelishi mumkin. Akam 2 ta ko'chada yashaydi va dastlab telefonim meni bir vaqtning o'zida uning uyida ham, uyida ham deb o'ylardi. Oxir -oqibat, bu hodisani sezish va e'tiborsiz qoldirish uchun Red Node -ga qo'shimcha mantiq qo'yishim kerak edi.
3 -qadam: Raspberry Pi -ni sozlash
Shunday qilib, menimcha, sizda Wi -Fi tarmog'i o'rnatilgan Pi bazasi bor. Men Raspbian bilan ishladim, lekin bu muhim emas. Hammasini sozlash uchun raspberrypi.org saytidagi ko'rsatmalardan foydalaning.
E'tibor bering, Pi -da monitor va klaviatura/sichqonchani va hokazolarni ko'rsatish uchun portlar mavjud, biroq, agar siz uni soatiga qo'ysangiz, buni xohlamaysiz. Shunday qilib, Raspberry pi veb -saytida kimdir taklif qilgan javob, menimcha, VNC aloqasini o'rnatish edi. Bu sizga boshqa qurilmadan Pi ga ulanishga va uni boshqarishga imkon beradi. Men buni Mac -dan qilaman, lekin uni iPad -dan ham qilganman. Qulaylik uchun klaviatura yordamida biror narsa ishlatishni taklif qilaman.
Men ulangan paytdan beri ular buni osonlashtirganga o'xshaydi … bu erga qarang
Asosan siz ulanasiz va standart Pi interfeysi bo'lgan oynani olasiz.
Shunday qilib, sizda noutbuk yoki kompyuterdan Pi -ga oyna bor.
Endi servolarni ulashingiz kerak.
Adafruit shlyapasini Pi -ga o'rnatish uchun avval siz juda oddiy lehim qilishingiz kerak. Bu biroz noaniq, lekin 30 yil davomida lehimlanmaganiga qaramay, bu yaxshi edi. Har doimgidek, men YouTube orqali foydali video topdim, bu menga katta yordam berdi.
Shlyapa 16 ta servo ishlashi mumkin bo'lsa -da, menga atigi 4 dona kerak edi, shuning uchun men faqat 4 pinli birinchi to'plamni lehimlashdan bezovta bo'ldim.
Keyin servolar faqat pimlarga bosiladi. Men servolarni harakatga keltira olishimni tekshirish uchun birinchi marta qildim.
Bu erda men birinchi katta to'siqni oldim. Menda servolarni ko'chirish uchun juda oddiy python skriptim bor edi va umuman hech narsa bo'lmadi. Men bir hafta davomida yangi skriptlarni sinab ko'rdim va shlyapada tutun paydo bo'la boshladi. Hammasini o'chirib, men sxemani tekshirib ko'rdim. Bu teskari polaritdan himoya qiluvchi komponent edi. Menda ko'p uchli, ko'p voltli quvvat manbai bo'lgani uchun, men uchini teskari aylantirish orqali siz shahar oqimining har ikki tomonga ketishini bilmas edim. Men xato qildim (imkoniyat 50:50) va men birinchi adafruit shlyapamni yoqib yubordim
:-(Men yangisini sotib olayotganda biroz kechikdim, uchini qayta lehimladim va tuzatdim. KO'Proq.
Keyin men servolarni soatning to'g'ri nuqtasiga qanday o'tkazish kerakligini o'ylab ko'rishim kerak edi. Bu 5 -qadamda bo'ladi, lekin men qilgan ishim, soatni o'rnatmagan holda, servolarni tasodifan yog'ochga burab, rasmdagi kabi o'q bilan niqob tasmasini yopishtirish edi. Bu men kodlayotgan narsalarga juda ingl.
4 -qadam: Qizil tugunni o'rnatish (MQTT serveridan Python skriptiga xabarlarni olish)
Node-RED-bu Pi-ga o'rnatiladigan dastur, bu sizga MQTT-serveringizdan xabarlarni qabul qilish va undan to'g'ri ma'lumotlarni python skriptingizga (keyingi bosqichda berilgan) etkazish uchun vizual interfeys (brauzeringizda) beradi. 5 -qadamda men ppeters0502 ko'rsatmalarini deyarli ishlatardim. Bu oqimlarda mantiq bor, va pitonda qo'shimcha mantiq bor, va siz xohlaganingizga qarab, har birida ko'p yoki kamroq bo'lishi mumkin. quyidagi
- MQTT xabarlari uchun qabul qilish tugunlari bor - bu binafsha binafsha rang va men har bir oila a'zosiga 1 tadan
- Siz harakat qilmoqchi bo'lgan servo bilan xaritani belgilang (0, 1, 2, 3 raqamli)
- OwnTracks -ga radiusga kirayotganingizni yoki ketayotganingizni aniqlang
-
Servo qaysi joyni ko'rsatishi kerakligini aniqlang
O'rnatishim kerak bo'lgan asosiy qoidalarga ba'zi istisnolar bor edi
- Burchakni to'g'ri o'rnating
Menda Node-RED birinchi 4-ni bajargan va Python-ni nisbatan sodda tutgan.
Siz bu erda asosiy oqimni ko'rishingiz mumkin va barcha oqimlarni bu erdagi formatga eksport qilish mumkin, ya'ni siz ushbu asosiy oqimni Node-RED-ga import qilishingiz va keyin moslashishingiz mumkin. E'tibor bering, binafsha rangli tugunlardan barcha ulanishlarni olib tashladim, shunda siz mening MQTT misolimga kira olmaysiz. Shuningdek, men barcha test-tugunlarni olib tashladim, chunki ular haqiqiy ma'lumotlarni o'z ichiga oladi … siz tugun-RED-ga import qilish uchun ushbu fayl turini flows.json qilib o'zgartirishingiz kerak bo'lishi mumkin, lekin Instructables menga yuklashga ruxsat bermadi.
Yashil tugunlar - bu disk raskadrovka tugunlari, so'ngra chiqishni ekranning o'ng tomonidagi disk raskadrovka oynasida ko'rsatadi (kengaytirish kerak bo'lishi mumkin - o'qni o'ngdan yarmigacha toping).
Birinchi qadam "Live - faqat disk raskadrovka uchun" bitidir. Bu MQTT xabarlarini qabul qilish va undagi narsalarni ko'rish mumkinligini tekshiradi. json - bu xabarlarning yanada tuzilgan versiyasi, bu sizga ma'lumotlarni osonroq olish imkonini beradi. Bu oqimda, jonli efirda, men binafsha rangli tugunlarni chapdan yuqorisiga json tuguniga, ularning o'ng tomoniga ulayman.
Sinov tugunlari
Xabarlarning jonli efirda qanday ko'rinishini bilganingizdan so'ng, voqeani boshlash uchun uyingizdan chiqib, yo'lda va orqada yurish juda zerikarli bo'ladi. Buni qilganingizdan so'ng, siz xabarni TEST tetikchasiga nusxalashingiz mumkin va keyin voqeani taqlid qilish uchun uni bosing. Shuningdek, siz ma'lumotlarni turli joylarga o'xshatib o'zgartirishingiz mumkin (ular Owntracks -dagi manzil nomlariga to'liq mos kelishiga ishonch hosil qiling).
Siz oqimda ko'rishingiz mumkinki, test holatlarining hammasi alohida tugunga, keyin esa json tuguniga o'tadi. Bu faqat ekranni tartibga solish uchun.
Men bu tugunlarning qanchalik foydali ekanligini va hozir ham borligini etarlicha ta'kidlay olmayman.
Pythonga qo'ng'iroq
Shunday qilib, men keyingi to'siqni oldim. Bu forumlarda juda ko'p googlingni oldi va hokazo. Mening oqimim mukammal ishlaydi, lekin bu mening python skriptimni ishga solmaydi. Men buni hal qila olmadim, lekin men sizni qasamyod qilishdan qutqaraman va hokazo. Shuni aytish uchunki, ikkinchi skrinshotda ta'kidlanganidek, siz ko'rsatmasangiz python3 ni belgilashingiz kerak.
2 ta qo'shimcha asorat - faqat kerak bo'lganda
Menda mantiq to'liq ishlamagan bir qator qiyinchiliklar bor edi. Birinchidan, Owntracks biroz g'alati bo'lib ketdi va akam 2 ta ko'chada yashar ekan, tez -tez men bir vaqtning o'zida 2 joyda bo'lganimni aytdi yoki almashishni davom ettirdim. Menga aylanishni yagona yo'li - yolg'on pozitsiyalarni to'xtatish shartini qo'shish edi. Agar men uning uyida ekanligimni da'vo qilsam, men xabarning haqiqiy uzunligini/kengligini tekshirib ko'rdim va agar men aslida uyda ekanligimni bildirgan bo'lsam, uni bekor qildim.
Boshqa muammo shundaki, itim bilan yurganimda, men yaxshi radiusga ega bo'lolmadim. Men odatda o'sha hududda yuraman, shuning uchun men bu erga "agar men bu erga kirsam, albatta it bilan yuraman va uyga kelgunimcha bo'ladi" dedim. Bu shuni anglatadiki, u uyga ketayotganda pabga yoki it yurish paytida turtki beradigan boshqa joylarga o'tmaydi. Buni amalga oshirish uchun men kontekstli o'zgaruvchan parametrlarni o'rnatishim kerak edi (ularni Node-RED-da ko'ring. Skrinshotga qarang. Bu o'zgaruvchilar tugun-RED qayta ishga tushirilguncha saqlanib turadi, shuning uchun men aytamanki, agar it sayr qilsa, kontekst o'zgaruvchisini o'rnating). "Uyga" kirmasam, boshqa hech narsaga e'tibor bermang.
Oxirgi skrinshot - bu sizning yakuniy oqimim, bundan mustasno, faqat sizning qiziqishingiz uchun.
5 -qadam: Pi -da Python bilan servolarni harakatlantirish
Servoga qisqa burilish. Men servo haqida hech narsa bilmasdim, lekin Internetda juda ko'p ma'lumotlar bor. Men ishlatganlar - 360 gradusni silliq aylantira oladigan uzluksiz servolar. Boshqa asosiy tur - bu qismli (qadam) harakatlanadigan va taxminan 180 gradusgacha ko'tariladigan step servolari (bu erda foydali emas). Bosqichli servolarning afzalligi shundaki, siz ularni burchakka qo'yishingiz mumkin va ular shu nuqtaga o'tadi va to'xtaydi. Men topgan barcha hujjatlar shuni ko'rsatadiki, uzluksiz servolarga tezlik va shu tezlikni saqlash uchun vaqt beriladi (masalan, 1 soniya uchun to'liq tezlik) va ular oxirigacha etib boradilar, lekin bu ularning boshlanish nuqtasiga nisbatan. Ko'p urinishlardan so'ng, men bu ishni qila olmadim, lekin test skameykasidan foydalanib, servolar bir xil burchak ostida doimiy ravishda o'sha nuqtaga qaytishini bilib oldim. Bu juda oson, shuning uchun men buni qildim. Men bilmaydigan ba'zi kamchiliklar bo'lishi mumkin, lekin bu men uchun ishlaydi. E'tibor bering, har bir servo o'ziga xosdir, shuning uchun siz har bir servo uchun o'ziga xos burchakka ega bo'lishingiz kerak. Men "kalibrlash" python skriptiga ega bo'lishni eng oson deb topdim, bu erda men servolarni o'z navbatida burchakka o'rnatib, ularni hamma to'g'ri ko'rinmaguncha tozalashim mumkin edi. Bu biriktirilgan birinchi skript. Siz faqat sinovdan o'tmagan servolarni izohlaysiz, bittasiga e'tiboringizni qarating va keyin kerakli qiymatlarni sozlang. ESLATMA: sinov dastgohini kalibrlash oddiy va qo'pol va tayyor. Soat yig'ilganda siz yana kalibrlashingiz kerak bo'ladi, chunki viteslar hamma narsani o'zgartiradi. Keyin ikkinchi skript juda oddiy. U quyidagilarni bajaradi
- Bir nechta kutubxonalarni import qiling
- Node-RED-dan keladigan o'zgaruvchilarni skriptdagi o'zgaruvchilarga o'tkazing
- kalibrlash skripti bilan aniqlangan burchaklarni soat bo'yicha joylashadi.
- manzil ro'yxatda topilganligini tekshiring va agar bo'lmasa, "Xavf" ga o'ting.
- log-faylga nima qilinganligini yozing
- kerakli servoni kerakli burchakka siljiting
- Bir servo "jiringlashi" ni to'xtating *
E'tibor qilish kerak bo'lgan 3 narsa.
Jurnal-fayl disk raskadrovka uchun juda foydali. Bu shuni anglatadiki, siz xabarni Node-RED disk raskadrovka jarayoniga qarashingiz va keyin skriptda nima bo'lganini ko'rishingiz mumkin. chiqish shunday ko'rinadi. Birinchi 3 - men itni sayrga olib chiqaman, keyin 1 -bola uydan chiqib, maktabga keladi. Pi vaqtini tekshirish uchun eslatma. UTC standart bo'lishi mumkin va yoz/qish vaqtini o'zgartirishga ruxsat bermaydi. Masalan, Quyidagi vaqtlarga 1 soat vaqt ajratiladi.
2020-12-07_05: 36: 03 Kim = 0, loc = Sayohat, tafsilot = Uy, Burch = 10, indeks = 8
2020-12-07_05: 36: 04 Kim = 0, lok = It, tafsilot = Astonlar, burchak = 86.5, indeks = 10
2020-12-07_06: 07: 49 Kim = 0, loc = Uy, batafsil = kirish, Burchak = 75, indeks = 0
2020-12-07_06: 23: 53 Kim = 2, loc = Sayohat, tafsilot = Uy, Burchak = 19, indeks = 8
2020-12-07_06: 30: 48 Kim = 2, loc = Maktab, batafsil = N, Burch = 60,5, indeks = 2
Servo-shovqin
Skript tugagandan so'ng Servolardan biri (0) jiringlashda davom etdi. Siz tasavvur qilganingizdek, bu bizning oshxonamizda bo'lishi juda zerikarli. Men biron bir joyda servo burchagini "hech kim" ga o'rnatishni eslatib o'tadigan mavzu topdim. Bu ajoyib ishladi va uni oxirida skriptda ko'rish mumkin.
Vaqtlar
Shuni yodda tutingki, soat bo'yi supurish uchun qo'l qanchalik past. Skriptda servo signalini to'xtatish uchun sozlashdan oldin time.sleep (4) chizig'i borligini ko'rishingiz mumkin. Buning sababi shundaki, siz qo'lni bo'sh holatga qo'ymasdan oldin uning manziliga etib borishiga ruxsat berishingiz kerak. Aks holda, u shunchaki to'xtaydi. Bu kalibrlashda ham muhim, chunki siz skriptda bir nechta harakatlarni qilyapsiz. Hammasini qayta tekshirish uchun men uni navbat bilan 12 ta joyga ko'chirishni o'rnatardim. lekin orasiga ozgina vaqt kerak.
6 -qadam: Dasturiy ta'minotni tugatish - Servislarga telefonlar
Sinov skameykasi va skriptlar o'rnatilgandan so'ng, siz uni biroz "jonli" ishga tushirishingiz va uning real vaqtda qanday ishlashini ko'rishingiz mumkin. Bu erda men tugun-RED oqimiga qo'shishim kerak bo'lgan istisnolarni topdim.
Agar siz diqqatni jamlashni xohlasangiz, oila a'zolarini Node-RED oqimida osongina uzishingiz va ulashingiz mumkin. Misol uchun, agar ikkitasi muammo tug'dirsa, lekin siz birma -bir tuzatmoqchi bo'lsangiz. Aks holda, har qanday ulangan telefonlardan xabarlar qabul qilinishini unutmang.
Men it bilan yurish va akamning uyi juda yaqin bo'lganini aytdim. Menda yana 2 ta qiyinchilik bor edi.
Birinchidan, boshqa joylardagi joylar. Xotinim Londondagi kollejda kurs o'tayotgan edi. Biz buni "Maktab" sifatida ro'yxatdan o'tkazishni xohlardik, lekin u ham "London" da. Shunday qilib, biz kontekstni qayta ishlatishimiz kerak edi, agar siz "Maktab" ni tark etsangiz, "Sayohat" emas, "London" ga o'ting.
Ikkinchidan, musobaqa shartlari. Yuqorida aytib o'tilganidek, akamning uyi 2 ko'chada, shuningdek bizning sevimli pub/restoranimiz yonida. Bu shuni anglatadiki, ba'zida ikkita signal bir vaqtning o'zida yoki bir -biriga juda yaqin qabul qilinadi. Bu "poyga sharti" ni o'rnatishi mumkin, bu erda siz mantiqni tez o'tishiga qarab turli xil natijalarga erishasiz, bu esa oldindan aytib bo'lmaydigan natijalarga olib keladi. Bunga qarshi turish uchun men barcha "kirish" xabarlari mantiqni 1 soniya kechiktirishga majbur qildim, bu muammoni hal qilganday tuyuldi. Buni hal qilishning yaxshiroq, oqlangan usullari bo'lishi mumkin, lekin u ishlayotganga o'xshardi.
7 -qadam: Jismoniy soatni qurish - I qism - Servo va aks
Endi men o'zimga ishonchim komil emas edi, shuning uchun uni oxirigacha qoldirdim. Men munosib o'lchamdagi yuz va oson qurilishni xohlardim. Men markaziy o'q atrofida 2 ta servo jismonan olishdan asabiylashdim. Bu shuni anglatadiki, men eskirib qolgan soatlarga o'xshab, ebayga qisqacha nazar tashlab, o'zimga ko'proq imkoniyat berishga qaror qildim.
- Menda qalinligi taxminan 9 mm bo'lgan ikkita katta (~ 30 sm) kontrplak bor.
- Keyin men eski panjara panjarasini 4x10 sm uzunlikdagi bo'laklarga kesib old va orqa taxtalarni bir -biriga burab qo'ydim.
- Markaziy teshikni belgilab, men uni eng katta guruch trubkasi bilan bir xil o'lchamda burg'uladim.
- Keyin men uni oddiy oq porloq bo'yoq bilan bo'yadim.
- Bir oz tajriba o'tkazgandan so'ng, agar men hamma orqa (yoki old) plastinkaga biriktirilgan bo'lsa, men bitta o'q atrofida 4 ta servo olmasligimni tushundim. Menga har bir plastinkada 3 + 1 yoki 2 + 2 bo'lishi kerak edi. Men orqamda 3 va oldimda 1 bilan tugadim.
- Men qog'ozga kerak bo'lgan ofsetlarni ishlab chiqdim, so'ngra guruch naychalarini mos qilib kesib oldim. E'tibor bering, eng qalin trubka eng qisqa, eng yupqa esa orqa plastinkaga qadar borishi kerak. (Men eng kichkinasini orqa plastinkada qisman burg'ulashgan teshikka ko'mib qo'ydim, lekin o'q orqaga burilmasligi uchun hammasi emas).
- Quvurlar uchun men naychali kesgich sotib oldim, lekin bu ularni kesish uchun bosim yordamida amalga oshiriladi, demak siz ichkariga kichikroq trubani ololmaysiz. Shunday qilib, men temir arra ishlatardim va keyin ularni ishga joylashtirish uchun adolatli hujjatlar topshirishga to'g'ri keldi. Bu erda olmosli nuqta-fayllar bebahodir.
- Keyin men diagrammani qisqichlar va tishlar uchun haqiqiy ofsetlarga moslashtirdim *.
- Ofsetlarni olganimdan so'ng, men servolarni o'rnatish uchun bloklarni qanday "baland" qilishni bilardim. Men bir nechta bloklarni ingichka qilib ko'rdim va simni chiqarish uchun teshik ochdim.
- Keyin bloklarni qayerda o'qning tishli tishlari bilan to'liq uchrashishi uchun joylashtirish kerak edi. Men bitta blokni burab qo'ydim, keyin servo o'qni aylantirishi mumkin edi, keyin servoning ikkinchi uchini ikkinchi blokga burab qo'ydim. Men boshqa tishlar tiqilmasligi uchun ba'zi bloklarni biroz kesib tashlashim kerakligini aniqladim. Bu ancha vaqt talab qildi.
- Bularning hammasini bajarib bo'lgach, men malina pi qutimni oldim, uning ichida ikkita teshik ochdim va oldingi plastinkaga mahkamladim. Keyin men Pi qo'sha olaman, old va orqa plastinalarni yopaman (servolarni pi ga ulab (qaysi servo qaysi oila a'zosi uchun ekanligini eslayman) va qo'llarimga burilishim mumkin edi).
* Bu erda men haligacha hal qilmagan eng katta muammoni topdim. Guruch quvurlari 1/4 ", 7/32", 3/16 ", 5/32" edi. Ammo qisqichlar metrik edi (1/4 dyuymdan tashqari). Quvurlarni metrikaga aylantirish 6,35 mm, 5,56 mm, 4,76 mm 3,97 mm. Qolgan qisqichlar 4 mm, 5 mm va 6 mm teshikli edi. Eng kichigi 2 va eng kattasi yaxshi, lekin aniq 0,44 mm qisqich uchun juda ko'p sayohat, shuning uchun uni qog'oz bilan to'ldirishim kerak edi. Men buni bir necha bor sinab ko'rdim va u bir muddat yaxshi ishlaydi va keyin yana bo'shashadi. Qo'llar to'g'ri ishlamayapti. Taxminan 6 oy davomida yaxshi edi, shuning uchun bu ishni bajarish uchun sarflangan vaqt yaxshi sarmoya edi. Ammo agar men buni takrorlaganimda, men 1 o'lchovni yuqoriga yoki pastga tushirgan bo'lardim. Quvurni mahkamlash uchun yaxshiroq qisqich. masalan, 9/32 ", 1/4", (bo'shliq), 3/16 ", 5/32"
8 -qadam: soat qo'llari
Men po'latdan yasalgan po'latdan yasalgan buyumni tanlashga qaror qildim, chunki men qattiq narsani xohlardim, lekin uni tayyorlayotganda yiqilish ehtimoli kam edi. Bundan tashqari, ingichka bo'lish 4 qo'lning muammo emasligini anglatardi.
- Avval men shaklni chizdim.
- Keyin uni niqobli lentaning ustidagi po'latga o'tkazdim.
- Keyin men ularni tajribasiz tarzda o'zimning jigsaw bilan kesib tashladim. Ularning barchasi boshqacha edi, lekin men bunga qarshi emasman.
- Keyin bir do'stim, ularga dastgoh silliqlash mashinasini qarz berishni taklif qildi va bu juda zo'r edi. juda tavsiya qilingan. Aks holda, ariza berish ko'p yillar davom etadi.
- Hali bir qancha topshiriqlarni bajarish kerak edi, so'ngra o'tkir qirralarning bo'lmasligi uchun zımpara qilish kerak edi.
- Tegishli guruch naychalariga mos keladigan teshiklarni burg'ulashim kerak edi (tekshirish uchun kesilgan naychalardan foydalaning, soatga o'rnatilganlarini emas).
- Men tuynuklarni naychalarga yopishtirish uchun ozgina to'ldirish kerakligini aniqladim, lekin ular bir marta yopishgan va yopishtiruvchi kerak emas edi. Istisno, men "qopqoq" bo'lishni xohlagan old qo'lim edi. Men, asosan, dumaloq po'latdan yasalgan bo'lakni kesib oldim, teshikni burab, kerakli o'lchamga keltirdim va old tomoniga yopishtirdim. buni oxirgi rasmda ko'rishingiz mumkin. Vaqti -vaqti bilan uni ushlab turish uchun old qo'lga yopishtiruvchi yopishtiruvchi kerak bo'ladi, lekin bir nechta noto'g'ri boshlashdan keyin qo'llar juda yaxshi ishlaydi.
- Men fotosuratlar g'oyasini rad etgandim (chunki bolalar bizning fotosuratlarimizdan tezda shikoyat qilishadi), shuning uchun men akril bo'yoq bilan bosh harflarni chizishga qaror qildim.
9 -qadam: To'liq
Bularning barchasi haqiqatan ham yaxshi ishlaydi. Qo'llar qaerdan kelganiga qarab, ba'zida biroz uzilib qoladi, lekin aslida bu muhim emas, chunki har bir joy faqat chiziq emas.
Ba'zida, g'alati tarzda, mening telefonim uyda ekanligimni rad etadi. Men aniq Owntracks radiusida, xaritada ko'rsatilganda va aniqlik yaxshi bo'lsa ham … nima uchunligini bilmayman. mening oilamning qolgan a'zolarini xafa qilmaydi. lekin sozlash bir xil. Bu shuni anglatadiki, Owntracks hech qachon xabar yubormaydi va men "Sayohat" da qolib ketaman. Lekin odatda oxir -oqibat o'zini hal qiladi.
Oshxonamizda bo'lish juda foydali edi, asosan, qizlar qachon maktabdan yoki do'stlarining uyidan ketayotganini bilish, va qachon ularga ovqat/choy tayyor bo'lishini bilish.
Shunga qaramay, buyuk ko'rsatmalarga amal qilgani uchun @ppeters0502 ga katta rahmat. Umid qilamanki, ular 4 qo'l bilan soat yasashga nimadir qo'shishi mumkin.
10 -qadam: Men o'rgangan narsalar va boshqacha qilardim, agar men buni takrorlashim kerak bo'lsa
- Jismoniy tuzilish sinov va xatolarga muhtoj. Kosmos muammolarini bashorat qilishning iloji yo'q, shunchaki sho'ng'ib, urinish kerak.
- Kod uchun googling bilan bog'liq muammolar muhim ahamiyatga ega
- Asosiy ishni boshlang va tuzating. Sinov dastgohi yog'ochidagi servolar shuni anglatadiki, men ko'p qismini jismoniy tuzilmasiz ishlashim mumkin
- Men qo'llarimni CNC mashinasida lazer bilan kesgan bo'lardim. Lekin men bilmadim, u mahalliy bo'lgan, menga yumshoq po'lat qanday ishlaganligi yoqadi (bu arzon va dastgoh maydalagichi ishni ancha osonlashtirdi)
- 360 gradusli burilish uchun tishli qutidan foydalansangiz, qadamli dvigatel bo'lishi mumkin. lekin siz servolarni markaziy o'qga juda yaqin qo'yishingiz kerak bo'ladi
- Servo 2 xil (Futaba va HiTech) mavjud. Buni tekshirganingizga ishonch hosil qiling, chunki ularda tishlar soni har xil. Va men dastlab noto'g'ri narsalarni sotib oldim …
- Shlyapani noto'g'ri qutb bilan bog'lamang;-)
- Google va Stack Overflow - bu sizning do'stlaringiz. Ammo siz yaxshi qidiruv so'zlarini ishlatishingiz kerak …
- Sinov dastgohi - bu sodda, arzonroq versiyani ancha oson olishning yo'li. Qurilishning ko'pgina qiyinchiliklari qo'llarni bir o'q atrofida aylantirishdan kelib chiqadi. Agar siz bu masalada murosaga kelsangiz, unda hamma narsa osonroq bo'ladi. O'ylaymanki, agar mil uzunroq bo'lmasa, 4 bitta o'qning chegarasi bo'lishi mumkin. Menimcha, oldingi plastinkada 3 ta, orqa plastinkada uchta bo'lishi mumkin, agar mil uzunroq bo'lsa …
11 -qadam: Mumkin bo'lgan kelajakdagi kengaytmalar …?
Keyingi qadamlar haqida fikrlarim quyidagicha.
- Men eski iPad-ni soat yo'nalishi sifatida qayta ishlatishni xohlayman. ya'ni raqamli soat yasash. Ehtimol, brauzer yoki dastur. Jismoniy soat asosan fuqaroligi bo'lmagan (ya'ni hozirda qaerda ekanligini bilmaydi, faqat qo'llar jismoniy holatidadir), menda doimiy ma'lumotlar zaxirasi bo'lishi kerak edi. Red Node mahalliy fayl tizimiga yozishi mumkin, shuning uchun men buni shunday qilardim.
- Agar men shunday qilgan bo'lsam, buni uyning tashqarisidan ko'rishni xohlardim. Ammo keyin biz haqiqatan ham xavfsizlikni tartibga solishimiz kerak. Xuddi shu Wi -Fi tarmog'iga kirish boshqa, Internetdan kirish boshqa. Hozir men buni qanday qilib eng yaxshi qilish haqida hech qanday tasavvurga ega emasman, lekin men MQTT obunasi boshqa yo'l bilan ishlashidan shubhalanaman (pi hozirgi holatini e'lon qiladi va unga tashqi qurilmalar obuna bo'ladi) …?
- Menga "Chet elda" filmining bir qo'li kerak. lekin bu OwnTracks nuqtai nazaridan murakkab bo'lishi mumkin. Balki katta radiuslar bilan birlashtirilgan uzun/latdan foydalanish mumkinmi?
Tavsiya:
Qanday qilib 8Ch PWM -ni pulsli joylashuv modulyatsiyasiga aylantirish mumkin: 4 qadam
Qanday qilib 8Ch PWM-ni pulsli joylashuv modulyatsiyasiga aylantirish mumkin: Biz radio boshqariladigan modellar (yoki RC modellari) uchun radio qabul qiluvchilarning chiqish signallarining 2 formatini ko'rib chiqamiz. Qabul qilgich signalining an'anaviy va eng keng tarqalgan turi PWM bo'lib, odatda PWM har bir kanal uchun faqat bitta simni talab qiladi. PPM signalizatsiyasi endi tezlashmoqda
Pensiya soati / hisoblash / Dn soati: 4 qadam (rasmlar bilan)
Pensiya soati / hisoblash / Dn soati: Menda tortmasida 8x8 o'lchamli LED nuqta matritsali displeylar bor edi va ular bilan nima qilish kerakligi haqida o'yladim. Boshqa ko'rsatmalardan ilhomlanib, men kelajakdagi sana/vaqtni sanash uchun orqaga/yuqoriga ko'rsatish ekranini yaratish g'oyasini oldim va agar belgilangan vaqt
Joylashuv va tezlikni boshqarish uchun shahar dvigateli va kodlovchi: 6 qadam
Manzil va tezlikni nazorat qilish uchun DC motor va kodlovchi: Kirish Biz UQD10801 (Robocon I) talabasi, Universiti Tun Hussei Onn Malaysia (UTHM) talabasi .Bizda 9 ta guruh bor. Mening guruhim 2 -guruh. Bizning guruhning faoliyati DC. pozitsiyani va tezlikni boshqarish uchun vosita va kodlovchi. Bizning guruhning maqsadi
[15min] Uizli Soati / Uy ko'rsatkichi kim - TR -064 (beta) asosida: 4 qadam (rasmlar bilan)
[15min] Uizli Soati / Uy ko'rsatkichi kim-TR-064 asosida (beta): YANGILASH: 3-qadamga qarang. Uzoq hikoya (TL; DR pastda): Bir muncha vaqt oldin men kompyuterimda kichik bash-skript yozganman. tarmoqni ro'yxatdan o'tgan qurilmalar uchun skanerlang va ularning xost nomlarini tegishli nomlar ro'yxati bilan solishtiring. Har safar qurilma kirsa
Kimdir meni yaxshi ko'radi Joylashuv soati: 6 qadam (rasmlar bilan)
Kimdir meni joylashuv soati yaxshi ko'radi: chet eldagi yoki shtat tashqarisidagi yaqinlarim bilan hech qachon men siz haqingizda ular haqida o'ylashdan ko'ra yaxshiroq o'ylayman deb aytmaydi! Mening nafaqadagi qaynonalarim Berlindagi (Germaniya) cherkov missiyasiga xizmat qilishga tayyorlanayotgan edilar va rafiqam ular bilan kelishdi