Innehållsförteckning:

Magic Answers Ball med Arduino Pro Mini och TFT -skärm: 7 steg
Magic Answers Ball med Arduino Pro Mini och TFT -skärm: 7 steg

Video: Magic Answers Ball med Arduino Pro Mini och TFT -skärm: 7 steg

Video: Magic Answers Ball med Arduino Pro Mini och TFT -skärm: 7 steg
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Juli
Anonim
Magic Answers Ball med Arduino Pro Mini och TFT -skärm
Magic Answers Ball med Arduino Pro Mini och TFT -skärm
Magic Answers Ball med Arduino Pro Mini och TFT -skärm
Magic Answers Ball med Arduino Pro Mini och TFT -skärm
Magic Answers Ball med Arduino Pro Mini och TFT -skärm
Magic Answers Ball med Arduino Pro Mini och TFT -skärm

För ett tag sedan tog min dotter och jag isär en Magic 8 -boll så att hon kunde ersätta de tjugo svaren med en som hon valde. Detta var en present till en av hennes vänner. Det fick mig att tänka på hur jag skulle göra det i större skala. Kan vi ha mycket mer än 20 svar? Med en elektronisk version kan vi!

Så det här kommer att beskriva hur jag demonterade en Mattel Magic 8 Ball (förlåt, Mattel) och använde en rund TFT-skärm för att visa otroligt många ytterligare svar (det minsta mikro-SD-kortet jag kunde hitta var 8 GB, så det är verkligen överkill för vad det används till). Bollen använder ett Sparkfun Wake-on-shake board för att utlösa svaret och för att stänga av bollen efteråt för att spara på batteriet. En laddningskort används för att ladda batteriet från en USB -anslutning.

Tillbehör

Delar:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Litiumjonbatteri - 400mAh

Organizer 12st TP4056 Laddningsmodul 5V Micro USB 1A 18650 Litiumbatteriladdningskort med skyddsladdarmodul (du behöver bara en av dessa, men 12 -packet var mindre än $ 9)

DAOKI 5Pcs Micro SD Storage Board (igen, du behöver bara en, men 5 -packet var fortfarande mindre än $ 9)

DFRobot 2,2 tums TFT LCD -displaymodul

Kingston 8 GB microSD (du kanske har en gammal sådan här hemma)

Perma-Proto Quarter-sized Breadboard PCB (du kan också bara använda vilken PCB du vill)

Magic 8 Ball

FTDI Basic breakout 3.3V (du kanske redan har en av dessa om du har gjort ett liknande projekt med Arduino Pro Mini eller liknande kort)

4 -stifts hölje med 2,54 mm JST XH hona/hona stifthuvud Dupont trådkopplingssats (tillval, men rekommenderas för anslutning av batteriet)

Andra grundartiklar:

Sugru formbart lim (kan använda tejp och varmt lim, men jag gillar det här bättre)

Silvertejp

Dubbelsidig skumtejp

Tråd

Verktyg:

Lödkolv

Valfritt roterande verktyg (dvs. Dremel)

Möbelklämma

Steg 1: Skär Magic 8 -bollen på mitten

Skär Magic 8 -bollen på mitten
Skär Magic 8 -bollen på mitten
Skär Magic 8 -bollen på mitten
Skär Magic 8 -bollen på mitten

Först måste du dela Magic 8 -bollen på mitten. Jag fixerade mitt på ett arbetsbord med den platta sidan nedåt med en möbelklämma. Skär längs kulans söm med en Dremel med en grundläggande skärskiva fäst. Du kommer att behöva skära djupt, så långt som skärskivan tillåter. Ta det lugnt. Även efter att du har klippt hela vägen kan du behöva använda en platt skruvmejsel eller mejsel för att göra den sista separationen. Det finns en cylinder som rymmer den "magiska" vätskan och icosahedronen (tjugosidig form - ja, jag var tvungen att titta upp det) inuti. Släng det bara eller använd det i något annat projekt. Om du använder det i ett annat projekt, låt mig veta vad du gjorde så jag vet vad jag ska göra med mitt.

Du kommer att ha två halvor som visas på bilderna. Jag har gjort det här tre gånger nu och den senaste tiden, den vita läppen var slät snarare än att ha åsar, så din boll kan se lite annorlunda ut än den på bilden.

Det kommer fortfarande att finnas lite plastslagg runt ytterkanten (den smälta och härdade plasten). Bromsa av det med dina händer, om du kan; om du använder ett verktyg riskerar du att skrapa upp bollen och slaggen lossnar ganska lätt.

Steg 2: Förbered bollen

Förbered bollen
Förbered bollen
Förbered bollen
Förbered bollen
Förbered bollen
Förbered bollen

Det finns två modifieringar vi kommer att behöva göra på bollens plasthalvor.

Först, i den öppna halvan, den som har "8" målad på den, måste vi raka ut ett område som är tillräckligt stort för att vår USB -laddningskort ska sitta med USB -porten som sticker ut. Jag använde min Dremel med en grov slipningstrumma fäst. Du vill ha det så tunt som du kan få utan att gå igenom. Skär sedan en liten öppning som är tillräckligt stor för att USB -porten ska sticka utåt. Jag använde en tjocklek för att mäta USB -porten, men du kan förmodligen se detta om du behöver. Återigen använde jag Dremel med en liten skärfäste för att göra öppningen. De två första bilderna visar öppningen och hur det ser ut med USB -kortet bakom.

För det andra, i den andra halvan, den med hål på Båda sidorna och den vita plastläppen, förbered en plats för displayen att sitta. Precis innanför öppningen där displayen kommer att sitta finns det plastkanter och en gummifläns (?) På insidan av öppningen. Ta ut flänsen och lägg den åt sidan. Vi kommer att lägga tillbaka det senare, men vi vill att det ska vara ur vägen för detta steg. Displayen har en rektangulär extrudering på ena sidan som inte låter den sitta platt i öppningen om några av dessa åsar inte tas bort. Rengör dem så mycket som möjligt med den grova sliptrumman på Dremel igen. Kom in från hålet där displayen kommer att vara för bästa vinkel. Det ska se ut som på bilderna när det är klart. Observera, bilderna visar displayen på plats, men Fäst INTE den än.

Steg 3: Förbered svaren på Micro-SD-kortet

Det här steget är lite mer komplicerat än du kanske tror. Om du inte vill skapa din egen lista med svar, gå till det sista stycket i det här steget.

Avsikten är att vi kan ge bollen valfri lista över strängar som ska användas som möjliga svar och de kommer att vara centrerade på skärmen utan några raster i mitten av orden. Vi vill inte göra den här behandlingen på mikrokontrollern och vi vill ha en fil med statisk poststorlek för att snabbt kunna hitta en viss rad.

Trots att skärmen är rund är den funktionellt en virtuell rektangulär skärm med endast pixlar i cirkeln synlig. Displayen kan visa text i flera storlekar, men vi använder bara den minsta versionen som är 6 x 8 pixlar. Med denna storlek finns det 315 tecken som displayen kan sätta på en skärm (21 tecken per rad gånger 15 rader), men bara 221 är synliga och varje rad har ett annat antal synliga tecken. Ser du problemet?

Jag skrev ett Java -program för att ta in en fil med oformaterade svar och konvertera dem till helt centrerade poster som enkelt kunde visas på den runda TFT. (länk för att ladda ner filen "FormatToPicksFileFullyCentered.java").

Utan att gå in på en förklaring av hela koden är den allmänna tanken att vi arbetar oss bakåt från mitten (ish) och infogar mellanslag för att se till att vi inte bryter ord över synliga linjer, sedan gör vi samma sak från mitt fram. Slutligen går vi igenom alla rader och centrerar varje rad inuti de hela 21 tecken raderna för att skapa en post på exakt 316 byte (315 alfanumeriska tecken plus ett nytt radstecken). Koden fungerar faktiskt genom tre teckensnitt, x 3, x 2 och x 1 för att se vilket som är det största teckensnittet som kan användas och fortfarande passar texten. Centreringen är lite för x 2 och x 3 typsnitt, förlåt. Var försiktig med tecken som tar upp mer än en byte, dessa kan kasta bort filen som matas ut.

Kopiera filen "picks.txt" till mikro-SD-kortet.

Om du inte vill gå igenom besväret med att skapa din egen lista med val, har jag inkluderat min lista med val som du bara kan kopiera till SD -kortet och använda. Jag kunde inte ladda upp en.txt -fil till instruktioner just nu så här är en länk där du kan ladda ner picks.txt -filen.

Steg 4: Ladda upp koden till Arduino Mini

Ladda upp koden till Arduino Mini
Ladda upp koden till Arduino Mini
Ladda upp koden till Arduino Mini
Ladda upp koden till Arduino Mini
Ladda upp koden till Arduino Mini
Ladda upp koden till Arduino Mini

För det första, om du aldrig har använt Arduino Pro Mini tidigare kan du inte bara ansluta en USB -kabel och ladda ner; du måste använda ett FTDI -kort och anslut kablarna till lämpliga stift på mini. Jag kommer inte att ge en handledning om det här, det finns mycket ute på webben. För mig ville jag inte löda en permanent kontakt på mikrokontrollerkortet som bara skulle användas en gång för att ladda ner koden, så jag skapade ett litet klipp som kan användas för att programmera mini utan lödning (se bilder). Detta var inspirerat av produkter som Fiddy, men jag har inte lätt tillgång till en 3D -skrivare, så jag gjorde min egen av ett potatischips. Om folk är intresserade, gör jag en instruerbar bara för det.

Till koden. Det finns ett par intressanta delar i den här koden, men det är mestadels rakt fram.

I installationsfunktionen finns det en anständig mängd kod som handlar om att få ett bra slumpmässigt frö. Den typiska metoden för att använda den analoga avläsningen från en okopplad stift ger inte ett tillräckligt varierat svar i min erfarenhet. Jag får ett tal mellan 477 och 482. Eftersom Arduino -slumpfunktionen har en och endast en sekvens och fröet avgör var den ska börja i den sekvensen, kommer ett så smalt intervall inte att ge tillräckligt med möjliga svar i slutändan. Tänk på att den här koden i princip börjar om varje gång Wake-on-shake-kortet slår av och på igen, så den ursprungliga sekvenspositionen som bestäms av fröet är avgörande. För att hjälpa till med detta skriver jag en mycket liten fil till SD -kortet för att hålla reda på det sista fröet och lägga till det till ett nytt värde som kommer från den oanslutna stiftet.

När väl ett val har valts i loop -funktionen och lästs in i en teckenmatris kan vi inte bara skriva ut hela strängen. Displayen har en gräns för hur lång sträng den kan hantera åt gången. Av den anledningen måste vi gå igenom var och en av de femton raderna och skicka dem till displayen en i taget.

Externa bibliotek som krävs:

ST7687S bibliotek

DFRobot-displaybibliotek

Steg 5: Koppla ihop komponenterna

Koppla ihop komponenterna
Koppla ihop komponenterna
Koppla ihop komponenterna
Koppla ihop komponenterna

Dags att göra all lödning av trådar. Jag tenderade att ta fel på sidan av lite längre trådar än jag verkligen behövde, men det slutade bra.

I den bifogade schemat representeras TFT -displayen av en kontakt snarare än en bild av hela displayen (som jag inte kunde hitta en Fritzing -del för). Jag har märkt trådarna/stiften baserat på hur de är märkta på delen. På samma sätt är SD -kortet inte det exakta jag använde, men jag märkte trådarna/stiften för den angivna delen.

Det finns en komponent som jag inte lödde ihop vid detta steg: batteriet. Istället använde jag en fyrpolig kontakt med de två mittpinnarna borttagna (andra bilden). Det här låter mig testa alla komponenter som är ihopkopplade och sedan koppla bort batteriet medan jag fäster allt på bollen.

Slutligen använde jag en fjärdedelstorlek för permanent brödbräda för att göra strömmen och delade anslutningar enklare. Det ser du på monteringsbilderna.

Testa att allt fungerar

Steg 6: Fäst komponenter på bollen

Fäst komponenter på bollen
Fäst komponenter på bollen
Fäst komponenter på bollen
Fäst komponenter på bollen
Fäst komponenter på bollen
Fäst komponenter på bollen
Fäst komponenter på bollen
Fäst komponenter på bollen

Sätt först på skärmen och använd lite Sugru för att säkra den (två första bilderna). Glöm inte bort den fläns du tog bort tidigare, du bör ha tillbaka den på plats innan du sätter fast skärmen på plats.

Därefter tejpade jag in proto-brädan i botten av den tomma halvan av bollen. Jag behöll alla mina soldater på ena sidan av brädet, så jag hade fortfarande halva brädet som jag kunde tejpa över. Jag tejpade sedan batteriet ovanpå samma hälft av proto-kortet (tredje bilden).

Båda halvorna är nu anslutna med ledningar. Ta reda på var USB -hålet kommer att hamna när du sätter ihop de två halvorna. Om den vita läppen har ryggarna som sticker upp, kom ihåg att den måste komma ner centrerad i en av kilen på den vita läppen eftersom vi kommer att säkra USB -laddningskortet mellan två av plastkanterna på läppen.

Fäst USB-laddningskortet med en liten bit dubbelsidig skumtejp. Den dubbelsidiga tejpen ska inte täcka hela botten på laddningskortet eftersom änden med trådarna fästa kommer att hänga över mittkanten på den vita läppen. Så tejpen ska täcka ungefär tre fjärdedelar av brädans bottenyta. Lägg tejpen på botten av brädet först och tryck sedan in det på den plats du har bestämt dig för. USB -kontakten ska vara vid bollens kant och sticka in i den svarta delen av plasten utan att gå utanför bollen. Slutligen, använd lite mer Sugru över toppen av brädet och fäst på båda sidor. Detta ger bara ytterligare styrka för när en kabel skjuts in i USB -porten.

Sätt i micro-SD-kortet i SD-kortmodulen nu

Du kan fästa de andra komponenterna på den vita läppen om du vill. Jag stoppade precis de återstående komponenterna bakom skärmen.

Steg 7: Sätt tillbaka de två halvorna

Sätt tillbaka de två halvorna
Sätt tillbaka de två halvorna
Sätt tillbaka de två halvorna
Sätt tillbaka de två halvorna

Dubbelkolla att du har satt in SD -kortet och att du har testat alla komponenter tillsammans.

Ok, om du är redo, gör en lång orm av lite Sugru -lim och kör det hela vägen runt kanten på bollhalvan med den vita läppen (första bilden). Limet ska läggas precis vid korsningen där de svartvita delarna av plasten kommer ihop. Att sätta limet här ser till att du har en stark bindning samtidigt som du minimerar mängden lim som kläms ut från sprickan efter att de två halvorna är sammanfogade.

Tryck ihop de två halvorna och se till att USB -porten sticker genom hålet som tidigare skars för den. Använd möbelklämman och kläm ihop de två halvorna så hårt att de håller ihop halvorna, du behöver inte klämma fast den hårt. Sugru -limet härdar på cirka 24 timmar.

Om du har en del av limet som pressats ut ur fogen kan du skrapa bort det med fingret eller en slät trasa/pappershandduk.

Rekommenderad: