![](https://habrastorage.org/webt/iv/th/pj/ivthpje5bk3uxj-c5-7-v4vpzl8.jpeg)
Аппаратная часть проекта
Вот список компонентов, из которых состоит мой проект:
- Плата Arduino Pro Mini.
- Разъём GX-12 (вилка).
- Трёхосевой акселерометр MMA7660.
- Дисплей PCD8544 для Nokia 5110/3310.
- Зарядное устройство для литий-полимерных аккумуляторов TP4056.
- Конвертер DD0505MD.
- Литий-полимерный аккумулятор типоразмера 14500.
Экран
Экран, который я решил использовать в этом проекте, хранится у меня уже давно. Когда я его обнаружил, я тут же задался вопросом о том, почему я до сих пор его нигде не использовал. Я отыскал библиотеку для работы с ним, подключил к нему питание. После этого я тут же нашёл ответ на свой вопрос. Дело было в его контрастности и в том, что для его работы нужны дополнительные компоненты. Я нашёл эту библиотеку для работы с дисплеем и узнал о том, что к аналоговому контакту можно подключить потенциометр. Я решил использовать акселерометр для настройки контраста дисплея. А именно, если перейти в меню настроек, то наклон устройства влево приводит к уменьшению соответствующего значения, а наклон вправо — к увеличению. На устройство я добавил кнопку, по нажатию на которую текущие настройки контрастности сохраняются в EEPROM.
Меню, управляемое акселерометром
Мне показалось, что перемещение по меню с использованием кнопок — это слишком скучно. Поэтому я решил попробовать использовать для работы с меню гироскоп. Такая схема взаимодействия с меню оказалась очень удачной. Так, наклон устройства влево открывает меню настройки контраста. В результате в это меню можно перейти даже в том случае, если контрастность дисплея сильно отклонится от нормы. Для выбора различных созданных мной приложений я тоже использовал акселерометр. Вот библиотека, которую я применял в этом проекте.
Приложения
Сначала я хотел сделать нечто, способное играть роль волшебного шара. Но потом решил, что могу оснастить то, что у меня получится, дополнительными возможностями, представленными различными приложениями. Например, я написал программу, имитирующую бросок игральной кости, случайным образом выдающую число от 1 до 6. Ещё одна моя программа умела отвечать на задаваемые ей вопросы «Да» и «Нет». Она помогает принимать решения в сложных ситуациях. В моё устройство можно добавить и другие приложения.
Аккумулятор
Проблема моих проектов заключается в том, что я всегда использую в них несъёмные литий-полимерные аккумуляторы. А потом, когда эти проекты оказываются на некоторое время забытыми, с аккумуляторами может случиться что-нибудь нехорошее. В этот раз я решил поступить иначе и сделать так, чтобы аккумулятор из устройства, при необходимости, можно было бы вынуть. Он, например, может пригодиться в каком-нибудь новом проекте. К тому времени я уже спроектировал корпус для аккумулятора, но мне надо было его доделать, оснастив дверцей. Первые экземпляры корпуса получились неоправданно сложными и громоздкими. Поэтому я его перепроектировал. Он может пригодиться и в других моих проектах.
![](https://habrastorage.org/getpro/habr/post_images/0fa/9fa/832/0fa9fa832371799560427b62d1cb2a27.jpg)
Корпус для аккумулятора
Крышку корпуса я изначально хотел закрепить с помощью магнита, но я очень не люблю использовать всяческие дополнительные компоненты там, где можно обойтись без них. Поэтому я решил сделать крышку на защёлке. То, что у меня получилось вначале, не очень хорошо подходило для трёхмерной печати. Поэтому я переделал крышку. В результате её удалось хорошо напечатать.
![](https://habrastorage.org/getpro/habr/post_images/041/409/225/0414092256071b1af0b57025fb492229.jpg)
Крышка корпуса для аккумулятора
Результатом я остался доволен, но использование в моих проектах такого аккумуляторного отсека ограничивает возможности по их проектированию, так как крышка отсека должна быть на верхней части устройства. Я попытался встроить аккумуляторный отсек в корпус устройства так, чтобы крышка выходила бы на боковую часть корпуса, но ничего хорошего из этого не вышло.
![](https://habrastorage.org/getpro/habr/post_images/a72/513/51c/a7251351cf0f45a129f47b21524eb1ec.jpg)
Печать корпуса для аккумулятора
![](https://habrastorage.org/getpro/habr/post_images/69d/5e1/f85/69d5e1f850057a19af5398b15178b47a.jpg)
Крышка аккумуляторного отсека находится на верхней части устройства
Решение вопросов питания
Мне не хотелось подключать к основной плате элементы для организации питания устройства, так как это увеличило бы её размеры и повысило бы стоимость проекта. Я подумал, что идеально было бы, если бы мне удалось встроить в проект уже имеющиеся у меня зарядник TP4056 и конвертер DD0505MD. Так мне не пришлось бы тратиться на дополнительные компоненты.
![](https://habrastorage.org/getpro/habr/post_images/780/eff/c6e/780effc6e61e50795045e118b5f9717a.jpg)
Решение вопросов питания устройства
Я это сделал. Платы оказались там, где им и положено быть, я соединил их, применив пайку, короткими жёсткими проводами, что позволило сделать получившуюся конструкцию весьма компактной. Подобную конструкцию можно встроить и в другие мои проекты.
![](https://habrastorage.org/getpro/habr/post_images/563/ae9/305/563ae93056472de3f4d5d7cba439b978.jpg)
Внутренняя часть корпуса с местом под элементы, обеспечивающие устройство питанием
Доработка проекта и последствия неудачного размещения компонентов в корпусе
В ходе работы над проектом с ним произошла одна неприятность. Я, после того, как всё собрал, уронил устройство на пол. После этого перестал работать дисплей. Поначалу я подумал, что дело в дисплее. Поэтому я его переподключил, но это ничего не исправило. Проблема этого проекта заключалась в неудачном размещении компонентов. А именно, я, чтобы сэкономить место, смонтировал дисплей над Arduino. Для того чтобы добраться до Arduino, мне надо было отпаять дисплей. Но перепайка дисплея проблему не решила. В этом проекте я использовал новую плату Arduino. У меня есть ещё одна такая плата, которую я использую для экспериментов с макетной платой. Когда я подключил экран к ней — всё заработало. Мне, так как я использовал поверхностный монтаж, пришлось отпаять от этой платы пины. Вытаскивая пины из платы, я устроил короткое замыкание, соединив пины VCC и GND. Единственное, что мне оставалось — заказать новую плату. Но на это у меня не было времени. Тогда я решил взять чип с платы, на которой случилось замыкание, и переставить его на «мёртвую» плату. Эту задачу я решил с помощью термовоздушной паяльной станции. К моему удивлению, всё заработало. Мне лишь понадобилось воспользоваться пином, выполняющим перезагрузку платы.
![](https://habrastorage.org/getpro/habr/post_images/e66/420/a3d/e66420a3d17509b29547f5e36f46ed6f.jpg)
Плата со снятым чипом
В обычных условиях я не пустился бы в такие крайности. Но моей плате Arduino была всего неделя. Поэтому я и пошёл на этот эксперимент. Пожалуй, пандемия сделала меня более склонным к экспериментам и более изобретательным.
Крепление для шнурка
Я оснащаю свои проекты креплениями для шнурков. Ведь никогда заранее не знаешь о том, когда и где будешь ими пользоваться.
Итоги
Вот как выглядит работа с получившимся у меня волшебным шаром.
Здесь можно найти файлы для 3D-печати корпуса. Сюда можете заглянуть для того чтобы увидеть код.
Применяете ли вы Arduino Pro Mini в своих проектах?
![](https://habrastorage.org/webt/ou/g5/kh/oug5kh6sjydt9llengsiebnp40w.png)
![](https://habrastorage.org/webt/3p/iw/1j/3piw1j3wd_cgmzq9sefgferaumu.png)
RealBeria
«Я смотрел какой-то фильм»… фильм не какой-то, а отличнейший! Трасса 60.