Lav en digital "meow" fra analogt ur: 7 trin (med billeder)

Lav en digital "meow" fra analogt ur: 7 trin (med billeder)

Indholdsfortegnelse:

Anonim

Er dit analoge ur bare ikke nok ting? Vil du lave digitale ting med et analogt ur?

Denne vejledning viser dig, hvordan du laver et Kit Cat Clock-spil et "meow" lydklip, med præcise tidsintervaller, ved at bruge Atmega 328P-PU'en via Arduino Uno-udviklerkortet. I mit eksempel vil munden forekomme hver time. Dette behøver heller ikke være et Kit-Cat ur, eller denne ide kan virke med andre ure, der bruger en magnetmotor.

Forudsætninger (spring hvis du allerede er ekspert i alt)

Projektet omfatter mange mellemliggende til avancerede færdigheder som brænding af bootloader og lodning af ledninger. Derfor er der brug for nogle nødvendige viden og færdigheder, før man fortsætter. Jeg vil antage at du ved hvordan eller i det mindste vil være parat til at gøre følgende:

Burning en bootloader på Atmel328P-PU (medmindre din allerede har en).

Uploader "skitser" på Atmel328P-PU via Arduino

Indtastning af kommandoer i en terminalemulator eller kommandoprompt (windows)

Brug af loddejern til at skabe forbindelser mellem komponenter.

Mulig anvendelse af et bor eller Dremel værktøj til trimning / skæring af plastdele og kedelige huller.

Materialer

Arduino Uno R3 x 1

Brødbræt x 1

Jumper Wire (nok stykker)

modstande:

350 ohm x 1

150 ohm x 1

220 Ohm x 1

280 Ohm x 1

10K Ohm x 1

330 Ohm x 1 (valgfrit, hvis du vil have LED'en, mens du bruger Arduino på Breadboard Setup)

kondensatorer:

100 uF x 1

10 uF x 1

22 pF x 2 (kan være valgfri)

16 Mhz krystaloscillator

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

7,5 V AC-adapter (jeg brugte Vtech-mærket fundet hos Toys R Us) x 1

7805 Spændingsregulator x 1

Loddejern og loddemetal

Protoboard (eller noget andet projektplan, der vil være lille nok til at passe til uret)

super lim

Varmekrympning (valgfri)

Hot Limpistolen (valgfri)

Takane Quartz Clock (forudsat at du skal udskifte standard en indeni Kit Cat, som jeg gjorde)

Hall effekt sensor x 1

Jeg brugte SS41 familien af ​​Hall effekt sensorer. Disse sensorer er følsomme nok til at detektere det forholdsvis svage magnetfelt fra urmagnetmotoren. Den specifikke, jeg købte, findes her

forsyninger:

Trin 1: Generel projektoversigt:

Et interessant aspekt ved dette projekt bruger analoge enheder (i dette tilfælde et analogt ur) til at interagere med Atmel 328P-PU's digitale verden. Arduino er nok en af ​​de enkleste måder at opnå dette på. Jeg vil bruge den typiske urmotor, der findes i de klassiske Kit Cat-klokker for at generere en digital puls, der vil foder til Atmel-chip. Årsagen til, at dette vil fungere, er, at urmotoren anvender en permanent magnet, der befinder sig i nærheden af ​​en spole, for at skabe det mekaniske drejningsmoment, der er nødvendigt for at dreje urens hænder. Jeg vil drage fordel af dette magnetfelt ved at bruge en Hall Effect sensor til at detektere den magnetiske flux fra urmotor. Sensoren udsender en digital HIGH, når en af ​​polerne fra magneten vender mod sensoren, og udsender derefter en LOW, når den modsatte pol er nær sensoren. Denne polovergang foregår hvert sekund eller har en frekvens på 1 Hz, og det er grunden til, at dette tjener som en ideel motor til kørsel af urhænder.

Bemærk: Sensoren berører ikke magneten, den er bare meget tæt på den. Billederne viser, hvor tæt jeg var nødt til at placere sensoren for at få aflæsninger.

Billederne her viser indersiden af ​​det aktuelle ur og magnetmotoren til højre side. Typen af ​​ur kaldes en "Takane Quartz" og de er ret almindelige i billige analoge ure.

Når vi har en stabil puls fra sensoren, kan alle slags ting gøres digitalt, og det er kun begrænset til din fantasi om hvad du kan gøre. I denne tutorial vil jeg simpelthen lave en tæller, der tæller urpulserne (fra Hall-sensoren), og efter afslutningen af ​​tælleren spiller der et "klip" lydklip.

Det første skridt indebærer montering af Hall-sensoren tæt nok til magnetmotoren, så du kan få en god læsning. Jeg var nødt til at placere sensoren meget tæt på min magnetmotor for at få en udgang. Du kan teste sensoren ved at vedhæfte noget som en LED til sensorens udgangsstik og derefter tænde for uret. Hvis dette virker, skal lysdioden blinke hvert andet sekund. Dette skyldes, at udgangen kun er HØJ, mens en af ​​polerne vender mod sensoren (lad os sige nordpolen som et eksempel); Når den modsatte pol (syd) vender mod sensoren, er udgangen LOW.

Når du har bestemt en passende placering og afstand for at få dine aflæsninger, skal du begynde at tænke på, hvordan du monterer det permanent. Jeg valgte at bruge super lim til at holde sensoren på plads. Jeg overvejede også placeringen på grund af hvor ryggenskabet ville være. Jeg var nødt til at skære et lille rektangulært hul ud, så sensorstifterne ville være tilgængelige. Du bør bestemme, hvad der fungerer bedst, selvom disse ure næsten er ens, undertiden er layoutet lidt anderledes inde, og placeringen af ​​sensoren kan variere afhængigt af det bestemte ur, du har.

Trin 2: Loddetråd til sensorens indgangspinner

Nu er det tid til at lodde stifterne til ledning. Grunden til det gjorde jeg af to grunde: Først vil du være i stand til at teste sensoren, mens du fortsætter med at arbejde, og også fordi du vil bruge disse ledninger, når du forbinder dem med dit brødbræt og endelig protobordet. Bemærk, at ved hjælp af forskellige farvede ledninger kan det lettere, når du hurtigt skal identificere tappene. Det var det jeg gjorde.

Pinout-konfiguration kan findes på dette websted

Trin 3: Klargør lydfilen

Hvis du allerede ved, hvordan man konverterer en.WAV-fil til en C-fil, kan du springe over eller skimme gennem dette trin.

Nu hvor sensoren er fastgjort til de passende stifter på brødbrættet, skal du uploade lydskitse på Atmel328P. Men først skal der foretages nogle ændringer og "massere" først. Her kan du lave nogle af dine egne ændringer, og jeg vil gå ind i nogle (men ikke alle) detaljerne vedrørende brugen af ​​Audacity og wav2c programmer. Du skal fortsætte og åbne den kode, jeg har leveret i din Arduino IDE. Når du åbner skitsen i Arduino IDE, er den første fane en lille ændring af PCM-lydskriften skrevet af Michael Smith, originalen findes på Arduino-webstedet:

playground.arduino.cc/Code/PCMAudio

Audacity er et lydredigeringsprogram. Det er meget kraftigt og tillader en.wav-fil, der eksporteres som en 8-bit mono, usigneret.wav-fil. Dette er nødvendigt for at få filstørrelsen reduceret og for at maksimere kompatibiliteten med lydafspilningsskissen. Du kan muligvis arbejde rundt forskellige bithastigheder og størrelser, men jeg har ikke eksperimenteret med det. Vi bruger kun de nødvendige funktioner i Audacity til at få jobbet gjort.

Wav2c, som navnet antyder, kan konvertere en.wav-fil til en C-fil. Dette er også nødvendigt, fordi.wav-filen i sig selv er for stor til at passe i hukommelsen til 328P-PU'en. Med denne skrivning kan du downloade kilden direkte fra github. Du kan også være i stand til at få kompilerede versioner fra andre hjemmesider. Uanset hvad skal du bruge det eller et andet lignende program til konverteringsprocessen.

github.com/olleolleolle/wav2c

Trin 4: Brug af Audacity og Wav2c

Målet med lydfilkonvertering er at tage en lydfil (.wav) og omdanne den til et nyttigt C-header-fildokument. Dette gør det muligt for arduino at bruge oplysningerne i headerfilen til at blive udgivet som lyd gennem en højttaler.

-Første åbent i filen i Audacity.

- Ændrer projektfrekvensen til 8000 Hz (placeret i nederste venstre hjørne).

-Vælg derefter "spor" i menuen og vælg "resample".

-Næst gør du en eksport> andre ukomprimerede filer.

-Under muligheder vælg 8-bit underskrevet.

Dette vil forberede filen til næste trin nedenfor, hvilket er konverteringen til C-filen.

-Næst åbne en terminal og skift til den samme mappe som filen.

-Run den følgende kommando (sox) for at trimme halen (forudsat at der er en)

-Kør derefter den endelige kommando for faktisk at gøre konverteringen

(bemærk at en kopi af den oprindelige fil faktisk bliver konverteret)

-Næst, åbner du arduino IDE og tilføjer en ny tom fane (knappen for at tilføje en ny fane er længst til højre for Arduino IDE).

-Rename fanen til samme navn som header filen.

-Copy og indsæt indholdet i fanen

Trin 5: Test din lyd

Nu hvor du har filen sounddata.h klar, og du har verificeret Arduino-skitsen, skal du nu uploade den til din chip. Jeg brugte Arduino bordet direkte til alle mine første test, men brugte senere "Arduino on Breadboard" konfigurationen til min resterende test. Jeg har vedhæftet diagrammet her.

Hvis alt går godt, skal du tænde dit ur og teste det for at sikre, at det tæller pulserne fra uret og derefter leverer output. Bemærk: Da jeg oprindeligt gjorde dette, satte jeg lydafspilningsbænken i hver 60 sekunder, så jeg ikke behøvede at vente en hel time for at se om den virkede, så ændrede jeg tælleren senere til 3600 sekunder eller 1 time). For at ændre meowintervallet skal du finde kodestykket nær de sidste linjer og finde variablen clockCount. Skift det til den værdi, du ønsker.

Trin 6: Lodning Alt til et mere permanent, kompakt design

Nu for den sjove del … lodning alle de vigtige dele fra dit brødbræt til en mere kompakt protoboard. Du behøver ikke alt som LED output eller reset-knappen (forudsat at du havde en fra Arduino på Breadboard kredsløb). Der er mange bedre måder at gøre dette på, men hvis du har begrænsede forsyninger, er protoboard nok din bedste indsats. Mange mennesker laver nu deres egne PCB-ætsning og behandling. Hvis du kan gøre det, så gør det på alle måder, fordi det er meget bedre end en protoboard.

Du skal også tilslutte din vekselstrømsadapter til de positive og negative knudepunkter på protobordet, hvor den møder spændingsregulatorstifterne. Jeg brugte Vtech 7,5 volt modellen. Disse er omkring 10 bucks på Target, og 12 hos Toys R Us. Eller du kan bruge noget lignende, som du har liggende rundt i huset. Forsigtig: Du bør forsøge at holde spændingsforskellen mellem regulatoren og adapteren til et minimum dog, fordi det vil varme op ellers. Hvis forskellen er stor, skal du sætte en kølelegeme på regulatoren for at hjælpe med at forsvinde varmen. Spændingsforskellen mellem 7805 og Vtech vekselstrømsadapteren er kun 2,5 volt ved 300mA, men du skal stadig placere en lille køleboks på den.

Bemærk: Sørg for at du er glad / tilfreds med skitsen på Atmega-chippen, fordi den en gang er loddet på tavlen, vil du ikke kunne omprogrammere den.

Bemærk: Jeg brugte også en dremel til at lave et lille hul i bunden af ​​uret så, at netadapterkablet kunne passe perfekt. Jeg har også brugt den til andre forskellige ting, mens du ændrer uret, som trimning væk skarpe kanter og bare rydder indersiden generelt.

Trin 7: Organiser alt og monter det inde i uret

Når først alle ledninger og komponenter er korrekt loddet, er det nu tid til at organisere ledningerne og beslutte om korrekt placering af brættet inde i Kit Cat-huset. Det største problem her er at placere alt på et sted, der ikke vil forstyrre bevægelsen af ​​hale og øjne. Jeg forstod heller ikke, hvor svært at passe i højttaleren ville være, så jeg var nødt til at bore nogle huller for at hjælpe med at montere højttaleren på et sted, der ville hæmme hale motorarmaturen.

At finde et sted til bestyrelsen kan være vanskelig og kan kræve nogle forsøg og fejl. Jeg satte mig på et sted til venstre i nærheden af ​​batterihuset. Jeg brugte derefter en varm limpistol på kanten af ​​brættet for at holde det på plads. Du kan finde trækbindere eller lynlister, der er nyttige til at organisere og gruppere ledningerne pænt.

Uanset hvilken teknik du beslutter dig for at gøre, er dette op til dig, fordi du klarer at passe alt inde i uret, afhænger af dit ur og mængden af ​​ting, der går ind i det.

Finalist i

Sensorer Contest