- Необхідні матеріали:
- Кругова діаграма:
- Створення програми Android за допомогою обробки:
- Розуміння коду обробки:
- Програмування вашого Arduino:
- Дизайн ланцюгів та друкованих плат із використанням EasyEDA:
- Розрахунок та замовлення зразків через Інтернет:
- Працює дисплей дошки вивісок Bluetooth:
Будь то довгі розтягнуті шосе чи вхідні двері ваших лікарів, ми скрізь розмістили таблички з вивісками, щоб надати нам інформацію. Але ці вивісні дошки часто нудні і їх не можна налаштовувати відповідно до нашого інтересу час від часу. Отже, у цьому проекті ми збираємося створити контрольну дошку, керовану Bluetooth, з використанням матричного дисплея 8 * 8. Унікальною особливістю цього проекту є його андроїд-програма, яка дозволяє користувачеві управляти всіма 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 протягнутий високо через 20k резистор.
Для цього проекту я виготовив друковану плату, ви можете отримати конструкторський файл друкованої плати і використовувати її, або побудувати схему на макетній платі. Однак через його складність рекомендується або придбати модуль 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 з використанням APP для обробки та ультразвукового датчика
- Виявлення та відстеження обличчя в реальному часі за допомогою Arduino
- DIY спідометр за допомогою Arduino та обробки
- Гра в пінг-понг за допомогою акселерометра Arduino
- Двоногий робот з використанням Arduino
- Тепловізора "зроби сам" Arduino
Повертаючись до теми, мені неможливо пояснити повний код програми для Android, тому вам доведеться вчитися обробці самостійно, а потім переглядати код, щоб зрозуміти, як це працює. Отже, люди, які бажають пропустити процес навчання Обробка, можуть завантажити додаток для Android за посиланням нижче
- Завантажте програму для Android
Нижче наведений інтерфейс нашої програми для Android:
Файл APK можна встановити безпосередньо на будь-яку програму для Android і запустити, як і будь-яку іншу програму. Але переконайтеся, що ваш пристрій Bluetooth HC-05 має назву “HC-05”, оскільки лише тоді він буде працювати.
Розуміння коду обробки:
Люди, яким цікаво знати, що відбувається за екраном, можуть читати далі, інші можуть перейти до наступного заголовка. В основному програма Android підключається до пристрою Bluetooth під назвою «HC-05» під час запуску та відображає набір з 64 світлодіодів у формі кіл. Потім, коли користувач натискає коло, коло стає червоним, а номер кола надсилається Arduino через Bluetooth, після отримання номера кола Arduino вмикає світлодіод. Давайте розглянемо важливі рядки програми Processing, щоб краще зрозуміти. Повний код програми для Android можна завантажити за посиланням нижче.
- Код обробки для додатка Android
Ми використовуємо класи та об'єкти для відображення 64 світлодіодів, щоб ми могли легко звертатися до кожного з них. Як ви можете бачити в наведеному нижче коді, ми використовуємо цикл for для ітерації від 1 до 64 за допомогою масиву. Це було, що кожен світлодіод матиме своє значення положення X, положення Y та кольору, і ми можемо їх легко змінити.
// перекласти всі світлодіоди для (int i = 1; i <= 64; i ++) led_array.display (); // Усі світлодіоди відображають клас Led { float X_Pos; float Y_Pos; кольоровий колір; // КОНСТРУКТОР Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = темпі; колір = tempc; } void display () { заливка (кольорова); еліпс (X_Pos, Y_Pos, led_dia, led_dia); } }
Світлодіоди завантажуються на екран у тому ж порядку, що і на дисплеї. Кожен світлодіод відокремлений відстанню, рівною діаметру світлодіода, таким чином ми можемо легко розрізнити, який світлодіод обраний користувачем на даний момент. Як показано в програмі нижче, ми створюємо масив, в якому кожен елемент містить інформацію про положення X, Y та колір світлодіода.
void load_leds () { led_array = новий світлодіод; int a = 1; for (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); for (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // заливка (255); // еліпс (x, y, led_dia, led_dia); led_array = новий світлодіод (x, y, колір (255,255,255)); a ++; } } }
Основним кроком програми є перевірка, чи натиснув користувач який-небудь світлодіод, і якщо так, ми повинні змінити колір світлодіода і надіслати номер світлодіода через 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 = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); байтові дані = {байт (i)}; bt. Broadcast (дані); } }
Крім цього, програма також може скинути повний світлодіод, вимкнувши їх усі, а також ви можете зробити світлодіод червоним (УВІМК.) Або білим (ВИМК.), Тому у нас також є кнопка перемикання для цього. Відображається кнопка перемикання, яка чекає введення. Якщо натиснути, буде здійснено відповідну дію. Код, що робить те саме, показано нижче як функція, яка викликається всередині циклу витягування.
void load_buttons () { rectMode (CENTER); textAlign (ЦЕНТР, ЦЕНТР); noStroke (); заливка (# 1BF2D4); прямокутний (ширина / 2-ширина / 4, висота / 1,3, ширина / 4, висота / 12); заливка (0); текст ("Скинути", ширина / 2-ширина / 4, висота / 1,3); // кнопка 1 if (red == true) {fill (# 080F89); прямокутний (ширина / 2 + ширина / 4, висота / 1,3, ширина / 4, висота / 12); заливка (255,0,0); текст ("ЧЕРВОНИЙ", ширина / 2 + ширина / 4, висота / 1,3);} // кнопка 2 if (червона == хибна) {заливка (# 080F89); прямокутний (ширина / 2 + ширина / 4, висота / 1,3, ширина / 4, висота / 12); заливка (255); text ("WHITE", width / 2 + width / 4, height / 1.3);} // кнопка 2 } void read_buttons () { if (mousePress && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { байтові дані = {0}; bt. Broadcast (дані); println ("RESET"); load_leds (); // завантажуємо всі світлодіоди у позиції та кольорі } if (color_val == - 16248951) { байт даних = {100}; bt. Broadcast (дані); якщо (червоний == правда) червоний = хибний; інакше якщо (червоний == хибний) червоний = істинний; println ("TOGGLE"); } колір_вал = 0; } }
Програмування вашого Arduino:
Повна Arduino програма для цього Bluetooth управляється бездротового проект Ради дається в нижній частині екрана; Ви можете використовувати його безпосередньо і завантажити на свою дошку. Важливі рядки програми пояснюються нижче.
Модуль Bluetooth підключений до виводів 10 і 11, отже, ми повинні використовувати послідовне програмне забезпечення, щоб увімкнути послідовний зв’язок на цих виводах, і тоді ми зможемо прослуховувати дані з цих висновків. Ми отримуємо дані, отримані від модуля Bluetooth, і зберігаємо їх у змінній, що називається вхідною . Якщо вхідне значення “0”, ми вимкнемо всі світлодіоди, використовуючи наведений нижче код
if (BT.available ()) { incoming = BT.read (); Serial.println (вхідний); if (вхідні == 0) m.clear (); // Очищає дисплей
Використовуючи значення вхідних даних, ми повинні визначити, на який світлодіод користувач натиснув на мобільному телефоні та погоду, щоб увімкнути або вимкнути цей світлодіод. Отже, ми перевіряємо, чи дорівнює значення 100. Якщо значення дорівнює 10, то це означає, що користувач попросив змінити колір світлодіода. Тож ми перемикаємо змінну червоним, щоб знати, чи слід вмикати чи вимикати світлодіод.
else if (incoming == 100) // Перевірте, чи слід вмикати або вимикати світлодіод { if (red == true) red = false; інакше якщо (червоний == хибний) червоний = істинний; Serial.print ("ЧЕРВОНИЙ:"); Serial.println (червоний); }
Нарешті, якщо значення перевищує 65, це означає, що користувач натиснув на світлодіод. На основі числа від 1 до 64 ми повинні визначити, на який світлодіод натиснув користувач. Для перемикання цього світлодіода нам знадобиться значення Рядок і Стовпець цього світлодіода, яке обчислюється і зберігається відповідно до змінних X та Y та відображається в коді нижче. Нарешті, на основі значення змінної червоної ми або вмикаємо, або вимикаємо світлодіод відповідно до запиту користувача
else if (вхідний <= 64) {// Обчислити, куди УВІМКАТИ ro вимкнути перемикач світлодіода = true; Y = вхідний / 8; X = вхідний - (Y * 8); якщо (входить% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (red == true) m.setDot ((X - 1), (Y), true); // Світлодіод ВКЛ інший if (червоний == false) m.setDot ((X - 1), (Y), false); // Світлодіод вимкнено }
Дизайн ланцюгів та друкованих плат із використанням EasyEDA:
Для розробки цього дисплея з контрольованою матрицею Bluetooth ми обрали онлайн-інструмент EDA, який називається EasyEDA. Раніше я багато разів використовував EasyEDA і вважав його дуже зручним у використанні, оскільки він має хорошу колекцію слідів та відкритий код. Після проектування друкованої плати ми можемо замовити зразки друкованих плат завдяки їх недорогим послугам з виготовлення друкованих плат. Вони також пропонують послугу пошуку компонентів, де вони мають великий запас електронних компонентів, і користувачі можуть замовити необхідні компоненти разом із замовленням друкованих плат.
Проектуючи свої схеми та друковані плати, ви також можете зробити свої схеми та конструкції друкованих плат загальнодоступними, щоб інші користувачі могли їх копіювати чи редагувати та отримувати користь від вашої роботи; ми також зробили загальнодоступними всі наші схеми схем та друкованих плат для цієї схеми, перевірте посилання нижче:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Ви можете переглянути будь-який шар (верхній, нижній, верхній, молочний та ін.) Друкованої плати, вибравши шар у вікні "Шари".
Ви також можете переглянути друковану плату, як вона виглядатиме після виготовлення, використовуючи кнопку Перегляд фотографій у EasyEDA:
Розрахунок та замовлення зразків через Інтернет:
Після завершення проектування цієї матричної друкованої плати, керованої Bluetooth, ви можете замовити друковану плату через JLCPCB.com. Щоб замовити друковану плату у JLCPCB, вам потрібен файл Gerber. Щоб завантажити Gerber-файли з вашої друкованої плати, просто натисніть кнопку Висновок на сторінці редактора EasyEDA, а потім завантажте зі сторінки замовлення друкованих плат EasyEDA.
Тепер перейдіть на JLCPCB.com і натисніть на Quote Now або кнопку, тоді ви зможете вибрати кількість друкованих плат, яку ви хочете замовити, скільки шарів міді вам потрібно, товщина друкованої плати, вага міді і навіть колір друкованої плати, як знімок показано нижче:
Після того, як ви вибрали всі параметри, натисніть «Зберегти в кошику», після чого ви потрапите на сторінку, де ви можете завантажити свій файл Gerber, який ми завантажили з EasyEDA. Завантажте свій файл Gerber і натисніть «Зберегти в кошику». І нарешті клацніть на Checkout Securely, щоб завершити замовлення, тоді ви отримаєте свої друковані плати через кілька днів. Вони виготовляють друковану плату за дуже низьким курсом, який становить 2 долари. Їхній час збірки також дуже менший, що становить 48 годин при доставці DHL 3-5 днів, в основному ви отримаєте свої друковані плати протягом тижня з моменту замовлення.
Через кілька днів замовлення друкованих плат я отримав зразки друкованої плати в гарній упаковці, як показано на малюнках нижче.
І після отримання цих деталей я припаяв всі необхідні компоненти до друкованої плати.
У своїй друкованій платі я допустив грубу помилку, вибравши неправильний слід для модуля 8 * 8 дисплея, отже, мені довелося використовувати дошку Perf для кріплення дисплея, як показано на малюнку. Але тепер слід оновити друковану плату, і ви можете замовити виправлену друковану плату та легко встановити модуль дисплея.
Працює дисплей дошки вивісок Bluetooth:
Після того, як ви готові до апаратного забезпечення, або отримавши друковану плату, або встановивши з'єднання на макетній панелі, використовуйте програму Arduino, подану в кінці сторінки, і завантажте її на свою плату Arduino. Файл APK додатка для Android також наведено вище, використовуйте його та встановіть програму на бажаний пристрій Android.
Увімкніть апаратне забезпечення та знайдіть на телефоні назву пристрою HC-05, щоб з’єднатися з ним. За замовчуванням ключ доступу буде 1234. Після цього відкрийте додаток, який ми щойно встановили. Програма повинна відображати “ підключено до HC-05 ” у верхній частині екрана, тоді ви зможете торкнутися світлодіода на екрані та помітити, що той самий світлодіод також вмикається на платі.
Ви також можете вимкнути весь світлодіод, натиснувши кнопку скидання, і вирішити ввімкнути або вимкнути певний світлодіод, натиснувши кнопку перемикання. За замовчуванням будь-який світлодіод, який ви натискаєте, буде ввімкнено. З повною роботою проекту можна ознайомитись у відео нижче. Якщо у вас виникли проблеми з налагодженням роботи, скористайтесь полем для коментарів нижче або напишіть на наших форумах для отримання додаткової технічної допомоги. Сподіваюся, ви зрозуміли підручник і сподобалось його створювати.