Padarykite skaitmeninį „miau“ iš analoginio laikrodžio: 7 žingsniai (su nuotraukomis)

Padarykite skaitmeninį „miau“ iš analoginio laikrodžio: 7 žingsniai (su nuotraukomis)

Turinys:

Anonim

Ar jūsų analoginis laikrodis tiesiog nedaro pakankamai daiktų? Norite daryti skaitmeninius dalykus su analoginiu laikrodžiu?

Ši pamoka parodys, kaip padaryti „Kit Cat Clock“ žaisti „miau“ garso įrašą, tiksliai nustatytu laiku, naudojant „Atmega 328P-PU“ per „Arduino Uno“ plėtros plokštę. Mano pavyzdyje manow'as įvyksta kas valandą. Tai taip pat neturi būti „Kit-Cat“ laikrodis, ši idėja gali veikti su kitais laikrodžiais, kurie naudoja magnetinį variklį.

Prielaidos (praleiskite, jei jau esate viskas ekspertas)

Projektas apima daugelį tarpinių ir pažangių įgūdžių, pvz., Įkrovos įkroviklio ir laidų litavimo. Todėl prieš tęsiant reikia žinių ir įgūdžių. Aš manau, kad žinote, kaip, arba bent jau būsite pasiruošę atlikti šiuos veiksmus:

Įkrovos įkroviklio įdėjimas į „Atmel328P-PU“ (nebent jūsų jau turite).

Įkelkite „eskizus“ į „Atmel328P-PU“ per „Arduino“

Komandų įvedimas į terminalo emuliatorių arba komandų eilutę (langai)

Naudojant litavimo geležį, norint jungtis tarp komponentų.

Galimas gręžimo arba „Dremel“ įrankio naudojimas plastikinių dalių apipjaustymui / pjovimui ir gręžimo angoms.

Medžiagos

Arduino Uno R3 x 1

Duonos skydelis x 1

Jumper viela (pakankamai vienetų)

Rezistoriai:

350 omų x 1

150 omų x 1

220 omų x 1

280 omų x 1

10K Ohm x 1

330 omų x 1 (pasirinktinai, jei norite, kad šviesos diodas, naudojant „Arduino“, būtų naudojamas „Breadboard Setup“)

Kondensatoriai:

100 uF x 1

10 uF x 1

22 pF x 2 (gali būti neprivaloma)

16 Mhz Crystal Oscillator

0,5 W mažas garsiakalbis (maždaug 50,8 mm skersmens) x 1

7,5 V įtampos kintamosios srovės adapteris (naudoju Vtech prekinį ženklą „Toys R Us“) x 1

7805 Įtampos reguliatorius x 1

Lituoklis ir lydmetalis

„Protoboard“ (arba kita galutinė projekto lenta, kuri bus pakankamai maža, kad tilptų su laikrodžių dėklu)

Super klijai

Šilumos susitraukimas (pasirinktinai)

Karšto klijų pistoletas (neprivaloma)

„Takane Quartz Clock“ (darant prielaidą, kad reikia pakeisti numatytąjį „Kit Cat“ viduje, kaip ir aš)

Salės efektų jutiklis x 1

Aš naudoju SS41 Hall efektų jutiklių šeimą. Šie jutikliai yra pakankamai jautrūs, kad aptiktų santykinai silpną magnetinio lauko iš laikrodžio magneto variklį. Konkrečią, kurį įsigyjau, galima rasti čia

Prekės:

1 veiksmas: bendroji projekto apžvalga:

Įdomus šio projekto aspektas yra analoginių prietaisų (šiuo atveju analoginio laikrodžio) naudojimas, kad galėtų bendrauti su „Atmel 328P-PU“ skaitmeniniu pasauliu. Arduino yra vienas iš paprasčiausių būdų tai pasiekti. Aš naudosiu tipinį laikrodžių variklį, kuris randamas klasikiniuose „Kit Cat“ laikrodžiuose, kad generuotumėte skaitmeninį impulsą, kuris įeis į „Atmel“ lustą. Taip bus, nes laikrodžio variklis naudoja nuolatinį magnetą, esantį netoli ritės, kad sukurtų mechaninį sukimo momentą, reikalingą laikrodžio rankoms sukti. Aš naudosiu šį magnetinį lauką, naudojant „Hall Effect“ jutiklį, kad aptiktų magnetinio srauto iš laikrodžio variklio. Jutiklis išeina skaitmeninį AUKŠTĮ, kai vienas iš magneto polių atsidurs jutiklyje, o tada išvestis žemas, kai priešingoji polius yra šalia jutiklio. Šis polių perėjimas vyksta kas antrą kartą arba yra 1 Hz dažnis ir yra priežastis, kodėl tai yra idealus variklis laikrodžio rankoms vairuoti.

Pastaba: jutiklis iš tiesų neliečia magneto, jis yra labai arti jo. Paveikslėliai rodo, kiek reikia, kad daviklis būtų įdėtas, kad gautumėte rodmenis.

Čia pateiktos nuotraukos rodo tikrojo laikrodžio vidų ir magnetinį variklį į dešinę. Laikrodžio tipas vadinamas „Takane Quartz“ ir yra gana paplitęs pigiuose analoginiuose laikrodžiuose.

Kai turėsime nuolatinį impulsą, gaunamą iš jutiklio, visi dalykai gali būti atliekami skaitmeniniu būdu, ir iš tikrųjų tai yra tik jūsų vaizduotė dėl to, ką galite padaryti. Šioje pamokoje aš tiesiog padarysiu skaitiklį, kuris suskaičiuoja laikrodžių impulsus (iš Hall jutiklio), o baigus skaičiavimą, atkuria „meow“ garso įrašą.

Pirmasis žingsnis apima Hall jutiklio pritvirtinimą prie magneto variklio, kad galėtumėte gauti gerą skaitymą. Jutiklį turėjau labai arti mano magneto variklio, kad gautumėte išėjimą. Jutiklį galite išbandyti prijungdami kažką panašaus į šviesos diodą prie jutiklio išvesties kaiščio ir tada įjunkite laikrodį. Jei tai veikia, LED turi mirksėti kas antrą sekundę. Taip yra todėl, kad išėjimas yra tik AUKŠTAS, o vienas iš stulpų susiduria su jutikliu (tarkim, kaip pavyzdį - šiaurės polius); kai priešingas polius (į pietus) susiduria su jutikliu, išėjimas yra žemas.

Po to, kai nustatėte tinkamą vietą ir atstumą, kad gautumėte rodmenis, turėtumėte pradėti galvoti apie tai, kaip jį nuolat pastatyti. Aš nusprendžiau naudoti super klijai laikyti jutiklį vietoje. Aš taip pat apsvarstiau vietą dėl to, kur būtų nugaros korpusas. Turėjau iškirpti mažą stačiakampę skylę, kad jutiklių smeigtukai būtų prieinami. Turėtumėte nustatyti, kas geriausiai veikia, nes nors šie laikrodžiai yra beveik tokie patys, kartais maketas šiek tiek skiriasi, o jutiklio išdėstymas gali skirtis priklausomai nuo konkretaus laikrodžio.

2 žingsnis: Litavimo laidas prie jutiklio įvesties kaiščių

Dabar atėjo laikas lizduoti smeigtukus prie vielos. Priežastis, dėl kurios aš tai padariau, buvo dėl dviejų priežasčių: pirmiausia norėtumėte išbandyti jutiklį, kai tęsiate darbą, ir taip pat todėl, kad jums reikės šių laidų, kai juos prijungsite prie savo kepimo lentos ir galiausiai protoboard. Atkreipkite dėmesį, kad naudojant skirtingą spalvotą laidą gali būti lengviau, kai reikia greitai identifikuoti kaiščius. Štai ką aš padariau.

Pinout konfigūraciją galima rasti šioje svetainėje

3 veiksmas: garso failo paruošimas

Jei jau žinote, kaip konvertuoti.WAV failą į C failą, galite peršokti arba nugriebti per šį veiksmą.

Dabar, kai jutiklis yra pritvirtintas prie tinkamų smeigtukų ant stalo plokštės, turėsite įkelti garso eskizą į „Atmel328P“. Tačiau pirmiausia reikia atlikti kai kuriuos pakeitimus ir „masažavimą“. Štai kur galite atlikti kai kuriuos savo pakeitimus, ir aš eisiu į kai kurias (bet ne visas) detales, susijusias su Audacity ir wav2c programų naudojimu. Jūs turite eiti į priekį ir atidaryti kodą, kurį pateikiau savo „Arduino IDE“. Kai atidarote eskizą „Arduino“ IDE, pirmasis skirtukas yra šiek tiek pakeistas „Michael Smith“ parašytas PCM garso eskizas, originalas gali būti randamas „Arduino“ svetainėje:

playground.arduino.cc/Code/PCMAudio

Audacity yra garso redagavimo programa. Tai labai galingas ir leidžia.wav failą eksportuoti kaip 8 bitų mono, nepasirašytą.wav failą. Tai būtina norint sumažinti failo dydį ir maksimaliai suderinti su garso atkūrimo eskizu. Gali būti, kad galėsite dirbti su skirtingais bitų spartomis ir dydžiais, tačiau su juo nesistengiau. Mes naudosime tik Audacity reikalingas funkcijas, kad gautume darbą.

Wav2c, kaip rodo pavadinimas, gali konvertuoti.wav failą į C failą. Tai taip pat būtina, nes.wav failas yra per didelis, kad tilptų į 328P-PU atmintį. Nuo šio rašymo galite atsisiųsti šaltinio kodą tiesiai iš „github“. Taip pat galite gauti sukauptas versijas iš kitų svetainių. Bet kokiu atveju, naudokite jį ar kitą panašią programą konversijos procesui.

github.com/olleolleolle/wav2c

4 veiksmas: „Audacity“ ir „Wav2c“ naudojimas

Garso failo konvertavimo tikslas yra priimti garso failą (.wav) ir paversti jį naudingu C antraštės failo dokumentu. Tai leidžia arduino naudoti antraštės failo informaciją, kad jis būtų išvestas kaip garsas per garsiakalbį.

- Pirmiausia atidarykite failą „Audacity“.

- Pakeiskite projekto greitį iki 8000 Hz (esantis apatiniame kairiajame kampe).

-Pasirinkite „takelius“ iš meniu ir pasirinkite „resample“.

-Kitas daryti eksporto> kitus nesuspaustus failus.

-Pasirinkite parinktis 8 bitų pasirašytą.

Tai padės paruošti failą kitam žemiau nurodytam etapui, kuris yra konversija į C failą.

- Atidarykite terminalą ir perkelkite tą patį katalogą kaip ir failą.

-Paleiskite šią komandą (sox) uodegos apdailai (darant prielaidą, kad yra viena)

-Paleiskite galutinę komandą, kad iš tikrųjų atliktumėte konversiją

(atkreipkite dėmesį, kad originalo failo kopija faktiškai konvertuojama)

-Next, atidarykite arduino IDE ir pridėkite naują tuščią skirtuką (mygtukas, skirtas pridėti naują skirtuką, yra dešinėje Arduino IDE pusėje).

-Vardykite skirtuką į tą patį pavadinimą kaip antraštės failas.

-Spausdinkite ir įklijuokite turinį į skirtuką

5 žingsnis: garso tikrinimas

Dabar, kai turite failą „sounddata.h“, ir patikrinote „Arduino“ eskizą, dabar turėtumėte jį įkelti į savo lustą. Arduino plokštę aš naudoju tiesiogiai visiems pradiniams bandymams, bet vėliau naudojosi „Arduino on Breadboard“ konfigūracija. Čia pridėjau diagramą.

Jei viskas gerai vyksta, įjunkite laikrodį ir patikrinkite, ar jis skaičiuoja impulsus iš laikrodžio ir tada pateikia produkciją. Pastaba: kai iš pradžių tai padariau, garso atkūrimo skaitiklis nustatomas kas 60 sekundžių, kad nereikėtų laukti visą valandą, kad pamatytumėte, ar jis veikia, o vėliau pakeiskiu skaitiklį iki 3600 sekundžių arba 1 val.. Jei norite pakeisti miaužimo intervalą, suraskite kodą, esančią netoli paskutinių eilučių, ir suraskite kintamo kalkuliatoriaus kodą. Pakeiskite jį į norimą vertę.

6 žingsnis. Viso lydmetaliojimas, kad būtų sukurtas nuolatinis, kompaktiškas dizainas

Dabar linksmiems dalims … visų svarbių dalių iš lėkštės įdėjimas į kompaktiškesnę protoboard. Jums nereikės nieko panašaus į LED išvesties ar atstatymo mygtuką (darant prielaidą, kad turite vieną iš „Arduino“ dėl „Breadboard“ grandinės). Yra daug geresnių būdų tai padaryti, bet jei turite ribotą tiekimą, protoboard tikriausiai yra geriausias jūsų pasirinkimas. Daugelis žmonių dabar daro savo PCB ėsdinimo ir perdirbimo. Jei tai galite padaryti, tai visais būdais tai padaryti, nes tai daug geriau nei protoboard.

Taip pat reikia prijungti kintamosios srovės adapterį prie teigiamo ir neigiamo protoboard mazgo, kur jis atitinka įtampos reguliatoriaus kaiščius. Naudojau Vtech 7,5 voltų modelį. Tai yra apie 10 dolerių Target, o 12 - Toys R Us. Arba galite naudoti kažką panašaus, kurį gulite aplink namą. Atsargiai: turėtumėte pabandyti išlaikyti įtampos skirtumą tarp reguliatoriaus ir adapterio iki minimumo, nes kitaip jis sušilks. Jei skirtumas yra didelis, tuomet į reguliatorių reikia įdėti šilumos kriauklę, kuri padėtų išsklaidyti šilumą. Įtampos skirtumas tarp 7805 ir Vtech kintamosios srovės adapterio yra tik 2,5 voltų esant 300 mA, tačiau vis tiek turėtumėte ant jo mažą šilumos tašką.

Pastaba: įsitikinkite, kad esate laimingi / patenkinti eskizu „Atmega“ luste, nes, kai ji bus lituojama ant lentos, negalėsite ją perprogramuoti.

Pastaba: aš taip pat naudoju dremel, kad laikrodžio dugno apačioje būtų sukurta maža skylė, kad maitinimo adapterio laidas būtų tinkamas. Aš taip pat jį panaudojau kitiems įvairiems dalykams, keičiant laikrodį, pavyzdžiui, nukirto aštrius kraštus ir tiesiog išvalant viduje.

7 žingsnis: visko organizavimas ir įrengimas laikrodžio viduje

Kai visi laidai ir komponentai yra tinkamai lituoti, atėjo laikas surengti laidus ir nuspręsti dėl tinkamo plokštės išdėstymo „Kit Cat“ korpuse. Pagrindinis rūpestis yra tai, kad viskas yra vietoje, kuri netrukdys uodegos ir akių judėjimui. Aš taip pat nesuvokiau, kaip būtų sunku įrengti garsiakalbį, todėl turėjau gręžti kai kurias skyles, kurios padėtų prijungti garsiakalbį toje vietoje, kuri netrukdytų uodegos variklio armatūrai.

Surasti vietą lentai gali būti sudėtinga ir gali prireikti šiek tiek bandymų ir klaidų. Aš gyvenau vietoje, esančioje kairėje, šalia akumuliatoriaus korpuso. Tada aš panaudojau karštą klijų pistoletą ant lentos kraštų, kad padėčiau jį laikyti. Galite tvarkyti ir grupuoti laidus, naudingus tvarkyti ir grupuoti laidus.

Nepriklausomai nuo technikos, kurią nuspręsite tai padaryti, priklauso nuo jūsų, nes sugebėsime viską sutalpinti laikrodžio korpuse.

Finalininkas

Jutiklių konkursas