Inhoudsopgave:

Micro binaire klok - Ajarnpa
Micro binaire klok - Ajarnpa

Video: Micro binaire klok - Ajarnpa

Video: Micro binaire klok - Ajarnpa
Video: Arduino Binary Clock 2024, Juli-
Anonim
Micro binaire klok
Micro binaire klok
Micro binaire klok
Micro binaire klok

Tinkercad-projecten »

Eerder een Instructable (Binary DVM) hebben gemaakt, die gebruik maakt van het beperkte weergavegebied met behulp van binair.

Het was maar een kleine stap om eerder de hoofdcodemodule voor decimaal naar binair conversie naar het maken van een binaire klok te hebben gemaakt, maar het enige dat ontbrak was een RTC (Real Time Clock).

De Microbit heeft echter geen ingebouwde RTC.

De RTC maakt de realisatie van klokprojecten met een batterij back-up mogelijk.

Als zodanig gebruikt het volgende project een Microbit en een Kitronik RTC om een 24-uurs klok met een binair display te creëren en heeft het bovendien een alarmoptie.

De projectsoftware die op de Microbit zal worden uitgevoerd, wordt gemaakt in Makecode Blocks.

Benodigdheden:

MicroBit V1 of V2

MicroBit beschermhoes (optioneel)

Makecode

Kitronik RTC

CR2032

Codeblokken

Cura

3D-printer

1 * SPDT (aan - aan) schakelaar

1 * SPDT (aan - uit - aan) schakelaar

2 * SPST (normaal open), momentschakelaar

4 * M3 (10+6mm), M/F afstandhouders met M3 moeren

4 * M3 (8mm), schroeven

Doorverbindingsdraad M/F-connector, 100 mm, 28AWG voorgemonteerd met stekker en stopcontact.

1 * piëzo-zoemer (geen schijf)

Deze benodigdheden zijn verkrijgbaar bij een aantal verkooppunten en u kunt uw eigen voorkeursleverancier hebben.

Stap 1: Het weergavegebied definiëren

Het weergavegebied definiëren
Het weergavegebied definiëren
Het weergavegebied definiëren
Het weergavegebied definiëren

Hoewel het weergavegebied beperkt is in de hoeveelheid gegevens die op elk moment kan worden weergegeven, leent het zich ideaal voor de weergave van bitgegevens.

Als zodanig is er voldoende ruimte om 4 x 4 bit binaire woorden weer te geven om tijd weer te geven met meldingen en selectiemodi.

Het display is opgedeeld in 3 hoofdgebieden; Tijd, selectie en modi.

Tijd

Zestien LED's toegewezen aan Tijd, elke kolom van 4 LED's is toegewezen aan een tijdsinterval, de intervallen hebben de vorm H, H, M & M.

Elk bit van het binaire woord heeft een weging van 1, 2, 4 & 8 met de LSB op rij 4 en de MSB op rij 1

Elk binair 4-bits woord staat een telling van 0 tot 15 toe, wat meer dan voldoende is voor het 24H-tijdformaat, waarbij een maximale telling per kolom van 2, 9, 5 & 9 vereist is.

Selectie

Een rij van 4 LED's op rij 0 wordt gebruikt om de geselecteerde tijdkolom te identificeren bij het invoeren van de tijd.

Modi

Een kolom van 5 LED's in kolom 4 wordt gebruikt om modi, functies en bediening te identificeren.

Vink - LED 4, 0 knipperend aan & uit wordt gebruikt om seconden en werking aan te geven.

Tijd - LED 4, 1 geeft de tijdmodus aan wanneer deze aan is. (Standaardmodus bij inschakelen)

Alarm - LED 4, 2 geeft Alarmmodus aan wanneer aan.

Alarmmelding - LED 4, 3 & LED 4, 4 knipperen wanneer het alarm wordt geactiveerd.

Stap 2: RTC (realtime klok)

RTC (realtime klok)
RTC (realtime klok)
RTC (realtime klok)
RTC (realtime klok)
RTC (realtime klok)
RTC (realtime klok)
RTC (realtime klok)
RTC (realtime klok)

De RTC is het kloppende hart van de applicatie en maakt het instellen en bijhouden van nauwkeurige tijd mogelijk.

Verdere details van de RTC zijn te vinden op Kitronik.

De RTC biedt een gereguleerde voeding waardoor het niet nodig is om de Microbit van stroom te voorzien via zijn eigen USB- of JST-connector en er is een batterijback-up voorzien om de tijd vast te houden in het geval van stroomuitval.

Voordat u de RTC gebruikt, moet u het uitbreidingspakket laden.

Gebruik Makecode van het pictogram Instellingen, selecteer Extensies en typ Kitronik RTC in de zoekopdracht.

Selecteer het pakket om het te installeren en het wordt toegevoegd aan de andere extensies.

Er zijn een aantal codeblokken om van te lezen en naar de RTC te schrijven.

We hebben slechts 4 van deze codeblokken nodig voor de binaire klok.

Deze worden gebruikt om de ingestelde tijd naar de RTC te schrijven en om de tijd terug te lezen om de klokweergave bij te werken.

Stap 3: De klok coderen

De klok coderen
De klok coderen
De klok coderen
De klok coderen
De klok coderen
De klok coderen

Het eerste deel van de code is programma-initialisatie van variabelen, arrays en informatieve tekst.

In het

Bclk - Binaire klok

<Sel - Een knop selecteert de kolom die zal worden aangepast voor het instellen van de tijd.

Inc – B-knop verhoogt de tijd.

Door beide A- en B-knoppen tegelijk in te drukken, verandert de modus tussen Tijd en Alarm.

Strval - is de tekenreekswaarde die de tijd bevat in de vorm "HH:MM:SS" die wordt geretourneerd door de RTC

Alleen HH & MM worden gebruikt om de tijd weer te geven of in te stellen.

Modus – behoudt de moduswaarde voor Tijd = 1 en Alarm = 2 geselecteerd met de A+B-toetscombinatie.

Periode – is de waarde voor de tijdkolom, geselecteerd met de A-knop.

0 = kolom 0 (H), 1 = kolom 1 (H), 2 = kolom 2 (M), 3 = kolom 3 (M)

Tick_nl – Activeert = 1 of Deactiveert = 0 het vinkje (seconden), indicator.

Inc – Tussentijdse opslag van de incrementele tijdinstellingswaarde.

Tm_list – slaat de waarde van elke tijdkolom op tijdens het instellen.

Alarm – Schakelt de alarmindicator in of uit.

De forever roept voortdurend de tick-functie aan.

Kruis aan

De vinkfunctie die normaal is ingeschakeld, geeft een afwisselende aan/uit-LED weer in de rechterbovenhoek om de werking en seconden aan te geven.

Bovendien roept het de showtm-functie aan die de RTC leest en verwerkt om deze in binair weer te geven, terwijl het ook alarm_mode aanroept, als dit is ingeschakeld, worden de alarmmeldings-LED's in de rechterbenedenhoek weergegeven.

Showtm

Functie showtm, roept rdtime aan en de waarde die hieruit wordt gebruikt is strval die de tijdreeks bevat.

Er wordt een lus gemaakt die door strval wordt verhoogd door elk afzonderlijk nummer te extraheren en het scheidingsteken ":" te negeren

Elk afzonderlijk getal wordt vervolgens omgezet in zijn binaire equivalent met de functie dec2bin en toegewezen aan de juiste kolom.

Rdtime

Functie rdtime, leest de eerste 5 tekens in de tekenreeks die wordt geretourneerd door de RTC (waarbij het secondengedeelte wordt genegeerd) en geeft deze door aan strval.

Als het alarm was ingesteld (Modus = 2), worden de ingestelde alarmwaarden vergeleken met de waarden die door de RTC worden geretourneerd. Als er een overeenkomst is, is alarm = 1 als er geen overeenkomst is alarm = 0.

Alarm_mode indien ingeschakeld toont twee aan/uit afwisselende LED's in de rechter benedenhoek van kolom 4.

Dec2bin

Functie dec2bin converteert een decimaal getal naar binair en geeft het in de juiste kolom weer.

Het te converteren getal wordt via waarde doorgegeven en de weergavekolom wordt via col.

List2 is de array waarin het 4-bits binaire woord van het binaire conversieproces wordt opgeslagen.

Er wordt een lus gestart die verder gaat met het delen van de waarde door 2, de rest wordt opgeslagen in het array-element, de integerwaarde wordt gedeeld door 2, dit wordt herhaald totdat de integerwaarde <=1 is en deze laatste waarde in de array wordt geplaatst.

De grootste decimale waarde van één cijfer is 9 en in binair getal is dit 1001 als een 4-bits woord.

De array moet dan in omgekeerde volgorde worden verwerkt voor het juiste resultaat.

Er wordt dan een lus gestart om de juiste LED in de juiste kolom in te schakelen, dit wordt bereikt voor elk optreden van een ene in het 4-bits binaire woord.

De menselijke interface wordt bereikt met knoppen.

De A-knop

Dit selecteert de kolom waarin de tijdwaarde wordt ingevoerd en geeft een verlichte LED weer boven de gekozen kolom op rij 4.

Zodra alle tijdkolommen zijn bijgewerkt, wordt de tijdvariabele bijgewerkt door de selectie te verhogen naar de 5e kolom.

Als modus = 1 wordt de RTC bijgewerkt, anders wordt de alarmtijd bijgewerkt.

De B-knop

Dit is de increment-knop en verhoogt de geselecteerde tijdkolom.

Om fouten te verminderen en tijd te besparen bij het verkrijgen van de juiste waarde, is de maximale waarde die per kolom kan worden ingevoerd, gemaximeerd op basis van de tijdwaarde voor een 24-uurs tijdsysteem.

Deze maximale waarden worden opgeslagen in tm_max, één per tijdkolom en worden automatisch geselecteerd op basis van de tijdkolom.

De maximale waarden zijn H = 2, H = 9, M = 5, M = 9

De incrementwaarde wordt in dec2bin naar binair geconverteerd en het display wordt bijgewerkt.

Knop A+B Modusselectie

Door beide knoppen tegelijk in te drukken, kunt u kiezen tussen de tijdmodus of de alarmmodus, de juiste modus wordt weergegeven op het display.

Afhankelijk van welke modus is geselecteerd, wordt het display bijgewerkt om de tijd of de ingestelde alarmtijd weer te geven.

Stap 4: Bediening

Operatie
Operatie
Operatie
Operatie
Operatie
Operatie

Download het Hex-bestand naar de Microbit, plaats een CR2032-batterij in de RTC.

Sluit de Microbit aan op de RTC en voed het RTC-bord via USB of de schroefaansluitingen.

De Tick LED begint te knipperen en kort daarna wordt de tijd weergegeven.

Als dit de eerste keer is dat u deze gebruikt, is de weergegeven tijd zeer waarschijnlijk verkeerd en moet deze op de juiste tijd worden ingesteld.

Mode selectie

Door de Selectie (A) & Increment (B) knoppen samen in te drukken, kunt u tussen de modusopties schakelen tussen Tijd en Alarm.

De tijd instellen

De tijdinstelling is in de 24H-modus.

Gebruik de selectieknop (A), om de LED over de bovenste rij te verplaatsen, dit geeft de kolom aan waar de tijd kan worden gewijzigd. De selectiekolommen komen overeen met H, H, M & M.

Waar H = Uren en M = Minuten.

Nadat u een kolom hebt geselecteerd, drukt u herhaaldelijk op de knop Increment (b) om de telling bij elke druk met één te verhogen. De tellingen worden binair aangegeven, het is tenslotte een binaire klok.

De verhogingsknop verhoogt alleen de telling en zodra het maximum is bereikt, wordt deze teruggezet naar nul, en door nogmaals te drukken, wordt de telling opnieuw verhoogd.

Zodra de eerste kolomtijd is ingesteld, drukt u op de selectieknop voor de volgende kolom en gebruikt u vervolgens de knop Increment om de kolomtijd in te stellen.

Opmerking: *** Wanneer u de tijd of het alarm instelt, moet u een tijd in de geselecteerde kolom invoeren, zelfs als de tijd in de kolom ongewijzigd moet blijven, aangezien het overslaan van een kolom die kolomtijd op nul zet ****

Herhaal het proces totdat de tijd is ingesteld met alle 4 kolommen.

Druk voor de vijfde keer op de selectieknop om deze naar de vijfde kolom te verplaatsen en de tijd is ingesteld.

Het alarm instellen

Het instellen van de alarmtijd gaat op precies dezelfde manier als voor de tijd.

Om het alarm op de gewenste tijd te laten afgaan, laat u de modus op Alarm staan.

Om het alarm uit te schakelen, zet u de modus op Tijd.

Om de ingestelde alarmtijd weer te geven, schakelt u de modus tussen tijd en alarm en de alarmtijd wordt korte tijd weergegeven voordat u terugkeert naar de huidige tijd.

De alarmtijd wordt niet opgeslagen in de RTC, dus als de stroom wordt verwijderd, moet deze opnieuw worden ingesteld.

Stap 5: Doos het in

Doos het in
Doos het in
Doos het in
Doos het in

Het project zal in de juiste hoek zitten om de klok te bekijken, maar een doos voegt een gevoel van duurzaamheid toe.

U kunt een doos van de juiste maat kopen en de juiste gebieden uitsnijden en uitboren zodat de Microbit in de socket past.

Echter; bovendien wilde ik de Microbit-knoppen dupliceren, samen met andere bedieningselementen en indicatoren.

Meestal moeten er legenda's op het vak worden aangebracht om knoppen te identificeren.

Deze kunnen met de hand worden aangebracht; geschilderd, gegraveerd of voorzien van labels.

Een methode om al deze opties te realiseren zou zijn om de doos in 3D te printen, maar eerst zouden we een CAD-bestand moeten maken waarmee we het printerbestand kunnen maken.

De opties voor het maken van bestanden zijn met de hand getekend of getekend met code.

Ik heb gekozen voor "getekend met code" met Tinkercad CodeBlocks

De bestanden voor de Box Lid en de Box Base zijn te vinden op Tinkercad CodeBlocks

Stap 6: Ontwerp van blokcodes

Ontwerp blokcode
Ontwerp blokcode
Ontwerp blokcode
Ontwerp blokcode

De doos is een tweedelig ontwerp bestaande uit een bodem en een deksel.

Er worden vier hoekschroefgaten gebruikt om het deksel vast te zetten met een uitsparing aan de linkerkant om toegang te krijgen tot de USB-stekker.

Het deksel heeft een uitsparing voor de Microbit-connector en de benodigde schakelaars, daarnaast wordt elke tekst direct op het deksel afgedrukt en worden de schroefgaten uitgelijnd met de basispilaren.

Het RTC-bord wordt met 4 pilaren en 4 schroeven aan de onderkant van het deksel bevestigd.

De afmeting van de doos plus deksel is 70 x 105 x 31 mm

De code voor het deksel en de basis is beschikbaar in TinkerCad CodeBlocks.

Stap 7: 3D printen

3d printen
3d printen
3d printen
3d printen
3d printen
3d printen
3d printen
3d printen

Laad de bestanden in Cura en pas de gewenste slicer-instellingen toe.

Toegepaste instellingen.

Kwaliteit: 0,15 mm

Infill: 80%, Tri-Hexagon

Basis: Brim

Sla uw bestanden op en druk ze af.

Met Cura kunt u beide bestanden samen op hetzelfde printgebied laden en in één keer printen.

Stap 8: Invulling

Infill
Infill
Infill
Infill
Invulling
Invulling

Het deksel van de doos is bedrukt met verzonken tekst die wordt gevuld met gekleurde 2-componenten epoxyhars.

De hars wordt gemengd met een verhouding van 2 delen hars op 1 deel verharder en vervolgens wordt er een dekkend kleurpigment in gemengd.

De gekozen kleur was geel om te contrasteren met de achtergrond. Wit zou een andere keuze zijn geweest.

Eenmaal gemengd, wordt de hars in de uitsparing gedruppeld met behulp van een cocktailprikker om kleine klodders hars over te brengen die worden gebruikt om de uitsparing in de letters geleidelijk te vullen.

Weersta het aanbrengen van te veel hars in één keer, omdat u waarschijnlijk luchtbellen zult krijgen en of te veel overloop naar het omringende oppervlak zult creëren, wat betekent dat u meer moet verwijderen om op te ruimen en te schuren als het eenmaal is uitgehard.

Dus vul langzaam en zorg ervoor dat de onderkant van de brief bedekt is en bouw het op met een licht verhoogd oppervlak.

Zodra de hars is uitgehard, moet u licht schuren om het oppervlak waterpas te maken. Begin met P240 en ga zo nodig naar fijnere gradaties om een gladde afwerking te krijgen en eindig met polijsten.

Oefen niet te veel druk uit en niet te veel snelheid of u zult het PLA en de hars oververhitten, wat resulteert in een dof oppervlak als gevolg van gruisopname, een beetje water dat tijdens het schuurproces wordt aangebracht, zal als smeermiddel en koelmiddel werken.

Stap 9: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

De Microbit past in twee richtingen in de socket, gericht naar het hoofdgedeelte van de RTC of naar de andere kant gericht.

Als de verbinding naar het hoofdgedeelte van de RTC is gericht, kunnen de verbindingsverbindingen echter niet worden gebruikt, als de Microbit van het hoofdgedeelte van het bord af is gericht, kunnen we deze verbindingen gebruiken.

De montage begint met het solderen van een haakse SIL pin-header op de RTC, dit is om de verbindingen te maken met push-fit connectoren.

De RTC is gemonteerd met 4 * M3 (10+6 mm), M/F-afstandhouders met M3-moeren die aan het deksel zijn bevestigd met 4 * M3 (8 mm), schroeven in de geprefabriceerde gaten.

De schakelaars worden in de geprefabriceerde gaten in het deksel gemonteerd.

De benodigde aansluitingen zijn:

GND, 3V, P1 (set), P2 (alert), P5 (sel) & P11 (inc)

Opmerking *** Weerstanden (1R), in het diagram voor P5 & P11 zijn eenvoudig referentie-aansluitpunten, aangezien directe verbinding met deze pinnen op de Microbit in Code-blokken op dit moment niet beschikbaar is. ***

P5 is de externe aansluiting voor knop A die is verbonden door een SPST-momentschakelaar. Eén verbinding met P5 en de andere pin is verbonden met GND. Deze knop is voor kolomselectie tijdens het instellen van de tijd.

P11 is de externe aansluiting voor knop B die is verbonden door een SPST-momentschakelaar. Eén verbinding met P11 en de andere pin is verbonden met GND. Zijn knop is voor nummerverhoging tijdens het instellen van de tijd.

P1 is een SPDT (aan-aan) schakelaar die wordt gebruikt om de instellingsopties in of uit te schakelen. De middelste pin gaat naar P1 terwijl een pin wordt aangesloten op GND en de andere op 3V via een 10k-weerstand. Hierdoor kunnen op deze pin een H (3V) en L (0V) worden aangebracht. Wanneer P1 is aangesloten op 3V, worden de tijdinstellingsopties ingeschakeld en wanneer 0V de tijdinstelling uitgeschakeld. Daardoor wordt gecontroleerd of de A & B-knoppen enig effect hebben.

P2 is een SPDT-schakelaar (aan-uit-aan) die wordt gebruikt om de alarmsirene en optionele externe verlichting in of uit te schakelen.

De alarmsirene is een piëzo-zoemer (eenvoudig bevestigd met een dubbelzijdig plakkerig kussentje), waarvoor een pulsaandrijving nodig is die wordt geleverd door de Microbit.

Stap 10: Eindelijk

Je hebt de elementen in de doos gemonteerd, de Microbit geprogrammeerd en in de aansluiting op de doos geplaatst.

Schakel vervolgens de stroom in en stel de tijd in.

Genieten van.

Blokcodewedstrijd
Blokcodewedstrijd
Blokcodewedstrijd
Blokcodewedstrijd

Tweede plaats in de blokcodewedstrijd

Aanbevolen: