Obsah:

Binární budík založený na Arduinu: 13 kroků (s obrázky)
Binární budík založený na Arduinu: 13 kroků (s obrázky)

Video: Binární budík založený na Arduinu: 13 kroků (s obrázky)

Video: Binární budík založený na Arduinu: 13 kroků (s obrázky)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Červenec
Anonim
Image
Image

Autor: Basement Engineering

DIY Laser People Counter
DIY Laser People Counter
Stavba samořiditelné lodi (ArduPilot Rover)
Stavba samořiditelné lodi (ArduPilot Rover)
Stavba samořiditelné lodi (ArduPilot Rover)
Stavba samořiditelné lodi (ArduPilot Rover)
Perfektní noční lampa a dok na telefon
Perfektní noční lampa a dok na telefon
Perfektní noční lampa a dok na telefon
Perfektní noční lampa a dok na telefon

O: Ahoj, jmenuji se Jan a jsem tvůrce, miluji stavění a vytváření věcí a jsem také docela dobrý v opravách věcí. Protože si mohu myslet, že jsem vždy miloval vytváření nových věcí, a to je to, co dělám až do … Více o Basement Engineering »

Ahoj, dnes bych vám chtěl ukázat, jak postavit jeden z mých nejnovějších projektů, můj binární budík.

Na internetu je spousta různých binárních hodin, ale ve skutečnosti to může být první, vyrobený z pásu barevných adresovatelných LED diod, který má také funkci alarmu a dotyková tlačítka pro nastavení věcí, jako je čas a barva.

Nenechte se prosím odradit složitým vzhledem. S trochou vysvětlení není čtení binárních souborů ve skutečnosti tak těžké, jak se zdá. A pokud jste ochotni se naučit něco nového, rád bych vám s tím později pomohl.

Dovolte mi, abych vám řekl trochu o příběhu tohoto projektu:

Původně jsem plánoval postavit „normální“hodiny, které používají LED diody jako ruce, ale neměl jsem po ruce dostatek LED.

Sooo, co děláte, když chcete zobrazit čas s co nejmenším počtem LED diod?

Jdete binární, a to je přesně to, co jsem zde udělal.

Tyto hodiny jsou třetí verzí svého druhu. Hned poté, co mě myšlenka projektu zasáhla, jsem postavil velmi jednoduchý prototyp a odnesl jsem ho do Maker Faire v Hannoveru, abych viděl, co si o něm lidé myslí. Když jsem tam byl, dostal jsem spoustu velmi pozitivní a zajímavé zpětné vazby a také nápady na vylepšení.

Výsledkem všech těchto myšlenek a hodin přemýšlení, drobení a programování je tento docela zajímavě vypadající malý budík, který má mnohem více funkcí než verze 1.0 a dnes si projdeme každý krok procesu stavby, takže můžete snadno si jeden postavíte sami.

Na Youtube je také velmi podrobné Video over, pokud si nepřejete přečíst všechno.

Krok 1: Získejte věci

Získejte své věci
Získejte své věci
Získejte své věci
Získejte své věci
Získejte své věci
Získejte své věci

Zde je malý seznam všech komponent a nástrojů, které budete potřebovat k vybudování vlastních binárních hodin.

Elektronika:

  • 18 adresovatelných LED diod Ws2811 (např. Neopixely) na pásku se 60 diodami LED na m (ebay)
  • Arduino Nano (s procesorem ATMega328) (ebay)
  • Modul 1307 RTC (ebay)
  • 4X kapacitní dotyková tlačítka (ebay)
  • bs18b20 digitální teplotní senzor (ebay)
  • LDR (ebay)
  • reproduktor notebooku/smartphonu nebo piezo bzučák
  • 2222A NPN tranzistor (nebo něco podobného)
  • mužské hlavičky
  • úhlové ženské záhlaví (ebay)
  • Rezistor 1 kOhm
  • Rezistor 4, 7 kOhm
  • Rezistor 10 kOhm
  • Dráty
  • 7x5cm prototypování DPS 24x18 otvorů (ebay)
  • stříbrný drát (bižuterní drát) (ebay)
  • 90 ° mini USB adaptér (eBay)

Jiné materiály

  • Vinylový obal
  • 4 x 45 mm šrouby s přírubou M4 (ebay)
  • 32X m4 kovové podložky
  • 4X pojistná matice m4
  • Matice 28x m4
  • 4 x 10 mm m3 mosazný distanční plošný spoj PCB (ebay)
  • 8X 8mm m3 šroub (ebay)
  • plech z hliníku
  • 2 mm list mléčného akrylu
  • 2mm list čirého akrylu
  • 3 mm list MDF
  • oboustranná páska

Nástroje

  • mini USB kabel
  • počítač se systémem Arduino IDE
  • Vrták 3,5 mm
  • 4, 5 mm vrták
  • elektrická vrtačka
  • řezací nůž
  • vyrovnávací pila
  • pájecí ion
  • nůžky na řezání kovu
  • soubor
  • smirkový papír

Šablony (nyní s rozměry)

  • PDF
  • Libre Office Draw

Kód

  • Skici
  • Knihovna tlačítek
  • Knihovna časovačů
  • Knihovna jukeboxu
  • Upravený RTClib
  • Knihovna Adafruit Neopixel
  • Knihovna Arduino-Teplota-Řízení

Krok 2: Odřízněte přední a zadní panel

Odřízněte přední a zadní panel
Odřízněte přední a zadní panel
Odřízněte přední a zadní panel
Odřízněte přední a zadní panel
Odřízněte přední a zadní panel
Odřízněte přední a zadní panel
Odřízněte přední a zadní panel
Odřízněte přední a zadní panel

První kus, který budeme vyrábět, je přední panel z akrylátu. Označujeme, kam chceme, aby naše řezy směřovaly, přičemž myslíme na to, že chceme trochu tolerance k pískování. Poté jednoduše seškrábneme akrylát pomocí našeho řezacího nože. Poté, co jsme to udělali 10 až 20krát, máme drážku. Potom můžeme umístit háj na okraj stolu a ohýbat akrylát, dokud se nerozbije.

Poté, co je přední panel nařezán na velikost, vystřihneme zadní panel z kusu MDF. Můžeme k tomu použít naši vyrovnávací pilu, ale řezací nůž také funguje. Prostě musíme MDF upnout na kus dřeva a oškrábat ho řezacím nožem, dokud nůž neprojde a nemáme dva jednotlivé kusy.

Nyní spojíme dva panely k sobě a každou stranu obrousíme, aby se dokonale zarovnaly.

Poté, co je toto hotové, vystřihneme první šablonu a vložíme ji na dva panely pomocí pásky a začneme vrtat označené otvory.

Nejprve vyvrtejte otvor 4, 5 mm do každého ze 4 rohů. Jelikož je akrylát velmi křehký a nechceme, aby se rozbil, začneme malým vrtákem a postupujeme nahoru, dokud nedosáhneme požadovaného průměru otvoru. Poté pomocí šablony obrousíme rohy do správného tvaru.

Krok 3: Dokončete zadní panel

Dokončete zadní panel
Dokončete zadní panel
Dokončete zadní panel
Dokončete zadní panel
Dokončete zadní panel
Dokončete zadní panel
Dokončete zadní panel
Dokončete zadní panel

Prozatím můžeme přední panel odložit a nalepit druhou šablonu na zadní panel, kde potřebujeme pomocí vrtáku 3, 5 mm vyvrtat otvory pro naše 4 distanční sloupky a také 4 otvory, které označují okraje pro malé zadní okno.

Poté pomocí naší pily na řezání vyřízneme okno a uhladíme hrany pilníkem. Také nechcete zapomenout vyvrtat otvor pro mini USB kabel (slyšel jsem o jednom ne tak zaměřeném výrobci, který takové věci obvykle dělá: D).

Když jsme nyní dokončili řezání zadního panelu, můžeme přistoupit k jeho zabalení do vinylového obalu. Jednoduše nastříháme dva kusy na správnou velikost a první přiložíme na jednu stranu. Poté odstřihneme ráfky a uvolníme okno. Vysoušeč vlasů může pomoci zviditelnit všechny otvory, takže je můžeme také vystřihnout. Poté, co uděláme totéž pro druhou stranu, použijeme naši další šablonu a naši techniku škrábání a rozbití, abychom vytvořili malé akrylové okénko pro náš zadní panel.

Krok 4: Vytvořte panel LED

Vytvořte LED panel
Vytvořte LED panel
Vytvořte LED panel
Vytvořte LED panel
Vytvořte LED panel
Vytvořte LED panel

Nyní se dostáváme k vrcholům tohoto projektu v tom nejslovnějším smyslu. Panel LED.

Pomocí našich nůžek na stříhání kovů vystřihneme z plechu kus 12, 2 x 8 cm. Buďte opatrní, protože nůžky vytvářejí velmi ostré hrany. Vyrovnáme je pomocí našeho souboru a nějakého smirkového papíru. Poté přidáme naši další šablonu k vyvrtání otvorů pro šrouby a dráty.

Čas na přípravu skutečných LED diod.

Nejprve je nakrájíme na tři proužky po 6 LED. Některé z LED pásků mají velmi tenkou lepicí vrstvu nebo vůbec žádné lepidlo, takže naše pásky přilepíme na kus oboustranné pásky a nožem nařežeme. Díky tomu se přichytí na kovovou desku a přestože se nejedná o profesionální řešení, izoluje měděné podložky od kovového povrchu pod ní.

Než skutečně nalepíme proužky na panel, očistíme jej alkoholem. Zatímco připojujeme LED diody, musíme se ujistit, že jsme je umístili na správné místo i ve správném směru. Malé šipky na LED pásu udávají směr, ve kterém data proudí pásem.

Jak vidíte na pátém obrázku, náš datový řádek pochází z levého horního rohu panelu, prochází prvním pruhem až na pravou stranu, než zpět na začátek následujícího pruhu vlevo atd.. Takže všechny naše šípy musí ukazovat na pravou stranu.

Zahřejeme náš pájecí ion a dáme trochu cínu na měděné podložky, stejně jako na náš drát. Datové linky jsou připojeny, jak jsem právě popsal, zatímco jednoduše paralelně zapojíme plusové a mínusové podložky pásu.

Poté, co jsou proužky zapojeny, pomocí nože opatrně zvedneme konce každého pásu, zatímco držíme LED diody dole, aby stále směřovaly nahoru. Poté jsme pod něj dali horké lepidlo, abychom izolovali naše pájecí spoje.

Poté, co je to hotovo a přidáme několik kolíků záhlaví do vodičů, které jdou na desku plošných spojů. Ty dráty by měly být asi 16 cm dlouhé. Abychom si byli jisti, že kovový panel nic nezkracuje, použijeme multimetr k měření odporu mezi všemi piny. Pokud ukazuje něco nad 1 kOhm, je vše v pořádku.

Nyní jej můžeme připojit k Arduinu, spustit Strandtest a užít si barvy.

Krok 5: Vytvořte světlovod

Vytvořte světelného průvodce
Vytvořte světelného průvodce
Vytvořte světelného průvodce
Vytvořte světelného průvodce
Vytvořte světelného průvodce
Vytvořte světelného průvodce
Vytvořte světelného průvodce
Vytvořte světelného průvodce

Pokud umístíme náš LED panel hned za mléčný akryl, může být docela obtížné rozeznat jednotlivé LED od sebe. Tím by se naše hodiny četly ještě hůře, než už jsou.

Abychom tento problém vyřešili, uděláme si malého světlého průvodce. K tomu jsme jednoduše vyřízli další kus MDF, který má stejnou velikost jako přední panel. Poté do něj přidáme další šablonu a vyvrtáme osmnáct 3, 5 mm otvorů pro LED diody, stejně jako čtyři 4, 5 mm otvory pro šrouby. Potom jej můžeme upnout dolů na přední panel a pomocí brusného papíru je vyrovnat.

Jak vidíte na posledním obrázku, světlo se nyní zdá být mnohem více soustředěné.

Krok 6: Vytvořte rámeček tlačítka

Vytvořte rámeček tlačítka
Vytvořte rámeček tlačítka
Vytvořte rámeček tlačítka
Vytvořte rámeček tlačítka
Vytvořte rámeček tlačítka
Vytvořte rámeček tlačítka

Poslední komponentou skříně, kterou se chystáme vyrobit, je rámeček tlačítka.

My, opět, uřízneme kus MDF na správnou velikost a přidáme k němu šablonu, poté vyvrtáme všechny potřebné otvory a pomocí vyvažovací pily vyřízneme střední část.

Náš rámeček má držet 4 dotyková tlačítka, světelný senzor a náš malý reproduktor na svém místě. Než je můžeme připevnit k rámu, vystřihneme pár menších krycích kusů z MDF. Poté na tyto kryty nalepíme naše součásti za tepla a přidáme k nim dráty.

Napájecí podložky dotykového tlačítka jsou zapojeny paralelně, přičemž každý výstupní řádek má samostatný vodič. To je také vhodný okamžik k otestování, zda všechny fungují. Jelikož světelný senzor potřebuje na jedné straně 5 voltů, můžeme jej jednoduše připojit k podložce VCC s tlačítky alarmu a pájet vodič k druhé noze.

Poté, co jsou panely připraveny, seřízneme do stran rámu, abychom uvolnili místo pro ně a jejich dráty.

Poté ze všech kusů odstraníme dřevěný prach vysavačem a přikryjeme vinylovým obalem.

Přesným nožem odstraňujeme kousky vinylu přímo nad citlivými oblastmi našich dotykových modulů. S nějakou oboustrannou páskou můžeme k MDF připojit vlastní tlačítka. Knoflíky jsem vyrobil z gumové pěny, která jim dodává příjemnou, měkkou texturu, ale můžete použít jakýkoli nekovový materiál, který chcete.

Na rámu použijeme náš nůž, abychom znovu trochu uvolnili MDF, což nám dává přilnavý povrch pro horké lepidlo. Poté můžeme komponenty konečně přilepit na boky našeho rámu.

Krok 7: Pájejte hlavní desku plošných spojů

Pájejte hlavní desku plošných spojů
Pájejte hlavní desku plošných spojů
Pájejte hlavní desku plošných spojů
Pájejte hlavní desku plošných spojů
Pájejte hlavní desku plošných spojů
Pájejte hlavní desku plošných spojů

Ponechme rámeček tak, jak je právě teď, a přesuňte se na desku plošných spojů. Rozložení DPS můžete vidět na prvním obrázku.

Začínáme umístěním součástek s nejnižším profilem na desku s obvody. Nejmenší součásti jsou drátové můstky, na které jsem si trochu pozdě vzpomněl, a tak jsem začal s odpory. Pájíme naše součásti na místo a přejdeme k další vyšší sadě komponent.

Dále máme naše ženské kolíkové hlavičky. Abychom ušetřili místo a mohli zapojit naši elektroniku ze strany, montujeme je v úhlu 90 stupňů.

Tranzistory opravdu neodpovídají rozteči otvorů 2, 54 mm naší desky plošných spojů, takže pomocí kleští opatrně ohneme jejich nohy do tvaru, jak ukazuje druhý obrázek. Nejprve připájíme jednu jejich nohu na místo a otočíme desku plošných spojů. Pájecí spoj poté znovu zahřejeme a pomocí prstu nebo kleští součástku správně umístíme. Nyní můžeme pájet další dvě nohy na místo.

Po všech malých součástkách pájíme náš Arduino a náš modul hodin v reálném čase. Modul RTC také neodpovídá rozteči otvorů tak dobře, takže se chystáme vybavit pouze stranu, která má 7 pájecích podložek se záhlavími. Dále pod něj umístíme pásku, abychom zabránili zkratům.

Jelikož jsou všechny naše součásti připájeny na místě, je načase provést připojení na druhé straně desky. Za tímto účelem vyjmeme náš neizolovaný drát. K narovnání lze použít kleště. Poté drát nastříháme na menší kousky a připájíme k DPS.

Pro vytvoření spojení zahřejeme pájecí spoj a vložíme drát. Poté na něm držíme pájecí ion, dokud nedosáhne správné teploty a pájka ho neuzavře a nedostaneme spoj, který vypadá jako na obrázku. Pokud drát nezahřejeme, můžeme skončit studeným spojem, který by vypadal podobně jako druhý příklad a nevedl si příliš dobře. Můžeme použít naši řezačku drátu, tlačit drát dolů při pájení a ujistit se, že leží na desce plošných spojů. Na delších spojovacích cestách jej pájíme na jednu podložku každých 5 až 6 otvorů, dokud nedosáhneme rohu nebo další součásti.

V rohu přestřihneme drát nad první polovinou pájecí podložky a konec k němu připájíme. Potom vezmeme nový kus drátu a pokračujeme odtud v pravém úhlu.

Vytváření těchto prázdných drátových připojení je poměrně obtížné a vyžaduje určité dovednosti, takže pokud to děláte poprvé, rozhodně není špatný nápad to procvičit na šrot PCB, než se to pokusíte udělat na skutečném.

Poté, co skončíme s pájením, znovu zkontrolujeme připojení a ujistíme se, že jsme neprodukovali žádné zkraty. Poté můžeme vložit desku plošných spojů do rámečku tlačítka a použít ji jako referenci pro potřebné délky drátů rámu. Potom jsme ty dráty ustřihli na správnou délku a přidali k nim zástrčkové kolíky.

Všechna 5V a zemnící připojení dotykových tlačítek se spojují do 2pinového konektoru, 4 výstupní vodiče získají 4pinový konektor a řada světelných senzorů a dva vodiče reproduktorů se spojí do tříkolíkového konektoru. Nezapomeňte označit jednu stranu každé zásuvky a konektoru štětcem nebo páskou, abyste je kyselým způsobem nezapojili nesprávným způsobem.

Krok 8: Sestavte hodiny

Sestavte hodiny
Sestavte hodiny
Sestavte hodiny
Sestavte hodiny
Sestavte hodiny
Sestavte hodiny
Sestavte hodiny
Sestavte hodiny

Poté jsem se vrátil na přední panel a na závěr jsem opatrně nalepil nálepku vyrobenou z průhledné fólie pro laserové tiskárny.

I když jsem to aplikoval velmi opatrně, nemohl jsem získat výsledek bez bublin, který je bohužel při bližším zkoumání jasně viditelný. Fólie se také příliš nedrží v rozích, takže toto řešení opravdu nemohu doporučit.

Pravděpodobně by to mohlo být provedeno lepší samolepkou, nebo pokud umíte dobře kreslit, můžete čísla přidat pomocí Sharpie.

Nyní máme všechny komponenty a můžeme sestavit naše hodiny.

Začneme spojením světlovodu a předního panelu. Poté, co jsou všechny 4 šrouby dovnitř, zarovnáme dva panely a poté je utáhneme. O několik oříšků později přichází světelný panel, kde se musíme podívat na směr. Kabel by měl být nahoře.

Třetím dílem je knoflíkový rámeček. Mějte na paměti, že při pohledu z přední strany by měl být reproduktor na pravé straně hodin. Protáhněte kabel panelu LED středem rámu, než jej upevníte na místo.

Nyní položíme přední sestavu a přejdeme na zadní panel. Na obrázku můžete také vidět můj krásný, samostatně vyrobený 90stupňový mini USB adaptér. Připojil jsem vám správný adaptér, takže se s tímto druhem nepořádku nebudete muset potýkat. Jednoduše zapojte adaptér a protáhněte kabel otvorem na zadním panelu.

Abychom opravili malé okénko, vezmeme naše šrouby M3 a distanční podložky na desky plošných spojů. Je důležité pečlivě utáhnout šrouby, protože nechceme poškodit náš akryl. Poté vezmeme desku plošných spojů, zapojíme adaptér a přišroubujeme ji k distančním podložkám. Strana komponent by měla směřovat k oknu, zatímco USB port Arduina směřuje ke spodní části hodin.

Poté zapojíme všechny konektory z přední sestavy, přičemž budeme mít na paměti polaritu a opatrně vmáčkneme všechny vodiče do hodin. Potom jej můžeme zavřít zadním panelem a utáhnout 4 zbývající pojistné matice.

Nakonec chcete mít podložku na každé straně každého panelu, zatímco světlovod je umístěn přímo za předním panelem. Máme jednu matici mezi světlovodem a panelem LED a další dvě, oddělující jej od rámečku tlačítka. To můžete také vidět na posledním obrázku.

Protože jsem použil krátké šrouby o délce 40 mm, mám pouze 3 matice, které drží zadní panel a rám od sebe. Se správnými šrouby 45 mm byste sem přidali další matici a jednu nebo dvě podložky navíc. Na konci sestavy máme pojistnou matici, aby vše zůstalo na svém místě.

Krok 9: Nahrajte kód a zkalibrujte světelný senzor

Nahrajte kód a zkalibrujte světelný senzor
Nahrajte kód a zkalibrujte světelný senzor
Nahrajte kód a zkalibrujte světelný senzor
Nahrajte kód a zkalibrujte světelný senzor
Nahrajte kód a zkalibrujte světelný senzor
Nahrajte kód a zkalibrujte světelný senzor

Čas nahrát náš kód.

Nejprve si stáhneme všechny potřebné soubory a rozbalíme je. Poté otevřeme naši složku knihoven Arduino a vložíme do ní všechny nové knihovny.

Nyní otevřeme skicu kalibrace světelného senzoru, která nám poskytne jasné a tmavé hodnoty pro funkci automatického stmívače hodin. Nahrajeme jej, otevřeme sériový monitor a budeme postupovat podle pokynů na obrazovce.

Poté, co je hotovo, otevřeme skutečný kód binárních hodin a nahradíme dvě hodnoty těmi, které jsme právě změřili.

Zavřeme všechna ostatní okna, nahrajeme kód do našich hodin a máme hotovo.

Čas hrát si s naším novým gadgetem.

Krok 10: Rychlý úvod do binárního systému

Rychlý úvod do binárního systému
Rychlý úvod do binárního systému
Rychlý úvod do binárního systému
Rychlý úvod do binárního systému
Rychlý úvod do binárního systému
Rychlý úvod do binárního systému
Rychlý úvod do binárního systému
Rychlý úvod do binárního systému

Než budeme pokračovat, rád bych odpověděl na jednu otázku, která vám již pravděpodobně prošla myslí, „Jak proboha čtete tyto hodiny?“

Za to bych vám chtěl krátce představit binární systém.

Všichni jsme obeznámeni s desítkovou soustavou, kde každá číslice může mít 10 různých stavů v rozmezí od 0 do 9. V binárních číslech může mít každá číslice pouze dva stavy, buď 1 nebo 0, proto můžete použít něco tak jednoduchého, jako je zobrazit binární číslo.

Chcete -li zobrazit čísla, která jsou stručnější než 9 v desítkové soustavě, přidáme další číslice. Každá číslice má určitý multiplikátor. První číslice zprava přichází s multiplikátorem 1, další je 10 a další je 100. S každou novou číslicí je multiplikátor desetkrát větší než předchozí číslice. Víme tedy, že číslo dvě umístěné o jednu číslici vlevo představuje číslo 20. Zatímco dvě číslice nalevo představují 200.

V binárním systému má každá číslice také multiplikátor. Protože však každá číslice může mít pouze dva různé stavy, je každý nový multiplikátor dvakrát větší než ten předchozí. A mimochodem, binární číslice se nazývají Bity. Podívejme se tedy na náš první příklad, pokud umístíme 1 na nejnižší pozici, bude to jednoduchá 1, ale pokud ji umístíme na další vyšší pozici, kde je náš multiplikátor 2, představuje číslo 2 v binárním formátu.

Co třeba trochu záludnější příklad ve spodní části obrázku. Třetí a první bity jsou zapnuté. Abychom získali desetinné číslo, které je zde reprezentováno, jednoduše sečteme hodnoty těchto dvou bitů. Takže 4 * 1 + 1 * 1 nebo 4 + 1 nám dává číslo 5.

8 bitů je označováno jako bajt, pojďme se tedy podívat, jaké číslo získáme, vyplníme -li jedničkou celý bajt.1+2+4+8+16+32+64+128, což je 255, což je nejvyšší hodnota, kterou může jeden bajt mít.

Mimochodem, zatímco v desítkové soustavě je číslice s nejvyšším multiplikátorem vždy na prvním místě, máte dva způsoby, jak zapsat číslo binárně. Tyto dvě metody se nazývají nejméně významný bajt první (LSB) a nejvýznamnější bajt první (MSB). Pokud chcete číst binární číslo, musíte vědět, který ze dvou formátů se používá. Protože se blíží desítkové soustavě, používají naše binární hodiny variantu MSB.

Vraťme se k příkladu z našeho skutečného světa. Jak je zdůrazněno na šestém obrázku, naše hodiny mají 4 bity pro zobrazení hodiny. Potom máme 6 bitů za minutu a také 6 bitů za sekundu. Dále máme jeden kousek dopoledne/odpoledne.

Dobře, řekni mi, kolik je hodin na 6. obrázku, než přeskoč na poslední.. ….

v hodinové sekci máme 2+1, což jsou 3 a pm bit je zapnutý, takže je večer. Další minuta 32+8, to je 40. Na vteřiny máme 8+4+2, což je 14. Takže je 15:40:14 nebo 15:40:14.

Gratulujeme, právě jste se naučili číst binární hodiny. Samozřejmě to chce nějaké zvyknutí a na začátku budete muset sečíst čísla, pokaždé, když chcete vědět, kolik je hodin, ale podobně jako u analogových hodin bez číselníku si zvyknete na vzory LED čas.

A to je součástí toho, o čem tento projekt je, vzít něco tak abstraktního jako binární systém do skutečného světa a lépe ho poznat.

Krok 11: Použití binárního budíku

Používání binárních budíků
Používání binárních budíků
Používání binárních budíků
Používání binárních budíků
Používání binárních budíků
Používání binárních budíků

Nyní si konečně chceme pohrát s hodinami, pojďme se tedy rychle podívat na ovládací prvky.

Software dokáže rozlišit mezi klepnutím na jedno tlačítko, dvojitým klepnutím a dlouhým klepnutím. Každé tlačítko lze tedy použít pro více akcí.

Dvojitým klepnutím na tlačítko nahoru nebo dolů změníte barevný režim LED. Můžete si vybrat mezi různými statickými a vybledlými barevnými režimy a také teplotním režimem. Pokud jste v jednom ze statických barevných režimů, podržením tlačítka nahoru nebo dolů barvu změníte. V režimu slábnutí jediným klepnutím změníte rychlost animací.

Chcete -li nastavit režim stmívače, poklepejte na tlačítko ok. LED panel ukazuje nastavený režim opakovaným blikáním.

  • Jeden čas znamená žádný stmívač.
  • Dvakrát znamená, že jas je řízen světelným senzorem.
  • Třikrát a LED se automaticky vypne po 10 sekundách nečinnosti.
  • Kombinují se čtyřikrát a oba režimy stmívače.

Dlouhým stisknutím tlačítka ok se dostanete do režimu nastavení času, kde můžete pomocí šipek nahoru a dolů změnit číslo. Jediným klepnutím na tlačítko ok se dostanete z hodin na minuty, dalším klepnutím a můžete nastavit sekundy. Poté poslední klepnutí uloží nový čas. Pokud přistoupíte do režimu nastavení času, můžete jednoduše počkat 10 sekund a hodiny jej automaticky opustí.

Stejně jako u tlačítka ok můžete dlouhým stisknutím tlačítka budíku nastavit budík. Dvojitým poklepáním na tlačítko alarmu se alarm aktivuje nebo deaktivuje.

Pokud hodiny zvoní, jediným klepnutím na tlačítko budíku je odešlete do režimu spánku na 5 minut nebo je podržíte, deaktivaci deaktivujete.

To všechno byly zatím funkce hodin. V budoucnu mohu přidat další, které můžete získat, pokud si stáhnete nejnovější verzi firmwaru.

Krok 12: Porozumění kódu (volitelně)

Porozumění kódu (volitelně)
Porozumění kódu (volitelně)

Vím, že mnoho lidí programování příliš nebaví. Naštěstí pro tyto lidi nejsou k vytváření a používání těchto binárních hodin zapotřebí téměř žádné znalosti programování. Pokud vás tedy nezajímá stránka programování, můžete tento krok jednoduše přeskočit.

Pokud vás však zajímá část kódování, rád bych vám poskytl obecný přehled programu.

Vysvětlení každého malého detailu kódu hodin by bylo samo o sobě Instructable, takže to zjednoduším vysvětlením programu objektově orientovaným způsobem.

Pokud nevíte, co to znamená, objektově orientované programování (OOP) je koncept většiny moderních programovacích jazyků, jako je C ++. Umožňuje organizovat různé funkce a proměnné do takzvaných tříd. Třída je šablona, ze které můžete vytvořit jeden nebo více objektů. Každý z těchto objektů dostane název a vlastní sadu proměnných.

Například kód hodin používá několik objektů MultiTouchButton, jako je alarmButton. To jsou objekty ze třídy MultiTouchButton, která je součástí mé knihovny Button. Skvělou věcí na těchto objektech je, že s nimi můžete komunikovat podobně jako s objekty v reálném světě. Můžeme například zkontrolovat, zda bylo tlačítko alarmu dvakrát poklepáno voláním alarmButton.wasDoubleTapped (). Kromě toho je implementace této funkce hezky ukryta v jiném souboru a nemusíme se obávat jejího porušení, změnou čehokoli jiného v našem kódu. Rychlý vstup do světa objektově orientovaného programování najdete na webu Adafruit.

Jak vidíte na obrázku výše, program hodiny má spoustu různých objektů.

Právě jsme mluvili o objektech tlačítek, které mohou interpretovat vstupní signály jako klepnutí, dvojité klepnutí nebo dlouhé stisknutí.

Jukebox, jak název napovídá, může vydávat hluk. Má několik melodií, které lze přehrávat pomocí malého reproduktoru.

Objekt binaryClock spravuje nastavení času a budíku a také sledování poplachu. Dále získává čas z modulu rtc a převádí jej do binárního informačního bufferu pro ledPanel.

ColorController zapouzdřuje všechny funkce barevných efektů a poskytuje colorBuffer pro ledPanel. Ukládá také svůj stav v Arduinos EEProm.

Stmívač se stará o jas hodin. Má různé režimy, které uživatel může procházet. Aktuální režim je také uložen v EEProm.

LedPanel spravuje různé vyrovnávací paměti pro hodnotu barvy, hodnotu jasu a binární stav každé LED. Kdykoli se zavolá funkce pushToStrip (), překryje je a odešle na LED pásek.

Všechny objekty jsou „propojeny“přes hlavní (soubor s funkcemi nastavení a smyčky), který obsahuje pouze několik funkcí k provedení 3 základních úkolů.

  1. Interpretace vstupu uživatele - Získá vstup ze 4 tlačítek a provede je logikou. Tato logika kontroluje aktuální stav hodin, aby určila, zda jsou hodiny v normálním režimu, nastavení času nebo vyzvánění a podle toho volá různé funkce od ostatních objektů.
  2. Správa komunikace mezi objekty - Neustále se ptá objektu binaryClock, zda má k dispozici nové informace nebo zda alarm zvoní (). Pokud má nové informace, získá informationBuffer z binaryClock a odešle jej do objektu ledPanel. Pokud zvoní hodiny, spustí se jukebox.
  3. Aktualizace objektů - Každý z objektů programu má postup aktualizace, který se používá pro věci, jako je kontrola vstupů nebo změna barev LED. Aby hodiny správně fungovaly, je třeba je ve funkci smyčky opakovaně volat.

To by vám mělo poskytnout obecné porozumění tomu, jak jednotlivé části kódu spolupracují. Pokud máte konkrétnější otázky, můžete se mě jednoduše zeptat.

Protože můj kód rozhodně není dokonalý, budu jej v budoucnu dále vylepšovat, takže se může změnit několik funkcí. Skvělé na OOP je, že bude stále fungovat velmi podobným způsobem a stále mu můžete porozumět.

Krok 13: Závěrečná slova

Závěrečná slova
Závěrečná slova

Jsem rád, že jste dočetli až do tohoto bodu. To znamená, že můj projekt nebyl příliš nudný:).

Do těchto malých hodin jsem vložil spoustu práce a ještě více práce do veškeré dokumentace a videa, abych vám usnadnil stavbu vlastních binárních budíků. Doufám, že moje úsilí stálo za to a mohl bych vás spojit se skvělým nápadem pro váš příští víkendový projekt, nebo vám alespoň dát inspiraci.

Rád bych slyšel, co si myslíte o hodinách v komentářích níže:).

I když jsem se snažil zakrýt každý detail, možná jsem něco zmeškal. Neváhejte se tedy zeptat, pokud ještě nějaké otázky zbývají.

Jako vždy vám moc děkuji za přečtení a radost z tvorby.

LED Contest 2017
LED Contest 2017
LED Contest 2017
LED Contest 2017

Runner Up in the LED Contest 2017

Doporučuje: