Оглавление:
- Шаг 1. Цели
- Шаг 2: материалы
- Шаг 3: Предварительное кодирование: подключите свой Micro: Bit
- Шаг 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 11:53
Используйте этот спиртовой уровень, чтобы быстро и легко отобразить наклон любого прикрепленного объекта!
Создано Кейтлин из института Raffles.
Шаг 1. Цели
Научитесь определять угол наклона с помощью встроенного акселерометра micro: bit.
Научитесь работать со светодиодным дисплеем micro: bit 5x5!
Шаг 2: материалы
1 x BBC micro: бит
1 кабель Micro USB
2 батарейки типа АА
1 х двойной батарейный блок AA
Шаг 3: Предварительное кодирование: подключите свой Micro: Bit
- Подключите BBC micro: bit к компьютеру с помощью кабеля micro USB.
- Получите доступ к редактору javascript для micro: bit на сайте makecode.microbit.org.
Шаг 4: Шаг 0: поток кода
Прежде чем мы начнем писать код, нам нужно решить, чего мы хотим достичь с помощью программы и в каком порядке должен запускаться каждый компонент.
Для электрического спиртового уровня шаги, которые мы предпримем в коде для каждого цикла:
- Считайте показания наклона с акселерометра.
- Преобразуйте показания наклона в уровни наклона, которые будут отображаться на светодиодной матрице.
- Проверьте изменение показаний уровня наклона по сравнению с предыдущим циклом.
- Создайте массив координат светодиодов для различных случаев наклона и направлений.
- Нанесите координаты светодиода на микробитовую светодиодную матрицу.
Нам необходимо включить несколько дополнительных функций:
- Калибровка начального положения наклона.
- Возврат к калибровке наклона по умолчанию.
Шаг 5: Шаг 1: Определение переменных
Начнем с определения необходимых переменных, как показано. Разбивка по нескольким переменным:
- tiltList: массив, в котором хранятся значения наклона от 0 до 4 в порядке [влево, вправо, вперед, назад].
- tiltBoundary: граница первого уровня наклона между 0 (без наклона) и 1 (небольшой наклон)
- prevState: массив, в котором хранятся значения наклона micro: bit из предыдущего цикла в том же формате, что и tiltList, используемый для проверки изменения наклона между итерациями.
- ledPlotList: Постройте массивы координат светодиодов в форме (x, y). Чтобы определить массив, мы используем тип number , чтобы указать вложенный массив переменных типа: number.
Шаг 6: Шаг 2: преобразование значений наклона в уровни
Поскольку светодиодная матрица 5x5 может отображать не так много информации, фактические значения наклона не будут полезны для отображения.
Вместо этого функция 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: Постройте светодиодную матрицу для каждого случая
Используя функции построения графиков из трех случаев на шаге 4, теперь мы можем построить фактическую светодиодную матрицу для различных возможных комбинаций уровней наклона. Поскольку три функции на шаге 4 не различают направление, нам необходимо настроить значения координат, передаваемые в матрицу светодиодов, чтобы расположить светодиоды в правильных направлениях.
PlotResult () содержит несколько условий if, которые проверяют тип наклона и соответственно строят светодиодную матрицу с помощью led.plot (x, y). Возможные комбинации наклона:
Одно направление: только влево или только вправо
Одно направление: только вперед или только назад
Два направления: вперед-влево или назад-влево
Два направления: вперед-вправо или назад-вправо
Примечание. Для наклона в двух направлениях каждая комбинация может иметь одинаковую или разную величину (проверяется путем сравнения maxX и maxY) и, следовательно, строится с использованием plotDiagonal () или plotUnequal () соответственно.
Шаг 10: Шаг 6: Запишите функции калибровки
Завершив основную часть кода, мы добавляем функции calibTilt () и resetTilt ().
calibTilt () позволяет пользователям настраивать наклон до нуля в текущей позиции micro: bit
resetTilt () сбрасывает калибровку платы в исходное состояние.
Шаг 11: Шаг 7: функция записи состояния
Мы добавляем простую функцию checkState (), чтобы проверить, изменились ли уровни наклона по сравнению с предыдущей итерацией.
Если нет изменений в уровнях наклона по сравнению с предыдущей итерацией, то есть stateChange == 0, мы можем сразу перейти к следующей итерации и пропустить построение светодиодной матрицы, уменьшив необходимость в вычислениях.
Шаг 12: Шаг 8: Собираем все вместе, часть 1
Теперь мы можем, наконец, поместить все необходимые функции в бесконечный цикл micro: bit, чтобы запускать его многократно.
Во-первых, мы устанавливаем кнопки A и B на micro: bit для функций 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].
Рекомендуемые:
СОЗДАЙТЕ СВОЮ ЦИФРОВУЮ ПАНЕЛЬ НА ОСНОВЕ GPS ДЛЯ EBIKE ИЛИ ЭЛЕКТРИЧЕСКОГО МОТОЦИКЛА: 13 шагов
СДЕЛАЙТЕ СОБСТВЕННУЮ ЦИФРОВУЮ ПАНЕЛЬ НА ОСНОВЕ GPS ДЛЯ EBIKE ИЛИ ЭЛЕКТРИЧЕСКОГО МОТОЦИКЛА: ПРИВЕТ ВСЕМ. в SDCard и конечно же проект
Монтаж в стойку электрического голосового модуля Tama Techstar: 7 шагов
Крепление в стойку для голосового модуля Tama Techstar Electric: у меня есть модуль ударных Tama Techstar 500 Electric, у которого не было рэковых ушей. Я решил поставить это в стойку, и мне нужно было кое-что сделать. Я посмотрел на другой модуль Tama Drum, который у меня был, и увидел, что он был того же размера и мог использовать его в качестве шаблона для этого о
Одометр электрического скейтборда: 5 шагов
Одометр электрического скейтборда: Введение Самый высококачественный электрический скейтборд стоимостью около тысячи долларов поставляется с приложением для телефона, которое отображает информацию о скейтборде в режиме реального времени, и, к сожалению, более экономичные скейтборды из Китая не поставляются с ними. Так почему не
Подключаем Ардуино К Счётчику Подключение Arduino для считывания импульсных данных с электрического счетчика: 20 шагов
Подключаем Ардуино К Счётчику / Подключение Arduino для считывания данных импульсов с электрического счетчика: Мне давно было интересно посмотреть, как меняется мощность в домашней электро-цепи в разное время суток и при разном потреблении. Складывать ватты всех лампочек - скучно и, увы, не факт, что точно. Во всяком случае, что там думает себе счётчик - всег
Создание измерителя уровня громкости для мультимедийного ПК: 5 шагов
Создание измерителя уровня громкости для мультимедийного ПК: в этом руководстве описывается, как установить измеритель уровня громкости в корпус старого привода компакт-дисков, а затем вставить его в свой компьютер. На eBay я купил кучу измерителей уровня громкости на базе VFD-дисплеев, сделанных в России. Дисплеи были довольно дешевыми и выглядели красиво. Я хотя