Делаем волшебный шар на основе Arduino Pro Mini

в 13:05, , рубрики: arduino, diy или сделай сам, Блог компании RUVDS.com, разработка, Разработка под Arduino

Я смотрел какой-то фильм, у одного из героев которого был волшебный шар, отвечающий на вопросы. Мне тогда подумалось, что неплохо было бы сделать такой же, но цифровой. Я порылся в своих запасах электронных компонентов и посмотрел, есть ли у меня то, что нужно для сборки такого шара. В дни пандемии мне не хотелось заказывать что-то без крайней нужды. В результате я обнаружил трёхосевой акселерометр, дисплей для Nokia 5110, плату Arduino Pro Mini и ещё кое-какие мелочи. Этого мне должно было хватить и я принялся за работу.

Делаем волшебный шар на основе Arduino Pro Mini - 1

Аппаратная часть проекта

Вот список компонентов, из которых состоит мой проект:

  • Плата Arduino Pro Mini.
  • Разъём GX-12 (вилка).
  • Трёхосевой акселерометр MMA7660.
  • Дисплей PCD8544 для Nokia 5110/3310.
  • Зарядное устройство для литий-полимерных аккумуляторов TP4056.
  • Конвертер DD0505MD.
  • Литий-полимерный аккумулятор типоразмера 14500.

Экран

Экран, который я решил использовать в этом проекте, хранится у меня уже давно. Когда я его обнаружил, я тут же задался вопросом о том, почему я до сих пор его нигде не использовал. Я отыскал библиотеку для работы с ним, подключил к нему питание. После этого я тут же нашёл ответ на свой вопрос. Дело было в его контрастности и в том, что для его работы нужны дополнительные компоненты. Я нашёл эту библиотеку для работы с дисплеем и узнал о том, что к аналоговому контакту можно подключить потенциометр. Я решил использовать акселерометр для настройки контраста дисплея. А именно, если перейти в меню настроек, то наклон устройства влево приводит к уменьшению соответствующего значения, а наклон вправо — к увеличению. На устройство я добавил кнопку, по нажатию на которую текущие настройки контрастности сохраняются в EEPROM.

Меню, управляемое акселерометром

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

Приложения

Сначала я хотел сделать нечто, способное играть роль волшебного шара. Но потом решил, что могу оснастить то, что у меня получится, дополнительными возможностями, представленными различными приложениями. Например, я написал программу, имитирующую бросок игральной кости, случайным образом выдающую число от 1 до 6. Ещё одна моя программа умела отвечать на задаваемые ей вопросы «Да» и «Нет». Она помогает принимать решения в сложных ситуациях. В моё устройство можно добавить и другие приложения.

Аккумулятор

Проблема моих проектов заключается в том, что я всегда использую в них несъёмные литий-полимерные аккумуляторы. А потом, когда эти проекты оказываются на некоторое время забытыми, с аккумуляторами может случиться что-нибудь нехорошее. В этот раз я решил поступить иначе и сделать так, чтобы аккумулятор из устройства, при необходимости, можно было бы вынуть. Он, например, может пригодиться в каком-нибудь новом проекте. К тому времени я уже спроектировал корпус для аккумулятора, но мне надо было его доделать, оснастив дверцей. Первые экземпляры корпуса получились неоправданно сложными и громоздкими. Поэтому я его перепроектировал. Он может пригодиться и в других моих проектах.

Делаем волшебный шар на основе Arduino Pro Mini - 2

Корпус для аккумулятора

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

Делаем волшебный шар на основе Arduino Pro Mini - 3

Крышка корпуса для аккумулятора

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

Делаем волшебный шар на основе Arduino Pro Mini - 4

Печать корпуса для аккумулятора

Делаем волшебный шар на основе Arduino Pro Mini - 5

Крышка аккумуляторного отсека находится на верхней части устройства

Решение вопросов питания

Мне не хотелось подключать к основной плате элементы для организации питания устройства, так как это увеличило бы её размеры и повысило бы стоимость проекта. Я подумал, что идеально было бы, если бы мне удалось встроить в проект уже имеющиеся у меня зарядник TP4056 и конвертер DD0505MD. Так мне не пришлось бы тратиться на дополнительные компоненты.

Делаем волшебный шар на основе Arduino Pro Mini - 6

Решение вопросов питания устройства

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

Делаем волшебный шар на основе Arduino Pro Mini - 7

Внутренняя часть корпуса с местом под элементы, обеспечивающие устройство питанием

Доработка проекта и последствия неудачного размещения компонентов в корпусе

В ходе работы над проектом с ним произошла одна неприятность. Я, после того, как всё собрал, уронил устройство на пол. После этого перестал работать дисплей. Поначалу я подумал, что дело в дисплее. Поэтому я его переподключил, но это ничего не исправило. Проблема этого проекта заключалась в неудачном размещении компонентов. А именно, я, чтобы сэкономить место, смонтировал дисплей над Arduino. Для того чтобы добраться до Arduino, мне надо было отпаять дисплей. Но перепайка дисплея проблему не решила. В этом проекте я использовал новую плату Arduino. У меня есть ещё одна такая плата, которую я использую для экспериментов с макетной платой. Когда я подключил экран к ней — всё заработало. Мне, так как я использовал поверхностный монтаж, пришлось отпаять от этой платы пины. Вытаскивая пины из платы, я устроил короткое замыкание, соединив пины VCC и GND. Единственное, что мне оставалось — заказать новую плату. Но на это у меня не было времени. Тогда я решил взять чип с платы, на которой случилось замыкание, и переставить его на «мёртвую» плату. Эту задачу я решил с помощью термовоздушной паяльной станции. К моему удивлению, всё заработало. Мне лишь понадобилось воспользоваться пином, выполняющим перезагрузку платы.

Делаем волшебный шар на основе Arduino Pro Mini - 8

Плата со снятым чипом

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

Крепление для шнурка

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

Итоги

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

Здесь можно найти файлы для 3D-печати корпуса. Сюда можете заглянуть для того чтобы увидеть код.

Применяете ли вы Arduino Pro Mini в своих проектах?

Делаем волшебный шар на основе Arduino Pro Mini - 9

Делаем волшебный шар на основе Arduino Pro Mini - 10

Автор: ru_vds

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js