Turinys:

„Smartphone“valdomas begalinis laikrodis: 5 žingsniai (su nuotraukomis)
„Smartphone“valdomas begalinis laikrodis: 5 žingsniai (su nuotraukomis)

Video: „Smartphone“valdomas begalinis laikrodis: 5 žingsniai (su nuotraukomis)

Video: „Smartphone“valdomas begalinis laikrodis: 5 žingsniai (su nuotraukomis)
Video: Xiaomi MITU BUILDER DIY конструктор, управляемый со смартфона с возможностью программирования 2024, Lapkritis
Anonim
Image
Image
„Smartphone“valdomas begalinis laikrodis
„Smartphone“valdomas begalinis laikrodis
„Smartphone“valdomas begalinis laikrodis
„Smartphone“valdomas begalinis laikrodis

Mačiau daugybę „Infinity Mirrors“ir „Infinity Clocks“projektų „Instructables“, todėl nusprendžiau padaryti savo. Tai gali labai nesiskirti nuo kitų … bet aš tai padariau pats, taip yra!

Vaizdas
Vaizdas

Jei dar to nežinote:

Kas yra begalybės laikrodis?

Begalybės laikrodis naudoja daugybę atspindžių tarp veidrodžio ir pusiau atspindinčio veidrodžio, kad sukurtų didelio gylio iliuziją, kol jis yra tik vieno centimetro gylio!

Laikas rodomas šviesos diodais, kurie daug kartų atspindi šias sąsajas ir sukuria tokį gylio įspūdį.

Vaizdas
Vaizdas

Keli refleksai sukuria gilumo įspūdį

Šviesos diodai yra adresuojami ir įvairiaspalviai, todėl juos lengva naudoti kuriant lengvas animacijas.

Norėjau, kad jis būtų interaktyvus ir besikeičiantis, todėl pridėjau išmaniojo telefono valdiklį naudodami „Bluetooth“ryšį. Yra realus dviejų būdų ryšys tarp laikrodžio ir išmaniojo telefono. Vartotojas gali naudoti HMI (žmogaus ir mašinos sąsają), kad pakeistų įvairius parametrus, pvz., Animaciją, spalvas. Tačiau ji taip pat gali siųsti tiesiogines komandas, pavyzdžiui, pakeisti laiką, o laikrodis atsako, kad komanda yra priimta ar ne.

HMI buvo padaryta naudojant programuojamą „Android“programą, todėl aš tiesiog turėjau ją suprojektuoti ir koduoti ryšį „Arduino“pusėje.

Vaizdas
Vaizdas

Pradėkime dabar…

1 žingsnis: ko jums reikia?

Ko tau reikia?
Ko tau reikia?
Ko tau reikia?
Ko tau reikia?
Ko tau reikia?
Ko tau reikia?
Ko tau reikia?
Ko tau reikia?

Norėdami sukurti šį begalybės laikrodį, štai ko jums reikia (kainos yra orientacinės):

  • „Arduino nano“(2 USD)
  • Adresuojama šviesos diodų juostelė, tokia kaip WS2812 šviesos diodai, 60 lempučių metrui (6 USD)
  • „Bluetooth“modulis, pvz., HC-05 (3 USD)
  • Duonos lenta (1,5 USD)
  • 5 V maitinimo šaltinis, galintis tiekti 4A ar daugiau
  • Keletas elektros laidų
  • Išmanusis telefonas, kuriame veikia „Android“, ir „Bluetooth Electronics“programa iš „KeuwlSoft“
  • Kai kurie vidutinio tankio medienos plaušų plokštės gabalai (MDF, vienas 3 mm storio ir vienas 10 mm storio)
  • Skaidri plexiglas arba perspex plokštė (apie 15–20 USD)
  • Veidrodis ir pusiau atspindinti veidrodinė lipni plėvelė (nuo 4 iki 15 USD)
  • Jungtys, rezistoriai ir viena 1000µF talpa
  • Šiek tiek klijų ir lipnios juostos.
Vaizdas
Vaizdas

Laikrodžio geometrijos principo schema

„Plexi“plokštė turi būti 2–3 mm storio, todėl ją naudojant ji tvirtai laikosi.

Aukščiau pateikta schema paaiškina laikrodžio geometriją. LED juostelė yra tarp dviejų veidrodžių. Žinoma, jums reikia 60 tų lempučių ant juostos. Internete galite rasti 60 LED lempučių vienam metrui, todėl vienas iš jų yra geras. Tada apskritimo perimetras yra 1 m, jo skersmuo yra 100/PI = 31,8 cm (maždaug 12,53 colio).

Paruoškite savo komponentus

Iškirpkite tokio skersmens apskritimą 3 mm MDF plokštėje. Norėdami tai padaryti, nuėjau į vietinį fablabą ir paprašiau naudoti lazerinį pjaustytuvą. Jie netgi gali tai padaryti už jus, jei maloniai paprašysite ir ateisite su lenta: tai užtruks tik kelias sekundes. Kol esate ten, supjaustykite tą patį diską į savo organinio stiklo plokštę.

Iš MDF plokštės dabar turite diską ir plokštę su apskrito formos skylute. Palikite juos abu vėliau.

Kad šviesos diodai liktų vietoje, taip pat supjaustykite 1 cm storio MDF ploną to paties skersmens cilindrą. Storis nėra svarbus tol, kol nėra pernelyg trapus. LED juostelė bus dedama į šį cilindrą, todėl svarbu, kad vidinis perimetras būtų toks pat kaip juostos ilgis. Per ilgas arba per trumpas, o kai kurie šviesos diodai gali būti išdėstyti nevienodai, todėl būkite labai tikslūs.

Tokios storos plokštės pjaustymas gali užtrukti šiek tiek ilgiau nei plonos. Paklauskite „Fablab“savininko, ar jų lazerinis pjoviklis yra pakankamai galingas, kad pjaustytų tokį storį. Man lazeris šiai daliai turėjo praeiti daugiau nei dešimt kartų, palyginti su tik dviem kitai plokštelei.

Tu taip pat gali…

Taip pat vietoje MDF galima naudoti permatomas arba spalvotas organinio stiklo plokštes. Plexiglas yra įvairių spalvų, nuo juodos iki geltonos iki žalios ir violetinės, todėl nedvejodami išbandykite juos.

Vaizdas
Vaizdas

„Fablab“žino, kaip juos pjaustyti, o plexilas yra labai „švarus“, palyginti su mediena, kuri gali „sudegti“(turiu omenyje spalvos pasikeitimą dėl lazerio energijos) lazerio kelyje. Taip pat yra veidrodinis organinis stiklas, kuris gali sutaupyti jums nusipirkti veidrodinę plėvelę. Tiesiog nepamirškite pjaustydami jį nusiųsti lazerį galinėje veidrodžio pusėje …

Žemiau yra pjovimo lazeriu geometrijos failai.

2 žingsnis: Surinkite laikrodį

Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį

Norėdami pagaminti laikrodį, jums tiesiog reikia surinkti dalis pagal schemą.

Paruoškite bylą

Pirmiausia klijuokite veidrodinę plėvelę ant MDF disko. Tai bus laikrodžio apačia.

Antra, klijuokite pusiau skaidrią plėvelę ant organinio stiklo disko. Tai sudaro priekinį laikrodžio stiklą. Šis diskas bus įdėtas į MDF plokštę, apskritimo skylę: jei reikia, priklijuokite medienos klijais arba naudokite silikoninę gumą.

Galiausiai paruoškite šviesos diodus. WS2812 šviesos diodai naudoja 3 sujungimo blokus: įtampos tiekimą, įžeminimą ir komandą. Jei jau prijungti 3 elektros laidai, tiesiog juos naudokite. Priešingu atveju prijunkite 3 laidus prie jungčių. Atminkite, kad šviesos diodai yra poliarizuoti prietaisai: tai reiškia, kad srovė teka tik viena kryptimi. Ši kryptis rodoma juostelėje rodykle. Tada laidus turėtumėte lituoti juostelės gale, iš kur išeina rodyklės (o ne galas, į kurį nukreiptos rodyklės).

Įdėkite šviesos diodus į storo MDF cilindro vidų ir surinkite 3 dalis klijais ir (arba) juostele.

Vaizdas
Vaizdas

Tada elektroninė dalis

Įdėkite „Arduino“į duonos lentą ir sukurkite grandinę, kaip parodyta aukščiau. Įsitikinkite, kad visi pagrindai (GND) yra prijungti (GND iš „Arduino“, HC-05 modulis, LED juostelė ir maitinimas).

  • „HC-05“„Bluetooth“modulio RX ir TX kaiščiai yra prijungti prie „Arduino“kaiščių D3 ir D2
  • Šviesos diodų juostos duomenų linija prijungta prie kaiščio D12, jei turite, galite įterpti 300 omų rezistorių.

Jei norite pakeisti smeigtukus, atitinkamai pakeiskite jų apibrėžimus kode („ino“failo 7 ir 13 eilutės).

Atminkite, kad HC-05 moduliui reikalingas RX kaiščio įtampos daliklis, kaip parodyta žemiau. Taigi jums reikia vieno 1000 omų ir vieno 2000 omų rezistorių.

Vaizdas
Vaizdas

Tiekimas naudojamas tiek „Arduino“, tiek LED juostelėms. Pirmiausia prijunkite 1000µF kondensatorių prie varžto gnybto (domino). Jei turite, galite naudoti greitą jungtį. Daugiau informacijos rasite čia.

Vaizdas
Vaizdas

Šis kondensatorius taip pat gali būti poliarizuotas: įsitikinkite, kad + ir - kojelės yra prijungtos prie maitinimo šaltinio + ir -. Kaip matyti iš kondensatoriaus vaizdo, koja yra pažymėta dideliu minuso ženklu.

Vaizdas
Vaizdas

Tada iš jungties prijunkite elektros laidus, kad prijungtumėte LED juostą ir „Arduino“plokštę. Kaip minėta aukščiau, visi GND turėtų būti sujungti. Iš teigiamo tiekimo potencialo prijunkite 5V juostos laidą ir ištraukite laidą prie „Arduino“5V kaiščio: kol kas palikite jį neprijungtą, galiausiai prijungsite.

Patikrinkite viską … du kartus

Du kartus patikrinkite visas jungtis… Norėdami patikrinti elektros tęstinumą, naudokite multimetrą, jei turite.

Jei viskas teisinga, jūsų laikrodis yra beveik paruoštas. Kol kas jo nepateikite.

3 veiksmas: įkelkite kodą

Įkelkite kodą
Įkelkite kodą
Įkelkite kodą
Įkelkite kodą
Įkelkite kodą
Įkelkite kodą
Įkelkite kodą
Įkelkite kodą

Programuosim

Norėdami įkelti kodą į „Arduino nano“, naudokite „Arduino IDE“. Įdėkite visus failus į aplanką „Horloge_LED3_nano_BTOK“savo „Arduino“aplanke. Atidarykite IDE, pasirinkite tinkamus parametrus (plokštės tipą, COM prievadą ir tt) ir spustelėkite įkėlimo mygtuką.

Vaizdas
Vaizdas

„Android“išmaniajame telefone įdiekite „Bluetooth Electronics“programą, kurią lengvai rasite „Google Play“. Atsisiųskite failą „BluetoothElectronicsCode.txt“iš šios instrukcijos ir pakeiskite plėtinį į zip: gausite ZIP archyvą su išmaniojo telefono sąsajos, kuri bus paleista naudojant „Bluetooth Electronics“, kodu.

Kai būsite pasiruošę, prijunkite maitinimo šaltinį. Šviesos diodai užsidegs, HC-05 modulis taip pat užsidegs, kad ieškotų ryšio. Paleiskite „Android“programą ir vykdykite instrukcijas, kad suporuotumėte „Bluetooth“modulį su išmaniuoju telefonu. Kai būsite pasiruošę, paleiskite HMI: esate pasiruošę žaisti!

Prisimink tai…

Pirmasis juostos šviesos diodas turėtų būti dedamas ant laikrodžio. Jei jo neįdėjote, galite pakeisti poslinkio parametro reikšmę kode (ino failo 65 eilutė). Tai rūpinasi.

Kai klijavote LED juostelę seklaus cilindro viduje, buvo 2 variantai: arba juostelė sukasi pagal laikrodžio rodyklę, arba prieš laikrodžio rodyklę. Jei tai padarėte neteisingai, laikrodžio rodyklės pasisuks netinkama kryptimi! Nesijaudink. Tiesiog pakeiskite loginio kintamojo sens_horaire reikšmę į true (ino failo 77 eilutė)

Vaizdas
Vaizdas

4 žingsnis: mėgaukitės

Mėgautis!
Mėgautis!
Mėgautis!
Mėgautis!
Mėgautis!
Mėgautis!

Paskutinis nustatymas…

Dabar nustatykite laiką. Tai galima padaryti naudojant paprastas komandas, kurias įvedate mažoje konsolėje, esančioje apatinėje kairiojoje HMI dalyje.

  • Hxx: nustatykite valandas xx (pvz., H4)
  • Myy: nustatykite minutes (pvz., M15)
  • Szz: nustatykite sekundes (pvz., S30)

Komandos gali būti sujungtos grandinėmis įterpiant tarp jų žvaigždutę, pavyzdžiui: H4*M15*S35

Nustačius valandas ir (arba) minutes, sekundės bus atstatytos į nulį.

Tada pamatysite, kad valandą seka raudonas šviesos diodas, o minutes - ŽALAS šviesos diodas:

Vaizdas
Vaizdas

Jau 9:52:00!

Sekundžių spalvą galima pakeisti naudojant HMI slankiklį

Vaizdas
Vaizdas

Kai perkeliate slankiklį, mažas apskritimas dešinėje pusėje rodo esamą spalvą. Kai slankiklis sustoja, jis siunčia spalvą į laikrodį, o sekundžių šviesos diodas atitinkamai pasikeičia.

Animacijos ir PALETTE slankikliais galima pasirinkti ir pritaikyti šviesias laikrodžio animacijas. Išbandykite juos ir pažiūrėkite vaizdo įrašą, kad gautumėte pavyzdžių. Kai keičiate kai kuriuos HMI nustatymus, mažoje konsolėje rodomas „Arduino“atsakymas.

Animacijos…

  • 0: Tiesiog rodo laiką, naudodami slankiklį galite pakeisti sekundžių spalvą.
  • 1: spalvotas fonas (galite pakeisti spalvą), kintamos amplitudės.
  • 2: besisukanti vaivorykštė
  • 3: spalvota juosta (kurią galima pakeisti), kuri daro vieną apsisukimą per sekundę.
  • 4: spalvota juostelė, kuri atšoka nuo antros rankos.
  • 5: atsitiktinės amplitudės spalvotas fonas (galite pakeisti paletę).
  • 6: Tiesiog rodo laiką, sekundžių rodyklė keičia savo šviesos amplitudę.
  • 7: besisukančios vėliavos (pakeiskite paletę, kad pakeistumėte vėliavą tarp 4 galimų)
Vaizdas
Vaizdas

Prancūzijos vėliava - 7:11:51

Neseniai buvo pridėta dar viena animacija, kuri atsitiktinai pasirinktai animacijai keičiasi kas 15 sekundžių.

Mygtukas MINUTES įjungia ir išjungia baltus šviesos diodus kas 5 minutes.

Vaizdas
Vaizdas

Jau 7:11:25

Atminkite, kad vaizdo įrašai ir nuotraukos buvo sukurti naudojant išmanųjį telefoną, todėl yra prastos kokybės. Laikrodžio spalvos yra daug ryškesnės ir tikslesnės nei atrodo vaizdo įraše …

Kas dar?

Tikiuosi, kad jums patiks padaryti šį begalybės laikrodį. Dar daug ką reikia nuveikti: galite nudažyti priekinę MDF plokštę, kad ji taptų gražesnė, pridėkite dar vieną šviesos diodų juostą išorinėje cilindro pusėje, kad ant sienos taip pat atsirastų animuota šviesa ir pan.

Vaizdas
Vaizdas

5 veiksmas: nauja versija tiksliam laikui išlaikyti

„Arduino nano“laikrodis linkęs slinkti laiku, nes neturi tikslaus laikrodžio. Aš sukūriau kitą versiją naudodamas realaus laiko laikrodį (RTC), kad būtų tikslus laikas.

RTC egzistuoja įvairiuose modeliuose, rekomenduoju naudoti DS3231 modulį, kuris yra labai tikslus (palyginti su DS1307). Šioje naujoje programos versijoje naudojama MD-DS3231 biblioteka, kurią rasite čia. Tiesiog sukurkite naują aplanką „Horloge_LED3_nano_BT_RTC“savo „Arduino“aplanke ir atsisiųskite visus failus.

Prijunkite DS3231 kaip I2C įrenginį, ty SDA prie A4 ir SCL (arba SCK) prie A5

Pirmiausia turite nustatyti RTC laiką. Žr., Pavyzdžiui, šią instrukciją arba šią mokymo programą.

Įkelkite „Horloge_LED3_nano_BT_RTC.ino“failą į „Arduino nano“ir paleiskite jį. Laikas atnaujinamas kas 30 minučių, todėl laikrodis visą laiką išlieka tikslus.

Žinoma, turite turėti RTC modulio bateriją, nes ji palaiko RTC gyvybę, net jei ji nėra tiekiama iš „Arduino“, ir gali išlaikyti tikslų laiką.

Rekomenduojamas: