Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Jag ville skapa en digital version av Magic 8 Ball …
Huvuddelen av detta är 3D -tryckt och displayen har ändrats från en polyeder i blått färgämne till en liten OLED som styrs av en slumptalsgenerator programmerad till en Arduino NANO.
Sedan gick jag på lite tangens och skapade ett annat skal, det här är ett isblått öga som ser rakt in i din själ …
FÖRSIKTIGHET: Medan jag i slutändan använde kvicksilvervippbrytare för min sista konstruktion. Om detta var tänkt att användas som en leksak bör du bara följa den ursprungliga planen som beskrivs här. Kvicksilver har känd toxicitet. Den andra videon visar tydligt varför jag gjorde det här!
Alla mina kvicksilverbrytare återvanns från gamla hemtermostater som var avsedda för deponin, de är i säkra händer nu …
UPPDATERING 12 april 2019 !!!: Jag har inkluderat ett mycket enklare sätt att driva och driva detta projekt. Jag har också inkluderat avskalad kod som bara visar råd. Allt avslöjas i steg 10.
Steg 1: 8 -bollen
Jag skapade 100 mm ihålig sfär i Solidworks
Jag ville inte ha någon sammanfogningssöm längs sfatorn i ekvatorn så att de övre och nedre delarna klipptes ut och lämnade ett 50 mm hål i toppen och ett 56 mm hål i botten.
Eftersom jag inte ville att några fästelement skulle visas, gjorde jag sedan ett 57 mm snitt 1 mm djupt på utsidan av bottenhålet och lade till två stavar med en diameter på 4 mm som bara gick ut vinkelrätt i hålet ca 4 mm långt.
Den övre hålpluggen modellerades genom att vända den första utskurna sektionen för det övre hålet. Ytterligare en 2 mm ring tillsattes till pluggens inre kurva, sedan gjordes det hela fast.
Från toppen ritade jag ett stort nummer 8 och denna kontur klipptes ut från topplocket. Detta i sin tur användes för att skapa ett nummer 8 bit.
Steg 2: Fönsteråtkomstport
Denna del rymmer all elektronik och inre funktioner. Det är också avsett att vara åtkomstpunkten för att byta batterier.
Jag ville inte ha några fästelement synliga på detta så jag gjorde öppningen till en skruv i bit, den vänder cirka 36 grader och låses på plats..
Det finns en port som är cirka 1 tum i diameter i mitten av stycket som gör det möjligt att se råd.
På insidan av hamnen finns ett fyrkantigt utskärningsområde som är tänkt att rymma en 2 mm tjock plast eller glasbit.
Detta fönster används på alla storlekar på denna leksak.
Det behövs också två av elektronikbromsdelen och en var och en av ElectronicsTray och nanoTray.
Steg 3: Skriv ut och montera
Bollen och numret trycktes med ABS -svart. Medan topplocket trycktes med ABS naturligt. Jag försökte ABS -vitt men det såg för starkt ut.
Siffran 8 är en presspassning i topplocket.
Övre locket är bara tillräckligt litet för att gå inuti bollen genom bottenöppningen.
Detta är en friktionspassning men den hålls också på plats med ABS -lim.
Jag var lite orolig för att montera alla delar inuti så jag gick vidare och skapade en till, den här gången var den 120 mm i diameter.
Steg 4: Ögat
Jag tog bort den övre utskärningen i 3D -modellerna och skrev ut båda kulorna i naturligt ABS och skrev sedan ut fönstret med blå ABS.
Det ger en rimlig fax av en ögonglob när man tittar direkt på den.
Jag gillar den här versionen bättre än den ursprungliga 8Ball.
Steg 5: Elektroniken
Utrymmet var en begränsning liksom utseendet.
Det fick inte finnas några yttre utskott eller hinder för estetiken.
Leksaken slås på och interageras med, genom rörelse.
Leksaken startar i ett avstängt tillstånd tills den vänds.
Istället för en tryckknappsbrytare använde jag en lutningsomkopplare.
Tidigare använde jag en MOSFET för att styra ström till mikrokontrollern. Detta var dock inte idealiskt eftersom det tillät en liten mängd ström att kontinuerligt mata mikrokontrollen och därmed döda batteriet på ungefär en månad eller så.
I det här fallet använde jag ett litet relä som det jag använde i mitt kryptex USB -enhetsprojekt.
Den medföljande schemat visar kablarna som är nödvändiga för att få hårdvaran att fungera.
Lutningsomkopplaren.
Reläet. Jag använde 6V spole eftersom batterispänningen är 6V och detta krävde en drivkrets för reläet som kopplas från en enkel NPN -transistor.
Waveshare 128 X 128 OLED -modul från Amazon.
Steg 6: Programmet
Jag ville att svaren skulle vara den för den ursprungliga leksaken. Jag använde Wikipedia för detta.
Modulen är av typen SSD1327 och det finns ett mycket robust kodbibliotek för dessa LCD -skärmar.
Första försöken att använda denna kod resulterade i fel eftersom minnesanvändningen var för stor.
En enkel lösning var att använda den avskalade koden från tillverkaren.
Jag blåste ut det mesta av exemplet och använde utdrag av den ursprungliga koden för att visa den information som behövdes.
Programmet fungerar enligt följande:
Bollen i vila är i ett avstängt tillstånd.
Att vända bollen och titta på fönstret är den ursprungliga strömtillförseln.
När Arduino startar och visar instruktionerna "Ställ din fråga och vänd sedan". Programmet tar över och levererar ström till Arduino genom det programstyrda reläet.
Instruktionerna förblir synliga tills leksaken vänds med sidan uppåt för att slå av brytaren och programmet går vidare till tänkande. Avläsningen visar "Thinking …" så att du vet att den fortfarande är aktiv.
Bollen vänds sedan igen så att fönstret är upprätt.
Denna åtgärd läses av den mekaniska lutningsomkopplaren på och programmet genererar ett slumpmässigt svar i en sekund av fönstret som är orienterat mot toppen.
Meddelandet förblir synligt tills leksaken vänds med bollen uppåt.
Denna process fortsätter tills bollen placeras med fönstersidan nedåt i mer än 16 sekunder, där programmet kommer att inaktivera reläet och stänga av strömmen.
KRITISKA ANMÄRKNINGAR om detta program finns i slumpmässiga (); fungera.
Jag hade problem med att samma svar dök upp, jag testade till och med detta med båda enheterna samtidigt och fann att ja de var desamma.
Det är viktigt att använda randomSeed (analogRead (0)); rutin. Förklaringen till detta hittar du HÄR:
Steg 7: Fönster- och elektronikmontering
Det finns fem tryckta delar till denna enhet som utgör ett fönster, batterihållare och lock.
Den första är den synliga komponenten som har stöd för OLED och den andra är batteri- och styrhållaren som fästs vid fönstret VIA -avstängningar.
Jag använde en liten bit skärglas till fönstret. Detta limmades på plats med lim av cyanotyp. Jag hade lite weatherstrip -skum med lim på ena sidan, detta skärs i små remsor och placerades runt glaset på insidan av fönstermonteringen.
Det finns 4 skruvhål runt fönstret. dessa är åtskilda för modulen jag hade valt. Dessa har 4-40 värmeuppsättningsinsatser installerade med ett lödkolv.
Med modulen på plats används 1/4 tum avstånd för att fästa den.
Jag hade tur när komponenterna kom. Batterihållaren passar bara inuti öppningen vilket betyder att jag inte behövde placera den vertikalt. Det betyder att bollen i mindre storlek fungerar bra.
Basen i elektronikfacket bär batterihållaren och har 2 avstängningar, en för reläet och en för lutningsomkopplaren.
Locket har tre delar som går ihop och håller batterierna säkert och ger en plan yta att fästa NANO -modulen på.
Dessa 2 delar skruvas sedan fast på de 4 avstånden på baksidan av den gamla modulen.
MED FÖRSIKTIGHET! Det slutade med att jag bytte ut lutningsomkopplaren mot en kvicksilverbrytare. Detta gav mer tillförlitlig drift.
Steg 8: Interferenspassning
Fönstermonteringen när den är klar kommer att passa riktigt genom utskärningen på bollens botten.
När den sista fönstermonteringen monteras i kulan kan det förekomma störningar
Om detta händer kan den inre läppen för fönsterstödet i kulan behöva trimmas enligt bilden.
Steg 9: Ytterligare filer
Dessa är de stora kulfilarna med en diameter på 120 mm
Steg 10: UPPDATERA
Jag har slutfört den avskalade koden så att den här bollen fungerar på samma sätt som originalet.
Nu när du vänder på det tar det cirka 4 sekunder för programmet att starta och visa råden.
Denna typ av operation är också möjlig med en enklare hårdvarubyggnad.
Man kan eliminera alla strömdelar i kretsen och den digitala körningen D2 skulle inte behövas alls.
Lutningsomkopplaren kan mata en omkopplingstransistor som ger ström till råeffekten på kortet.
Jag lämnade komponenterna på plats för denna förändring.
Om du ändrar kretsen kan programdeklarationen för powPin och alla efterföljande delar som rör detta tas bort från programmet.
Om den ursprungliga kretsen byggdes och du vill använda ingen strömkod. Det bör fortfarande fungera när lutningsomkopplaren slår på strömmen till mikrokontrollen.
I det här läget tar det alltid cirka 4 sekunder för programmet att starta och sedan visa råd.
Genom att ta bort inmatningsstiftet är det möjligt att förenkla det ännu mer. Jag har inte testat det här läget än men det borde fungera på samma sätt. Var noga med att ta bort alla referenser till läsinmatning från programmet.
Om jag använder den här typen av lutningsgivare har jag inkluderat ett nytt batterihållarstöd
Steg 11: Ytterligare filer
Det här är OLED -filerna från Waveshares webbplats ….
Tvåa i Arduino -tävlingen 2019