Mündəricat:
- Addım 1: Məqsədlər
- Addım 2: Materiallar
- Addım 3: Əvvəlcədən Kodlaşdırma: Mikro: Bitinizi bağlayın
- Addım 4: Adım 0: Kod axını
- Addım 5: Adım 1: Dəyişənlərin müəyyən edilməsi
- Addım 6: Addım 2: Tilt dəyərlərini səviyyələrə çevirin
- Addım 7: Addım 3: Tilt səviyyələrini tərtib edin
- Addım 8: Addım 4: LEDPlotList Funksiyalarını yazın
- Addım 9: Addım 5: Hər bir İş üçün LED Matrisini qurun
- Addım 10: Addım 6: Kalibrləmə funksiyalarını yazın
- Addım 11: Adım 7: Vəziyyət funksiyasını yazın
- Adım 12: Adım 8: Hamısını Bir yerə qoyun 1 -ci hissə
- Addım 13: Adım 9: Hamısını Bir yerə qoyun 2 -ci hissə
- Adım 14: Adım 10: Montaj
- Addım 15: Mənbə
Video: Elektrik Ruhu səviyyəsi yaradın: 15 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Əlavə edilmiş hər hansı bir cismin əyilməsini tez və asanlıqla göstərmək üçün bu ruh səviyyəsindən istifadə edin!
Raffles İnstitutundan Kaitlyn tərəfindən hazırlanmışdır.
Addım 1: Məqsədlər
Mikro: bitin quraşdırılmış sürətləndiricisi ilə əyilməyi oxumağı öyrənin.
Micro: bit 5x5 LED Ekran ilə işləməyi öyrənin!
Addım 2: Materiallar
1 x BBC mikro: bit
1 x Mikro USB kabeli
2 x AA Batareya
1 x Cüt AA Batareya Paketi
Addım 3: Əvvəlcədən Kodlaşdırma: Mikro: Bitinizi bağlayın
- Mikro USB kabelindən istifadə edərək BBC micro: bit -i kompüterinizə qoşun.
- Makecode.microbit.org saytında micro: bit üçün javascript redaktoruna daxil olun.
Addım 4: Adım 0: Kod axını
Kodu yazmağa başlamazdan əvvəl, proqramla nəyə nail olmaq istədiyimizə və hər bir komponentin hansı ardıcıllıqla işləməli olduğuna qərar verməliyik.
Elektrik ruhu səviyyəsi üçün, hər bir döngə üçün kodda atacağımız addımlar:
- Akselerometrdən əyilmə oxunuşlarını oxuyun.
- Tilt oxunuşlarını LED matrisində göstəriləcək əyilmə səviyyəsinə çevirin.
- Əvvəlki döngədən əyilmə səviyyəsi oxunuşlarında dəyişiklik olub olmadığını yoxlayın.
- Fərqli əyilmə halları və istiqamətləri üçün bir sıra LED koordinatları yaradın.
- LED koordinatlarını mikro: bit LED matrisinə çəkin.
Daxil etməli olduğumuz bir neçə əlavə funksiya bunlardır:
- İlkin əyilmə mövqeyi üçün kalibrləmə.
- Varsayılan əyilmə kalibrinə qayıdır.
Addım 5: Adım 1: Dəyişənlərin müəyyən edilməsi
Göstərildiyi kimi lazım olan dəyişənləri təyin etməklə başlayırıq. Bir neçə dəyişənə bölünmə aşağıdakılardır:
- tiltList: 0-4 dəyərlərindən olan əyilmə dərəcəsini [Sol, Sağ, İrəli, Geri] qaydada saxlayan dizi
- tiltBoundary: 0 (əyilmə) ilə 1 (yüngül əyilmə) arasındakı birinci əyilmə səviyyəsinin sərhədi
- prevState: Əvvəlki döngədəki mikro: bitin əyilmə dəyərlərini tiltList ilə eyni formatda saxlayan dizi, yinelemeler arasında meyl dəyişikliyini yoxlamaq üçün istifadə olunur.
- ledPlotList: (x, y) formasında led koordinat dizilərini qurun. Bir sıra təyin etmək üçün növ: tipli dəyişənlərin daxil edilmiş bir sıra göstərmək üçün tip nömrəsini istifadə edirik.
Addım 6: Addım 2: Tilt dəyərlərini səviyyələrə çevirin
5x5 LED matrisi yalnız bu qədər məlumat göstərə bildiyindən, əyilmənin əsl dəyərləri ekran üçün faydalı olmayacaq.
Bunun əvəzinə tiltExtent () funksiyası, əyilmə dəyərini akselerometrdən ifadə edən num parametrini alır və bu əyilmə dəyərlərini (num) 0 -dan 4 -ə qədər əyilmə səviyyəsinə çevirir.
0 verilən istiqamətdə əyilmənin olmadığını və 4 çox böyük əyilmənin olduğunu göstərir, səhv olduqda -1 qaytarılır.
Burada tiltBoundary və tiltSensitivity tilt səviyyələri arasındakı sərhəd dəyərləri olaraq istifadə olunur.
Addım 7: Addım 3: Tilt səviyyələrini tərtib edin
İki funksiya checkRoll () və checkPitch () tiltExtent () -dən əldə edilən əyilmə səviyyələrini müvafiq olaraq rul (sol-sağ) və meydança (irəli-geri) oxları üçün tiltList-ə yazır.
Tilt dəyərlərini istifadə etməzdən əvvəl, daha sonra yazılmış bir kalibrləmə funksiyasından əldə edilən həm meydança (zeroPitch), həm də rulon (zeroRoll) üçün sıfırlanmış bir dəyər istifadə edərək onları kalibr edirik.
Sürətölçən oxunuşları həm sol, həm də irəli əyilmə üçün mənfi olduğu üçün bu iki istiqamət üçün parametr olaraq tiltExtent () funksiyasına veriləcək mənfi dəyərin modulunu əldə etmək üçün Math.abs () funksiyasından istifadə etməliyik.
Addım 8: Addım 4: LEDPlotList Funksiyalarını yazın
TiltList -də əyilmə səviyyələrini əldə etdikdən sonra, ortaya çıxa biləcək fərqli hallar üçün LED qurma funksiyalarını yaza bilərik.
- plotSingle (): Parametr olaraq verilən istiqamətdə əyilmə dərəcəsini nəzərə alaraq yalnız bir istiqamətə əymək.
- plotDiagonal (): Parametr olaraq hər iki istiqamətdə əyilmə dərəcəsini nəzərə alaraq eyni böyüklükdə iki istiqamətdə əymək.
- plotUnequal (): Parametr olaraq hər istiqamətdə əyilmə dərəcəsini nəzərə alaraq müxtəlif böyüklüklərdə iki istiqamətdə əymək. Əvvəlcə plotDiagonal () istifadə edir və sonra ledPlotList sırasına əlavə edir.
Bu qurma funksiyaları ledPlotList -ə daha sonra qurulacaq bir çox led koordinat yazır.
Addım 9: Addım 5: Hər bir İş üçün LED Matrisini qurun
Addım 4 -dəki üç haldan qrafik funksiyalarından istifadə edərək, indi mümkün olan əyilmə səviyyələrinin fərqli birləşmələri üçün əsl LED matrisini qura bilərik. 4 -cü addımdakı üç funksiya istiqamətə görə ayrı -seçkilik etmədiyindən, LEDləri doğru istiqamətlərə çəkmək üçün LED matrisinə verilən koordinat dəyərlərini tənzimləməliyik.
PlotResult (), əyilmə növünü yoxlayan və LED matrisini led.plot (x, y) istifadə edərək buna uyğun quran şərtlər ehtiva edir. Tiltin mümkün birləşmələri:
Tək istiqamət: Yalnız Sol və ya Yalnız Sağ
Tək istiqamət: Yalnız irəli və ya geriyə
İki istiqamət: irəli-sola və ya geriyə-sola
İki istiqamət: irəli-sağa və ya geriyə-sağa
Qeyd: İki istiqamətdə əyilmək üçün hər bir kombinasiya eyni və ya fərqli böyüklüyə malik ola bilər (maxX və maxY -nin müqayisəsi ilə yoxlanılır) və buna görə də sırasıyla plotDiagonal () və ya plotUnequal () istifadə etməklə tərtib edilə bilər.
Addım 10: Addım 6: Kalibrləmə funksiyalarını yazın
Kodun böyük hissəsini tamamladıqdan sonra indi calibTilt () və resetTilt () funksiyalarını əlavə edirik.
calibTilt (), istifadəçilərə mikro: bitin cari mövqeyində meylini sıfıra endirməyə imkan verir
resetTilt () lövhənin kalibrini orijinal vəziyyətinə qaytarır.
Addım 11: Adım 7: Vəziyyət funksiyasını yazın
Tilt səviyyələrinin əvvəlki iterasiyadan dəyişib dəyişmədiyini yoxlamaq üçün sadə bir checkState () funksiyasını əlavə edirik.
Əgər əyilmə səviyyələrində əvvəlki iterasiyadan, yəni stateChange == 0 -dan heç bir dəyişiklik olmazsa, biz lazım olan hesablamanı azaldaraq, növbəti təkrarlamaya keçə və LED matrisinin sxemini atlaya bilərik.
Adım 12: Adım 8: Hamısını Bir yerə qoyun 1 -ci hissə
İndi nəhayət, bütün lazımi funksiyaları dəfələrlə işə salmaq üçün micro: bit -in sonsuz döngəsinə yerləşdirə bilərik.
Əvvəlcə input.onButtonPressed () istifadə edərək, micro: A və B düymələrini calibTilt () və resetTilt () funksiyalarına təyin edirik və kalibrləmə başa çatdıqda LED matrisində bir işarə qururuq.
Addım 13: Adım 9: Hamısını Bir yerə qoyun 2 -ci hissə
Sonra 0 -cı addımdakı kod axınımıza uyğun olaraq lazımi funksiyaları işlədin və vəziyyət dəyişikliyini yoxlayın (yəni, son təkrarlamadan sonra mikro: bit əyilməsində dəyişiklik olduğu deməkdir).
Tilt səviyyələrində bir dəyişiklik varsa, yəni stateChange == 1, kod prevState'i yeni əyilmə səviyyələrinə yeniləyəcək və stateChange'ı növbəti iterasiya üçün yenidən 0 -a qoyacaq və PlotResult () istifadə edərək LED matrisində yenilənmiş əyilmə səviyyələrini təyin edəcək.
Adım 14: Adım 10: Montaj
Tamamlanmış kodu mikro: bit -ə yandırın.
Micro: bit və batareya paketinizi hər hansı bir obyektə etibarlı şəkildə bağlayın və istifadəyə hazırdır!
Əla
Elektrik ruh səviyyənizlə əylənin! Və bunu edərkən, niyə əyilmə sensorunun imkanlarını genişləndirməyə və ya hətta onu oyuna çevirməyə çalışmırsınız?
Bu məqalə TINKERCADEMY -dəndir.
Addım 15: Mənbə
Bu məqalə:
Hər hansı bir sualınız varsa, əlaqə saxlaya bilərsiniz: [email protected].
Tövsiyə:
Su səviyyəsi detektoru: 7 addım
Su Səviyyə Dedektoru: Ultrasonik sensor bir radar sistemi ilə eyni prinsiplər üzərində işləyir. Ultrasonik sensor elektrik enerjisini akustik dalğalara və əksinə çevirə bilər. Məşhur HC SR04 ultrasəs sensoru 40 kHz tezlikdə ultrasəs dalğaları yaradır
Arduino və MPU6050 əsaslı rəqəmsal ruh səviyyəsi: 3 addım
Arduino və MPU6050 Əsaslı Rəqəmsal Ruh Səviyyə: Təlimat verdiyim ilk dərsimə xoş gəldiniz! Ümid edirəm məlumatlandırıcı tapacaqsınız. Zəhmət olmasa müsbət və ya mənfi rəy bildirməkdən çekinmeyin.Bu layihə bir arduino etməkdir. MPU6050 əsaslı rəqəmsal ruh səviyyəsi. Hazır dizayn və
Real vaxtda su istiliyi, keçiricilik və su səviyyəsi ölçən: 6 addım (şəkillərlə)
Real Zamanlı Quyu Suyu İstiliyi, İletkenlik və Su Səviyyə Ölçmə Cihazı: Bu təlimatlar qazma quyularında temperaturun, Elektrik keçiriciliyinin (EC) və suyun səviyyəsini izləmək üçün aşağı qiymətli, real vaxt rejimində su sayğacının necə qurulacağını təsvir edir. Sayğac, qazılmış bir quyunun içərisində asmaq, suyun temperaturunu ölçmək, EC və
DIY rəqəmsal ruh səviyyəsi: 5 addım (şəkillərlə)
DIY Rəqəmsal Ruh Səviyyə: Bu layihədə akselerometr IC -lərinə daha yaxından baxacağıq və bunları Arduino ilə necə istifadə edə biləcəyimizi öyrənəcəyik. Daha sonra rəqəmsal bir rəqəm yaratmaq üçün belə bir IC -ni bir neçə tamamlayıcı komponent və 3D çaplı bir korpusla birləşdirəcəyik
Elektrik hissələri üçün elektrik skuterini necə ayırmaq olar .: 6 addım
Elektrik hissələri üçün elektrikli skuter necə ayrılır: Theis, elektrikli dağ lövhəsi qurmaq üçün lazım olan hissələr üçün ikinci əl dayanan elektrikli skuteri ayırdığım yoldur. (Fikir > > https: // www .instructables.com/id/Electric-Mountain-Board/) İkinci əl almağımın səbəbi