Tartalomjegyzék:

Pozícióalapú többfunkciós kockaóra: 5 lépés (képekkel)
Pozícióalapú többfunkciós kockaóra: 5 lépés (képekkel)

Videó: Pozícióalapú többfunkciós kockaóra: 5 lépés (képekkel)

Videó: Pozícióalapú többfunkciós kockaóra: 5 lépés (képekkel)
Videó: Led-es, színváltós rózsa 2024, Július
Anonim
Image
Image
Pozícióalapú többfunkciós kockaóra
Pozícióalapú többfunkciós kockaóra
Pozícióalapú többfunkciós kockaóra
Pozícióalapú többfunkciós kockaóra

Fusion 360 projektek »

Ez egy Arduino -alapú óra OLED kijelzővel, amely a dátummal ellátott óra, a szundi időzítő és az éjszakai lámpa funkciója. A különböző "funkciókat" gyorsulásmérő vezérli, és a kockaóra elforgatásával választják ki.

Új éjjeliszekrény -órát szerettem volna, de nem akartam pénzt költeni egy díszes órára, amely rengeteg olyan funkciót tartalmaz, amelyeket nem használnék. Ezenkívül gyűjtöttem alkatrészeket és érzékelőket, amelyek éppen feküdtek, ezért úgy döntöttem, hogy saját órám elkészítéséhez használom őket!

Néhány célom volt ezzel a projekttel kapcsolatban:

  1. Jelenítse meg ezt az időt egy kikapcsolható opcióval
  2. Tartalmazzon éjszakai fény funkciót
  3. Tartalmaz egy 15 perces szundi időzítőt riasztással
  4. Tudja megjeleníteni a dátumot

Kellékek

  • Arduino Pro Mini 5V
  • ADXL335 3 tengelyes gyorsulásmérő
  • DS3231 AT24C32 IIC precíziós Valós idejű óra
  • Mini hangszóró
  • OLED kijelző SSD1306 IIC 0,96 hüvelyk
  • 5V DC tápegység
  • LED x 2
  • Ellenállások 220ohm x 2
  • DC hordó jack
  • Huzal
  • Eszközök

    • Huzalvágók/levágók
    • Forrasztópáka/forrasztópáka
    • 3D nyomtató (opcionális)
    • FTDI programozó a Pro mini és az Arduino IDE közötti interfészhez

1. lépés: Prototípus készítése és az áramkör tesztelése

Prototípus és tesztelje az áramkört
Prototípus és tesztelje az áramkört
Prototípus és tesztelje az áramkört
Prototípus és tesztelje az áramkört
Prototípus és tesztelje az áramkört
Prototípus és tesztelje az áramkört

Csatlakoztassa az alkatrészeket az Arduino -hoz. A kenyértábla elrendezése vagy a sematika fent látható. Az RTC és az OLED I2C protokollt használ az Arduino -val való interfészhez és az A4 és A5 érintkezők használatához. A gyorsulásmérő 3 analóg érintkezőt használ. A0, A1, A2 -t használtam. A LED -ek és a Piezo bármelyik digitális tűt használhatják, én 4 -et és 8 -at.

Interfész minden komponenssel. Telepítenem kellett néhány Arduino könyvtárat az egyes összetevőkkel való interfészhez. A fenti képen láthatók.

Kód az Arduino IDE használatával. Átnéztem néhány példavázlatot az egyes könyvtáraktól, hogy kitaláljam az egyes összetevők megfelelő szintaxisát az alapján, hogy mit szeretnék. Minden alkatrészre vázlatot készítettem, hogy egyenként teszteljem őket. Az alábbiakban ismertetjük. A piezo hangszóróval kezdtem, mert az volt a legegyszerűbb. Valójában nem volt szüksége speciális könyvtárra, csak egy speciális funkcióra, amely beállítja a frekvenciát és a hangot. A LED -ek működéséhez csak az egyik digitális csap magas és alacsony húzása szükséges. Ezután áttértem az OLED -re, és ezt is nagyon egyszerű volt beállítani. Az alábbi vázlat egy Adafruit demó, amely végigmenti az összes megjeleníthető animációt/szöveget. Aztán megpróbáltam működtetni az RTC -t. Az általam megadott vázlat egy példa volt a könyvtárban, amely lekéri az aktuális időt és kinyomtatja a soros monitorra. Végül a megadott példával próbáltam ki a gyorsulásmérőt. Az egyes tengelyek kimenetei nyomtatásra kerülnek a soros monitoron.

Most itt az ideje mindent összerakni!

2. lépés: Főprogram

Fő program
Fő program
Fő program
Fő program

Most, hogy tudom, hogy minden egyénileg működik, elkezdhetek olyan programmal előállni, amely mindent összehoz. Az alábbiakban a program írásának folyamatát fogom tárgyalni, de bátran töltse le az alábbi teljes kódot a saját projektjéhez. Megpróbáltam konkrét megjegyzéseket hagyni, hogy maga is végigjárhassa a kódot.

Meg kellett jelenítenem az időt és a dátumot az OLED -en, ami meglehetősen egyszerű volt. Csak az aktuális időt kellett nyomtatnom a kijelzőre a soros monitor helyett. Néhány formázási dolgot figyelembe kellett vennem, hogy 24 óra helyett 12 órás formátumot jelenítsen meg, és 0 -t adjon hozzá/távolítson el, ahol megfelelő. A dátum hasonló volt, a hónapot és a napot a képernyőn rajzolt téglalapokban jelenítették meg. Egy beágyazott FOR hurkot használtam az időzítő létrehozásához, és a ciklus vége után elindítottam a piezo -t. Úgy döntöttem, hogy felvillanok a képernyőn, amikor a hangjelző lekapcsol, ami egy alapvető animáció volt az Adafruit bemutatójából. A kocka visszaforgatását az óra helyzetbe tettem az egyetlen módja annak, hogy kikapcsolja a hangjelzőt. Végül azt akartam, hogy kapcsoljam ki a képernyőt, ami csak a kijelző törlésével valósult meg. Most szükségem volt ezekre a funkciókra, hogy a gyorsulásmérő kimenetei alapján működjenek. Az Accel_Test parancsfájl segítségével határoztam meg az egyes pozíciók tengelykoordinátáit, amelyeket minden funkciónak futtatni akartam. Kézzel mozgattam a gyorsulásmérő chipet, és rögzítettem a leolvasásokat a soros monitoron. A fenti diagram megadja a szürke minden pozíció kimeneti koordinátáit. A RED koordinátái az egyes pozíciók közötti határok, és ezeket a számokat használtam a programomhoz. A 4 kijelzési pozícióban csak az X és Y tengely koordinátái szükségesek. Az éjszakai fény ötödik pozíciója a Z tengelyt használja. Egyszerű IF utasításokat használtam a gyorsulásmérő pozícióihoz minden funkcióblokk előtt. Ha más gyorsulásmérőt használ, ezek a koordináták változhatnak, és azokat módosítani kell a programban.

3. lépés: A kocka 3D nyomtatása

A kocka 3D nyomtatása
A kocka 3D nyomtatása
A kocka 3D nyomtatása
A kocka 3D nyomtatása
A kocka 3D nyomtatása
A kocka 3D nyomtatása

Úgy gondoltam, hogy egy kocka lenne a legjobb kialakítás, amely megfelel az óra működésének. A modell elkészítéséhez a fusion360 -at használtam. Szükségem volt egy kivágásra az OLED -hez és a hordócsatlakozóhoz. Azt is szerettem volna, hogy könnyen hozzáférhessek az RTC cellájának cseréjéhez, miután minden be volt kötve. Szükségem volt egy nyílásra, hogy az Arduino -t olyan irányban tartsam, amelyet szükség esetén könnyű lenne átprogramozni. Ezenkívül a házat könnyen eltávolítani kellett, hogy hozzáférhessek az Arduino -hoz. A CAD modellt fent láthatja, az STL fájlokat pedig lent.

A testet fekete PLA -val nyomtam, 20% -os kitöltéssel, 0,2 mm felbontással.

A burkolatot vagy a hüvelyt Solutech flexibilis szálból nyomtattuk, 100% -os kitöltéssel, 0,3 mm felbontással. Azért használtam ezt az anyagot, mert van némi rugalmassága, ami megkönnyítette a testen való nyújtást. Lágyabb érzete is van, amikor az órát forgatja. Végül egy tiszta izzószálat választottam, hogy az éjszakai fények LED -je átvilágítson.

4. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Mindent összekötöttem az 1. lépés vázlatával. Egy kis darab perfboardot használtam az összes közös vezeték csatlakoztatásához, hogy ne kelljen több vezetéket forrasztani egy tűhöz az Arduino -n. Forró ragasztót használtak, hogy mindent a helyére rögzítsenek, kivéve az Arduino -t. Csak beletolták a kijelölt nyílásba. Meggyőződtem arról, hogy a gyorsulásmérő tábla merőleges és vízszintes legyen a test alján, hogy ne kelljen módosítani a kódban lévő koordinátákat.

5. lépés: Töltse fel és kész

Töltsd fel és kész!
Töltsd fel és kész!
Töltsd fel és kész!
Töltsd fel és kész!
Töltsd fel és kész!
Töltsd fel és kész!
Töltsd fel és kész!
Töltsd fel és kész!

Most a végső program feltölthető az órára, hogy beállítsa a megfelelő időt. A cella akkumulátornak akkor is tartania kell az időt, ha a tápfeszültség ki van húzva. Csúsztassa a 3D nyomtatott hüvelyet a test fölé, hogy elrejtse az összes alkatrészt, és teljes kockaóra van!

Remélem, élvezni fogja ezt a projektet, és olyan hasznosnak fogja találni, mint én. Ennek a projektnek az a szép része, hogy nagyon testreszabható. Nyugodtan hozzáadhatja saját különböző funkcióit, például riasztási funkciót, használhat különböző alkatrészeket, például egy nagyobb OLED -et, FM -rádióvevőt, stb. Boldog alkotást!

Ajánlott: