- Необходимые материалы:
- Принципиальная электрическая схема:
- Создание приложения для Android с использованием обработки:
- Понимание кода обработки:
- Программирование вашего Arduino:
- Проектирование схем и печатных плат с использованием EasyEDA:
- Расчет и заказ образцов онлайн:
- Работа дисплея вывески Bluetooth:
Будь то длинные протяженные шоссе или входная дверь ваших врачей, у нас повсюду установлены вывески, чтобы предоставить нам информацию. Но эти вывески часто бывают утомительными, и время от времени их невозможно настроить в соответствии с нашими интересами. Итак, в этом проекте мы собираемся построить вывеску с управлением по Bluetooth с использованием матричного дисплея 8 * 8. Уникальной особенностью этого проекта является его приложение для Android, которое позволяет пользователю управлять всеми 64 светодиодами индивидуально с мобильного телефона. Это позволяет пользователю с легкостью создавать индивидуальный дизайн и отображать его на светодиодном дисплее, звучит интересно, правда? !! Итак, приступим…
Необходимые материалы:
- Arduino Pro mini
- MAX7219
- Модуль Bluetooth HC-05
- Светодиодный матричный дисплей 8 * 8
- Резистор 20 кОм
- DC Barrel Jack
Принципиальная электрическая схема:
Принципиальная схема этой светодиодной платы, управляемой Bluetooth, построенной с использованием приложения EasyEDA. Мы будем использовать ту же схему, чтобы разработать из нее печатную плату и изготовить ее с помощью EasyEDA.
Схема довольно проста. Весь проект питается от адаптера 12 В, который напрямую подключается к необработанному выводу платы Arduino. Это исходное напряжение затем стабилизируется до +5 В, которое подается на модуль Bluetooth и микросхему MAX7219. Контакты Tx и Rx модуля Bluetooth подключены к D11 и D10 Arduino, чтобы обеспечить последовательное соединение.
Цифровые контакты D5 - D7 подключены к микросхеме MAX7219 для отправки и получения данных через интерфейс SPI. Вывод ISET на MAX7219 подтянут через резистор 20 кОм.
Для этого проекта я изготовил печатную плату, вы можете получить файл дизайна печатной платы и использовать его или построить схему на макете. Однако из-за его сложности рекомендуется либо купить модуль дисплея 8x8, либо использовать печатную плату.
Матрица 8x8 - очень полезный дисплейный модуль, который можно использовать во многих интересных проектах:
- Управление светодиодной матрицей 8x8 с помощью Raspberry Pi
- Прокрутка текстового дисплея на светодиодной матрице 8x8 с использованием Arduino
- Светодиодная матрица 8x8 с использованием Arduino
- Интерфейс светодиодной матрицы 8x8 с микроконтроллером AVR
Создание приложения для Android с использованием обработки:
Прежде чем мы сможем начать программировать нашу Arduino, мы должны знать, какой тип данных мы получим от мобильного телефона, чтобы ответить на него. Итак, давайте посмотрим, как создается приложение для Android и как вы можете использовать его на своем смартфоне для управления светодиодной матрицей 8x8.
Приложение Android для этого проекта было создано с помощью программного обеспечения Processing. Это приложение для разработки с открытым исходным кодом, которое можно легко загрузить и использовать для разработки интересных проектов с использованием Arduino или других микроконтроллеров, поскольку оно позволяет разрабатывать приложения для Android и системные приложения. Мы уже выполнили несколько проектов с использованием Processing, и вы можете проверить их, нажав на ссылки ниже.
- DIY FM-радио с использованием обработки
- Виртуальная реальность / управление жестами с помощью Arduino
- Приватный чат с использованием Arduino.
- Радарная система Arduino с использованием приложения обработки и ультразвукового датчика
- Обнаружение и отслеживание лиц в реальном времени с использованием Arduino
- Спидометр своими руками с использованием Arduino и обработки
- Игра в пинг-понг с использованием акселерометра Arduino
- Двуногий робот, использующий Arduino
- DIY тепловизионная камера Arduino
Возвращаясь к теме, я не могу объяснить полный код приложения для Android, поэтому вам придется изучить обработку самостоятельно, а затем посмотреть на код, чтобы понять, как это работает. Следовательно, люди, которые хотят пропустить процесс обучения, могут загрузить приложение для Android по ссылке ниже.
- Скачать приложение для Android
Ниже представлен интерфейс нашего приложения для Android:
Файл APK можно напрямую установить в любое приложение Android и запустить, как любое другое приложение. Но убедитесь, что ваше устройство Bluetooth HC-05 названо «HC-05», потому что только тогда оно будет работать.
Понимание кода обработки:
Люди, которым интересно узнать, что происходит за экраном, могут читать дальше, другие могут перейти к следующему заголовку. Обычно приложение Android подключается к устройству Bluetooth под названием «HC-05» во время запуска и отображает набор из 64 светодиодов в форме кругов. Затем, когда пользователь нажимает кружок, кружок становится красным, и номер кружка отправляется в Arduino через Bluetooth, при получении номера кружка Arduino включает светодиод. Чтобы лучше понять, давайте рассмотрим важные строки программы обработки. Полный код приложения для Android можно скачать по ссылке ниже.
- Код обработки для приложения Android
Мы используем классы и объекты для отображения 64 светодиодов, чтобы мы могли легко обращаться к каждому из них. Как вы можете видеть в приведенном ниже коде, мы используем цикл for для итерации от 1 до 64 с использованием массива. Это было то, что каждый светодиод будет иметь свое собственное значение положения X, положения Y и цвета, и мы можем легко их изменить.
// dipslay все светодиоды for (int i = 1; i <= 64; i ++) led_array.display (); // Отображаются все светодиоды class Led { float X_Pos; float Y_Pos; цвет; // КОНСТРУКТОР Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = временный; color = tempc; } void display () { заливка (цвет); эллипс (X_Pos, Y_Pos, led_dia, led_dia); } }
Светодиоды загружаются на экран в том же порядке, что и дисплей. Каждый светодиод находится на расстоянии, равном диаметру светодиода, таким образом мы можем легко определить, какой светодиод в данный момент выбран пользователем. Как показано в приведенной ниже программе, мы создаем массив, в каждом элементе которого содержится информация о положении X, Y и цвете светодиода.
void load_leds () { led_array = новый светодиод; int a = 1; для (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); для (int я = 0; я <= 7; я ++) { float x = (ширина / 6) + я * (led_dia * 1,5); // fill (255); // эллипс (x, y, led_dia, led_dia); led_array = новый светодиод (x, y, цвет (255,255,255)); а ++; } } }
Главный шаг в программе - проверить, нажал ли пользователь какой-либо светодиод, и если да, мы должны изменить цвет светодиода и отправить номер светодиода через Bluetooth. Поскольку теперь мы можем легко обратиться к местоположению и цвету каждого светодиода, мы можем сделать это, просто сравнив значения X, Y того места, где пользователь нажал, со значением X, Y светодиодов. Если значения сливаются друг с другом, мы меняем состояние светодиода, а также отправляем номер через Bluetooth, как показано ниже.
// проверяем, находится ли указатель мыши над светодиодом // Если да, отправляем светодиодный номер для (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = новый светодиод (led_array.X_Pos, led_array. Y_Pos, led_color); байтовые данные = {byte (i)}; bt.broadcast (данные); } }
Помимо этого, программа также может полностью сбросить светодиод, выключив их все, а также вы можете сделать светодиодный индикатор красным (ВКЛ) или белым (ВЫКЛ), поэтому у нас также есть кнопка переключения для этого. Кнопка переключения отображается и ожидает ввода. При нажатии будет выполнено соответствующее действие. Код, который делает то же самое, показан ниже как функция, которая вызывается внутри цикла отрисовки.
void load_buttons () { rectMode (ЦЕНТР); textAlign (ЦЕНТР, ЦЕНТР); noStroke (); заливка (# 1BF2D4); прямоугольник (ширина / 2-ширина / 4, высота / 1,3, ширина / 4, высота / 12); заполнить (0); текст («Сброс», ширина / 2-ширина / 4, высота / 1,3); // кнопка 1 if (red == true) {fill (# 080F89); rect (ширина / 2 + ширина / 4, высота / 1,3, ширина / 4, высота / 12); заполнение (255,0,0); text ("RED", width / 2 + width / 4, height / 1.3);} // кнопка 2 if (red == false) {fill (# 080F89); rect (ширина / 2 + ширина / 4, высота / 1,3, ширина / 4, высота / 12); заливка (255); text ("БЕЛЫЙ", width / 2 + width / 4, height / 1.3);} // кнопка 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; если (color_val == - 14945580) { байтовые данные = {0}; bt.broadcast (данные); println ("СБРОС"); load_leds (); // загружаем все светодиоды в позиции и цвете } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (данные); если (красный == истина) красный = ложь; иначе, если (красный == ложь) красный = истина; println ("ПЕРЕКЛЮЧИТЬ"); } color_val = 0; } }
Программирование вашего Arduino:
Полная Arduino программа для этого Bluetooth управляется беспроводной проект Совета дается в нижней части экрана; вы можете использовать его напрямую и загрузить на свою доску. Важные строки программы объясняются ниже.
Модуль Bluetooth подключен к контактам 10 и 11, поэтому мы должны использовать программный последовательный порт, чтобы включить последовательную связь на этих контактах, а затем мы можем прослушивать данные с этих контактов. Мы получаем данные, полученные от модуля Bluetooth, и сохраняем их в переменной с именем incoming . Если значение входа «0», мы выключим все светодиоды, используя приведенный ниже код.
если (BT.available ()) { входящий = BT.read (); Serial.println (входящий); если (входящий == 0) m.clear (); // Очищает дисплей
Используя значения входящих, мы должны определить, какой светодиод нажал пользователь на мобильном телефоне, и погоду, чтобы включить или выключить этот светодиод. Поэтому мы проверяем, равно ли значение 100. Если значение равно 10, это означает, что пользователь попросил переключить цвет светодиода. Таким образом, мы переключаем переменную на красный, чтобы знать, должен ли светодиод включаться или выключаться.
else if (incoming == 100) // Проверяем, нужно ли включать или выключать светодиод { if (red == true) red = false; иначе, если (красный == ложь) красный = истина; Serial.print ("КРАСНЫЙ:"); Serial.println (красный); }
Наконец, если значение больше 65, это означает, что пользователь нажал на светодиод. На основании числа от 1 до 64 мы должны определить, какой светодиод нажал пользователь. Для переключения этого светодиода нам понадобится значение строки и столбца этого светодиода, которые вычисляются и сохраняются в переменных X и Y соответственно и показаны в приведенном ниже коде. Наконец, в зависимости от значения переменной red мы либо включаем, либо выключаем светодиод по запросу пользователя.
иначе если (входящие <= 64) {// Вычислить, где ON ро OFF индикатор переключения = истина; Y = входящий / 8; X = входящий - (Y * 8); если (входящий% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); если (красный == истина) m.setDot ((X - 1), (Y), истина); // светодиод горит else if (red == false) m.setDot ((X - 1), (Y), false); // светодиод не горит }
Проектирование схем и печатных плат с использованием EasyEDA:
Для разработки этого матричного дисплея с управлением по Bluetooth мы выбрали онлайн-инструмент EDA под названием EasyEDA. Раньше я много раз использовал EasyEDA и нашел его очень удобным в использовании, поскольку он имеет хороший набор следов и имеет открытый исходный код. После проектирования печатной платы мы можем заказать образцы печатной платы в их недорогих услугах по изготовлению печатных плат. Они также предлагают услуги по подбору компонентов, если у них есть большой запас электронных компонентов, и пользователи могут заказать необходимые компоненты вместе с заказом печатной платы.
При разработке схем и печатных плат вы также можете сделать общедоступными свои схемы и конструкции печатных плат, чтобы другие пользователи могли их копировать или редактировать и извлекать выгоду из вашей работы. Мы также сделали общедоступными макеты всех схем и печатных плат для этой схемы, проверьте ссылка ниже:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Вы можете просмотреть любой слой (верхний, нижний, верхний, нижний, шелковый и т. Д.) Печатной платы, выбрав слой в окне «Слои».
Вы также можете просмотреть печатную плату, как она будет выглядеть после изготовления, используя кнопку Photo View в EasyEDA:
Расчет и заказ образцов онлайн:
После завершения проектирования этой печатной платы с управляемой матрицей Bluetooth вы можете заказать ее на сайте JLCPCB.com. Чтобы заказать печатную плату в JLCPCB, вам потребуется файл Gerber. Чтобы загрузить файлы Gerber для вашей печатной платы, просто нажмите кнопку «Вывод фабрики» на странице редактора EasyEDA, а затем загрузите со страницы заказа печатной платы EasyEDA.
Теперь перейдите на JLCPCB.com и нажмите кнопку «Цитировать сейчас» или кнопку, затем вы можете выбрать количество печатных плат, которые вы хотите заказать, сколько слоев меди вам нужно, толщину печатной платы, вес меди и даже цвет печатной платы, как на снимке. показано ниже:
После того, как вы выбрали все параметры, нажмите «Сохранить в корзину», после чего вы попадете на страницу, где вы можете загрузить свой файл Gerber, который мы загрузили с EasyEDA. Загрузите свой файл Gerber и нажмите «Сохранить в корзину». И, наконец, нажмите «Оформить заказ», чтобы завершить заказ, и через несколько дней вы получите свои печатные платы. Они производят печатную плату по очень низкой цене - 2 доллара. Их время сборки также очень мало, что составляет 48 часов с доставкой DHL 3-5 дней, в основном вы получите свои печатные платы в течение недели с момента заказа.
После нескольких дней заказа печатных плат я получил образцы печатных плат в красивой упаковке, как показано на рисунках ниже.
И после получения этих деталей я припаял все необходимые компоненты на печатную плату.
В моей печатной плате я сделал грубую ошибку, выбрав неправильную посадочную площадку для модуля дисплея 8 * 8, поэтому мне пришлось использовать плату Perf для установки дисплея, как показано на рисунке. Но теперь посадочное место - это обновленная печатная плата, и вы можете легко заказать исправленную печатную плату и установить модуль дисплея.
Работа дисплея вывески Bluetooth:
Когда вы будете готовы с оборудованием, либо путем получения печатной платы, либо подключения на макетной плате, используйте программу Arduino, приведенную в конце страницы, и загрузите ее на свою плату Arduino. Андроида файл приложения APK также предусмотрено выше, использовать его и установить приложение на предпочитаемом устройстве Android.
Включите оборудование и найдите на телефоне имя устройства HC-05 для сопряжения с ним. Ключ доступа по умолчанию - 1234. После этого открываем только что установленное приложение. Приложение должно отобразить « подключен к HC-05 » в верхней части экрана, после чего вы сможете прикоснуться к светодиоду на экране и заметить, что тот же светодиод горит и на плате.
Вы также можете выключить все светодиоды, нажав кнопку сброса, и решить, включить или выключить определенный светодиод, нажав кнопку переключения. По умолчанию, какой бы светодиод вы ни нажали, будет включен. Полную работу проекта можно посмотреть на видео ниже. Если у вас возникли проблемы с его работой, используйте поле для комментариев ниже или напишите на нашем форуме для получения дополнительной технической помощи. Надеюсь, вы поняли руководство и получили удовольствие от его создания.