Съдържание:
- Стъпка 1: Цели
- Стъпка 2: Материали
- Стъпка 3: Предварително кодиране: Свържете вашия Micro: Bit
- Стъпка 4: Стъпка 0: Кодов поток
- Стъпка 5: Стъпка 1: Дефиниране на променливи
- Стъпка 6: Стъпка 2: Преобразувайте стойностите на наклона в нива
- Стъпка 7: Стъпка 3: Компилирайте нивата на накланяне
- Стъпка 8: Стъпка 4: Напишете функциите на LEDPlotList
- Стъпка 9: Стъпка 5: Начертайте LED матрица за всеки случай
- Стъпка 10: Стъпка 6: Напишете функции за калибриране
- Стъпка 11: Стъпка 7: Функция за запис на състояние
- Стъпка 12: Стъпка 8: Всичко заедно Част 1
- Стъпка 13: Стъпка 9: Обединяване на всичко, част 2
- Стъпка 14: Стъпка 10: Сглобяване
- Стъпка 15: Източник
Видео: Създайте електрическо ниво: 15 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Използвайте този нивелир за бързо и лесно показване на наклона на всеки прикрепен обект!
Създадено от Kaitlyn от Raffles Institution.
Стъпка 1: Цели
Научете се да четете наклона с вградения акселерометър micro: bit.
Научете се да работите с 5x5 LED дисплей на micro: bit!
Стъпка 2: Материали
1 x BBC микро: бит
1 x Micro USB кабел
2 x AA батерии
1 x двойна батерия AA
Стъпка 3: Предварително кодиране: Свържете вашия Micro: Bit
- Свържете BBC micro: bit към компютъра си с помощта на микро USB кабел.
- Достъп до редактора на javascript за micro: bit на адрес makecode.microbit.org.
Стъпка 4: Стъпка 0: Кодов поток
Преди да започнем да пишем кода, трябва да решим какво искаме да постигнем с програмата и в какъв ред трябва да работи всеки компонент.
За електрическия нивелир стъпките, които ще предприемем в кода за всеки цикъл, са:
- Прочетете показанията за наклон от акселерометъра.
- Конвертирайте показанията на наклона в нива на наклон, които да се показват на LED матрицата.
- Проверете за промяна в показанията на нивото на наклона от предишния цикъл.
- Създайте масив от LED координати за различни наклонени случаи и посоки.
- Начертайте LED координати върху micro: битова LED матрица.
Няколко допълнителни функции, които трябва да включим, са:
- Калибриране за начална позиция на накланяне.
- Връщане към стандартното калибриране на наклона.
Стъпка 5: Стъпка 1: Дефиниране на променливи
Започваме с дефиниране на необходимите променливи, както е показано. Разбивка на няколко променливи е:
- tiltList: Масив, който съхранява степента на наклон от стойности 0-4 в реда [Наляво, надясно, напред, назад]
- tiltBoundary: Граница на първото ниво на наклон между 0 (без накланяне) и 1 (леко накланяне)
- prevState: Масив, който съхранява стойностите на наклона на micro: bit от предишен цикъл в същия формат като tiltList, използван за проверка за промяна в наклона между итерациите
- ledPlotList: Начертайте водещи координатни масиви под формата (x, y). За да дефинираме масив, използваме номер номер , за да посочим вложен масив от променливи от тип: число.
Стъпка 6: Стъпка 2: Преобразувайте стойностите на наклона в нива
Тъй като 5x5 LED матрицата може да показва само толкова много информация, действителните стойности на наклона няма да бъдат полезни за показване.
Вместо това функция tiltExtent () взема параметъра num, който се отнася до стойността на накланяне от акселерометъра, и преобразува тези стойности на накланяне (num) в нива на накланяне от 0 до 4.
0 показва, че няма наклон в дадената посока, а 4 показва много голям наклон, докато -1 се връща, когато има грешка.
Тук tiltBoundary и tiltSensitivity се използват като гранични стойности между нивата на накланяне.
Стъпка 7: Стъпка 3: Компилирайте нивата на накланяне
Двете функции checkRoll () и checkPitch () записват нивата на накланяне, получени от tiltExtent () в tiltList за осите на ролката (ляво-дясно) и височината (напред-назад) съответно.
Преди да използваме стойностите на наклона, ги калибрираме, като използваме нулирана стойност както за височина (zeroPitch), така и за ролка (zeroRoll), получена от функция за калибриране, написана по -късно.
Тъй като показанията на акселерометъра са отрицателни както за наклон наляво, така и напред, трябва да използваме функцията Math.abs (), за да получим модула на отрицателната стойност, която трябва да се даде на функцията tiltExtent () като параметър за тези две посоки.
Стъпка 8: Стъпка 4: Напишете функциите на LEDPlotList
След като получихме нивата на наклон в tiltList, сега можем да напишем водещите функции за нанасяне на графики за различните случаи, които могат да възникнат, а именно
- plotSingle (): Накланяне само в една посока, като се приема степента на наклон в дадена посока като параметър.
- plotDiagonal (): Наклонете се в две посоки със същата величина, като вземете степента на наклон във всяка посока като параметър.
- plotUnequal (): Наклон в две посоки с различни величини, като се приема степента на наклон във всяка посока като параметър. Използва първо plotDiagonal () и след това добавя към масива ledPlotList.
Тези графични функции записват масив от водещи координати в ledPlotList, който да бъде нанесен по -късно.
Стъпка 9: Стъпка 5: Начертайте LED матрица за всеки случай
Използвайки графичните функции от трите случая в стъпка 4, сега можем да начертаем действителната LED матрица за различните възможни комбинации от нива на накланяне. Тъй като трите функции в стъпка 4 не различават посоката, трябва да коригираме стойностите на координатите, предадени на LED матрицата, за да начертаем светодиодите в правилните посоки.
PlotResult () съдържа множество if условия, които проверяват вида на наклона и съответно начертават LED матрицата, използвайки led.plot (x, y). Възможните комбинации от наклон са:
Единична посока: само отляво или само отдясно
Единична посока: само напред или само назад
Две посоки: напред-наляво или назад-наляво
Две посоки: напред-надясно или назад-надясно
Забележка: За накланяне в две посоки, всяка комбинация може да има еднаква или различна величина (проверява се чрез сравняване на maxX и maxY) и следователно се нанася с помощта на plotDiagonal () или plotUnequal () съответно.
Стъпка 10: Стъпка 6: Напишете функции за калибриране
След като завършихме по -голямата част от кода, сега добавяме функциите calibTilt () и resetTilt ().
calibTilt () позволява на потребителите да тарират наклона до нула в текущата позиция на micro: bit
resetTilt () връща калибрирането на платката до първоначалното й състояние.
Стъпка 11: Стъпка 7: Функция за запис на състояние
Добавяме проста функция checkState (), за да проверим дали нивата на накланяне са се променили от предишна итерация.
Ако няма промяна в нивата на наклон от предишна итерация, т.е. stateChange == 0, можем директно да преминем към следващата итерация и да пропуснем начертаването на LED матрицата, намалявайки необходимото изчисление.
Стъпка 12: Стъпка 8: Всичко заедно Част 1
Сега най -накрая можем да поставим всички необходими функции в безкрайния цикъл на micro: bit, за да го изпълняваме многократно.
Първо, настройваме бутоните A и B на micro: bit към функциите calibTilt () и resetTilt () съответно, като използваме input.onButtonPressed (), и нанасяме отметка върху LED матрицата, когато калибрирането приключи.
Стъпка 13: Стъпка 9: Обединяване на всичко, част 2
След това изпълнете необходимите функции според нашия кодов поток в Стъпка 0 и проверете за промяна на състоянието (което означава, че има промяна в наклона на micro: bit от последната итерация).
Ако има промяна в нивата на наклон, т.е. stateChange == 1, кодът ще актуализира prevState до новите нива на накланяне и ще зададе stateChange обратно на 0 за следващата итерация и ще начертае актуализираните нива на накланяне на LED матрицата, използвайки PlotResult ().
Стъпка 14: Стъпка 10: Сглобяване
Мигайте завършения код към вашия micro: bit.
Прикрепете вашия micro: bit и батерията здраво към всеки предмет и е готов за употреба!
Страхотно
Забавлявайте се с електрическото си духово ниво! И докато сте в това, защо не опитате да разширите възможностите на сензора за наклон или дори да го превърнете в игра?
Тази статия е от TINKERCADEMY.
Стъпка 15: Източник
Тази статия е от:
Ако имате въпроси, можете да се свържете с: [email protected].
Препоръчано:
Как да направим кутия за сигурност, следвайки играта сред нас - задача за електрическо окабеляване: 7 стъпки
Как да направим кутия за сигурност, следвайки играта „Сред нас“- Задача за електрическо окабеляване: Днес ще ви покажа как да направите кутия за сигурност след игра „Сред нас“- задача за електрическо окабеляване
Моето електрическо отопление с Shelly: 13 стъпки
Моето електрическо отопление с Shelly: Исках да споделя моя опит от домашната автоматизация на моето електрическо подово отопление с модулите Shelly1pm и приставката Jeedom Thermostat. Тази инсталация има за цел да намали консумацията ми на електроенергия, като ограничи отоплението, ако сме далеч от дома
Електрическо измервателно устройство за разходи за енергия на Arduino: 13 стъпки (със снимки)
Устройство за измерване на разходите за енергия на Arduino: Плащате ли твърде много за сметките си за ток? Искате ли да знаете колко електроенергия консумира вашата чайник или нагревател? Направете свой собствен преносим електрически измервател на разходите за енергия! Гледайте как намерих използването на това устройство
Електрическо скейтборд дистанционно: 7 стъпки
Електрическо дистанционно за скейтборд: Създайте електрическо дистанционно за скейтборд, в JAVASCRIPT! Присъединете се към моето пътуване, надявам се, че ще научите нещо. Това няма да бъде урок стъпка по стъпка. Това ще бъде по -скоро демонстрация на това, което съм използвал, как съм го направил и съм сигурен, че можете да го направите. Дори препоръчвам
LM317 Електрическо захранване с ниска цена: 6 стъпки
LM317 Бюджетно захранване с ниска цена: Здравейте момчета, това е първият ми проект с инструкции. тук ще ви покажа как направих моето евтино захранване с пейка LM317. Надявам се, че ще ви хареса