Mundarija:
- 1 -qadam: Maqsadlar
- 2 -qadam: materiallar
- 3 -qadam: Oldindan kodlash: Micro: Bit -ni ulang
- 4 -qadam: 0 -qadam: Kod oqimi
- 5 -qadam: 1 -qadam: O'zgaruvchilarni aniqlash
- 6 -qadam: 2 -qadam: Nishab qiymatlarini darajaga aylantirish
- 7 -qadam: 3 -qadam: Nishab darajasini yig'ish
- 8 -qadam: 4 -qadam: LEDPlotList funktsiyalarini yozing
- 9 -qadam: 5 -qadam: Har bir holat uchun LED matritsasini chizish
- 10 -qadam: 6 -qadam: Kalibrlash funktsiyalarini yozing
- 11 -qadam: 7 -qadam: Davlat funktsiyasini yozing
- 12 -qadam: 8 -qadam: Hammasini birlashtirish 1 -qism
- 13 -qadam: 9 -qadam: Hammasini bir joyga to'plash 2 -qism
- 14 -qadam: 10 -qadam: O'rnatish
- 15 -qadam: Manba
Video: Elektr ruhi darajasini yarating: 15 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Bu ruhiy darajadan biriktirilgan har qanday narsaning egilishini tez va oson ko'rsatish uchun foydalaning!
Raffles institutidan Kaylin tomonidan yaratilgan.
1 -qadam: Maqsadlar
Nishabni micro: bit o'rnatilgan akselerometr yordamida o'qishni o'rganing.
Micro: bit -ning 5x5 LED displeyi bilan ishlashni o'rganing!
2 -qadam: materiallar
1 x BBC mikro: bit
1 x Micro USB kabeli
2 x AA batareyasi
1 x ikkita AA batareya to'plami
3 -qadam: Oldindan kodlash: Micro: Bit -ni ulang
- Mikro USB kabeli yordamida BBC micro: bit -ni kompyuteringizga ulang.
- Makecode.microbit.org saytida micro: bit uchun javascript muharririga kiring.
4 -qadam: 0 -qadam: Kod oqimi
Kodni yozishni boshlashdan oldin, biz dastur bilan nimaga erishmoqchi ekanligimizni va har bir komponent qanday tartibda ishlashi kerakligini hal qilishimiz kerak.
Elektr ruhi darajasi uchun har bir tsikl uchun kodda bajariladigan qadamlar:
- Nishab ko'rsatkichlarini akselerometrdan o'qing.
- Burilish ko'rsatkichlarini LED matritsasida ko'rsatiladigan egilish darajasiga aylantiring.
- Oldingi tsiklning egilish darajasi ko'rsatkichlarining o'zgarishini tekshiring.
- Har xil burilish holatlari va yo'nalishlari uchun LED koordinatalari qatorini yarating.
- LED koordinatalarini mikro: bitli LED matritsaga joylashtiring.
Biz qo'shishimiz kerak bo'lgan bir nechta qo'shimcha funktsiyalar:
- Nishabning dastlabki holatini kalibrlash.
- Tilt kalibrlash standart holatiga qaytadi.
5 -qadam: 1 -qadam: O'zgaruvchilarni aniqlash
Biz ko'rsatilgandek kerakli o'zgaruvchilarni belgilashdan boshlaymiz. Bir nechta o'zgaruvchilarning tasnifi:
- tiltList: 0-4 oralig'idagi egilish darajasini saqlaydigan massiv [Chap, O'ng, Oldinga, Orqaga]
- tiltBoundary: birinchi burilish darajasining chegarasi 0 (qiyalik yo'q) va 1 (engil burilish)
- prevState: oldingi tsiklning micro: bit qiyalik qiymatlarini tiltList bilan bir xil formatda saqlaydigan massiv, takrorlanishlar orasidagi burilish o'zgarishini tekshirish uchun ishlatiladi.
- ledPlotList: (x, y) shaklidagi bosh koordinata massivlarini chizish. Massivni aniqlash uchun biz: tipli raqamdan foydalanib, o'zgarmaydigan turkumli qatorni ko'rsatamiz: raqam.
6 -qadam: 2 -qadam: Nishab qiymatlarini darajaga aylantirish
5x5 LED matritsasi juda ko'p ma'lumotni ko'rsatishi mumkinligi sababli, haqiqiy egilish qiymatlari displey uchun foydali bo'lmaydi.
Buning o'rniga, tiltExtent () funktsiyasi akselerometrdan egilish qiymatiga ishora qiluvchi raqamni oladi va bu egilish qiymatlarini (son) 0 dan 4 gacha egilish darajasiga o'zgartiradi.
0 berilgan yo'nalishda qiyalik yo'qligini va 4 juda katta burilishni bildiradi, xato bo'lganda -1 qaytariladi.
Bu erda tiltBoundary va tiltSensitivity moyillik darajalari orasidagi chegara qiymatlari sifatida ishlatiladi.
7 -qadam: 3 -qadam: Nishab darajasini yig'ish
CheckRoll () va checkPitch () funktsiyalari tiltExtent () dan olingan egilish darajasini mos ravishda rul (chapdan o'ngga) va pitch (oldinga-orqaga) o'qlari uchun tiltListga yozadi.
Nishab qiymatlarini ishlatishdan oldin, biz ularni keyinroq yozilgan kalibrlash funktsiyasidan olingan pitch (zeroPitch) va rulon (zeroRoll) uchun nol qiymatidan foydalanib sozlaymiz.
Akselerometr ko'rsatkichlari chap va oldinga egilish uchun manfiy bo'lgani uchun, biz bu ikki yo'nalish uchun parametr sifatida tiltExtent () funktsiyasiga beriladigan manfiy qiymat modulini olish uchun Math.abs () funktsiyasidan foydalanishimiz kerak.
8 -qadam: 4 -qadam: LEDPlotList funktsiyalarini yozing
Nishab darajalarini tiltList -da qo'lga kiritganimizdan so'ng, biz yuzaga kelishi mumkin bo'lgan har xil holatlar uchun chizilgan chizish funktsiyalarini yozishimiz mumkin.
- plotSingle (): parametr sifatida berilgan tomonga egilish darajasini hisobga olgan holda, faqat bitta yo'nalishda egish.
- plotDiagonal (): parametr sifatida har ikki tomonga egilish darajasini hisobga olgan holda, bir xil kattalikdagi ikki tomonga burilish.
- plotUnequal (): parametr sifatida har bir tomonga egilish darajasini hisobga olgan holda, har xil kattalikdagi ikki tomonga burish. Avval plotDiagonal () dan foydalanadi va keyinchalik ledPlotList qatoriga qo'shiladi.
Bu chizish funktsiyalari keyinchalik chizish uchun ledPlotList -ga bir nechta LED koordinatalarini yozadi.
9 -qadam: 5 -qadam: Har bir holat uchun LED matritsasini chizish
4 -qadamdagi uchta holatning chizish funktsiyalaridan foydalanib, biz har xil egilish darajasining mumkin bo'lgan kombinatsiyasi uchun haqiqiy LED matritsasini chizishimiz mumkin. 4 -qadamdagi uchta funktsiya yo'nalish bo'yicha farq qilmagani uchun, LEDlarni to'g'ri yo'nalishlarda chizish uchun LED matritsasiga berilgan koordinata qiymatlarini sozlashimiz kerak.
PlotResult () egilish turini tekshiradigan va LED matritsasini mos ravishda led.plot (x, y) yordamida belgilaydigan shartlarni o'z ichiga oladi. Tiltning mumkin bo'lgan kombinatsiyasi:
Yagona yo'nalish: faqat chapga yoki faqat o'ngga
Yagona yo'nalish: faqat oldinga yoki orqaga
Ikki yo'nalish: oldinga-chapga yoki orqaga-chapga
Ikki yo'nalish: oldinga-o'ngga yoki orqaga-o'ngga
Eslatma: Ikki tomonga burilish uchun har bir kombinatsiya bir xil yoki har xil kattalikka ega bo'lishi mumkin (maxX va maxY solishtirish orqali tekshiriladi) va shuning uchun mos ravishda plotDiagonal () yoki plotUnequal () yordamida chiziladi.
10 -qadam: 6 -qadam: Kalibrlash funktsiyalarini yozing
Kodning asosiy qismini to'ldirgandan so'ng, biz endi calibTilt () va resetTilt () funktsiyalarini qo'shamiz.
calibTilt () foydalanuvchilarga mikro: bitning joriy holatini nolga burish imkonini beradi
resetTilt () taxtaning kalibrlanishini asl holatiga qaytaradi.
11 -qadam: 7 -qadam: Davlat funktsiyasini yozing
Burilish darajalari oldingi iteratsiyadan o'zgarmaganligini tekshirish uchun checkState () oddiy funktsiyasini qo'shamiz.
Agar oldingi iteratsiyadan, ya'ni stateChange == 0 dan egilish darajasida hech qanday o'zgarish bo'lmasa, biz to'g'ridan -to'g'ri keyingi iteratsiyaga o'tamiz va LED matritsasini chizishni o'tkazib, kerakli hisobni kamaytira olamiz.
12 -qadam: 8 -qadam: Hammasini birlashtirish 1 -qism
Endi biz nihoyat barcha kerakli funktsiyalarni micro: bitning cheksiz pastadiriga qayta -qayta ishga tushirishimiz mumkin.
Birinchidan, biz micro: bitdagi calibTilt () va resetTilt () funktsiyalariga A va B tugmalarini mos ravishda input.onButtonPressed () yordamida o'rnatamiz va kalibrlash tugagandan so'ng LED matritsasiga belgi qo'yamiz.
13 -qadam: 9 -qadam: Hammasini bir joyga to'plash 2 -qism
Keyin 0 -qadamdagi kod oqimiga muvofiq kerakli funktsiyalarni bajaring va holat o'zgarishini tekshiring (ya'ni, oxirgi takrorlashdan keyin micro: bit egilishida o'zgarish bor).
Agar egilish darajasida o'zgarishlar bo'lsa, ya'ni stateChange == 1 bo'lsa, kod prevState -ni yangi egilish darajalariga yangilaydi va stateChange -ni keyingi iteratsiya uchun 0 -ga qaytaradi va PlotResult () yordamida LED matritsasida yangilangan egilish darajasini belgilaydi.
14 -qadam: 10 -qadam: O'rnatish
Tugallangan kodni micro: bit -ga o'chiring.
Micro: bit va batareya paketini har qanday narsaga mahkam o'rnating va u ishlatishga tayyor!
Ajoyib
O'zingizning elektr ruhiy darajangiz bilan xursand bo'ling! Va siz hozircha, nega qiyalik sensori imkoniyatlarini kengaytirishga yoki hatto uni o'yinga aylantirishga urinmasligingiz kerak?
Bu maqola TINKERCADEMYdan.
15 -qadam: Manba
Bu maqola:
Agar sizda biron bir savol bo'lsa, quyidagi manzilga murojaat qilishingiz mumkin: [email protected].
Tavsiya:
UltraSonic suyuqlik darajasini boshqaruvchi: 6 qadam (rasmlar bilan)
UltraSonic Suyuqlik darajasi boshqaruvchisi: Kirish Balki bilasizki, Eronda quruq ob -havo bor va mening mamlakatimda suv etishmaydi. Ba'zida, ayniqsa yozda, hukumat suvni kesib tashlaganini ko'rish mumkin. Shunday qilib, ko'p xonadonlarda suv idishi bor. 1 bor
Arduino bilan yonilg'i darajasini o'lchash: 4 qadam (rasmlar bilan)
Yoqilg'i darajasini Arduino yordamida o'lchash: Sensor qurilmasi odatda zamonaviy avtomashinada odatda bosilgan siyoh dizayniga ega bo'lgan potansiometrga ulangan floatni ishlatadi. Tank bo'shatilgach, suzuvchi rezistor bo'ylab harakatlanuvchi kontaktni tushirib siljitadi va uning qarshiligini oshiradi. [2] Bunga qo'chimcha,
Quyosh energiyali elektr stantsiyasining elektr energiyasini masofadan boshqarish va tarqatish tizimi: 10 qadam
Quyosh energiyali elektr stantsiyasining masofadan turib elektr energiyasini kuzatish va tarqatish tizimi: Ushbu loyihaning maqsadi energiya tizimlarida (quyosh energiyasi tizimlari) quvvatni kuzatish va tarqatishdir. Ushbu tizimning dizayni mavhum tarzda quyidagicha izohlanadi. Tizimda taxminan 2 ta quyosh panelli bir nechta tarmoqlar mavjud
Mikro: bit shovqin darajasini aniqlash: 3 qadam
Mikro: bitli shovqin darajasini aniqlash moslamasi: Bu mikro: bit va Pimoroni muhitiga asoslangan shovqin darajasini aniqlash moslamasining qisqa namunasidir. Atrofdagi mikrofon: bit tovush darajasini aniqlaydi va natijada olingan pozitsiyadan 5x5 LED matritsasi hisoblab chiqiladi va
Elektr detallari uchun elektr skuterni qanday ajratish mumkin: 6 qadam
Elektr detallari uchun elektr skuterni qanday ajratish mumkin. Bu-men elektr tog'li taxtani qurish uchun zarur bo'lgan ehtiyot qismlar uchun ikkinchi qo'l elektr skuterni ajratish usuli. (Fikr > > https: // www .instructables.com/id/Electric-Mountain-Board/) Ikkinchi qo'lni sotib olishimning sababi