vivaos

vivaos

Пикабушник
поставил 1938 плюсов и 64 минуса
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
10 лет на Пикабу самый сохраняемый пост недели За космическую внимательность более 1000 подписчиков лучший авторский пост недели
20К рейтинг 1615 подписчиков 24 подписки 80 постов 36 в горячем

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле

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


Недавно я случайно наткнулся на новые выпуски программы "Форт Боярд" и увидел там на одном из испытаний такое устройство:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Задача устройства включать случайным образом 3 цвета (красный, синий, белый) на 12 светодиодах, а задача игроков запомнить эту последовательность за 10 секунд и повторить на своих табло при помощи тумблеров:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

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


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


Сразу спойлер - у меня получилось :)

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Сперва нарисовал макет в векторном редакторе для дальнейшей лазерной резки, пазы коробочек при этом помог нарисовать open-source генератор макетов boxes.py.

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Затем вырезал все это на лазерном станке LaserPro Mercury III ME-25

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

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


Файлы для скачивания материалов проекта будут в конце этого поста.


Далее проверил, что все собирается, и стал думать над электронной начинкой. У меня была не нужная плата Arduino UNO R3 и мне хотелось уместиться по количеству пинов в её 14 цифровых и 6 аналоговых ножек.


Но здесь возникла проблема - только 36 RGB-светодиодов в игре потребуют 108 ножек для подключения, плюс еще 25 кнопок для управления - где взять столько пинов? Расширители портов или сдвиговые регистры я брать не хотел, и вдруг вспомнил о хорошей замене RGB-светодиодам - адресной светодиодной ленте на чипах WS2812.


Эта лента хороша тем, что ей достаточно одной цифровой ножки (на которой генерируются пачки с кодами для чипов) для управления целой кучей светодиодов, а вот, собственно, и схема подключения, найденная на просторах интернета:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Вопрос со светодиодами решен - если взять ленту с 30 светодиодами на 1 метр, то выйдет 3,3 см между соседними светодиодами, что как раз подходит для нашего проекта.


Остается решить вопрос с кнопками.

Я начинаю искать в сети способы подключения множества кнопок на одну ножку платы и тут же нахожу решение - подключение кнопок через резисторы к АЦП (аналого-цифровой преобразователь) Arduino и считывание уровня напряжения. Думаю, здесь всё пояснит эта картинка (отдельная благодарность автору этой статьи):

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

При нажатии разных кнопок, в цепь подключается разное количество резисторов, образующих между собой делитель напряжения. В примере выше при нажатии первой кнопки на А0 появится напряжение в 2,5 В, при нажатии второй - 3В и так далее.


В итоге общая схема проекта приняла следующий вид:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Решил сделать колбочки-рассеиватели света на светодиодную ленту как в оригинальной игре:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Сперва пробовал резать трубку клея от клеевого пистолета, но получалось не очень ровно и не привлекательно. Плюнул на это дело и решил распечатать 36 колбочек на 3D-принтере, зашел в простейший онлайн 3D-редактор Tinkercad и нарисовал модель:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Распечатал на 3D-принтере Picaso Designer X

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

И мне оставалось только спаять все это дело и написать программу

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост
Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост
Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Ну и, кажется, все готово для того, чтобы показать сие изделие моим самым строгим экспертам :)

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост
Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

На удивление, дети с большим удовольствием приняли игру - спрашивали, можно ли купить ее за деньги или бонусы, которые они у нас копят, и даже звали родителей и бабушек поиграть :)


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


За этим у меня все, обещанные материалы (код и макет для резки в форматах CDR, PDF, SVG) можно скачать здесь.

Показать полностью 16

Считываем кнопки и датчики не смотря на длительные задержки в программе - Аппаратные прерывания - Arduino для начинающих

Продолжаем рубрику для начинающих ардуинщиков :)


На этот раз поговорим об аппаратных (внутренних) прерываниях в Arduino (ATmega328P).

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


Краткая выжимка из видео:

- Что такое аппаратные прерывания и как они работают (0:33)

- Смотрим информацию о прерываниях в datasheet на микроконтроллер ATmega328p (2:38)

- Пишем программу для внешнего прерывания по кнопке (6:24)

- Наблюдаем дребезг контактов на графике осциллографа (14:47)

- Пишем простую программу для борьбы с дребезгом контактов (16:00)

- Получаем домашнее задание (22:30)


Программа с настройкой прерываний по кнопке, позволяющая обойти дребезг контактов: Google Drive

Удачных компиляций! :)


P.S.: Если вы еще не состоите в сообществе "Arduino & Pi", милости просим сюда.

Показать полностью

История о том, как мы придумали и открыли свой центр технического творчества для детей в Омске

Привет жителям Пикабу!


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


Если наш опыт вдохновит хотя-бы одного человека в этом сообществе - значит мы снимали это видео не зря :)


Приятного просмотра!

Arduino для начинающих - Прерывания по таймеру в Arduino (AVR). Создаем многозадачное устройство

Вот и подоспел 11-й выпуск из серии "Arduino для начинающих"!😊

В этом видео мы будем говорить о прерываниях. А конкретно, о прерываниях по таймеру. О том, как сделать ваши программы более гибкими и избавиться от пресловутой функции delay(), которая, по сути, останавливает работу всего микроконтроллера.

Материалы к видео находятся здесь.


Список остальных выпусков:

#0 Введение в курс. Чего ожидать от этой серии для начинающих.

#1 Немного электроники и схемотехники – без них никуда.

#2 Знакомство с Arduino. Основные компоненты для начала работы.

#3 Arduino изнутри - структура, составляющие и их назначение. Микроконтроллер Atmega328P

#4 Arduino IDE Настройка и установка драйверов. Проверка работоспособности платы Arduino

#5 Первая программа – работаем со светодиодом и кнопкой.

#6 Условные операторы и циклы.

#7 Логические операции И, НЕ, ИЛИ.

#8 Функции и их применение.

#9 Библиотеки - как с ними работать и создать свою собственную.

#10 Передача и прием данных. Библиотека Serial и коды ASCII


Удачных компиляций! :)


P.S.: Если вы еще не состоите в сообществе "Arduino & Pi", милости просим сюда.

Показать полностью

Пост взаимопомощи в суровом мире электронных устройств

Господа, очередной пост "ВиО" для взаимного решения ваших проблем в работе с Arduino или Raspberry Pi. Знающие - подсказываем, не знающие - спрашиваем! :)

Пост взаимопомощи в суровом мире электронных устройств Arduino, Raspberry pi, Помощь, Вопрос, Бойцовский клуб (фильм)
Показать полностью 1

Arduino для начинающих - Передача и прием данных. Библиотека Serial и коды ASCII

Это 10-й выпуск курса "Arduino для начинающих", сегодня мы поговорим о том, как пользоваться последовательным монитором порта – получать, отправлять различные данные, в общем, общаться со своим устройством и управлять им.

Список остальных выпусков:

#0 Введение в курс. Чего ожидать от этой серии для начинающих.

#1 Немного электроники и схемотехники – без них никуда.

#2 Знакомство с Arduino. Основные компоненты для начала работы.

#3 Arduino изнутри - структура, составляющие и их назначение. Микроконтроллер Atmega328P

#4 Arduino IDE Настройка и установка драйверов. Проверка работоспособности платы Arduino

#5 Первая программа – работаем со светодиодом и кнопкой.

#6 Условные операторы и циклы.

#7 Логические операции И, НЕ, ИЛИ.

#8 Функции и их применение.

#9 Библиотеки - как с ними работать и создать свою собственную.


Всем, как обычно, удачных компиляций! :)


P.S.: Если вы еще не состоите в сообществе "Arduino & Pi", милости просим: http://pikabu.ru/community/arduino

Показать полностью

Библиотеки - как с ними работать и создать свою собственную. Драйвер двигателей L298N и ШИМ-сигнал

Привет, друзья ардуинщики! :)

Это выпуск #9 из серии видео "Arduino для начинающих" и в нем мы затронем тему создания библиотек, а также немного разберемся с тем, что такое ШИМ-сигнал и заставим двигаться колеса робота благодаря драйверу двигателей L298N.

Список остальных выпусков:

#0 Введение в курс. Чего ожидать от этой серии для начинающих.

#1 Немного электроники и схемотехники – без них никуда.

#2 Знакомство с Arduino. Основные компоненты для начала работы.

#3 Arduino изнутри - структура, составляющие и их назначение. Микроконтроллер Atmega328P

#4 Arduino IDE Настройка и установка драйверов. Проверка работоспособности платы Arduino

#5 Первая программа – работаем со светодиодом и кнопкой.

#6 Условные операторы и циклы.

#7 Логические операции И, НЕ, ИЛИ.

#8 Функции и их применение.


Удачных компиляций и с праздником вас! :)


P.S.: Если вы еще не состоите в сообществе "Arduino & Pi", милости просим: http://pikabu.ru/community/arduino

Показать полностью

Выпуск 9. Библиотеки и последовательный Serial-порт. Школа Integer - Основы Arduino для начинающих

Привет начинающим ардуинщикам! :)


Да, мне самому не верится, но таки вышел девятый выпуск серии Arduino для начинающих!


В нем мы затронем сразу две темы – это использование различных библиотек и последовательного монитора порта платформы Arduino.


Предыдущие выпуски вы найдете здесь: 0,1,2,3,4,5,6,7,8

Отличная работа, все прочитано!