Съдържание:

Arduino LED масичка за кафе с контролиран Bluetooth: 10 стъпки (със снимки)
Arduino LED масичка за кафе с контролиран Bluetooth: 10 стъпки (със снимки)

Видео: Arduino LED масичка за кафе с контролиран Bluetooth: 10 стъпки (със снимки)

Видео: Arduino LED масичка за кафе с контролиран Bluetooth: 10 стъпки (със снимки)
Видео: CS50 2015 - Week 10 2024, Юли
Anonim
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол
LED масичка за кафе Arduino с Bluetooth контрол

Това беше първият ми истински проект на Arduino, а също и първият ми инструктаж, така че бъдете любезни в коментарите:) Исках да опитам да отговоря на въпросите, които ми отнеха известно време, за да разбера и да дам подробни инструкции, така че ако сте много запознати с любител електроника, тогава вероятно можете да прегледате всяка стъпка, но ако сте нов в това, тя трябва да ви предостави всичко необходимо.

Целта на проекта беше да се създаде екран с размери 12 x 12 пиксела в масичка за кафе, който да може да се управлява чрез bluetooth и да се използва като хладна стайна светлина/да играете игри на него.

За тази конструкция ще ви трябват следните части:

  1. Arudino Mega (или клонинг)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Arduino micro SD Card Shield (използвах този и споявах заглавките) -
  3. Micro SD карта - Всеки размер е подходящ, но трябва да бъде форматиран във FAT32
  4. 5m WS2812B Адресация на LED лента -
  5. Bluetooth модул HC05 -
  6. 5 V 6 Amp захранване-(използвах това, но има стотина други в ebay)
  7. Маса на Ikea LACK (класиката на любителите) -
  8. Достъп до лазерен нож за 3 мм шперплат (или много стабилна ръка). Можете да поръчате лазерно изрязани части онлайн на различни места (https://www.hobbytronics.co.uk/laser-cutting например)
  9. Бяла спрей боя
  10. 2 м алуминиева Т секция (1 1/2 x 1 1/2 x 1/8) -
  11. 450 мм х 450 мм х 6 мм стъклен плот (повечето местни стъклари могат да изрежат персонализирани парчета за вас, но аз използвах тези момчета
  12. 1 x 100 микро кондензатор Farad
  13. 2 x 1k резистор
  14. 1 x 2k резистор
  15. 1 x линеен въртящ се потенциометър
  16. Различни джъмпери (вероятно дузина по време на прототипирането)
  17. Най -малко три цвята на относително дебели кабели за запояване (това може да изтегли някои големи токове, така че не препоръчвам джъмперни проводници за захранване)
  18. Лента за вътрешната верига (не се притеснявайте, че е много проста)

Необходими инструменти:

  1. Поялник + спойка
  2. Чифт откъси
  3. Машини за сваляне на тел
  4. Дремел или мозайката от някакъв вид, за да отсече масата. Използвах този https://www.amazon.co.uk/gp/product/B0078LENZC/ref… със спираловидни режещи битове

Стъпка 1: Първоначален тест и оформление

Първоначален тест и оформление
Първоначален тест и оформление
Първоначален тест и оформление
Първоначален тест и оформление
Първоначален тест и оформление
Първоначален тест и оформление

Първият порт за повикване е да изрежете LED лентата на дължините, от които се нуждаете. Тази LED лента е наистина лесна за използване, защото има само 3 пина и кара Arduino да свърши истинската работа. Нарязах макарата на 12 секции, всяка с дължина 12 светодиода, както е показано на фигурата, и ги поставих на гърба на масата, за да ми помогне да си представя къде отивам с това.

След това ми останаха няколко светодиода, така че ги свързах с Arduino UNO. Трябваше да тествам дали работят (можете да използвате и Mega, споменат в схемата на проекта). За да направя това, изрязах и свалих някои мъжки към мъжки заглавки и ги запоявах към подложките в края на LED лентата. На лентата WS2812 използвах 5V проводника е червен, земята е бяла и данните са зелени. Не забравяйте да обърнете внимание на стрелката за посока, отпечатана върху лентата WS2812B, за да не се опитвате да изпращате данни в грешна посока. Свързах 5V линията към 5V на Arduino, Ground към GND и Data към щифт 6 с 1k резистор последователно. Имайте предвид, че схемата на Fritzing на светодиодите WS2812B е малко по -различна от тези, които доставих - достатъчно е да се каже, просто се уверете, че данните са свързани към пин 6, Gnd е свързан към земята и 5 е свързан към 5V.

С толкова малко светодиоди (5 или повече) Arduino трябва да е добре, за да осигури захранването; обаче не можете да захранвате много, тъй като когато са на пълно бяло, светодиодите черпят до 60mA всеки и могат бързо да преодолеят Arduino.

Ако приемем, че имате Arduino IDE (ако не го изтеглите и инсталирате), задайте типа чипсет на Arduino, който имате, и задайте COM порта на този, който показва Arduino в опциите. Сега изтеглете и инсталирайте библиотеката FastLED (https://fastled.io/). Отворете примера striptest.h и задайте броя на светодиодите в скицата колкото и да имате (останаха ми 5). Натиснете проверка и (при условие, че всичко върви добре) я качвайте в Arduino и трябва да видите как светлините на малката лента светват и променят цвета.

Стъпка 2: Запояване на матрицата и лентата

Запояване на матрицата и лентата
Запояване на матрицата и лентата
Запояване на матрицата и лентата
Запояване на матрицата и лентата
Запояване на матрицата и лентата
Запояване на матрицата и лентата

Сега е време да започнете да създавате LED матрица.

Изрежете 11 къси дължини на всеки от трите цвята тел, които имате. Уверете се, че са достатъчно дълги, за да преминат от края на една лента до началото на следващата. Когато поставяте LED лентите, трябва да се уверите, че стрелката на потока от данни следва змия. След като това е изложено, внимателно запоявайте всеки водещ ред към следващия, както е показано на фигурата. Това е значително по -лесно, ако използвате един и същи цвят за всеки тип връзка.

Сега, повече запояване, трябва да създадем лентата, която да се захранва от захранването от мрежата. Запоях две колони на лентата заедно за 5V и GND, така че да се справя по -добре с тока. Вижте приложената схема за веригата, която трябва да създадете. Когато запоявате кондензатора, уверете се, че отрицателният край е прикрепен към GND шината, а не към 5V. След като лентата приключи, трябва да свържем +VE и GND към LED лентата и също да използваме другата половина от джъмперите, които изрязахме по -рано, за да свържем Arduino към захранването и лентата. Сега би било подходящ момент да добавим SD пробивната платка към Arduino, за да можем да запазваме файлове в нея и да четем от нея по -късно. След като SD пробивната платка е на мястото си, можем да свържем 5V шината към щифта Vin и GND към всеки GND щифт на Arduino.

И накрая, можем да свържем потенциометър към аналоговия вход A0, както е показано, така че да имаме начин да контролираме яркостта на светодиодите.

След като всичко това е направено, можем да качим отново най -стриктната скица, като променим броя на светодиодите на 144. Уверете се, че сте включили захранването, преди да качите тази скица. Да се надяваме, че всички светодиоди трябва да светят в моделите на най -стриктната скица, за да знаем, че всичко работи.

Стъпка 3: Интегриране на Bluetooth модул

Интеграция на Bluetooth модул
Интеграция на Bluetooth модул

Последната част от окабеляването сега, устройството HC05 се свързва с Arduino Mega, както е показано на схемата. Уверете се, че устройството HC05 се свързва към портовете Rx1 и Tx1 на мега - това улеснява много програмирането и избягва използването на библиотеката "softwareserial".

NB. Устройството HC05 ще приема или 5V, или 3.3V вход и обикновено работи на 3.3V логика, така че го свързах към 3.3V шината. Някои други инструкции са показали Tx (на Arduino) до Rx (на HC05 единица) с потенциална разделителна верига, която да пречупи 5 V логиката от Arduino в естественото ниво за модула HC05. Това е причината да имам 1k и 2k резистори в списъка с части; обаче не се притесних и изглежда напълно щастлив на масата ми:)

Стъпка 4: Хакване на маса

Хакване на маса
Хакване на маса
Хакване на маса
Хакване на маса
Хакване на маса
Хакване на маса

Сега трябва да започнем да разрязваме масата, за да дадем на нашите светодиоди и електроника нов дом.

Първо маркирайте квадрат 450 mm x 450 mm в средата на горната част на плота LACK. С помощта на Dremel (или мозайката) изрежете квадрата възможно най -добре, за да го поддържате изправен. Сега можем да премахнем горната част и вътрешните части от картона, оставяйки ви издълбания плот, както е показано на снимката. Използвайки отново Dremel, можем да пробием дупка в ъгъла на дъното на масата, така че да имаме къде да прокараме захранващия кабел.

След като таблицата е подготвена, можем да залепим светодиодите в приблизително правилните позиции, преди да преминем към следващите стъпки. Намерих за полезно да се уверя, че електрониката е точно след всяка стъпка, така че опитайте отново най -стриктната скица.

След като ви е удобно, всичко е на правилното си място, можете да пробиете няколко малки дупки, за да монтирате захранването вътре в ръба на масата, като използвате малки болтове. Избрах да монтирам Arduino извън масата, за да мога лесно да го препрограмирам, ако искам, но той е монтиран с главата надолу до дъното на масата и не се вижда лесно. Също така монтирах потенциометъра през дъното на масата, така че регулирането на яркостта да изглежда приятно и професионално.

Стъпка 5: Лазерно изрязани части

Лазерно изрязани части
Лазерно изрязани части
Лазерно изрязани части
Лазерно изрязани части
Лазерно изрязани части
Лазерно изрязани части

Сега трябва да въведем лазерно изрязаните части, които образуват матрицата от квадрати, така че да имаме дефинирани пиксели. Включих dxf файловете за лазерно изрязани части, които образуват дървената матрица, както и изображения от тях, за да знаете как трябва да изглеждат. Те са направени от две отделни части, едната минава по всеки ред светодиоди, а другата ги пресича. Пресичащите се части имат отсечка с височина 10 мм в долната част, за да позволи преминаването на кабелите. Тази празнина може да бъде намалена до 5 мм, тъй като изглежда имам малко изтичане на светлина от един пиксел в следващия.

11 от копията на двете части трябва да бъдат изрязани с лазер от 3 мм шперплат и след това да бъдат сглобени, за да се уверите, че пасват правилно. След като сте щастливи, разглобете матрицата отново и я напръскайте в бяло, за да подобрите отразяващите характеристики на масата. Когато изсъхнат, сложете ги отново заедно и ги поставете върху светодиодите. Може да е малко по -трудно да ги поставите заедно след пръскане, тъй като сега са малко по -дебели, но не се притеснявайте, просто леко ги почукайте на място, преди да поставите матрицата в масата.

Стъпка 6: Glediator

Гледиатор
Гледиатор
Гледиатор
Гледиатор

Сега разполагаме с целия хардуер, можем да започнем да разглеждаме софтуера. Изтеглих и инсталирах софтуер, наречен Glediator, за да създавам анимации за светодиодите (https://www.solderlab.de/index.php/software/glediat…). Инструкциите за инсталиране могат да бъдат малко неудобни, но следвайте внимателно уебсайта и трябва да сте добре. Трябва също да изтеглим скицата от уебсайта на Glediator, за да я качим в Arduino (https://www.solderlab.de/index.php/downloads/catego…). Използваме светодиоди WS2812B, така че не забравяйте да изтеглите правилния (WS2812 Glediator Interface). След като отворите тази скица, променете NUMBER_OF_PIXELS на 144 и я качете в Arduino.

След като Glediator е инсталиран, можем да започнем да играем анимации на масата. Първо трябва да зададем размера на матрицата на 12 x 12 в софтуера Glediator и също така да зададем типа на изхода на HSBL - хоризонтална змия (стартираща) отдолу вляво, тъй като това е начинът, по който сме свързали светодиодите и сменим цветовия ред на GRB (за това светодиодите вземат данни). В раздела за изход отворете COM порта и LED матрицата трябва да започне да показва LED модела на средния екран на софтуера Glediator.

Можете да създавате анимации и да ги записвате във.dat файл, който можем да качим на SD картата, което означава, че любимите ви анимации могат да се показват на масата, без да е необходимо да се свързва компютър. Има няколко урока онлайн за това (https://hackaday.io/project/5714-glediator-from-sd… например). Промених няколко различни източника на код, за да работи за това, така че кодът ми трябва да е наред.

Когато запазвате анимациите си, не забравяйте да ги запишете като „animX.dat“, където X е произволно число от 1-15. Можете да внедрите повече, като промените няколко реда в моя код.

Забележка: Когато записвате файлове на Glediator, софтуерът има грешка, което означава, че не помни как сте свързали LED лентата. В моя код съм реализирал проста функция за обръщане на реда на четните редове, което означава, че всичко се показва правилно

Стъпка 7: Bluetooth сериен контрол

Bluetooth сериен контрол
Bluetooth сериен контрол
Bluetooth сериен контрол
Bluetooth сериен контрол

Настройката на Bluetooth комуникация между смартфон и Arduino се оказа изненадващо сложна, но има няколко прости стъпки, които ще направят това много по -лесно. Първо, ще трябва да изтеглите приложение за вашия смартфон. Използвах https://play.google.com/store/apps/details?id=com…. но вероятно има еквивалент на iphone (за който трябва да платите; p)

Може би сте забелязали, че модулът HC05 има малък превключвател. Ако го включите с този бутон натиснат, той влиза в AT-режим, което означава, че можете да разпитате параметрите по него и да ги промените, ако желаете.

Качете приложената скица в Mega и задайте серийната скорост на вашия компютър на 9600. Изключете захранването на HC05 устройството и след това натиснете бутона върху него, когато го свържете отново. Мигането трябва да е приблизително веднъж на всеки две секунди - сега HC05 е в AT -режим.

Сега в серийния монитор можем да изпращаме команди до HC05 и да видим отговора му. Въведете „AT“и натиснете send и ще видите „OK“да се върне на серийния монитор - сега знаем, че слуша. Името на Bluetooth на устройството може да бъде променено, като напишете „AT+ИМЕ = XYZPQR“, където XYZPQR е това, което искате да бъде извикан модулът. Обадих се на моя LightWave. Паролата по подразбиране за Bluetooth модула е 1234 (или 0000), но това може да бъде променено и чрез изпращане на „AT+PSWD = 9876“например. И накрая, можем да променим скоростта на комуникация на HC05, като изпратим „AT+UART = 38400“. Това е стандартният процент за повечето модули HC05, но моят е зададен по различен начин, така че е добра практика да го настроите, за да сте сигурни. Тук има много повече подробности за тези команди: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… и има и инструкции за тази стъпка, които имат много повече подробности https://www.instructables.com/id/Modify -The-HC-05-…

Сега можем да опитаме да изпратим команди към модула чрез Bluetooth устройство. Първо изключете захранването на модула HC05 и след това го свържете отново. Трябва да видите, че скоростта на мигане на светодиода е много по -бърза - това означава, че сега чака да се сдвои. На вашия смартфон отворете приложението Arduino Bluetooth Controller и намерете модула HC05. Ако не сте променили името, то вероятно ще се казва HC05 или подобен. Когато ви се предоставят опциите как искате да се свържете, изберете Терминален режим. Сега опитайте да изпратите някои номера и текст и да видите дали серийният монитор на компютъра съобщава, че са получени. Да се надяваме, че можем да продължим напред, ако не, има много инструкции, които биха могли да ви дадат няколко съвета (https://www.instructables.com/id/Bluetooth-Hc-05-W… например).

Последното нещо, което трябва да направите тук, е да картографирате входовете на контролера в числа, с които Arduino може да направи нещо. Използвах следните стойности:

Нагоре = 1, Надолу = 2, Вляво = 3, Вдясно = 4, Старт = 5, Изберете = 6.

Стъпка 8: Игри

Игри
Игри

Не поемам кредит за кода на играта. Използвах изходния код, намерен тук https://github.com/davidhrbaty/IKEA-LED-Table, написан от davidhrbaty. Аз обаче го промених по няколко различни начина:

  1. Добавих функция за ограничаване на яркостта въз основа на стойността на потенциометъра, за да можем да променим яркостта
  2. Премахнах играта с тухли, защото не можах да я компилирам
  3. Промених цветовото кодиране на тетрисните блокове, така че всички те бяха с различни цветове
  4. Пренаредих менюто
  5. Реализирах опция за възпроизвеждане на анимации от SD картата
  6. Добавих проследяване на висок резултат и опция за показване на висок резултат в менюто

Прикаченият код трябва просто да работи веднага, но ако не, моето предложение би било премахване на игри, които изглежда причиняват съобщения за грешки и потвърждаване на кода отново, докато не разберете къде е проблемът. След това постепенно добавете отново в по -сложна.

Първоначалният автор на този код свърши фантастична работа, изграждайки нещо, което е наистина модулно и лесно за добавяне. Не е толкова трудно да добавите в допълнителни случаи, за да добавите още функции в таблицата.

Опциите в менюто са:

  1. SD карта - Възпроизвежда анимации, съхранени на SD картата
  2. тетрис
  3. Змия
  4. Понг
  5. Dice - Генератор на произволен nuber между 1 и 6
  6. Анимация - колекция от анимации от библиотеката FastLED
  7. Stars Animation - РЕДАКТИРАНЕ - Вече внедрих Играта на живота на Конуей вместо тази анимация
  8. Анимация на дъгата
  9. Високи резултати - Показва високи резултати за тетрис и змия

Преди да започнете да играете, трябва да създадете два txt файла на SD картата, един наречен „teths.txt“, а другият „snkhs.txt“. И в двата файла поставете числото 0, след което ги запишете в основната папка на SD картата. Това са файловете за проследяване с най -висок резултат и ще се актуализират всеки път, когато се победи високият резултат. Ако искате да го нулирате, просто променете стойностите обратно на 0 на компютър.

След като качите програмата LED_table в Arduino, можете да отворите серийния монитор и трябва да можете да виждате командите за bluetooth, докато ги изпращате - по този начин знаете, че всичко работи добре.

Стъпка 9: Насладете се

Наслади се
Наслади се
Наслади се
Наслади се
Наслади се
Наслади се

Остава само да качите кода на основната LED таблица в Mega и след това да се насладите на играта и да ме уведомите за вашите високи резултати!

Все още чакам частите за масата да пристигнат (алуминиева Т -секция и стъкло), но масата вече функционира добре и мога да играя игри на нея.

Кажете ми, ако имате някакви коментари, редакции или забележите допуснати от мен грешки.

Стъпка 10: Актуализиране

Image
Image
Актуализиране
Актуализиране
Актуализиране
Актуализиране

Сега тя е напълно завършена!:)

Най -накрая взех доставката на алуминиевата Т секция за кантиране и свърших най -добрата си работа при затягане на фугата (оказва се, че 45 градуса е един от по -твърдите ъгли), но тя е почти напълно квадратна. За горната част реших да взема по -дебел лист стъкло (425 x 425 x 8 мм) и замазах долната страна с помощта на спрей за глазура от стъкло Rustoleum. Използвах обикновен уплътнител (силиконов уплътнител) за свързване на горната част и ъгловите парчета, така че да има малко гъвкавост във фугите, ако е необходимо.

Актуализирана актуализация. Сега добавих в Играта на живота на Конуей като вариант 7 в менюто, а не анимацията със звезди, тъй като никога не съм я използвал. Ако не знаете каква е тази игра, потърсете в Google, но по същество това е игра с нулев играч, която показва еволюция въз основа на три прости правила. Играта на живота на Конуей

Актуализиране^3. Направих някои промени в кода, така че сега той включва корекция на грешки по отношение на затъмняването на червените светодиоди и също така включва анимация за коледно дърво като опция 11 в менюто. Наслади се.

Препоръчано: