Оглавление:

Микро-двоичные часы: 10 шагов (с изображениями)
Микро-двоичные часы: 10 шагов (с изображениями)

Видео: Микро-двоичные часы: 10 шагов (с изображениями)

Видео: Микро-двоичные часы: 10 шагов (с изображениями)
Видео: DIGOOR V10 - УМНЫЕ ЧАСЫ ЗА 25$ В КОТОРЫХ ЕСТЬ ПОЧТИ ВСЕ! АЛИЭКСПРЕСС 2024, Июль
Anonim
Микро-двоичные часы
Микро-двоичные часы
Микро-двоичные часы
Микро-двоичные часы

Проекты Tinkercad »

Ранее созданный Instructable (двоичный DVM), который использует ограниченную область отображения с помощью двоичного кода.

Это был всего лишь небольшой шаг, прежде чем был создан основной модуль кода для преобразования десятичных чисел в двоичные для создания двоичных часов, но единственное, чего не хватало, - это RTC (часы реального времени).

Однако в Microbit нет встроенного RTC.

RTC позволяет реализовать проекты часов с резервным аккумулятором.

Таким образом, в следующем проекте используются Microbit и Kitronik RTC для создания 24-часового времени с двоичным дисплеем и дополнительно есть опция будильника.

Программное обеспечение проекта, которое будет запускаться на Microbit, будет создано в Makecode Blocks.

Запасы:

MicroBit V1 или V2

Защитный чехол MicroBit (опционально)

Makecode

Kitronik RTC

CR2032

Кодовые блоки

Cura

3д принтер

1 * переключатель SPDT (вкл. - вкл.)

1 * переключатель SPDT (вкл-выкл-вкл)

2 * SPST (нормально открытый), мгновенный переключатель

4 * M3 (10 + 6 мм), стойки M / F с гайками M3

4 * M3 (8 мм), винты

Соединительная проволочная перемычка M / F, 100 мм, 28AWG, с вилкой и розеткой.

1 * пьезо-зуммер (без привода)

Эти расходные материалы доступны в нескольких торговых точках, и вы можете выбрать своего поставщика.

Шаг 1. Определение области отображения

Определение области отображения
Определение области отображения
Определение области отображения
Определение области отображения

Хотя область отображения ограничена по количеству данных, которые могут отображаться в любой момент, она идеально подходит для отображения битовых данных.

Таким образом, имеется достаточная область для отображения двоичных слов размером 4 x 4 бита для представления времени с уведомлениями и режимами выбора.

Дисплей разделен на 3 основные области; Время, выбор и режимы.

Время

Шестнадцать светодиодов назначены времени, каждый столбец из 4 светодиодов назначен временному интервалу, причем интервалы имеют форму H, H, M и M.

Каждый бит двоичного слова имеет весовые коэффициенты 1, 2, 4 и 8 с младшим битом в строке 4 и старшим битом в строке 1.

Каждое двоичное 4-битное слово допускает счет от 0 до 15, что более чем достаточно для 24-часового формата времени, требующего максимального количества в столбце 2, 9, 5 и 9.

Выбор

Один ряд из 4 светодиодов в строке 0 используется для обозначения столбца времени, выбранного при вводе времени.

Режимы

Один столбец из 5 светодиодов в столбце 4 используется для обозначения режимов, функций и работы.

Отметка - светодиод 4, мигание 0 используется для индикации секунд и операции.

Время - светодиод 4, 1 показывает режим времени, когда он включен. (Режим по умолчанию при включении)

Тревога - светодиоды 4, 2 при горении указывают на режим тревоги.

Уведомление о тревоге - светодиоды 4, 3 и светодиоды 4, 4 мигают при срабатывании сигнализации.

Шаг 2: RTC (часы реального времени)

RTC (часы реального времени)
RTC (часы реального времени)
RTC (часы реального времени)
RTC (часы реального времени)
RTC (часы реального времени)
RTC (часы реального времени)
RTC (часы реального времени)
RTC (часы реального времени)

RTC - это сердце приложения, позволяющее устанавливать и поддерживать точное время.

Более подробную информацию о RTC можно найти на сайте Kitronik.

RTC обеспечивает регулируемое питание, исключающее необходимость питания Microbit через собственный разъем USB или JST, а также обеспечивается резервная батарея для сохранения времени в случае потери питания.

Перед использованием RTC вам необходимо загрузить пакет Extension.

Используя Makecode из значка «Настройки», выберите «Расширения» и введите в поиске Kitronik RTC.

Выберите пакет для его установки, и он будет добавлен к другим расширениям.

Есть несколько блоков кода, из которых можно читать и записывать в RTC.

Нам потребуется только 4 из этих кодовых блоков для двоичных часов.

Они будут использоваться для записи установленного времени в RTC и для обратного чтения времени для обновления отображения часов.

Шаг 3. Кодирование часов

Кодирование часов
Кодирование часов
Кодирование часов
Кодирование часов
Кодирование часов
Кодирование часов

Первая часть кода - это программная инициализация переменных, массивов и информативного текста.

В этом

Bclk - двоичные часы

<Sel - кнопка выбирает столбец, который будет отрегулирован для установки времени.

Inc - кнопка B увеличивает время.

Одновременное нажатие кнопок A и B изменяет режим между Time и Alarm.

Strval - это строковое значение, содержащее время в форме «ЧЧ: ММ: СС», возвращаемое из RTC.

Для отображения или установки времени используются только ЧЧ и ММ.

Mode - сохраняет значение режима для Time = 1 и Alarm = 2, выбранного с помощью комбинации кнопок A + B.

Период - значение столбца времени, выбираемое кнопкой A.

0 = столбец 0 (H), 1 = столбец 1 (H), 2 = столбец 2 (M), 3 = столбец 3 (M)

Tick_en - Включает = 1 или Отключает = 0 тик (секунды), индикатор.

Inc - Промежуточное сохранение значения установки инкрементного времени.

Tm_list - сохраняет значение каждого временного столбца при настройке.

Тревога - включает или отключает индикатор тревоги.

Forever постоянно вызывает функцию тика.

Галочка

Функция галочки, которая обычно включена, отображает чередующийся индикатор включения / выключения в верхнем правом углу, чтобы указать операцию и секунды.

Кроме того, он вызывает функцию showtm, которая считывает RTC и обрабатывает их для отображения в двоичном формате, а также вызывает alarm_mode, если он включен, отображает светодиоды уведомления о тревоге в правом нижнем углу.

Showtm

Функция showtm вызывает rdtime, и в качестве значения используется strval, содержащая строку времени.

Создается цикл, который увеличивается через strval, извлекая каждое отдельное число и игнорируя разделитель «:»

Затем каждое отдельное число преобразуется в его двоичный эквивалент с помощью функции dec2bin и присваивается правильному столбцу.

Rdtime

Функция rdtime считывает первые 5 символов в строке, возвращаемой из RTC (без учета секунд), и передает ее в strval.

Если был установлен аварийный сигнал (Mode = 2), то установленные значения аварийного сигнала сравниваются со значениями, возвращаемыми RTC, если есть совпадение, тогда аварийный сигнал = 1, если нет совпадения аварийный сигнал = 0.

Alarm_mode при включении отображает два чередующихся светодиода включения / выключения в правом нижнем углу столбца 4.

Dec2bin

Функция dec2bin преобразует десятичное число в двоичное и отображает его в нужном столбце.

Число, которое нужно преобразовать, передается через значение, а столбец отображения - через col.

List2 - это массив, в котором хранится 4-битное двоичное слово из процесса двоичного преобразования.

Инициируется цикл, который продолжает делить значение на 2, остаток сохраняется в элементе массива, целое значение делится на 2, это повторяется до тех пор, пока целочисленное значение не станет <= 1 и это последнее значение не будет помещено в массив.

Наибольшее однозначное десятичное значение - 9, а в двоичном виде это 1001 как 4-битное слово.

Затем массив необходимо обработать в обратном порядке для получения правильного результата.

Затем инициируется цикл для включения правильного светодиода в соответствующем столбце, это выполняется для каждого появления единицы в 4-битном двоичном слове.

Человеческий интерфейс выполнен с помощью кнопок.

Кнопка A

Это выбирает столбец, в который будет вводиться значение времени, и отображает горящий светодиод над выбранным столбцом в строке 4.

После обновления всех столбцов времени при увеличении выделения до 5-го столбца обновляется временная переменная.

Если mode = 1, обновляются RTC, иначе обновляется время тревоги.

Кнопка B

Это кнопка увеличения, которая увеличивает выбранный столбец времени.

Чтобы уменьшить количество ошибок и сэкономить время при получении правильного значения, максимальное значение, которое можно ввести для каждого столбца, ограничено значением времени для 24-часовой системы времени.

Эти максимальные значения сохраняются в tm_max , по одному для каждого столбца времени и автоматически выбираются на основе столбца времени.

Максимальные значения: H = 2, H = 9, M = 5, M = 9.

Значение приращения преобразуется в двоичное в dec2bin, и дисплей обновляется.

Кнопка A + B Выбор режима

Одновременное нажатие обеих кнопок позволяет выбирать между режимом времени или режимом будильника, соответствующий режим отображается на дисплее.

В зависимости от того, какой режим выбран, дисплей обновляется для отображения времени или установленного времени будильника.

Шаг 4: Эксплуатация

Операция
Операция
Операция
Операция
Операция
Операция

Загрузите файл Hex в Microbit, вставьте батарею CR2032 в RTC.

Подключите Microbit к RTC и запитайте плату RTC через USB или винтовые клеммы.

Светодиодный индикатор Tick начнет мигать, и вскоре после этого будет отображаться время.

Если это первый раз использования, отображаемое время, скорее всего, будет неправильным, и его нужно будет установить на правильное время.

Выбор режима

Одновременное нажатие кнопок выбора (A) и увеличения (B) позволит переключать параметры режима между временем и будильником.

Установка времени

Время установлено в 24-часовом режиме.

Используйте кнопку выбора (A) для перемещения светодиода по верхней строке, это указывает столбец, в котором можно изменить время. Столбцы выбора соответствуют H, H, M и M.

Где H = часы и M = минуты.

Выбрав столбец, нажмите кнопку увеличения (b) несколько раз, чтобы увеличить счет на единицу при каждом нажатии. Счетчики указаны в двоичном формате, в конце концов, это двоичные часы.

Кнопка увеличения только увеличивает счетчик, и как только максимум будет сброшен до нуля, дальнейшие нажатия снова увеличат счет.

После установки времени первого столбца нажмите кнопку выбора для следующего столбца, затем используйте кнопку увеличения, чтобы установить время столбца.

Примечание: *** Когда вы устанавливаете время или будильник, вам нужно будет ввести время в выбранном столбце, даже если время в столбце должно оставаться неизменным, поскольку пропуск столбца устанавливает время этого столбца на ноль ****

Повторяйте процесс до тех пор, пока время не будет установлено во всех 4 столбцах.

Нажмите кнопку выбора в пятый раз, чтобы переместить ее в пятый столбец, и время будет установлено.

Установка будильника

Установка времени будильника выполняется точно так же, как и установка времени.

Для того, чтобы тревога сработала в нужное время, оставьте для параметра Режим значение Тревога.

Чтобы выключить будильник, установите режим «Время».

Чтобы отобразить установленное время будильника, переключите режим между временем и будильником, и время будильника будет отображаться в течение короткого периода времени, прежде чем вернуться к отображению текущего времени.

Время срабатывания сигнализации не сохраняется в часах реального времени, поэтому при отключении питания потребуется его сброс.

Шаг 5: Коробка

Коробка это
Коробка это
Коробка это
Коробка это

Проект будет располагаться под соответствующим углом, чтобы смотреть на часы, но коробка добавляет ощущение постоянства.

Вы можете купить коробку подходящего размера и вырезать и просверлить соответствующие области, чтобы Microbit мог поместиться в розетку.

Тем не мение; Кроме того, я хотел продублировать кнопки Microbit вместе с другими элементами управления и индикаторами.

Как правило, для обозначения кнопок на поле необходимо нанести условные обозначения.

Их можно было применить вручную; окрашены, выгравированы или наклеены этикетки.

Одним из способов реализации всех этих возможностей будет 3D-печать коробки, но сначала нам нужно будет создать файл САПР, с помощью которого мы будем создавать файл принтера.

Параметры создания файла нарисованы вручную или с помощью кода.

Я выбрал «рисование с кодом» с помощью Tinkercad CodeBlocks.

Файлы для крышки коробки и основания коробки можно найти на Tinkercad CodeBlocks.

Шаг 6: Разработка блочного кода

Дизайн блочного кода
Дизайн блочного кода
Дизайн блочного кода
Дизайн блочного кода

Коробка состоит из двух частей: основания и крышки.

Для фиксации крышки используются четыре угловых отверстия для винтов с вырезом на левой стороне, позволяющим вставить USB-штекер.

В крышке будет вырез для разъема Microbit и необходимых переключателей, кроме того, любой текст будет напечатан прямо на крышке, а отверстия под винты будут совмещены с опорными стойками.

Плата RTC будет прикреплена к нижней части крышки 4 стойками и 4 винтами.

Размер коробки плюс крышка 70 х 105 х 31 мм.

Код крышки и основания доступен в TinkerCad CodeBlocks.

Шаг 7: 3D-печать

3D печать
3D печать
3D печать
3D печать
3D печать
3D печать
3D печать
3D печать

Загрузите файлы в Cura и примените предпочтительные настройки слайсера.

Примененные настройки.

Качество: 0,15 мм

Заполнение: 80%, трехгранник

База: Край

Сохраните файлы и распечатайте.

С помощью Cura вы можете загружать оба файла вместе в одну и ту же область печати и печатать за один раз.

Шаг 8: заполнение

Заполнение
Заполнение
Заполнение
Заполнение
Заполнение
Заполнение

На крышке коробки нанесен текст с углублением, который будет заполнен цветной двухкомпонентной эпоксидной смолой.

Смолу смешивают в соотношении 2 части смолы к 1 части отвердителя, затем примешивают непрозрачный цветной пигмент.

Выбран желтый цвет, чтобы контрастировать с фоном. У белых был бы другой выбор.

После смешивания смола капает в углубление с помощью палочки для коктейля для переноса небольших капель смолы, которые используются для постепенного заполнения углубления в буквах.

Не добавляйте слишком много смолы за один раз, так как вы, вероятно, в конечном итоге получите пузырьки воздуха или создадите слишком много перелива на окружающую поверхность, а это означает, что вам придется больше удалять очистку и шлифование после отверждения.

Так что заполняйте медленно, следя за тем, чтобы нижняя часть буквы была закрыта, и наращивайте ее, заканчивая слегка приподнятой поверхностью.

После того, как смола затвердеет, потребуется немного отшлифовать поверхность, чтобы выровнять поверхность, начните с класса P240, переходя к более мелким сортам, если требуется, чтобы получить гладкую поверхность, наконец, завершите полировкой.

Не применяйте слишком большое давление и слишком большую скорость, иначе вы перегреете PLA и смолу, что приведет к потускнению поверхности из-за захвата песка, немного воды, нанесенной во время процесса шлифования, будет действовать как смазка и охлаждающая жидкость.

Шаг 9: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Microbit будет вставлен в розетку в двух направлениях, обращенной к основной части RTC или обращенной в противоположную сторону.

Если смотреть на основную часть RTC, соединения каналов использовать нельзя, однако, если Microbit обращен в сторону от основной части платы, мы можем использовать эти соединения.

Сборка начинается с припайки прямоугольного штыревого наконечника SIL к RTC, чтобы можно было выполнять соединения с помощью разъемов с плотной посадкой.

RTC оснащен стойками 4 * M3 (10 + 6 мм), M / F с гайками M3, которые крепятся к крышке с помощью винтов 4 * M3 (8 мм) в заранее подготовленных отверстиях.

Выключатели вставляются в готовые отверстия в крышке.

Необходимые соединения:

GND, 3V, P1 (установить), P2 (предупреждение), P5 (sel) и P11 (inc)

Примечание *** Резисторы (1R) на схеме для P5 и P11 являются просто контрольными точками подключения, поскольку прямое подключение к этим контактам на Microbit в блоках кода в настоящее время недоступно. ***

P5 - это внешнее соединение для кнопки A, которое подключается с помощью переключателя без фиксации SPST. Одно соединение с P5, а другой вывод - с GND, эта кнопка предназначена для выбора столбца во время установки времени.

P11 - это внешнее соединение для кнопки B, которое подключается с помощью переключателя без фиксации SPST. Одно соединение с P11, а другой вывод - с GND, его кнопка предназначена для увеличения числа во время установки времени.

P1 - это переключатель SPDT (вкл.), Который используется для включения или отключения параметров настройки. Центральный вывод подключается к P1, в то время как один вывод подключается к GND, а другой к 3 В через резистор 10 кОм. Это позволяет подавать на этот вывод H (3 В) и L (0 В). Когда P1 подключен к 3V, это включает параметры настройки времени, а когда 0V отключает настройку времени. Таким образом можно контролировать, имеют ли кнопки A и B какой-либо эффект.

P2 - это переключатель SPDT (вкл.-Выкл.), Который используется для включения или выключения оповещателя и дополнительных внешних источников света.

Звуковой оповещатель представляет собой пьезо-зуммер (просто прикрепленный с помощью двухсторонней липкой накладки), требующий импульсного привода, обеспечиваемого Microbit.

Шаг 10: Наконец

Вы собрали элементы в коробке, запрограммировали Microbit и вставили его в гнездо на коробке.

Затем включите питание и установите время.

Наслаждаться.

Конкурс блочного кода
Конкурс блочного кода
Конкурс блочного кода
Конкурс блочного кода

Финалист в конкурсе блочных кодов

Рекомендуемые: