Мазмұны:
- 1 -қадам: Мақсаттар
- 2 -қадам: материалдар
- 3 -қадам: Алдын ала кодтау: микро: битке қосыңыз
- 4 -қадам: 0 -қадам: Код ағыны
- 5 -қадам: 1 -қадам: Айнымалыларды анықтау
- 6 -қадам: 2 -қадам: көлбеу мәндерді деңгейге түрлендіру
- 7 -қадам: 3 -қадам: көлбеу деңгейлерді құрастырыңыз
- 8 -қадам: 4 -қадам: LEDPlotList функцияларын жазыңыз
- 9 -қадам: 5 -қадам: Әр жағдай үшін жарықдиодты матрицаны құрыңыз
- 10 -қадам: 6 -қадам: Калибрлеу функцияларын жазу
- 11 -қадам: 7 -қадам: күй функциясын жазу
- 12 -қадам: 8 -қадам: Барлығын біріктіру 1 -бөлім
- 13 -қадам: 9 -қадам: Барлығын біріктіру 2 -бөлім
- 14 -қадам: 10 -қадам: Жинау
- 15 -қадам: Дереккөз
Бейне: Электрлік рух деңгейін жасаңыз: 15 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Тіркелген кез келген заттың қисаюын тез және оңай көрсету үшін осы рух деңгейін қолданыңыз!
Кейтлин Raffles институтынан жасаған.
1 -қадам: Мақсаттар
Еңкейтуді micro: bit қондырылған акселерометрмен оқуды үйреніңіз.
Micro: bit 5x5 жарықдиодты дисплеймен жұмыс істеуді үйреніңіз!
2 -қадам: материалдар
1 x BBC микро: бит
1 x Micro USB кабелі
2 x AA батареялары
1 x қосарлы АА батарея жиынтығы
3 -қадам: Алдын ала кодтау: микро: битке қосыңыз
- BBC микро: битін компьютерге микро USB кабелі арқылы қосыңыз.
- Makecode.microbit.org сайтынан micro: bit үшін JavaScript редакторына кіріңіз.
4 -қадам: 0 -қадам: Код ағыны
Кодты жазуды бастамас бұрын, біз бағдарламамен қандай нәтижеге қол жеткізгіміз келетінін және әрбір компонент қандай ретпен жұмыс жасау керектігін шешуіміз керек.
Электрлік рух деңгейі үшін әр цикл үшін кодта қолданылатын қадамдар:
- Көлбеу көрсеткіштерді акселерометрден оқыңыз.
- Жарық диодты матрицада көрсетілетін көлбеу көрсеткіштерді көлбеу деңгейге түрлендіріңіз.
- Алдыңғы циклден көлбеу деңгей көрсеткіштерінің өзгеруін тексеріңіз.
- Әр түрлі көлбеу жағдайлары мен бағыттары үшін жарықдиодты координаттар жиынын жасаңыз.
- Жарықдиодты координаталарды микро: биттік жарықдиодты матрицаға салыңыз.
Біз қосатын бірнеше қосымша функциялар:
- Бастапқы көлбеу позиция үшін калибрлеу.
- Әдепкі көлбеу калибрлеуге оралу.
5 -қадам: 1 -қадам: Айнымалыларды анықтау
Біз суретте көрсетілгендей қажет айнымалыларды анықтаудан бастаймыз. Бірнеше айнымалылардың бөлінуі:
- tiltList: 0-4 мәндерінің қисаю дәрежесін сақтайтын массив [Солға, Оңға, Алға, Артқа]
- еңкейту Шекарасы: 0 (еңкейтілмеген) мен 1 (еңкейту) арасындағы бірінші қисайу деңгейінің шекарасы
- prevState: итерациялар арасындағы көлбеудің өзгеруін тексеру үшін пайдаланылатын tiltList форматындағы алдыңғы циклдегі micro: бит көлбеу мәндерін сақтайтын массив
- ledPlotList: (x, y) түріндегі жетекші координаталық массивтерді салу. Массивті анықтау үшін біз типті нөмірді қолданып, кірістірілген түрдегі айнымалылар жиынын көрсетеміз: сан.
6 -қадам: 2 -қадам: көлбеу мәндерді деңгейге түрлендіру
5x5 жарық диодты матрицасы тек көп ақпаратты көрсете алатындықтан, көлбеудің нақты мәндері дисплей үшін пайдалы болмайды.
Оның орнына tiltExtent () функциясы акселерометрден көлбеу мәнін білдіретін num параметрін қабылдайды және бұл қисайу мәндерін (num) 0 -ден 4 -ке дейін еңкейту деңгейіне түрлендіреді.
0 берілген бағытта еңкейтуді көрсетпейді және 4 өте үлкен қисайуды көрсетеді, ал қате болған кезде -1 қайтарылады.
Мұнда көлбеу деңгейлер арасындағы шекаралық мәндер ретінде tiltBoundary және tiltSensitivity қолданылады.
7 -қадам: 3 -қадам: көлбеу деңгейлерді құрастырыңыз
CheckRoll () және checkPitch () екі функциясы tiltExtent () -тен алынған көлбеу деңгейлерді тиісінше орама (солға-оңға) және қадамға (алға-артқа) осьтер үшін tiltList-ке жазады.
Көлбеу мәндерді қолданбас бұрын, біз оларды кейінірек жазылған калибрлеу функциясынан алынған қадам (zeroPitch) және орама (zeroRoll) үшін нөлдік мәнді қолданып калибрлейміз.
Акселерометрдің көрсеткіштері солға да, алға да еңкейту үшін теріс болғандықтан, біз осы екі бағыттың параметрі ретінде tiltExtent () функциясына берілетін теріс мәннің модулін алу үшін Math.abs () функциясын қолдануымыз қажет.
8 -қадам: 4 -қадам: LEDPlotList функцияларын жазыңыз
TiltList ішіндегі көлбеу деңгейлерді алғаннан кейін, біз туындауы мүмкін әр түрлі жағдайларға арналған негізгі сызу функцияларын жаза аламыз.
- plotSingle (): параметр ретінде берілген бағытта еңкейту дәрежесін ескере отырып, тек бір бағытта қисайтыңыз.
- plotDiagonal (): параметр ретінде екі бағытта еңкейту дәрежесін ескере отырып, бірдей шамада екі бағытта еңкейту.
- plotUnequal (): параметр ретінде әр бағытта еңкейту дәрежесін ескере отырып, әр түрлі шамадағы екі бағытта еңкейту. Алдымен plotDiagonal () пайдаланады, содан кейін ledPlotList массивіне қосылады.
Бұл графикалық функциялар ledPlotList -ке кейінірек сызылатын координаталар жиынын жазады.
9 -қадам: 5 -қадам: Әр жағдай үшін жарықдиодты матрицаны құрыңыз
4 -қадамдағы үш жағдайдың графикалық функцияларын қолдана отырып, біз көлбеу деңгейлерінің әр түрлі мүмкін комбинациялары үшін нақты жарықдиодты матрицаны құра аламыз. 4 -қадамдағы үш функция бағыт бойынша кемсітпейтіндіктен, светодиодтарды дұрыс бағытта салу үшін жарықдиодты матрицаға берілген координаталық мәндерді реттеу керек.
PlotResult () көлбеу түрін тексеретін және сәйкесінше LED.plot (x, y) көмегімен жарықдиодты матрицаны құратын шарттарды қамтитын бірнеше шарттарды қамтиды. Еңкейтудің мүмкін комбинациясы:
Бір бағыт: тек солға немесе оңға
Бір бағыт: тек алға немесе тек артқа
Екі бағыт: Алға-солға немесе Артқа-солға
Екі бағыт: Алға-оңға немесе Артқа-оңға
Ескерту: Екі бағытта қисайту үшін әр комбинация бірдей немесе әртүрлі шамада болуы мүмкін (maxX пен maxY салыстыру арқылы тексеріледі), демек, сәйкесінше plotDiagonal () немесе plotUnequal () көмегімен сызылады.
10 -қадам: 6 -қадам: Калибрлеу функцияларын жазу
Кодтың негізгі бөлігін аяқтағаннан кейін біз қазір calibTilt () және resetTilt () функцияларын қосамыз.
calibTilt () пайдаланушыларға микро: бит ағымдағы орнында қисайтуды нөлге дейін реттеуге мүмкіндік береді
resetTilt () тақтаның калибрлеуін бастапқы күйіне қайтарады.
11 -қадам: 7 -қадам: күй функциясын жазу
Біз көлбеу деңгейлердің алдыңғы итерациядан өзгергенін тексеру үшін checkState () функциясын қосамыз.
Егер алдыңғы итерациядан, мысалы stateChange == 0, көлбеу деңгейлерде ешқандай өзгеріс болмаса, біз келесі итерацияға тікелей өтіп, жарықдиодты матрицаның сызбасын өткізіп жібере аламыз, бұл үшін қажет есептеулерді азайтады.
12 -қадам: 8 -қадам: Барлығын біріктіру 1 -бөлім
Енді біз бірнеше рет іске қосу үшін барлық қажетті функцияларды micro: bit шексіз циклына орналастыра аламыз.
Алдымен micro: A және B батырмасын calibTilt () және resetTilt () функцияларына input.onButtonPressed () көмегімен орнатамыз және калибрлеу аяқталғанда жарық диодты матрицада белгі қоямыз.
13 -қадам: 9 -қадам: Барлығын біріктіру 2 -бөлім
Содан кейін 0 -қадамдағы код ағынына сәйкес қажетті функцияларды іске қосыңыз және күйдің өзгеруін тексеріңіз (соңғы итерациядан кейін micro: bit көлбеуінің өзгеруі бар екенін білдіреді).
Егер көлбеу деңгейлерде өзгеріс болса, яғни stateChange == 1 болса, код prevState режимін жаңа еңкейту деңгейіне жаңартады және келесі қайталау үшін stateChange мәнін 0 қалпына келтіреді және PlotResult () көмегімен жарық диодты матрицада жаңартылған көлбеу деңгейлерін көрсетеді.
14 -қадам: 10 -қадам: Жинау
Аяқталған кодты micro: bitке жіберіңіз.
Micro: bit пен батарея жинағын кез келген затқа мықтап бекітіңіз және ол пайдалануға дайын!
Тамаша
Өзіңіздің электрлік деңгейіңізбен көңілді болыңыз! Сіз мұны істеп жатқанда, неге көлбеу сенсордың мүмкіндіктерін кеңейтуге немесе оны ойынға айналдыруға тырыспасқа?
Бұл мақала TINKERCADEMY.
15 -қадам: Дереккөз
Бұл мақала:
Егер сізде сұрақтар туындаса, мына мекенжайға хабарласа аласыз: [email protected].
Ұсынылған:
Смит су жылытқыш мониторы IRIS деңгейін төмендетеді: 3 қадам
Смит су жылытқышының мониторы IRIS -ті төмендетеді: «Ақылды» бола алатын жаңа су жылытқышты сатып алғаннан кейін көп ұзамай. немесе қашықтан басқарылады. Лоус IRIS платформасын тоқтатып, барлық IRIS өнімдерін пайдасыз етті. Олар өздерінің хабына бастапқы кодты шығарғанымен, менің жұбайым
Су жұмсартқыш тұз деңгейін бақылау: 7 қадам
Су жұмсартқыш тұз деңгейінің мониторы: су жұмсартқыштар ион алмасу деп аталатын процесті қолданады, онда қатты судан кальций мен магний иондары натрий хлоридімен (шайырмен) арнайы шайыр арқылы алмасады. Су қысыммен жұмыс істейтін ыдысқа түседі, онда ол шайырлы моншақтар арқылы өтеді
Arduino & MPU6050 негізіндегі цифрлық рух деңгейі: 3 қадам
Arduino & MPU6050 негізіндегі цифрлық рух деңгейі: менің бірінші нұсқаулыққа қош келдіңіз! Сіз оны ақпараттандырады деп үміттенемін. Позитивті немесе негативті пікір қалдыруды өтінемін. Бұл жоба arduino & MPU6050 негізделген сандық рух деңгейі. Дайын дизайн және
UltraSonic сұйықтық деңгейін реттегіш: 6 қадам (суреттермен)
UltraSonic сұйықтық деңгейін реттегіш: Кіріспе Өздеріңіз білетіндей, Иранда ауа райы құрғақ, ал менің елімде су жетіспейді. Кейде, әсіресе жазда, үкіметтің суды қысқартатынын байқауға болады. Сондықтан пәтерлердің көпшілігінде су ыдысы бар. Онда 1
Цифрлық рух деңгейі - электронды сөндірушілердің DIY жобасының модулі: 6 қадам
Цифрлық рух деңгейі - электроника сүйгіштердің DIY жобасының модулі: Үйге жиһаз немесе соған ұқсас нәрсені монтаждау қажет болатын кез бар, және оны тікелей монтаждау үшін әдетте спираль деңгейін қолданыңыз. ElectronicsLovers Tech Team бұл модульді құрды, оның әдеттегіден бір айырмашылығы бар: мен