Lag en digital "meow" fra analogt klokke: 7 trinn (med bilder)

Lag en digital "meow" fra analogt klokke: 7 trinn (med bilder)

Innholdsfortegnelse:

Anonim

Er din analoge klokke ikke akkurat nok ting? Vil du gjøre digitale ting med en analog klokke?

Denne opplæringen vil vise deg hvordan du får et Kit Cat Clock til å spille et "meow" lydklipp, med presise tidsintervaller, ved hjelp av Atmega 328P-PU via Arduino Uno-utviklingsbrettet. I mitt eksempel vil mjøten forekomme hver time. Dette trenger ikke å være en Kit-Cat klokke heller, denne ideen kan fungere med andre klokker som bruker en magnetmotor.

Forutsetninger (hopp om du allerede er ekspert i alt)

Prosjektet omfatter mange mellomliggende til avanserte ferdigheter som å brenne en oppstartslaster og lodding av ledninger. Derfor er det nødvendig med noen nødvendig kunnskap og ferdigheter før du fortsetter. Jeg vil anta at du vet hvordan, eller vil i det minste være forberedt på å gjøre følgende:

Burning en oppstartslaster på Atmel328P-PU (med mindre din allerede har en).

Laster opp "skisser" på Atmel328P-PU via Arduino

Angi kommandoer i en terminalemulator eller ledetekst (Windows)

Bruke loddejern for å få tilkoblinger mellom komponenter.

Mulig bruk av et bor eller Dremel verktøy for trimning / skjæring av plastdeler og kjedelige hull.

materialer

Arduino Uno R3 x 1

Brødbrett x 1

Jumper Wire (nok stykker)

motstander:

350 ohm x 1

150 ohm x 1

220 ohm x 1

280 ohm x 1

10K ohm x 1

330 Ohm x 1 (valgfritt hvis du vil bruke LED mens du bruker Arduino på Brettbrettoppsett)

kondensatorer:

100 uF x 1

10 uF x 1

22 pF x 2 (kan være valgfritt)

16 Mhz Crystal Oscillator

0,5 Watt liten høyttaler (ca. 50,8 mm diameter) x 1

7,5 Volt vekselstrømsadapter (jeg brukte merket Vtech funnet på Toys R Us) x 1

7805 Spenningsregulator x 1

Loddejern og loddemetal

Protoboard (eller noen annen endelig prosjektbrett som vil være liten nok til å passe med klokkehuset)

superlim

Varmekrympe (valgfritt)

Hot Lim pistol (valgfritt)

Takane Quartz Clock (forutsatt at du må erstatte standard en i Kit Cat, som jeg gjorde)

Hall effekt sensor x 1

Jeg brukte SS41 familien av Hall effekt sensorer. Disse sensorene er følsomme nok til å oppdage det relativt svake magnetfeltet fra klokkemagnetmotoren. Den spesifikke jeg kjøpte finner du her

forsyninger:

Trinn 1: Generell prosjektoversikt:

Et interessant aspekt ved dette prosjektet er å bruke analoge enheter (i dette tilfellet en analog klokke) for å kommunisere med Atmel 328P-PUs digitale verden. Arduino er sannsynligvis en av de enkleste måtene å oppnå dette. Jeg vil bruke den typiske klokkeautomaten som finnes i de klassiske Kit Cat-klokkene for å generere en digital puls som vil mate inn Atmel-brikken. Årsaken til at dette vil fungere, er at klokmotoren bruker en permanent magnet som befinner seg i nærheten av en spole, for å skape det mekaniske dreiemomentet som er nødvendig for å dreie klokkehendene. Jeg vil dra nytte av dette magnetfeltet ved å bruke en Hall Effect-sensor for å detektere den magnetiske fluxen fra klokka motoren. Sensoren vil sende en digital HØY når en av polene fra magneten vender mot sensoren, og deretter utgir en LOW når motsatt pol er nær sensoren. Denne poleovergangen skjer hvert sekund, eller har en frekvens på 1 Hz, og er grunnen til at dette fungerer som en ideell motor for kjøring av klokkehender.

Merk: Sensoren berører faktisk ikke magneten, den er bare veldig nær den. Bildene viser hvor nær jeg var nødt til å plassere sensoren, for å få lesinger.

Bildene her viser innsiden av den faktiske klokken og magnetmotoren til høyre side. Typen av klokke kalles en "Takane Quartz" og de er ganske vanlig i billige analoge klokker.

Når vi har en jevn puls som kommer fra sensoren, kan alle slags ting gjøres digitalt, og egentlig er det bare begrenset til fantasien din på hva du kan gjøre. I denne opplæringen vil jeg bare lage en teller som teller klokkeimpulser (fra Hall-sensoren), og etter å ha fullført tellingen, spiller det et "mow" lydklipp.

Det første trinnet innebærer å montere Hall-sensoren nær nok til magnetmotoren, slik at du får en god lesning. Jeg måtte plassere sensoren veldig nær min magnetmotor for å få en utgang. Du kan teste sensoren ved å feste noe som en LED til utgangsspenningen til sensoren og deretter slå på klokken. Hvis dette virker, skal lysdioden blinke hvert andre sekund. Dette skyldes at utgangen bare er HØY mens en av polene vender mot sensoren (la oss si nordpolen som et eksempel); Når motsatt stolpe (sør) vender mot sensoren, er utgangen LOW.

Når du har bestemt deg for en passende plassering og avstand for å få lesingene dine, bør du begynne å tenke på hvordan du monterer det permanent. Jeg valgte å bruke super lim for å holde sensoren på plass. Jeg vurderte også plasseringen på grunn av hvor bakkassen ville være. Jeg måtte kutte ut et lite rektangulært hull slik at sensortappene ville være tilgjengelige. Du bør bestemme hva som fungerer best, selv om disse klokkene er nesten like, noen ganger er oppsettet litt annerledes inne, og plasseringen av sensoren kan variere avhengig av hvilken klokke du har.

Trinn 2: Loddingstråd til sensorens inngangspinner

Nå er det på tide å lodde tappene til ledningen. Grunnen til at jeg gjorde dette var av to grunner: Først vil du være i stand til å teste sensoren mens du fortsetter å jobbe, og også fordi du vil trenge de ledningene når du kobler dem til brødbordet og til slutt protobordet. Merk at bruk av forskjellige fargetråd kan gjøre det enklere når du må identifisere tappene raskt. Det var det jeg gjorde.

Pinout konfigurasjon kan bli funnet på dette nettstedet

Trinn 3: Klargjøre lydfilen

Hvis du allerede vet hvordan du konverterer en.WAV-fil til en C-fil, kan du hoppe over eller skumre gjennom dette trinnet.

Nå som sensoren er festet til de riktige pinnene på breadboard, må du laste opp lydskissen på Atmel328P. Men først må noen endringer og "massere" gjøres først. Det er her du kan gjøre noen av dine egne modifikasjoner, og jeg vil gå inn i noen (men ikke alle) detaljene angående bruk av Audacity og wav2c-programmer. Du bør gå videre og åpne koden som jeg har gitt i din Arduino IDE. Når du åpner skissen i Arduino IDE, er den første kategorien en liten endring av PCM-lydskissen skrevet av Michael Smith, originalen finnes på Arduino-siden:

playground.arduino.cc/Code/PCMAudio

Audacity er et lydredigeringsprogram. Det er veldig kraftig og lar en.wav-fil eksporteres som en 8-bit mono, usignert.wav-fil. Dette er nødvendig for å få filstørrelsen redusert og for å maksimere kompatibiliteten med lydavspillingsskissen. Du kan kanskje jobbe rundt forskjellige bithastigheter og størrelser, men jeg har ikke eksperimentert med det. Vi vil bare bruke de nødvendige funksjonene i Audacity for å få jobben gjort.

Wav2c, som navnet antyder, kan konvertere en.wav-fil til en C-fil. Dette er også nødvendig fordi.wav-filen i seg selv er for stor til å passe inn i minnet til 328P-PU. Med denne skrivingen kan du laste ned kildekoden direkte fra github. Du kan også være i stand til å få kompilerte versjoner fra andre nettsteder. Uansett bør du bruke det eller et annet lignende program for konverteringsprosessen.

github.com/olleolleolle/wav2c

Trinn 4: Bruke Audacity og Wav2c

Målet med lydfilkonvertering er å ta en lydfil (.wav) og omforme den til et nyttig C-headerfildokument. Dette gjør det mulig for arduino å bruke informasjonen i headerfilen som skal sendes ut som lyd gjennom en høyttaler.

-Først åpne i filen i Audacity.

- Endre prosjektets hastighet til 8000 Hz (plassert i nederste venstre hjørne).

-Velg deretter "spor" fra menyen og velg "resample".

-Nei gjør du en eksport> andre ukomprimerte filer.

-Under alternativer velg 8-bits signert.

Dette vil forberede filen til neste trinn under, som er konvertering til C-fil.

-Neste åpne en terminal og bytt til samme katalog som filen.

-Regg den følgende kommandoen (sox) for å trimme halen (forutsatt at det er en)

-Vi kjør den endelige kommandoen for å faktisk gjøre konverteringen

(Legg merke til at en kopi av den opprinnelige filen faktisk blir konvertert)

-Neste, åpne arduino IDE og legg til en ny tomt fane (knappen for å legge til en ny fane er helt til høyre på Arduino IDE).

-Registrer fanen til samme navn som headerfilen.

-Copy og lim inn innholdet i kategorien

Trinn 5: Teste lyden

Nå som du har sounddata.h-filen klar, og du har bekreftet Arduino-skissen, bør du nå laste den opp til din chip. Jeg brukte Arduino-bordet direkte for alle mine første tester, men brukte senere "Arduino on Breadboard" -konfigurasjonen for min gjenværende test. Jeg har vedlagt diagrammet her.

Hvis alt går bra, slå på klokken din og test den for å forsikre deg om at det teller pulser fra klokken og deretter leverer utgang. Merk: Når jeg opprinnelig gjorde dette, satte jeg lydavspillingsdisken i hvert 60 sekund slik at jeg ikke behøvde å vente en hel time for å se om det virket, da endret jeg disken senere til 3600 sekunder eller 1 time). For å endre meowintervallet, finn koden av kode i nærheten av de siste linjene og finn klokkenCount-variabelen. Endre det til hvilken verdi du vil ha.

Trinn 6: Lodde alt for en mer permanent, kompakt design

Nå for den morsomme delen … lodding alle viktige deler fra brødbordet til en mer kompakt protobord. Du trenger ikke alt som LED-utgangen eller tilbakestillingsknappen (forutsatt at du hadde en fra Arduino på Breadboard-kretsen). Det er mye bedre måter å gjøre dette på, men hvis du har begrensede forsyninger, er protoboard trolig din beste innsats. Mange mennesker gjør nå sitt eget PCB-etsning og behandling. Hvis du kan gjøre det, så gjør det, for det er mye bedre enn en protoboard.

Du må også koble strømadapteren til de positive og negative nodene til protobordet der den møter spenningsregulatorstifterne. Jeg brukte Vtech 7,5 volt-modellen. Disse er omtrent 10 dollar på Target, og 12 på Toys R Us. Eller du kan bruke noe lignende som du har ligget rundt i huset. Forsiktig: Du bør forsøke å holde spenningsforskjellen mellom regulatoren og adapteren til et minimum, skjønt, fordi det vil varme opp ellers. Hvis forskjellen er stor, bør du sette en kjøleribbe på regulatoren for å bidra til å spre varmen. Spenningsforskjellen mellom 7805 og Vtech AC-adapteren er bare 2,5 volt ved 300mA, men du bør fortsatt legge en liten kjøleboks på den.

Merk: Pass på at du er glad / fornøyd med skissen på Atmega-brikken, fordi en gang den er loddet på brettet, vil du ikke kunne programmere det på nytt.

Merk: Jeg brukte også en dremel til å lage et lite hull på bunnen av klokkehuset, slik at strømadapterledningen skulle passe perfekt. Jeg brukte det også for andre forskjellige ting mens du endret klokken, som trimmet bort skarpe kanter og bare rydder opp innsiden generelt.

Trinn 7: Organiser alt og sett det inn i klokken

Når du har alle ledninger og komponenter riktig loddet, er det nå på tide å organisere ledninger og bestemme riktig plassering av brettet inne i Kit Cat-huset. Hovedproblemet her er å plassere alt på et sted som ikke vil forstyrre bevegelsen av halen og øynene. Jeg skjønte heller ikke hvor vanskelig det var å snakke i høyttaleren, så jeg måtte bore noen hull for å hjelpe med å montere høyttaleren på et sted som ville hindre hale motorarmaturen.

Å finne et sted for styret kan være vanskelig og kan kreve noen prøving og feiling. Jeg satte meg på et sted til venstre, nær batterihuset. Jeg brukte en varm limpistol på kantene på brettet for å holde den på plass. Du kan finne trekkbinder eller zip-bånd som er nyttige for å organisere og gruppere ledningene pent.

Uansett hvilken teknikk du bestemmer deg for å gjøre dette, er opp til deg, fordi du klarer å passe alt inne i uret, vil avhenger av klokken din og mengden ting som går inn i den.

Finalist i

Sensors Contest