Tartalomjegyzék:

A végső bináris óra: 12 lépés (képekkel)
A végső bináris óra: 12 lépés (képekkel)

Videó: A végső bináris óra: 12 lépés (képekkel)

Videó: A végső bináris óra: 12 lépés (képekkel)
Videó: Ez a 12 Éves Lány Egy Pszichopata...Nem Fogod Elhinni Hogy Mit Tett!!! [LEGJOBB] 2024, Július
Anonim
A végső bináris óra
A végső bináris óra
A végső bináris óra
A végső bináris óra
A végső bináris óra
A végső bináris óra

Nemrég ismerkedtem meg a bináris órák fogalmával, és elkezdtem kutatni, hátha építhetek egyet magamnak. Azonban nem találtam meglévő dizájnt, amely egyszerre volt funkcionális és stílusos. Tehát úgy döntöttem, hogy teljesen a semmiből készítem el a saját dizájnomat!

Kellékek

A projekt összes fájlja:

Az Arduino kód könyvtárai letölthetők a GitHub webhelyről:

M41T62 RTC könyvtár

FastLED könyvtár

LowPower könyvtár

Lépés: Az ötlet

Nemrég akadtam rá az alábbi videóra:

DIY bináris karóra

A fenti videó egy alapvető házi bináris órát mutat. Fogalmam sem volt, hogy létezik ilyen, de miután tovább kutattam a bináris órákat, gyorsan rájöttem, hogy rengeteg különböző kivitel létezik! Építeni akartam magamnak, de nem találtam olyan dizájnt, amely tetszett volna. A bináris órák, amelyeket találtam, sok funkcióból hiányoztak, és nem néztek ki különösen jól. Tehát úgy döntöttem, hogy teljesen a nulláról tervezem meg a sajátomat!

Az első lépés a tervezés kritériumainak meghatározása volt. Erre jutottam:

  • Bináris RGB interfész
  • Idő kijelző (nagyon pontos időméréssel)
  • Dátum kijelzése
  • Stopperóra funkció
  • Riasztási funkció
  • Az akkumulátor élettartama legalább 2 hét
  • USB töltés
  • A szoftver könnyen személyre szabható a felhasználó által
  • Tiszta és egyszerű kialakítás

Ezek a kritériumok lettek az egész projekt alapjai. A következő lépés az volt, hogy kitaláljam, hogyan szeretném az órát működni!

2. lépés: Néhány bináris figyelés elmélete

Néhány bináris óra elmélet
Néhány bináris óra elmélet

A terv egyszerű volt. A bináris óra ugyanúgy működne, mint egy hagyományos óra, azzal a különbséggel, hogy az interfész bináris lenne, különösen a BCD (Binary Coded Decimal). A BCD a bináris kódolás egy típusa, ahol minden tizedesjegyet rögzített bitszám képvisel. 4 bitre van szükségem ahhoz, hogy 0-9 közötti számjegyet képviselhessek. És szabványnak

óó: mm

időformátumban, 4 számjegyre van szükségem. Ez azt jelenti, hogy összesen 16 bitre van szükségem, amelyeket 16 LED jelképez.

Az idő leolvasása BCD -ben nagyon egyszerű, ha megszokja. Az óra alján lévő sor a legkevésbé jelentős bit (1), a felső sor pedig a legjelentősebb bit (8). Minden oszlop egy számjegyet jelöl a

óó: mm

idő formátum. Ha egy LED világít, akkor számolja ezt az értéket. Ha egy LED nem világít, akkor figyelmen kívül hagyja.

Az első számjegy leolvasásához egyszerűen összesítse az összes aktivált LED megfelelő értékét az első (bal oldali) oszlopban. Tegye ugyanezt a többi számjegyhez balról jobbra. Most olvasta az időt a BCD -ben!

Ez az elv ugyanaz lesz az óra többi funkciójában is. Az RGB LED -ek használata segít megkülönböztetni a különböző funkciókat és módokat különböző színek használatával. A színeket a felhasználó választja ki, és könnyen beállítható a kívánt színpalettához. Ez lehetővé teszi a felhasználó számára, hogy könnyen navigáljon a funkciókban, anélkül, hogy összezavarodna.

A következő lépés egy blokkdiagram létrehozása volt!

3. lépés: Munkakezdés

Munkába állás
Munkába állás

Mint minden tipikus elektronikai projekt, a blokkdiagram elengedhetetlen része a korai tervezési szakasznak. A kritériumok felhasználásával sikerült összeállítanom a fenti tömbvázlatot. A diagram minden blokkja egy funkciót jelöl az áramkörben, a nyilak pedig a függvények kapcsolatát mutatják. A tömbvázlat teljes egészében jó áttekintést nyújt az áramkör működéséről.

A következő lépés az volt, hogy a blokkdiagram minden egyes blokkjához hozzá kell kezdeni a döntések meghozatalát!

4. lépés: Az összetevők kiválasztása

Kiderült, hogy elég sok alkatrész van ebben az áramkörben. Az alábbiakban összegyűjtöttem a legfontosabbakat, és megmagyarázom, miért választottam őket.

A LED -ek

A bináris felület esetében a választás meglehetősen egyszerű volt. Tudtam, hogy LED -eket szeretnék használni a kijelzőhöz, és rájöttem, hogy 16 -ra van szükségem (4 × 4 -es rácsban) a lehető legtöbb információ megjelenítéséhez. A tökéletes LED kutatása során az APA102 folyamatosan előkerült. Ez egy nagyon kicsi (2 mm x 2 mm) címezhető LED, széles színválasztékkal, és meglehetősen olcsó. Annak ellenére, hogy még soha nem dolgoztam velük, úgy tűnt, hogy tökéletesen illeszkednek ehhez a projekthez, ezért úgy döntöttem, hogy használni fogom őket.

A mikrokontroller

A mikrokontroller kiválasztása is nagyon egyszerű volt. Sok tapasztalatom van az Atmega328P-AU önálló alkalmazásokban való használatában, és nagyon jól ismertem a funkcióit. Ugyanaz a mikrokontroller, amelyet az Arduino Nano lapokban használnak. Tisztában vagyok vele, hogy valószínűleg van egy olcsóbb mikrokontroller, amelyet használhattam volna, de az, hogy tudtam, hogy az Atmega328 teljes mértékben támogatja az összes Arduino könyvtárat, nagy tényező volt a projekt kiválasztásakor.

Az RTC (valós idejű óra)

Az RTC elsődleges követelménye a pontosság volt. Tudtam, hogy az óra nem rendelkezik internetkapcsolattal, és így nem tudja újrakalibrálni magát internetkapcsolaton keresztül, a felhasználónak manuálisan kell újrakalibrálnia. Ezért szerettem volna a lehető legpontosabbá tenni az időmérést. Az M41T62 RTC rendelkezik az egyik legmagasabb pontossággal, amit találtam (± 2 oldal / perc, ami ± 5 másodpercnek felel meg havonta). A nagy pontosság, az I2C kompatibilitás és az ulta alacsony áramfogyasztás ötvözése ezt az RTC -t jó választássá tette a projekthez.

DC-DC Boost átalakító

A DC-DC Boost Converter IC kiválasztása egyszerűen úgy történt, hogy megvizsgálta az áramkört, és kitalálta, hogy milyen feszültségekre és áramokra van szükség. Az áramkör alacsony feszültségen történő működtetése csökkentené az áramfogyasztást, de nem tudtam 4,5 V alá menni (a minimális mikrokontroller feszültség 16 MHz -es órajelnél), és nem mehettem 4,5 V (az RTC maximális feszültsége) fölé. Ez azt jelentette, hogy az áramkört pontosan 4,5 V -on kellett futtatnom ahhoz, hogy az alkatrészeket az általuk javasolt előírásoknak megfelelően működtessem. Kiszámítottam, hogy az áramkör maximális árama nem haladja meg a 250 mA -t. Így elkezdtem keresni egy olyan erősítő átalakítót, amely megfelel a követelményeknek, és gyorsan ráakadtam a TPS61220 -ra. A TPS61220 minimális külső alkatrészeket igényelt, meglehetősen olcsó volt, és képes volt kielégíteni az áram- és feszültségkövetelményeket.

Az elem

Az akkumulátor elsődleges követelménye a méret volt. Az akkumulátornak elég kicsinek kellett lennie, hogy elférjen az óra házában anélkül, hogy terjedelmesnek tűnne. Úgy gondoltam, hogy az akkumulátor nem haladhatja meg a 20 mm × 35 mm × 10 mm -t. Ezekkel a méretkorlátozásokkal és a jelenlegi 250 mA -es követelményekkel az elemek kiválasztása a LiPo akkumulátorokra korlátozódott. Találtam egy "Turnigy nano-tech 300mAh 1S" akkumulátort a Hobbyking-en, amely mellett döntöttem.

A töltő IC

A töltésvezérlőre nem volt külön követelmény, kivéve, hogy kompatibilisnek kell lennie az 1S LiPo akkumulátorral. Megtaláltam az MCP73831T-t, amely egy teljesen integrált töltésvezérlő, amelyet egycellás töltési alkalmazásokhoz terveztek. Az egyik jellemzője a töltőáram külső ellenálláson keresztül történő beállítása, amelyet ebben az alkalmazásban meglehetősen hasznosnak találtam.

LiPo védelem

Feszültség- és áramfelügyeletet szerettem volna, hogy megvédje az akkumulátort minden veszélyes túltöltéstől és túlterheléstől. Korlátozott mennyiségű IC volt, amely ilyen funkciókat biztosított, és az egyik olcsóbb lehetőség a BQ29700 IC volt. Minimális mennyiségű külső komponensre volt szüksége, és tartalmazta az egycellás LiPo akkumulátor minden szükséges védelmét.

Most, hogy a komponenseket kiválasztottuk, ideje elkészíteni a sematikát!

5. lépés: A vázlat

A sematikus
A sematikus

Az Altium Designer segítségével össze tudtam állítani a fenti vázlatot a komponens egyes adatlapjainak ajánlásai alapján. A vázlat különböző blokkokra van osztva, hogy jobban olvasható legyen. Hozzáadtam néhány megjegyzést is, amelyek fontos információkat tartalmaznak arra az esetre, ha valaki más szeretné újra létrehozni ezt a mintát.

A következő lépés az volt, hogy a vázlatot egy NYÁK -ra helyezzük!

6. lépés: NYÁK -elrendezés

NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés
NYÁK elrendezés

A NYÁK elrendezés bizonyult a projekt legnagyobb kihívásának. Úgy döntöttem, hogy kétrétegű NYÁK-ot használok, hogy minimálisra csökkentsem a NYÁK-gyártási költségeket. Úgy döntöttem, hogy 36 mm -es szabványos óraméretet használok, mert úgy tűnt, hogy elég jól illeszkedik a LED -ekhez. Hozzáadtam néhány 1 mm -es csavarlyukat a NYÁK rögzítéséhez az óraházban. A cél az volt, hogy fenntartsuk a tiszta és jó megjelenést úgy, hogy az összes alkatrészt (természetesen a LED-ek kivételével) az alsó rétegre helyezzük. Szintén az abszolút minimális számú viat akartam használni, hogy ne legyenek látható fedők a felső rétegen. Ez azt jelentette, hogy az összes nyomvonalat egyetlen rétegre kellett irányítanom, miközben ügyelnem kellett arra, hogy az áramkör "zajos" részeit távol tartsam az érzékeny jelnyomoktól. Arról is gondoskodtam, hogy az összes nyom a lehető legrövidebb legyen, a bypass kondenzátorokat a terhelés közelébe helyeztem, vastagabb nyomokat használtam a nagy teljesítményű alkatrészekhez, és egyébként követtem a NYÁK -tervezés általános bevált gyakorlatát. Az útválasztás elég sok időt vett igénybe, de szerintem nagyon jól sikerült.

A következő lépés egy 3D modell létrehozása volt az óraházhoz!

7. lépés: 3D tervezés

3D Design
3D Design
3D Design
3D Design
3D Design
3D Design

Az óra burkolatát egy nagyon hagyományos, klasszikus óraszerkezet után tervezték, Fusion 360 -at használva. Az óraszíj szabványos 18 mm -es távolságát használtam, hogy az óra kompatibilis legyen számos más hevederrel. A NYÁK kivágását 0, 4 mm-rel nagyobbnak tervezték, mint maga a NYÁK, hogy minden gyártási pontatlanságot figyelembe vegyen. Mellékeltem néhány csavaroszlopot a NYÁK szereléséhez és egy kis peremet a NYÁK fektetéséhez. Ügyeltem arra, hogy a NYÁK -ot egy milliméternyire felülről bemélyítsem, hogy elkerüljem a LED -ek éles széleit a ruházaton. A burkolat magasságát kizárólag az akkumulátor vastagsága határozta meg. A ház többi részét úgy tervezték, hogy egyszerűen jól nézzen ki lekerekített élekkel és csiszolt sarkokkal. Meg kellett tartanom a tervezést 3D-nyomtatásbarátnak, hogy otthon 3D-ben kinyomtassam bármilyen segédanyag nélkül.

Most, hogy a hardver elkészült, ideje elkezdeni a szoftverrel való munkát!

8. lépés: A kód

A kód
A kód

A kódot az összes szükséges könyvtár beiktatásával kezdtem. Ez magában foglalja a könyvtárat az RTC -vel való kommunikációhoz és a LED -ek vezérléséhez. Ezt követően minden funkcióhoz külön funkciókat hoztam létre. Amikor a felhasználó egy gomb megnyomásával módot vált, a program behívja az adott módnak megfelelő funkciót. Ha a felhasználó meghatározott időn belül nem nyom meg gombot, az óra alvó állapotba kerül.

Az alvó üzemmódot jelzi, ha az összes LED kialszik, amíg teljesen ki nem alszanak. Az alvó üzemmód használata jelentősen megnöveli az akkumulátor élettartamát, és kikapcsolja a LED -eket, amikor nem használják őket. A felhasználó felébresztheti az órát a felső gomb megnyomásával. Ébredéskor az óra ellenőrzi az akkumulátor töltöttségi szintjét, hogy megbizonyosodjon arról, hogy nem kell tölteni. Ha töltésre van szükség, a LED -ek néhányszor pirosan villognak, mielőtt megjelenítenék az időt. Ha az akkumulátor kritikus szint alatt van, akkor egyáltalán nem kapcsol be.

Az idő hátralévő részében a programozás abból indult, hogy a többi módot a lehető leg intuitívabbá tegyük. Úgy gondoltam, hogy ha ugyanaz a gomb felelős minden üzemmód azonos funkcióiért, az lenne a leg intuitívabb. Némi teszt után ez a gombkonfiguráció, amit találtam:

  • Felső gomb megnyomása: Ébresztés / Váltás a "Kijelzési idő", a "Dátum megjelenítése", a "Stopper" és az "Riasztás" mód között.
  • Felső gomb tartása: Lépjen be az "Idő beállítása", a "Dátum beállítása", a "Stopperóra indítása" vagy a "Riasztás beállítása" módba.
  • Alsó gombnyomás: Növelje a fényerőt.
  • Alsó gomb nyomva tartása: Lépjen a "Színválasztás" módba.

Az alsó gomb mindig felelős a fényerőért és a színbeállításokért, függetlenül attól, hogy milyen üzemmódban van. Amikor a felhasználó belép a "Színválasztás" módba, a LED -ek elkezdenek ciklusozni az összes lehetséges RGB szín között. A felhasználó szüneteltetheti az animációt, és kiválaszthatja az adott módnak megfelelő színt (megjelenítési idő piros, dátum megjelenítése kék stb.). A színeket a felhasználó könnyen testreszabhatja, hogy segítsen megkülönböztetni a különböző módokat.

Most, hogy a kód elkészült, ideje feltölteni a mikrokontrollerre!

9. lépés: Programozás

Programozás
Programozás

Már majdnem elérkezett a forrasztás és az összeszerelés ideje, de előtte be kellett programoznom a mikrokontrollert. Követtem ezt az oktatóanyagot

Írja le a rendszerbetöltőt egy ATmega328P-AU SMD-re

arról, hogyan kell égetni egy rendszerbetöltőt és programozni a mikrokontrollert egy normál Arduino Uno programozóval.

Az első lépés az volt, hogy az Arduino Uno -t internetszolgáltatóvá alakították az "ArduinoISP" példakód feltöltésével. Kenyérsütő táblát használtam egy programozó aljzattal együtt, és bekötöttem az oktatóanyag vázlatát. Ezt követően az Arduino IDE "Burn Bootloader" gombjával le tudtam írni a rendszerbetöltőt a mikrokontrollerre.

Miután a mikrovezérlőnek volt bootbetöltője, egyszerűen eltávolítottam a meglévő mikrokontrollert az Arduino Uno -ból, és az Arduino Uno kártyát USB -soros adapterként használtam fel a kód feltöltésére a programozó aljzat mikrokontrollerére. A feltöltés befejezése után elkezdhettem a forrasztási folyamatot.

A következő lépés az összes alkatrész összegyűjtése és összeforrasztása volt!

10. lépés: Forrasztás

Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás

A forrasztási folyamatot két részre osztottuk. Először az alsó réteget kellett forrasztani, majd a felső réteget.

Az óra NYÁK -ját pár prototípus tábla közé rögzítettem szalaggal. Ez biztosította, hogy a NYÁK ne mozduljon el a forrasztás során, ami nagyon fontos. Ezután a forrasztószalagot a NYÁK -ra helyeztem, és nagy mennyiségű forrasztópasztát használtam az összes forrasztópárna borítására. Vékony csipesszel kezdtem el az összes alkatrészt a megfelelő párnákra helyezni. Ezután hőpisztoly segítségével forrasztottam vissza az összes alkatrészt a helyére.

Amikor az alsó réteget forrasztották, gyorsan szemrevételeztem, hogy megbizonyosodjak arról, hogy a forrasztás sikeres volt. Ezután megfordítottam a táblát, és megismételtem a forrasztási folyamatot a másik oldalon, ezúttal az összes LED -del. Nagyon fontos volt, hogy ne hevítse túl a lapot a felső réteg forrasztásakor, mivel az alján lévő összes alkatrész leesik. Szerencsére az összes alkatrész a helyén maradt, és a gombok forrasztása után a szokásos forrasztópáka segítségével elkészült a NYÁK!

Eljött az utolsó szerelés ideje!

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

Összeszerelés
Összeszerelés

Az összeszerelés nagyon egyszerű volt. Csatlakoztattam az akkumulátort a NYÁK -hoz, és az akkumulátort és a NYÁK -ot a 3D nyomtatott házba helyeztem. Elkezdtem csavarni a négy csavart a NYÁK minden sarkában lévő rögzítő lyukakban. Ezt követően a 18 mm -es rugós rudak segítségével rögzítettem az óraszíjakat, és az óra kész volt!

12. lépés: Következtetés és fejlesztések

Következtetés és fejlesztések
Következtetés és fejlesztések
Következtetés és fejlesztések
Következtetés és fejlesztések

Az óra a várakozásoknak megfelelően működik, és nagyon elégedett vagyok a megjelenésével. Eddig semmi gondom nem volt vele, és az akkumulátor szinte teljes töltöttséggel marad egy teljes hét használat után.

Lehet, hogy a jövőben más funkciókat is hozzáadok az órához. Mivel az USB -port csatlakoztatva van a mikrokontrollerhez, a firmware bármikor frissíthető új funkciókkal. Egyelőre azonban továbbra is használni fogom az óra ezen verzióját, és megnézem, hogyan bírja ki hosszabb használat után.

Ha bármilyen gondolata, megjegyzése vagy kérdése van ezzel a projekttel kapcsolatban, kérjük, hagyja őket alább. Ezeket a [email protected] címre is elküldheti.

Órák verseny
Órák verseny
Órák verseny
Órák verseny

Első díj az Óraversenyen

Ajánlott: