Innehållsförteckning:

01//atch: 12 steg
01//atch: 12 steg

Video: 01//atch: 12 steg

Video: 01//atch: 12 steg
Video: Сабвуфер STEG me12; усилитель STEG QM500.1 тест,отзывы,много музыки. 2024, Oktober
Anonim
01/\/atch
01/\/atch
01/\/atch
01/\/atch
01/\/atch
01/\/atch

01/\/atch, eftersom … "det finns 10 typer av människor i världen, de som läser binära och de som inte gör det" - en slashdot -tagglinje. 01/\/atch är en binär armbandsur med en LED -display. Ytterligare funktioner är tillgängliga via ett rullande menysystem på dess 3x4 LED -matris. Nuvarande funktioner inkluderar: spänningsmätare, binär räknare, klubbläge och tidsvisning. Klockan är fullt programmerbar. Framtida uppgraderingar av firmware kommer att omfatta: stoppur/timer, larm, cykelhastighetsmätare/vägmätare, dataloggning och en avancerad konfigurationsmeny. Se den i aktion: https://www.youtube.com/embed/l_tApl3JmmMA Alla projektfiler är i.zip -arkivet på den här sidan. Schematisk och PCB i Cadsoft Eagle -format. Firmware i mikroBasic. Texten i denna instruerbara ingår som.odt (OO.org/open text) och.pdf -filer. Det översta lagret PCB-konst (speglat) ingår som en. PDF redo för toneröverföring eller fotoprocess. Den kopieras flera gånger på ett enda ark eftersom jag måste dubbelklicka på OH-film. 01/\/atch inspirerades av Mini Dotclock och en efterföljande konversation i kommentarsfältet: https://www.instructables.com /ex/i/47F2F12223BA1029BC6B001143E7E506Detta är också ett halvt steg mot en ytmonterad nixie -klocka som jag arbetar med. 01/\/atch -projektet är en introduktion till ytmonterade komponenter och tidsbevarande logik utan den komplicerade komplexiteten hos ett Nixie -rör. (https://www.instructables.com/ex/i/2C2A7DA625911029BC6B001143E7E506/?ALLSTEPS)En liten googling visade upp den här binära klockan på thinkgeek: https://www.thinkgeek.com/gadgets/watches/6a17/The 01/ \/atch är baserat på en PIC16F913/6. Denna PIC valdes ursprungligen eftersom den hade en hårdvaru -LCD -drivrutin. Jag tänkte att jag kunde göra LCD -drivrutinen till en LED -multiplexer med några transistorer. Detta visade sig inte vara fallet. Det är fortfarande ett bra val eftersom det har massor av programmeringsutrymme och mycket få begränsade I/O -stift. F913 kostar cirka $ 2,00 på Mouser. PIC16F913 Detaljer: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1335 & dDocName = en020199PIC16F916 Detaljer (samma som 913, med mer programutrymme): https:// www. microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en020201PIC16F913/6 Datablad (PDF -format): https://ww1.microchip.com/downloads/en/DeviceDoc/41250E.pdfDe 3d -bilderna gjordes i denna instruktion från Eagle Board -filer med Eagle3D och POV ray: https://www.matwei.de/doku.php? id = sv: eagle3d: eagle3d

Steg 1: Display

Visa
Visa
Visa
Visa
Visa
Visa

Den binära displayen består av 12 lysdioder i en 3x4 matris. Varje kolumn med fyra lysdioder representerar en fyra bitars "nibble" eller halv byte. Varje kolumn kan visa 0-15 i binärt (1+2+4+8 = 15). Tiden visas i de tre raderna som timmar/tiotals minuter/minuter. Detta är inte sant binärt, utan en förenklad delmängd som gör klockan lättare att läsa. Thinkgeek -klockan använder till exempel 'sannare' binär för att representera minuter med en hel byte. Vad jag än föredrar skulle den sanna nörd visa tid med Unix -epoken, i binär! (https://en.wikipedia.org/wiki/Unix_timestamp) LED -multiplexen är enkel. Rader (4) ansluts till PIC -stiften genom strömbegränsande motstånd. Endast ett strömbegränsande motstånd används för varje rad eftersom endast en lysdiod per rad någonsin tänds. Lysdioderna körs på 20ma, med 56 ohm motstånd (56ohm @ 3 volt = 20ma). Lysdioderna kan köras högre eftersom de är multiplexerade, databladet listade något runt 40ma. Jag tycker att de är för ljusa med endast 20ma-multiplex. Kolumner (3) är anslutna till jord med NPN-transistorer. Transistorerna växlas med PIC -stift genom 1Kohm -motstånd. Multiplexen fungerar genom att jorda en kolumn med lysdioder genom transistorn samtidigt som man tänder rätt LED -rader för den kolumnen. Detta upprepas för varje kolumn i följd, vilket gör att matrisen verkar lysa kontinuerligt. PIC Timer0 driver multiplexen. Den räknas till 256 ändrar sedan radvärden och den jordade kolumnen. Transistor: NPN Transistor, NPN/ 32V/ 100mA, (Mouser #512-BCW60D $ 0,05).

Steg 2: LED -val

LED -val
LED -val
LED -val
LED -val

På den här klockan användes gula och röda lysdioder i storlek 1206 med ett strömbegränsande motstånd på 56 ohm. Färgerna valdes till låg kostnad. Röda, gula och orange lysdioder är cirka 10 cent vardera, medan blå lysdioder är 40 cent och högre. Dessutom är LED -blå helt klart coolt nu. Om du hittar några lila, låt mig veta.

Bilden visar de 5 LED -typerna jag provade. Mouser Artikelnummer Tillverkare Färgkostnad 859-LTST-C171KRKT Lite-On SMT LED Röd, Klar $ 0.130 859-LTST-C171KSKT Lite-On SMT LED Gul, Klar $ 0.130 859-LTST-C150KFKT Lite-On SMT LED Orange, Klar $ 0.130 638- 121SURCS530A28 Everlight LED SMD Red Water Clear $ 0.110 638-1121UYCS530A28 Everlight LED SMD Yellow Water Clear $ 0.110 Everlight rött och gult användes på prototypklockan. Jag gillar Lite-On rött och orange bättre, de kommer att användas på nästa klocka jag gör.

Steg 3: Gränssnitt/Knappar

Gränssnitt/Knappar
Gränssnitt/Knappar

En nördig klocka behöver ett nördigt gränssnitt. Kapacitiva beröringssensorer är allt raseri just nu, men kräver en hel del extra komponenter. Istället gick jag med en Darlington -transistorbaserad touch -sensor med stifthuvuden som kontaktpunkt. Vad är nördigare än en pin -header? Ingenting. Jag såg idén först här: (https://www.kpsec.freeuk.com/trancirc.htm):"Ett Darlington -par är tillräckligt känsligt för att reagera på den lilla ström som passerar din hud och det kan användas för att gör en touch-switch som visas i diagrammet. För denna krets som bara tänder en LED kan de två transistorerna vara alla lågeffekttransistorer för allmänt ändamål. 100 khm motståndet skyddar transistorerna om kontakterna är kopplade till en tråd. "A PNP -transistor lades till denna enkla design (i stället för lysdioden i diagrammet) så att den kunde ge en hög/låg effekt till PIC. Ett neddragningsmotstånd tillsattes mellan PIC-stiftet och marken för att förhindra falska knapptryckningar. Denna strömbrytare är solid state, vattentät och låg effekt - med den extra nördigheten hos stifthuvuden. Brytare avstängs med Timer2 på PIC. När en knapp trycks in startas Timer2 (8 bitars timer) med en 16 förskalare och 16 postskalare. På timer 2 avbryter PIC -kontrollerna för att se om knapparna fortfarande är nedtryckta. Efter två på varandra följande avbrott utan knapptryckning stoppas timern och knapparna konfigureras för ytterligare ingång. Den översta omkopplaren är ansluten till PIC -avbrottsstiftet. Inmatning på denna pin kan ta PIC ur viloläge. Detta låter oss använda en snygg energihanteringsteknik: PIC är i låg strömläge när skärmen inte används. Inmatning på knapparna väcker PIC och återupptar driften. Transistorer: Darlington Transistor, SOT-23, (Mouser #512-MMBT6427, $ 0,07). PNP-transistor, SOT-23, (Mouser #512-BCW89, $ 0,06).

Steg 4: Tid kvar

Tiden håller
Tiden håller

Mikrochip -appnot 582 beskriver de grundläggande principerna bakom en PIC -baserad klock med låg effekt. (Http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011057) Klockan är enkel och elegant. En 32.768 kHz klockkristall är ansluten till timer1 -oscillatorstiften på PIC. Timer1 är bra för detta eftersom det kan öka även när PIC sover. Timer1 är inställd för att räkna till 65536 (2 sekunder vid 32.768 kHz) och väcka PIC från viloläge med ett avbrott. När PIC vaknar, ökar tiden med två sekunder. PIC är bara aktiv och förbrukar en kort tid var några sekunder. Jag använde en billig kvartsur från Crystal. Jag menar att namnet Citizen kan ge min klocka legitimitet. CFS206 (12.5pf) har ungefär +/- 1.7 minuters noggrannhet per år (20ppm). Två 33pF -kondensatorer kompletterar den externa kristallkretsen. 33pF är förmodligen lite mycket, men det var tillgängligt lokalt till ett rimligt pris. En bättre kristall kan användas för mer exakt tid. Kristall: Citizen KHz Range Crystals, 32.768 KHZ 12.5pF, (mouser #695-CFS206-327KFB, $ 0.30). Kondensatorer: 2x33pF, 1206 SMD.

Steg 5: Spänningsmätare

Spänningsmätare
Spänningsmätare

Som om vi inte hade sjunkit till djupet av geekerie med en binär klocka, slår vi på en spänningsreferens och inmatningsstift för att göra en spänningsmätare. Spänningsreferensen är Microchip MCP1525. Detta är en 2,5 volt referens med ett arbetsområde på 2,7 till 10+ volt. På den visade klockan används TO-92-paketet, men framtida klockor kommer att använda ytmonteringsversionen (SOT-23). Referensen drivs av en PIC -stift så att den kan stängas av för att spara ström. Vid denna tidpunkt kan vi mäta upp till 2,5 volt med hjälp av PIC: s analoga digitala omvandlare. Vi tar detta ett steg längre och lägger till en resistorspänningsdelare till multimeteringången. Med två motstånd (100K/10K) delar vi ingångsspänningen med 11 vilket ger ett nytt ingångsområde på ~ 30 volt. Detta är en bra punkt som omfattar alla lågspänningar som vi sannolikt kommer att stöta på (1,2/1,5 volt batterier, 3 volts myntceller, 5 volt logik, 9 volt batterier och 12 volt strömskenor). Ett 22Kohm -motstånd kan ersättas med 10K -motståndet vilket ger ett mindre intervall men högre upplösning. Kalkylarket som ingår i den här instruktionsboken kan hjälpa dig att välja motståndsvärden. Grund- och mätprober ansluter till programmeringsrubriken på klockans baksida. MCP1525 Detaljer: https://www.microchip.com/stellent/idcplgidcplg? IdcService = SS_GET_PAGE & nodeId = 1335 & dDocName = sv019700

Steg 6: Programmera rubrik/externa anslutningar

Programmera rubrik/externa anslutningar
Programmera rubrik/externa anslutningar
Programmera rubrik/externa anslutningar
Programmera rubrik/externa anslutningar

Klockan är "programmerbar". En ICSP -rubrik tas ut på baksidan så att ny firmware kan installeras. Rubriken är en rad lågprofilerade honuttag som jag hittade i min lokala elektronikbutik. Samma sak kan uppnås genom att skära ett kvalitets DIP -uttag på halva långa vägen. Jag ansluter min ICSP-kontakt med en pin-header "gender-changer"-sätt in en bit pin-header i uttaget, anslut sedan ICSP-kontakten till stifthuvudet. Du behöver en ICSP -programmerare för att sätta ny programvara i klockan. En enkel JDM2 ICSP -programmerare ingår i Cadsoft Eagle -filerna.

När det inte används för programmering kan ICSP -rubriken användas för datainsamling, händelseloggning etc. Alla ICSP -stift är tillgängliga för användning, enligt tabellen nedan. Spänningsmätarens stift (stift 1/6) är ganska mycket avsett för den användningen på grund av spänningsdelaren. Multimeter - ADC, I/O, med motståndsdelare. (PIN2, PORTA0/AN0) MCLR - endast inmatningsstift. Schmitt triggeringång för bullriga signaler. (PIN1, RE3) Vcc - +3 volt Vss - jordstift Data - Ingång/utgång med avbrott vid ändring, valfri svag uppdragning (PIN27, RB6) Klocka - I/O med avbrott vid förändring, alternativ svag uppdragning (PIN28, RB7)

Steg 7: Firmware

Firmware
Firmware

Firmware skrevs med mikroBasic freeware -version. Nuvarande firmware är v0.1. Framtida firmwares kommer förmodligen att skrivas i C. Konfigurationsalternativ är inställda i firmware. De ska vara följande: MCLR - DISABLEDBODEN/BOREN - DISABLEDWDT - DISABLEDOscillator -Intern Osc, INGEN urkoppling. Jag kunde inte programmera 16F913 med min favorit PIC -programmeringsprogramvara (WinPIC800), men DL4YHS WinPIC fungerade bra (https://www.qsl.net/dl4yhf/winpicpr.html).v0.1Configuration/Menu System - Menyalternativ rullar över skärmen och väljs/avanceras med de två inmatningsknapparna. Tid - visar tiden i binär (standard när en knapp trycks ned). Klik - en räknare. Ibland finner jag själv att jag räknar. Trafik räknas, fågel räknas, vad som helst. 01/\/atch subs som en binär räknare. Klubbläge - Det verkliga värdet för varje klocka bestäms av dess "klubb" -läge. 01/\/atch använder en slumptalsgenerator för att blinka mönster på LED -displayen. Det är också möjligt att inkludera ordfragment med hjälp av det interna matrisfontbiblioteket (mer kommer). Hastigheten kan justeras med knapp 1. Det ultimata klubbuppgraderingspaketet skulle innehålla en temperatursensor som styr hastigheten för mönsterändring. När bäraren värms upp förändras mönstren snabbare. Volt - spänningsmätare. Visar för närvarande rå ADC -avläsning i 10 bitar. Kommer att uppgraderas till det verkliga voltvärdet i v0.2. Set - Ställ in tid. Exit - Exit meny, sätt PIC i viloläge.

Steg 8: Rullningsmenysystem

Scrolling Menysystem
Scrolling Menysystem

Rullningsmenysystem Funktioner nås via rullning menysystemet. Menyalternativen laddas som bitmappar i en array och rullar kontinuerligt "uppåt". Scrollen är baserad på en multipel av Timer0 mux -drivrutinen. Rullningsmenyn "tar slut" med hjälp av en multipel av Timer1 (sekundräknare) efter ca 10 sekunder. Menyalternativ (Använda klockan) (Detta gäller firmware -version 0.1) När ett nytt batteri sätts i klockan visas 'SET 'menyalternativ som standard. Tryck på knapp 2 för att gå till inställningsläget. Den aktuella tiden visas (12:11). Använd knapp 1 för att öka timmarna, tryck på knapp 2 för att gå vidare till nästa tidsenhet (timmar, 10 minuter, minuter). Tryck på knapp 2 efter att minuterna är inställda för att spara tid och återgå till rullningsmenyn. För att spara ström är displayen och PIC vanligtvis avstängda. Peka på knapp 1 för att väcka PIC och visa aktuell tid i 10 sekunder. Peka på knapp 2 medan tiden visas för att komma åt rullning menysystemet. Klockfunktionerna är tillgängliga via rullningsmenyn. Tryck på knapp 1 för att gå vidare till nästa menyalternativ, tryck på knapp 2 för att välja ett menyalternativ. Se det i aktion: https://www.youtube.com/embed/l_tApl3JmmMKnappfunktioner för varje menyalternativ beskrivs i tabellen Nedan. B1 och B2 är förkortningar av knapp 1 och knapp 2.

Steg 9: Firmware Roadmap

Firmware Roadmap
Firmware Roadmap

v0.2

En avslutningsbekräftelse/dialogruta. Inställningar-Utöka inställningsalternativen så att de inkluderar: Tid i tid/meny timeout (och ett läge som alltid är på). Ljusstyrka (driftcykel). Bläddra hastighet. Meny Font Upgrade -'E 'och' B 'ser riktigt dåliga ut, använd' e ',' b '. Flytta till 1Mhz eller 32.768khz oscillator (4MHz i v0.1). v0.3 Stoppur (tidsökning framåt) -Starter räkna sekunder, sedan minuter och timmar efter 15:59 visningsgräns. Timer/larm (tidsökning bakåt) -En dekrementeringstimer, alla lysdioder blinkar när timern når 0. EEPROM (loggningsvärden för flashminne) -Spara spänningar, räkningar, alternativ, stoppurstider osv för att blinka EEPROM -minne. -Logg antal dagar sedan batteribyte. Dessutom: antal timmar med display på. v0.4 Externa maskinvarufunktioner (med ICSP -rubrik): Händelseloggning vid avbrott. Cykelmätare/hastighetsmätare. Justerbar enhetsdisplay (binärt eller decimalteckensnitt).

Steg 10: PCB

PCB
PCB
PCB
PCB
PCB
PCB

PCB och krets är i örnformatet. Jag inkluderade också ett gäng bibliotek som jag använde för att göra tavlan som kan behövas.

Kretskortet är konstruerat med mestadels ytmonterade komponenter. Brädet gjordes med bläckstråle -transparenter på en fotopositiv tavla. Detta var mitt första ytmonterade bräda (både etsning och montering). Jag gjorde en enkelsidig bräda och använde bygeltrådar för spåren i bottenlagret. Brädan gjordes med tillverkning av Olimex i åtanke, så deras kontrollfil med 10millregel användes vid utformningen av brädet. Ingenting är fruktansvärt litet, men det är verkligen utmanande. Allt löddes för hand med ett järn på 10 euro, stickie-stick och ett starkt ljus. Ett förstoringsglas behövdes inte. Kristallen lämnades som en ytmonterad komponent. Metallburk är ett distinkt utseende och mycket mer identifierbart än en ytmonterad svart låda. Prototypen på bilden använder också en TO-92 spänningsreferens-det sista kretskortet indikerar en SOT-23-version som jag inte (ännu) hade till hands när jag gjorde kortet. Krets och kretskort finns i projektarkivet (Cadsoft Eagle -format - freeware -version www.cadsoft.de). Komponentplacering kan ses i PCB -filen. Jag gjorde också en PDF med det översta lagret speglat och kopierat flera gånger. Detta bör vara klart för toneröverföring eller fotoprocess. Reservdelar (genomgående hål) 32.768kHz Watch Crystal (0206 metallburk) Stifthuvud -x4 Programmeringsrubrik - 6 stift Dellista (ytmontering) SO -300 PIC16F1206 0.1uF kondensator 1206 33pf kondensatorer - x2 1206 LED (gul, röd, orange, etc) -x12 1206 Motstånd - 4x56 ohm 1206 Motstånd - 3x1Kohm 1206 Motstånd - 3x10Kohm 1206 Motstånd - 3x100Kohm SOT -23 NPN transistor (100ma eller mer) SOT -23 PNP transistor (allmänt ändamål) SOT -23 NPN Darlington transistor (allmänt ändamål), hfe på ~ 10000) SOT-23 MCP1525 Spänningsreferens (2,5 volt) Batteri CR2032 3v litium

Steg 11: Potta klockan

Potting the Watch
Potting the Watch
Potting the Watch
Potting the Watch
Potting the Watch
Potting the Watch

För att göra klockan lämplig för daglig användning behövde den ett fodral. Jag besökte AFF Materials (https://www.aff-materials.com/) för att köpa polyesterharts. En trevlig kille där föreslog att jag skulle använda en klar epoxi istället. Enligt honom krymper polyesterhartset ~ 5% vilket kan bryta anslutningar på kretskortet. Den klara epoxin krymper bara ~ 2%. Han föreslog också att gaser från polyestern kan skada komponenterna medan den härdar. Jag har aldrig testat med en klar epoxi tidigare, men jag gjorde några testgjutgods. Jag började med att gjuta några prover i en isbitbricka. Solrosfröolja, silikon smörjmedel och silikon cykelsmörjmedel testades som släppmedel. Ett prov gjordes utan släppmedel. Silikonsmörjmedlen pärlorade i formens botten och lämnade fickor på epoxin. Kontrollen suger till botten av formen. Oljan fungerade ganska bra, men efterlämnade en liten rest i epoxyn. Därefter behövde jag veta hur jag skulle göra en gjutning i flera lager med detta material. Ett polyesterharts hälls vanligtvis i lager. Ett första skikt får stelna (cirka 15 minuter) till en gel. Ett föremål placeras på det första lagret och ett andra lager av färskt harts hälls ovanpå. Arbetstiden för min epoxi är cirka 60 minuter. Jag hällde ett första lager och kontrollerade det efter 30 minuter - fortfarande mjukt. Efter cirka 1 timme och 15 minuter hade det första lagret stelnat tillräckligt för att placera ett föremål på det. För detta test lägger jag LED -testkortet sett i steg 2 med framsidan nedåt på det första lagret och täckt med ett lager färsk epoxi. Detta fungerade utmärkt, lysdioderna dök inte upp av brädet. Jag drog slutsatsen här att om det inte finns en ordentlig form är den klaraste ytan jag kan göra luft/epoxigränssnittet. Den "toppen" av gjutgods har en betydande fel. Miskusen är begränsad till ytterkanten av höljet och kan enkelt tas bort med en slipmaskin. För det första riktiga testet behövde jag en rektangulär plastform. Det bästa alternativet jag hittade var en "smeer kaas" -behållare. Det var inte perfekt, så jag gjorde det mindre med några lager tejpförpackad foamcore. Detta var inte en stjärnform, men att välja toppen som displayytan gav mig lite utrymme. Formen torkades lätt med olja på en pappershandduk. Jag släppte hällproceduren i flera lager ovanifrån. Jag lödde ledningar från myntcellsbatterihållaren till kretskortet. Cellhållaren varmlimmades (ok, klibbig) till botten av kretskortet. Batterihållaren var fylld med stickie-tack, och programmeringshuvudet skyddades med ännu mer stickie tack (plasticine skulle också fungera bra). Detta placerades sedan, med framsidan uppåt, i formen. Klibbstickan som skyddade batteriet och huvudet pressades fast i formens botten och förankrade klockan. Klar epoxi hälldes i formen tills den täckte klockan. Stifthuvudena var fortfarande ganska långa, men kan skäras efter att epoxin torkat. Klockan släpptes från formen efter cirka 36 timmar. Skyddskittet avlägsnades med en skruvmejsel. Kanterna släts ut med en borrpressborr. Klockan var gjuten lite stor för att bäras som en armbandsur. Jag kan försöka klippa ner den om jag hittar en bandsåg. För tillfället blir det en fickur. Tejp-över-foamcore gav en sval konsistens och ultraklar yta. Nästa gång ska jag försöka göra hela formen med hjälp av detta material, något mer i närheten av armbandsurets storlek.

Steg 12: Ytterligare förbättringar

Ytterligare förbättringar
Ytterligare förbättringar

Förutom de programuppdateringar som beskrivs i färdplanen finns det flera förbättringsområden.

Hårdvara En 4x5 -matris med 0805 lysdioder skulle ta samma plats som den befintliga 1206 -gruppen. Jag köpte flera typer av 0805 lysdioder för att prova i framtida mönster. Den tidigare nämnda temperatursensorn kan läggas till för att skapa ett avancerat uppgraderingspaket i "club-mode". Kretskortet designades för tillverkning av Olimex som en dubbelsidig skiva (~ $ 33). De fungerar direkt från Eagle -filer och paneler (gör flera mindre brädor från ett stort kort) gratis. Jag har inte gjort det här, men jag skulle köpa en om någon annan lät göra dem. Programvara Det finns mycket extra utrymme på PIC. En hastighetsmätare/vägmätare är planerad. Spel kan läggas till.

Rekommenderad: