Получил пару китайских зарядок, которые будут стоять в финальной версии игры с танчиками.
Работу над танчиками смогу продолжить только послезавтра, а пока вам филлер.
Какой другой картинкой можно проверить цветность и яркость дисплея?
Какой другой картинкой можно проверить цветность и яркость дисплея?
Вынимайте батарейки, если кладёте какой-то прибор на хранение. Через несколько лет ему может быть плохо.
И вот долгожданное обновление:
Я получил новые аккумуляторы для танков нужного размера и максимальной для доступного объёма ёмкостью. Каждый из них должен обеспечивать около двух часов работы в режиме ожидания и не менее 15 минут непрерывной езды танка.
Я получил новые аккумуляторы для танков нужного размера и максимальной для доступного объёма ёмкостью. Каждый из них должен обеспечивать около двух часов работы в режиме ожидания и не менее 15 минут непрерывной езды танка.
Тестовый макет игрового поля, размером 70 на 85 см из подручных материалов:
И демо работы алгоритма стабилизации направления по гироскопу с использованием PID-регулятора:
Вот ещё пример исправления косяка на готовой плате (шаг ноги микросхемы 0,5 мм):
Новые платы покинули таможню и со дня на день будут у меня. А пока вот:
https://coub.com/view/1xr4h9
https://coub.com/view/1xr4h9
Coub
Tank jumps (https://t.me/govnokoder)
Контролем положения танков на игровом поле и передачей видеотрансляции игры займётся raspberryPi с её CSI камерой. Такая связка даёт очень низкую задержку между попаданием света в камеру и появлением изображения в памяти компьютера.
Распознаванию танков в видео помогут небольшие наклейки с qr-кодами.
Распознаванию танков в видео помогут небольшие наклейки с qr-кодами.
Всё-таки я умудрился ошибиться на таких простых платах и пришлось поработать ножом и паяльником.
После детальной проверки выложу герберы плат для заказа.
После детальной проверки выложу герберы плат для заказа.
Датчик положения MPU6050 состоит из гироскопа, акселерометра и датчика температуры.
Датчик температуры позволяет контролировать нагрев внутренних компонентов при зарядке и не дать перегреваться аккумулятору. Литиевые батареи этого не любят и у них снижается ёмкость.
Интегрирование данных акселерометра даёт линейную реальную скорость танка с небольшой точностью, а пики ускорения помогут в будущем определять столкновения и их направление.
Датчик температуры позволяет контролировать нагрев внутренних компонентов при зарядке и не дать перегреваться аккумулятору. Литиевые батареи этого не любят и у них снижается ёмкость.
Интегрирование данных акселерометра даёт линейную реальную скорость танка с небольшой точностью, а пики ускорения помогут в будущем определять столкновения и их направление.
На данный момент я получаю от танка:
Напряжение аккумулятора (косвенно помогает оценить оставшийся заряд) и статус зарядки (заряжается или нет);
Время работы с последней зарядки или с момента включения;
Температуру внутри;
Вращение по вертикальной оси относительно начального положения;
Линейную скорость вперёд или назад;
Выходное значение ПИД-регулятора коррекции направления.
Напряжение аккумулятора (косвенно помогает оценить оставшийся заряд) и статус зарядки (заряжается или нет);
Время работы с последней зарядки или с момента включения;
Температуру внутри;
Вращение по вертикальной оси относительно начального положения;
Линейную скорость вперёд или назад;
Выходное значение ПИД-регулятора коррекции направления.
В моём репозитории теперь лежат герберы плат со всей документацией для сборки и последняя прошивка.
Если вы хотите заказать платы для сборки своих танков, то заполните форму.
Если вы хотите заказать платы для сборки своих танков, то заполните форму.
Скетч использует библиотеку Adafruit NeoPixel для управления светодиодами и мой код работы с инкрементальным энкодером. Свой потому, что не устроили готовые библиотеки. Мне нужно было обновление положения энкодера при каждом щелчке и работа по прерыванию.
В коде я использовал функцию выделенных внешних прерываний INT0 и INT1, которые висят на пинах D2 и D3 МК ATMega328p. Механический энкодер от мыши коммутирует эти пины на землю, а в состояние 1 они возвращаются внутренним резистором подтяжки к напряжению питания. Подтяжка включается записью 1 в порт этих пинов, как если бы они были выходами (строки 49 и 50 в коде).
Оказывается я не могу писать в канал регулярно, поэтому буду писать нерегулярно.
Написал материал про то, как я пошатал API TJournal весной: https://tjournal.ru/flood/124066-shiryaev-byl-v-yarosti-kogda-uznal
Написал материал про то, как я пошатал API TJournal весной: https://tjournal.ru/flood/124066-shiryaev-byl-v-yarosti-kogda-uznal