Innehållsförteckning:
- Tillbehör
- Steg 1: Prototypa och testa kretsen
- Steg 2: Huvudprogram
- Steg 3: 3D -utskrift av kuben
- Steg 4: Montering
- Steg 5: Ladda upp och du är klar
Video: Positionbaserad multifunktionskubklocka: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Fusion 360 -projekt »
Detta är en Arduino -baserad klocka med en OLED -skärm som fungerar som en klocka med datumet, som en tupplurstimer och som ett nattljus. De olika "funktionerna" styrs av en accelerometer och väljs genom att rotera kubklockan.
Jag ville ha en ny nattduksklocka men jag ville inte lägga pengar på en snygg klocka som hade massor av funktioner som jag inte skulle använda. Dessutom hade jag samlat komponenter och sensorer som bara låg och så jag bestämde mig för att använda dem för att göra min egen klocka!
Jag hade några mål för det här projektet:
- Visa den tiden med ett alternativ som ska stängas av
- Inkludera en nattljusfunktion
- Inkludera en 15 minuters tupplur med larm
- Kunna visa datumet
Tillbehör
- Arduino Pro Mini 5V
- ADXL335 3-axlig accelerometer
- DS3231 AT24C32 IIC precision Realtidsklocka
- Minihögtalare
- OLED Display SSD1306 IIC 0.96in
- 5V DC strömförsörjning
- LED x 2
- Motstånd 220ohm x 2
- DC -fatuttag
- Tråd
-
Verktyg
- Trådskärare/strippare
- Lödkolv/löd
- 3D -skrivare (tillval)
- FTDI -programmerare för gränssnitt mellan Pro mini och Arduino IDE
Steg 1: Prototypa och testa kretsen
Anslut komponenter till Arduino. Panelen eller schemat visas ovan. RTC och OLED använder I2C -protokollet för att ansluta till Arduino och använda A4- och A5 -stiften. Accelerometern använder 3 analoga stift. Jag använde A0, A1, A2. Lysdioderna och Piezo kan använda vilken som helst av de digitala stiften, jag använde 4 respektive 8.
Gränssnitt med varje komponent. Jag var tvungen att installera några Arduino -bibliotek för att ansluta till varje komponent. De visas i bilden ovan.
Kod med Arduino IDE. Jag siktade igenom några exempelskisser från varje bibliotek för att ta reda på rätt syntax för varje komponent baserat på vad jag ville att de skulle göra. Jag kom med en skiss för varje komponent för att testa dem individuellt. De finns nedan. Jag började med piezohögtalaren eftersom det var det enklaste. Det behövde faktiskt inget särskilt bibliotek, bara en specifik funktion som ställer in frekvens och ljud. För att få lysdioderna att fungera var det bara att dra en av de digitala stiften högt och lågt. Därefter flyttade jag till OLED och det var också ganska enkelt att installera. Skissen nedan är en Adafruit -demo som går igenom alla animationer/texter som kan visas. Sedan försökte jag få RTC att fungera. Skissen jag gav var en del av ett exempel i biblioteket som får aktuell tid och skriver ut den på den seriella bildskärmen. Slutligen använde jag det medföljande exemplet för att testa accelerometern. Utgångarna för varje axel skrivs ut på den seriella bildskärmen.
Nu är det dags att sätta ihop allt!
Steg 2: Huvudprogram
Nu när jag vet att allt fungerar individuellt kan jag börja komma med ett program som sammanför allt. Jag kommer att diskutera min process för att skriva programmet nedan men ladda bara ner hela koden nedan för att använda för ditt eget projekt. Jag försökte lämna specifika kommentarer så att du kan gå igenom koden själv.
Jag behövde visa tid och datum på OLED vilket var ganska enkelt. Jag var tvungen att skriva ut den aktuella tiden till displayen istället för den seriella bildskärmen. Det var några formateringssaker som jag var tvungen att ta hänsyn till för att få det att visa ett 12 -timmarsformat istället för 24 och lägga till/ta bort 0: or där det var lämpligt. Datumet var liknande med tillägget att visa månad och dag inom rektanglar ritade på skärmen. Jag använde en inkapslad FOR -slinga för att skapa timern och satte igång piezo efter slingans slut. Jag bestämde mig för att få skärmen att blinka när summern gick av, vilket var en grundläggande animering hämtad från Adafruit -demon. Jag gjorde att vända kuben tillbaka till klockläget det enda sättet att stänga av summern. Slutligen ville jag ha ett sätt att stänga av skärmen som uppnåddes genom att bara rensa displayen. Nu behövde jag alla dessa funktioner för att fungera baserat på accelerometerutgångarna. Jag använde Accel_Test -skriptet för att bestämma axelkoordinaterna för varje position som jag ville att varje funktion skulle köra. Jag flyttade manuellt accelerometerchipet och registrerade avläsningarna på den seriella bildskärmen. Diagrammet ovan ger utgångskoordinaterna för varje position i GRÅ. Koordinaterna i RÖD är gränserna mellan varje position och jag använde dessa siffror för mitt program. I de fyra visningslägena behövs bara X- och Y -axelkoordinaterna. Den femte positionen för nattljuset använder Z -axeln. Jag använde enkla IF -uttalanden för accelerometerpositionerna före varje funktionsblock. Om du använder en annan accelerometer kan dessa koordinater variera och måste justeras i programmet.
Steg 3: 3D -utskrift av kuben
Jag tänkte att en kub skulle vara den bästa designen för att passa hur jag ville att klockan skulle fungera. Jag använde fusion360 för att göra modellen. Jag behövde en skärning för OLED och fatjacket. Jag ville också ha enkel åtkomst till att byta cellbatteri i RTC efter att allt var anslutet. Jag behövde en plats för att hålla Arduino i en orientering som skulle vara lätt att programmera om det behövs. Dessutom måste höljet vara lätt att ta bort så att jag kan komma åt Arduino. Du kan se CAD -modellen ovan och STL -filerna finns nedan.
Jag skrev ut kroppen i svart PLA med 20% infill, 0,2 mm upplösning.
Höljet eller hylsan trycktes i Solutech flexibel filament med 100% infill, 0,3 mm upplösning. Jag använde det här materialet eftersom det har en viss flexibilitet som gjorde det enkelt att töjas över kroppen. Den har också en mjukare känsla när den roterar dygnet runt. Slutligen valde jag en klar glödtråd så att lysdioderna för nattljusen skulle lysa igenom.
Steg 4: Montering
Jag kopplade ihop allt med hjälp av schemat från steg 1. Jag använde en liten bit perfboard för att ansluta alla vanliga trådar så att jag inte behövde löda flera trådar till en stift på Arduino. Varmt lim användes för att säkra allt på sin plats förutom Arduino. Den pressades precis in i den avsedda platsen. Jag såg till att accelerometerkortet var vinkelrätt och plant på undersidan av kroppen så att koordinaterna i koden inte behöver ändras.
Steg 5: Ladda upp och du är klar
Nu kan det sista programmet laddas upp till klockan för att ställa in rätt tid. Cellbatteriet ska hålla tiden även när strömmen är urkopplad. Skjut den 3D -tryckta ärmen över kroppen för att dölja alla komponenter och du har en komplett kubklocka!
Jag hoppas att du gillar att göra detta projekt och tycker att det är lika användbart som jag. Det fina med det här projektet är att det är mycket anpassningsbart. Lägg gärna till dina egna olika funktioner som en larmfunktion, använd olika komponenter som en större OLED, FM -radiomottagare, etc. Lycka till!
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen