Съдържание:

Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей: 7 стъпки
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей: 7 стъпки

Видео: Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей: 7 стъпки

Видео: Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей: 7 стъпки
Видео: "Отговори на вашите въпроси" субтитри п-р Едуард Кешишян 2024, Юли
Anonim
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей
Топка за вълшебни отговори с Arduino Pro Mini и TFT дисплей

Преди малко дъщеря ми и аз разделихме топката Magic 8, за да може тя да замени двайсетте отговора с тези, които тя избра. Това беше подарък за нейна приятелка. Това ме накара да мисля как да направя това в по -голям мащаб. Можем ли да имаме много повече от 20 отговора? С електронна версия можем!

Това ще опише как разглобих Mattel Magic 8 Ball (съжалявам, Mattel) и използвах кръгъл TFT дисплей, за да покажа невероятен брой допълнителни отговори (най-малката micro-SD карта, която можах да намеря, беше 8GBs, така че е наистина прекалено много за за какво се използва). Топката използва дъска Sparkfun Wake-on-shake, за да предизвика реакцията и да изключи топката след това, за да спести батерията. Използва се платка за презареждане, която позволява презареждане на батерията от USB връзка.

Консумативи

Части:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Литиево -йонна батерия - 400mAh

Организатор 12бр. TP4056 Модул за зареждане 5V Micro USB 1A 18650 Литиева батерия Зареждаща платка с модул за защита на зарядното устройство (имате нужда само от един от тях, но пакетът от 12 беше по -малко от $ 9)

DAOKI 5Pcs Micro SD карта за съхранение (отново имате нужда само от една, но пакетът от 5 все още беше по -малко от $ 9)

DFRobot 2.2 инчов TFT LCD дисплей модул

Kingston 8 GB microSD (може да имате старо такова от вашата къща)

Perma-Proto Quarter-size платка за печатни платки (можете също просто да използвате каквато печатна платка ви харесва)

Magic 8 Ball

FTDI Basic пробив 3.3V (може би вече имате един от тях, ако сте правили подобен проект с Arduino Pro Mini или подобна платка)

4 -пинов корпус с 2,54 мм JST XH мъжки/женски щифт Dupont комплект конектори за кабел (по избор, но препоръчително за свързване на батерията)

Други основни консумативи:

Формово лепило Sugru (може да използва тиксо и горещо лепило, но това ми харесва повече)

Тиксо

Двустранна лента от пяна

Тел

Инструменти:

Поялник

Ротационен инструмент по ваш избор (напр. Dremel)

Скоба за мебели

Стъпка 1: Разрежете наполовина топката Magic 8

Разрежете наполовина топката Magic 8
Разрежете наполовина топката Magic 8
Разрежете наполовина топката Magic 8
Разрежете наполовина топката Magic 8

Първо ще трябва да разделите Magic 8 Ball наполовина. Закрепих моята към работна маса с плоската страна надолу с помощта на скоба за мебели. С помощта на Dremel с прикрепен основен режещ диск, изрежете по шева на топката. Ще трябва да изрежете дълбоко, доколкото режещият диск позволява. Не бързай. Дори след като сте отрязали наоколо, може да се наложи да използвате отвертка с плоска глава или длето, за да извършите окончателното разделяне. Има цилиндър, който държи "магическата" течност и икосаедъра (двадесетстранна форма - да, трябваше да го погледна нагоре) вътре. Просто изхвърлете това или го използвайте в някой друг проект. Ако го използвате в друг проект, кажете ми какво сте направили, за да знам какво да правя с моя.

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

Все още ще има малко пластмасова шлака около външния ръб (разтопената и втвърдена пластмаса). Спирайте го с ръце, ако можете; използването на инструмент рискува да изтърка финала на топката и шлаката се отделя доста лесно.

Стъпка 2: Подгответе топката

Пригответе топката
Пригответе топката
Пригответе топката
Пригответе топката
Пригответе топката
Пригответе топката

Има две модификации, които ще трябва да направим на пластмасовите половинки на топката.

Първо, в отворената половина, тази, върху която е нарисувано "8", ще трябва да обръснем достатъчно голяма площ, за да може нашата USB платка за зареждане да седи с изпъкнал USB порт. Използвах моя Dremel с прикрепен груб шлифовъчен барабан. Искате това възможно най -тънко, без да сте изчистени. След това изрежете малък отвор, достатъчно голям, за да позволите на USB порта да проникне навън. Използвах шублер за измерване на USB порта, но вероятно трябва да погледнете това, ако е необходимо. Отново използвах Dremel с малка режеща приставка, за да направя отвора. Първите две снимки показват отварянето и това как изглежда с USB платката зад него.

Второ, в другата половина, тази с отвор от двете страни и бялата пластмасова устна, подгответе място за дисплея да седне. Точно в отвора, където ще седи дисплеят, има пластмасови гребени и гумен (?) Фланец от вътрешната страна на отвора. Извадете фланеца и го оставете настрана. Ще го върнем по -късно, но искаме това да се отстрани от пътя за тази стъпка. Дисплеят има правоъгълна екструзия от едната страна, която няма да му позволи да седи плоско в отвора, ако някои от тези хребети не са отстранени. Използвайки отново барабана за грубо шлифоване на Dremel, обръснете ги колкото е възможно повече. Влезте от дупката, където дисплеят ще бъде за най -добър ъгъл. Тя трябва да изглежда като снимките, когато е завършена. Обърнете внимание, че снимките показват дисплея на място, но НЕ ГО ПРИЛАГАЙТЕ.

Стъпка 3: Подгответе отговорите на Micro-SD картата

Тази стъпка е малко по -сложна, отколкото си мислите. Ако не искате да създавате свой собствен списък с отговори, преминете към последния параграф на тази стъпка.

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

Въпреки че дисплеят е кръгъл, той функционално е виртуален правоъгълен дисплей с видими само пиксели в кръга. Дисплеят може да показва текст с множество размери, но ние използваме само най -малката версия, която е 6 x 8 пиксела. Използвайки този размер, има 315 знака, които дисплеят може да постави на екрана (21 знака на ред по 15 реда), но само 221 са видими и всеки ред има различен брой видими знаци. Виждате ли проблема?

Написах програма за Java, за да взема файл с неформатирани отговори и да ги преобразувам в напълно центрирани записи, които лесно да се показват на кръглия TFT. (връзка за изтегляне на файла "FormatToPicksFileFullyCentered.java").

Без да навлизаме в обяснение на целия код, общата идея е, че ние се движим назад от центъра (иш) и вмъкваме интервали, за да сме сигурни, че не разбиваме думите през видими редове, след което правим същото нещо от център напред. И накрая, преминаваме през всички редове и центрираме всеки ред вътре в пълните 21 символни редове, за да създадем запис от точно 316 байта (315 буквено-цифрови знака плюс знак от нов ред). Кодът действително работи чрез три шрифта, x 3, x 2 и x 1, за да види кой е най -големият шрифт, който може да се използва и все още да пасне на текста. Центрирането е малко отклонено за шрифтовете x 2 и x 3, съжалявам. Внимавайте със знаци, които заемат повече от един байт, те могат да изхвърлят изходящия файл.

Копирайте файла "picks.txt" на micro-SD картата.

Ако не искате да изпитвате неприятности при създаването на свой собствен списък с избори, аз включих моя списък с избори, които можете просто да копирате на SD картата и да използвате. Понастоящем не успях да кача.txt файл в инструкции, така че ето връзка към мястото, където можете да изтеглите файла picks.txt.

Стъпка 4: Качете кода в Arduino Mini

Качете код в Arduino Mini
Качете код в Arduino Mini
Качете код в Arduino Mini
Качете код в Arduino Mini
Качете код в Arduino Mini
Качете код в Arduino Mini

Първо, ако никога преди не сте използвали Arduino Pro Mini, не можете просто да включите USB кабел и да изтеглите; трябва да използвате FTDI платка и да свържете проводниците към съответните щифтове на мини. Няма да давам урок за това тук, има много в мрежата. За мен не исках да запоявам постоянен конектор към платката на микроконтролера, който ще се използва само веднъж за изтегляне на кода, затова създадох малък клип, който може да се използва за програмиране на мини без запояване (вижте снимките). Това беше вдъхновено от продукти като Fiddy, но нямам лесен достъп до 3D принтер, затова направих свой собствен от щипка за картофени чипове. Ако хората се интересуват, ще направя инструкция само за това.

Към кода. В този код има няколко интересни части, но той е предимно прав.

Във функцията за настройка има прилично количество код, който се занимава с получаването на добро произволно семе. Типичният метод за използване на аналоговото четене от несвързан пин не дава достатъчно разнообразен отговор според моя опит. Получавам число между 477 и 482. Тъй като случайната функция Arduino има една и само една последователност и семето определя откъде да започне в тази последователност, такъв тесен диапазон в крайна сметка няма да даде достатъчно възможни отговори. Имайте предвид, че този код по същество се стартира всеки път, когато платката Wake-on-shake изключва и включва отново захранването, така че първоначалната позиция на последователността, определена от семето, е от решаващо значение. За да помогна с това, записвам много малък файл на SD картата, за да проследя последното начало и добавям това към нова стойност, идваща от несвързания щифт.

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

Задължителни външни библиотеки:

Библиотека ST7687S

Библиотека DFRobot-Display

Стъпка 5: Свържете компонентите

Свържете компонентите
Свържете компонентите
Свържете компонентите
Свържете компонентите

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

В приложената схема TFT дисплеят е представен от конектор, а не от картина на целия дисплей (за който не можах да намеря част от Fritzing). Обозначих проводниците/щифтовете въз основа на това как са обозначени на частта. По същия начин SD картата не е точно тази, която използвах, но обозначих проводниците/щифтовете за изброената част.

Има един компонент, който не съм запоявал заедно на тази стъпка: батерията. Вместо това използвах четири-пинов конектор с отстранени двата средни щифта (втора снимка). Това ми позволи да тествам всички компоненти, свързани заедно и след това да изключа батерията, докато прикрепя всичко към топката.

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

Тествайте дали всичко работи

Стъпка 6: Прикрепете компоненти към топката

Прикрепете компоненти към топката
Прикрепете компоненти към топката
Прикрепете компоненти към топката
Прикрепете компоненти към топката
Прикрепете компоненти към топката
Прикрепете компоненти към топката
Прикрепете компоненти към топката
Прикрепете компоненти към топката

Първо поставете дисплея на място и използвайте малко Sugru, за да го закрепите (първите две изображения). Не забравяйте за фланеца, който сте премахнали по -рано, трябва да го върнете на място, преди да закрепите дисплея на място.

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

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

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

Поставете micro-SD картата в модула на SD картата сега

Можете да закрепите останалите компоненти към бялата устна, ако желаете. Току -що пъхнах останалите компоненти зад дисплея.

Стъпка 7: Сложете двете половини отново заедно

Върнете двете половини заедно
Върнете двете половини заедно
Върнете двете половини заедно
Върнете двете половини заедно

Проверете отново дали сте поставили SD картата и дали сте тествали всички компоненти заедно.

Добре, ако сте готови, направете дълга змия от малко лепило Sugru и я прокарайте до края на половината от топката с бялата устна (първа снимка). Лепилото трябва да се постави точно на кръстовището, където черно -белите части на пластмасата се събират. Поставянето на лепилото тук гарантира, че имате здрава връзка, като същевременно минимизирате количеството лепило, което се изстисква от пукнатината, след като двете половини се съединят.

Притиснете двете половини заедно, като се уверите, че USB портът се вкарва през отвора, предварително изрязан за него. Използвайки скобата за мебели, затегнете двете половини заедно достатъчно здраво, за да поддържате половинките заедно, няма нужда да я притискате здраво. Лепилото Sugru ще се втвърди за около 24 часа.

Ако имате част от лепилото, изцедено от фугата, не се колебайте да го изстържете с пръст или гладка кърпа/хартиена кърпа.

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