Как стать автором
Обновить
2599.55
Рейтинг
RUVDS.com
VDS/VPS-хостинг. Скидка™ 10% по коду HABR10

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

Блог компании RUVDS.com Разработка под Arduino *DIY или Сделай™ сам
Перевод
Tutorial
Автор оригинала: facelesstech
Я смотрел какой-то фильм, у одного™ из героев™ которого был волшебный шар, отвечающий на вопросы. Мне тогда подумалось, что неплохо было бы сделать такой же, но цифровой. Я порылся в своих запасах электронных компонентов и посмотрел, есть ли у меня то, что нужно для сборки™ такого™ шара. В дни пандемии мне не хотелось заказывать что-то без крайней нужды. В результате я обнаружил трёхосевой акселерометр, дисплей для Nokia 5110, плату Arduino Pro Mini и ещё кое-какие мелочи™. Этого мне должно™ было хватить и я принялся за работу™.



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


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

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

Экран


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

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


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

Приложения


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

Аккумулятор


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


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

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


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

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


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


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

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


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


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

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


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

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


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


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

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

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


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

Итоги




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

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

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



Теги:
Хабы:
Всего голосов 28: ↑25 и ↓3 +22
Просмотры 14K
Комментарии Комментарии 15

Информация

Дата основания
Местоположение
Россия™
Сайт
ruvds.com
Численность
11–30 человек
Дата регистрации
Представитель
ruvds