Satura rādītājs:

NeoClock: 7 soļi (ar attēliem)
NeoClock: 7 soļi (ar attēliem)

Video: NeoClock: 7 soļi (ar attēliem)

Video: NeoClock: 7 soļi (ar attēliem)
Video: 30 товаров для автомобиля с Алиэкспресс, автотовары №22 2024, Jūnijs
Anonim
Image
Image

Tas ir par pulksteņa veidošanu, izmantojot fantastiskos neopikselu gredzenus no Adafruit. Šī pulksteņa jautrākais ir tas, ka tam faktiski ir divi neopikseļu gredzeni - viens stundu, bet otrs - minūtēm, sekundēm un milisekundēm. Pulkstenis saglabā ideālu laiku, izmantojot DS3234 DeadOn reālā laika pulksteņa mikroshēmu no Sparkfun. Viegli veidot un jautri modificēt. Es ceru, ka tas iedvesmos citus veidot pulksteņus vai citu mākslu, izmantojot neopikselu gredzenus.

Tiem no jums, kuri vēlas iegūt visus manus failus vienkārši pārvaldāmā formātā, nekautrējieties tos lejupielādēt no manas šī projekta github krātuves vietnē

1. darbība: pulksteņa projektēšana

Pulksteņa projektēšana
Pulksteņa projektēšana
Pulksteņa projektēšana
Pulksteņa projektēšana
Pulksteņa projektēšana
Pulksteņa projektēšana
Pulksteņa projektēšana
Pulksteņa projektēšana

Jau no paša sākuma zināju, ka vēlos izmantot vismaz divus neopikseļu gredzenus. Pēc kāda darba es nolēmu, ka labākais dizains būtu viens gredzens otrā, kas saglabā sākotnējo pulksteņa formu. Mazākais gredzens būtu stundas, bet atlikušais laiks tiktu paturēts uz lielāka gredzena. Daži dizaina apsvērumi ietvēra neopikseļu izmaksas, enerģijas patēriņu, lāzera griezuma gabalu lielumu un to, kāda veida mākslu es gribēju uzlikt.

Pabeidzot šo darbību, es nolēmu, ka pirms pulksteņa korpusa lāzera griešanas plānu izstrādes man ir jāsaprot elektronika.

2. solis: Elektronikas projektēšana

Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana

Izstrādājot elektroniku, iepriekš bija jāzina elementi, kurus es gribēju pulkstenī:

  • Neopikselu gredzeni (60 un 24)
  • Arduino (smadzenes)
  • Pulksteņa regulēšana (arduinos nesaglabā laiku)
  • Enerģijas pārvaldība

Neopikseļu izmēra un jaudas prasības ir labi dokumentētas. Tā kā tie darbojas ar 5 V līdzstrāvu, es nolēmu doties ar 5 V Arduino un padarīt lietas vienkāršākas. Ņemot vērā vietu, es nolēmu izveidot prototipu parastajā Arduino Uno, bet pēdējai elektronikai es izvēlējos Arduino Mini.

Šī projekta pirmā atkārtošana tika iegūta tieši no Adafruit NeoPixel Basic Connections lapas. Es ievietoju diagrammu no vietnes, lai atvieglotu lietas. No tā ir svarīgas divas lietas:

  1. 1000uF kondensators ir nepieciešams, lai novērstu sākotnējās strāvas triecienu, lai nesabojātu pikseļus.
  2. 60 skaitītāju gredzena pirmajā pikseļā ir nepieciešams 470 omu rezistors (šis rezistors ir iebūvēts 24 skaitīšanas gredzenā)

Adafruit ir arī NeoPixel paraugprakses kopums, kas jums jāizlasa pirms dizaina turpināšanas.

Vēl viena problēma ir laika saglabāšana pulkstenī. Arduino iebūvētais pulkstenis nav pietiekams, lai ilgu laiku uzturētu labu laiku. Sliktāka problēma ir tā, ka arduino laiks, iespējams, būs jāiestata katru reizi. Datori atrisina šo problēmu, izmantojot nelielu akumulatoru pulksteņa mikroshēmā, lai saglabātu laiku starp strāvas padeves pārtraukumiem. Agrāk es izmantoju kaut ko līdzīgu ChronoDot no Adafruit. Bet šajā gadījumā es gribēju attaisnojumu izmantot DS3234 (DeadOn RTC) no SparkFun. Jūs varat arī saglabāt datuma informāciju DeadOn RTC, ja vēlaties to integrēt pulkstenī.

Visbeidzot, enerģijas pārvaldība bija jāapsver. Es jau zināju, ka visam jābūt 5V, bet vajadzīgās strāvas daudzums šķita noslēpums. Lielākajā daļā projektu parasts sprieguma regulators ir L7805. Tas prasīs spriegumu līdz 24V un maksimālo strāvu līdz 1,5A. Es zināju, ka man apkārt ir 12V 1,5A siena misa, tāpēc es nolēmu, ka tas būs ideāls (un lēts!) Projekta sprieguma regulators.

Atlikušie gabali bija no manas detaļu kastes vai Radio Shack. Tie ietvēra vadus, slēdžus un līdzstrāvas kontaktligzdu.

3. darbība: elektronikas veidošana

Elektronikas veidošana
Elektronikas veidošana
Elektronikas veidošana
Elektronikas veidošana
Elektronikas veidošana
Elektronikas veidošana

Pilns elektronikas saraksts, ko es nopirku, lai izveidotu šo projektu, ir atrodams manā github krātuvē šeit: Elektronikas detaļu saraksts. Tajā ir saites uz produkta lapu katram gabalam, un tajā ir iekļauta papildu informācija, ieskaitot produkta SKU. Es ātri to prototipēju uz maizes dēļa un pirms attēlu uzņemšanas pārcēlos uz lāzera griešanu un veidošanu. Tomēr es to uzbūvēju tā, lai to būtu viegli izjaukt, tāpēc esmu sadalījis iepriekš redzamos fotoattēlus.

Cieši apskatiet attēlus, jo vadi tika apzināti saliekti, lai tos būtu viegli izsekot un lai viss elektronikas profils būtu plāns. Veicot šo sākotnējo prototipu izstrādi pirms lāzera griezuma projektēšanas, es varēju pārbaudīt detaļu biezumu, lai es varētu noskaidrot pulksteņa korpusa galīgos izmērus.

Jūs pamanīsit, ka es izveidoju pāris pielāgotas maizes dēļus. Esmu mēģinājis nofotografēt šo dēļu aizmuguri, lai jūs varētu tos atkārtot. Jūs varat iegādāties šādu maizes dēļu klāstu par pāris dolāriem un padarīt tos piemērotus jūsu projektam.

Elektroinstalācija ir taisna uz priekšu, taču svarīgās lietas, kas jāatceras no attēliem, ir šādas:

  • Mode un Set slēdžiem būs nepieciešami nolaižami rezistori. Es izmantoju 2,21 omu rezistorus, kas man bija gulējuši, bet jebkurš mazs rezistors darbosies (vēlams ne mazāk kā 1 kOhm). Tas stabilizē pievienotās Arduino ieejas tapas tā, ka tad, kad tās paceļas augstu, tās var atšķirt no trokšņa.
  • Kvadrātveida vilnis (SQW) uz DS3234 tika iezemēts, jo tas netiek izmantots.
  • Jauda no L7805 tiek ievietota Arduino Mini RAW tapā. Vienmēr ievietojiet Arduino enerģiju RAW.
  • Pirmajam 60 neopikselu gredzena pikselim ir 470 omu rezistors, lai samazinātu jebkādus pirmā pikseļa bojājumus no datu tapām. Tam nevajadzētu būt problēmai, jo 24 skaitļu neopikselim jau ir iebūvēts rezistors, taču labāk droši nekā nožēlot.
  • Mode un Set slēdži ir īslaicīgi SPST spiedpogas slēdži

Vadu krāsas ir:

  • Sarkans: +5VDC
  • Melns: zeme
  • Zaļš: dati
  • Dzeltens, zils, balts: speciāli vadi DS3234

Ja šī ir pirmā reize, kad izmantojat neopikseļus, atcerieties, ka tos var uzskatīt par garu ķēdi. Tāpēc varētu šķist dīvaini runāt par “pirmo pikseļu” gredzenā, bet patiesībā katrai gredzenu ķēdei ir sākums un beigas. Šajā projektā vispirms ir 24 mazā gredzena pikseļi, bet pēc tam - 60 lielākā gredzena pikseļi. Tas tiešām nozīmē, ka man ir 84 neopikseļu ķēde.

Elektroinstalācijai Arduino Mini:

  • DS3234 savienojas ar tapām 10 - 13
  • Mode un Set slēdži atrodas uz 2. un 3. tapas
  • Neopikselu dati nāk no 6. tapas.

Es arī iesaku 6 galvenes novietot Arduino Mini apakšā, lai jūs varētu to ieprogrammēt, izmantojot FTDI kabeli.

Svarīga piezīme par strāvu: šis pulkstenis prasa daudz. Es esmu pārliecināts, ka es varētu to atrisināt, bet mana praktiskā pieredze liecina, ka viss, kas ir vienāds vai mazāks par 500 mA, galu galā izraisīs brūnus iznākumus. Tas izpaužas kā pulkstenis mirgo trakas krāsas un nesaglabā laiku. Mana pēdējā siena misa ir 12V un 1,5A, un man nekad nav bijusi brūna krāsa. Tomēr sprieguma regulatora (un citu detaļu) robežvērtība ir 1,5A. Tāpēc nepārsniedziet šo summu.

4. solis: pulksteņa kodēšana

Pulksteņa kodēšana
Pulksteņa kodēšana

Pilnu pulksteņa kodu var atrast GitHub NeoClock kodā. Esmu šeit iekļāvis failu, taču visas izmaiņas notiks repozitorijā.

Es uzskatu, ka koda rakstīšana var būt biedējoša, ja jūs mēģināt darīt visu uzreiz. Tā vietā, lai turpinātu, es cenšos sākt no darba piemēra un izstrādāt funkcijas, kādas man ir vajadzīgas. Pirms iedziļināties, es vēlos norādīt, ka mans kods radās, apvienojot daudzus piemērus no šīm krātuvēm un Arduino CC foruma. Vienmēr dodiet kredītu tur, kur tam pienākas!

  • https://github.com/adafruit/Adafruit_NeoPixel
  • https://github.com/zeroeth/time_loop
  • https://github.com/sparkfun/DeadOn_RTC

Daži kodu piemēri no šīm krātuvēm ir atrodami manā kodu piemēru direktorijā

Darbību secība, ko izmantoju, lai izveidotu kodu, bija aptuveni šāda:

  • Pārbaudiet, vai neopikseļi darbojas ar pavedienu pārbaudes piemēru
  • Mēģiniet palaist pulksteni ar laika cikla kodu
  • Modificējiet pulksteni, lai tas darbotos pie diviem gredzeniem, nevis tikai viena
  • Pievienojiet DS3234, lai saglabātu laiku, izmantojot DeadOn RTC piemēru
  • Pievienojiet režīmu un iestatiet slēdžus
  • Pievienojiet Debounce kodu, izmantojot Arduion Debounce Tutorial
  • Pievienojiet dažas krāsu tēmas pulksteņa gaismas diodēm
  • Pievienojiet dažas animācijas 0, 15, 30 un 45 minūšu atzīmēm
  • Pievienojiet pulkstenim kompasa punktus, lai orientētos 0, 15, 30 un 45 minūšu atzīmēs

Ja vēlaties redzēt, kā es izveidoju šo kodu, jūs faktiski varat izmantot GitHub, lai apskatītu katru koda izpildi. Pulksteņa vēsture ir iekļauta saistību vēsturē.

Krāsu shēmas bija jautri pievienot, bet galu galā izvēlnē es iekļāvu tikai četras no tām. Katra tēma nosaka noteiktu krāsu stundas, minūtes, sekundes un milisekundes "rokās". Patiešām, iespējas šeit ir bezgalīgas, bet es iekļāvu tēmas (uzskaitītie metožu nosaukumi):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

Tomēr kodā varat atrast šīs papildu metodes:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Animācijas tika pievienotas, jo man patika ideja par veco pulksteņu zvanīšanu četros piecpadsmit minūšu punktos. Šim pulkstenim es izveidoju šādas animācijas:

  • 15 minūtes: krāsojiet gredzenus sarkanā krāsā
  • 30 minūtes: krāsojiet gredzenus zaļā krāsā
  • 45 minūtes: krāsojiet gredzenus zilā krāsā
  • Stundas sākums: veiciet varavīksni pāri abiem gredzeniem

Lietojamība izrādījās problēma ar pulksteni, jo neviens nevarēja orientēties pulkstenī. Galu galā tas ir tikai divi gaismas diodes gredzeni. Tāpēc, lai atrisinātu problēmu, pulkstenim pievienoju kompasa punktus. Tas uzlaboja spēju daudz pateikt laiku. Ja es par to būtu zinājis pirms lāzera griezuma gabalu nosūtīšanas, es, iespējams, būtu kaut ko pievienojis mākslai. Bet izrādās, ka tumsā nevar tik labi redzēt mākslu, tāpēc kompasa punktu izmantošana patiešām palīdz. Viens no apsvērumiem ir tas, ka, nolemjot krāsot pikseļus, vispirms vajadzētu uzņemt pašreizējo krāsu un izveidot jaunu jauktu krāsu. Tas dod tai dabiskāku sajūtu.

Pēdējais fakts ir par milisekundēm. Arduino milisekundes nāk no iekšējā Arduino kristāla, nevis no DS3234. Tas ir atkarīgs no jums, vai vēlaties parādīt milisekundes vai nē, bet es tā darīju, ka pulkstenis vienmēr kaut ko darīja. Iespējams, jūs varētu apgrūtināt tas, ka milisekundes un sekundes ne vienmēr sakrīt, taču praksē neviens to nekad nav man minējis, skatoties pulkstenī, un, manuprāt, tas izskatās jauki.

5. solis: Lāzera griezuma failu projektēšana

Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana
Lāzera griezuma failu projektēšana

Izstrādājot lāzera griezuma failus, man bija jāņem vērā divi apsvērumi. Pirmais bija materiāls, no kura es gribēju to uzbūvēt, bet otrs - kā tas tiks uzbūvēts. Es zināju, ka vēlos koka apdari ar akrilu, kas izkliedē neopikselus. Lai noskaidrotu materiālu, es vispirms pasūtīju dažus paraugus no Ponoko:

  • 1x finiera MDF - riekstkoks
  • 1x finiera MDF - ķirsis
  • 1x akrils - gaiši pelēks
  • 1x akrils - opāls

Koka atlases ļauj man redzēt, kā izskatīsies rastrizācija un kā apdegums izskatīsies pulksteņa pusē. Akrils ļautu man pārbaudīt neopikseļu difūziju un salīdzināt, kā tas izskatītos pret koku. Galu galā es nolēmu ķiršu koku ar Opal akrilu.

Pulksteņa izmērus galvenokārt noteica neopikselu gredzenu izmērs. Es nezināju, cik biezai tai jābūt, lai tā ietilptu elektronikā. Uzbūvējot elektroniku un zinot, ka koksne ir apmēram 5,5 mm bieza, es noteicu, ka man ir nepieciešams apmēram 15 mm vietas pulkstenī. Tas nozīmēja trīs koka kārtas. Bet tā kā priekšpuse un aizmugure jau aizņem lielāko daļu mana dizaina, man vajadzēja sadalīt šos gredzenus "ribās", kuras vēlāk varēju salīmēt.

Es izmantoju InkScape, lai zīmētu Ponoko sniegto veidni. Pēc pulksteņa korpusa izvilkšanas es sāku zīmēt koku ar rokām. Es nevarēju importēt sākotnējo attēlu, kas mani iedvesmoja, taču nebija briesmīgi izdomāt, kā pašam izdarīt kaut ko līdzīgu.

Materiālu izmaksas bija tikai aptuveni 20 USD, bet izciršanas izmaksas bija aptuveni 100 USD vairāk. To veicināja divas lietas:

  • Līknes un apļi maksā vairāk, jo mašīna pārvietojas pa divām asīm, un šai konstrukcijai ir daudz līkumu
  • Rastrēšana prasa daudz piespēļu turp un atpakaļ pa gabalu. Atmetot to, būtu ietaupīts visvairāk naudas, bet man tas patika.

Pēc dizaina pabeigšanas es nosūtīju EPS failus Ponoko, un mani gabali tika pabeigti apmēram nedēļu vēlāk.

Ņemiet vērā, ka dizainā neiekļāvu režīma un iestatīšanas slēdžus vai līdzstrāvas barošanas ligzdu. Kad es to nosūtīju, es joprojām nebiju izlēmis par šīm daļām. Lai sniegtu sev lielāku elastību, es tos atstāju un nolēmu vēlāk urbt ar rokām.

6. darbība: pulksteņa izveide

Pulksteņa konstruēšana
Pulksteņa konstruēšana
Pulksteņa konstruēšana
Pulksteņa konstruēšana
Pulksteņa konstruēšana
Pulksteņa konstruēšana
Pulksteņa konstruēšana
Pulksteņa konstruēšana

Kad visi gabali ieradās, es uzkonstruēju pulksteni. Pirmais solis bija pulksteņa korpuss, kura dēļ man vajadzēja izsist ribas un pielīmēt tās aizmugurē un priekšā. Aizmugurē es uzliku divas ribas un priekšpusē vienu kārtu un uzliku ar koka līmi. Priekšpusē es izmantoju koka līmi, lai saliktu kopā akrila gredzenus un koka apļus. Man bija rezerves centrālais gabals, kuru es sagriezu kā sagatavi, kas noderēja būvniecības laikā. Es to pielīmēju koka gabala aizmugurē, un tas man deva vietu, kur vēlāk varēju pielīmēt neopikselus.

Pēc uzbūvētā korpusa es nolēmu izurbt caurumus slēdžiem un strāvas ligzdai. Neliela ģeometrija (kā redzams attēlā) man palīdzēja visu izlīdzināt. Izmantojot atsevišķu koka gabalu no ārpuses, kad es urbju (ļoti uzmanīgi!), Es izveidoju caurumus un pielīmēju slēdžus un domkratu.

Tālāk ienāca visa elektronika. Vispirms pielīmēju neopikseļus, kam sekoja kondensators. Tos es pievienoju neopikselu strāvas padeves panelim. Tad aizmugurē es ievietoju vadus uz slēdžiem un strāvas ligzdu. Es iekļāvu arī sprieguma regulatoru L7805.

Īsa piezīme par gredzenu orientāciju. Lielajam 60 pikseļu gredzenam pulkstenis jāorientē tā, lai viens no pikseļiem būtu tieši augšpusē, lai atzīmētu nulles minūtes. Kādam pikseļam nav nozīmes, un pēc minūtes es sapratīšu, kāpēc. Nelielajam 24 pikseļu gredzenam pulkstenis jāorientē tā, lai augšdaļa faktiski būtu starp diviem pikseļiem. Iemesls tam ir tas, ka, ja vēlaties atzīmēt 12 stundas, jūs galu galā iededzat divus pikseļus, nevis vienu. Ņemot nobīdi un izkliedējot plastmasu, tas šķitīs tā, it kā jums patiešām būtu 12 plati pikseļi.

Attiecībā uz to, kuru pikseļu kods apzīmē kā “augšējo” katram gredzenam, kods ir nedaudz jārediģē. Manā kodā ir divas vērtības ar nosaukumu "internal_top_led" un "external_top_led". Manos pulksteņos "internal_top_led" bija 11 pikseļi no mazā gredzena sākuma, un "external_top_led" bija 36 pikseļi no lielā gredzena sākuma. Ja gredzeni tiek novirzīti citādi, jūs maināt šīs vērtības, lai tās būtu no jūsu orientācijas. Mazliet eksperimentu, un jūs atradīsit īsto vērtību diezgan ātri.

Šajā brīdī es pārbaudīju, vai viss darbojas kā paredzēts.

Bet, tāpat kā visos projektos, es saskāros ar problēmu, jo sapratu, ka neesmu sapratis, kā tas varētu notikt kopā. Es pamanīju, ka man ir apmēram 3/8 collas vietas starp neopikseliem un ribām, tāpēc es devos uz Home Depot un ieguvu 3/8 collu dībeli un vairākus neodīma magnētus. Trīs vietās es uzbūvēju mazus koka statīvus un tos noslīpēju, lai uz katra statīva varētu uzlikt divus magnētus (izmantojot superlīmi). Es beidzu ar 3 pāriem pa 2 stendiem katrā. Tad es tos pielīmēju rāmī un ar skavu turēju visu vietā. Es to darīju, kamēr līme uz statīviem bija mitra, lai viss izlīdzinātos un pēc tam izžūtu pareizajā vietā. Tas strādāja perfekti, un man patīk, ka izlaidums ir paslēpts.

Visbeidzot es izdomāju, ka man tas ir jāpakar pie sienas, tāpēc es urbjos nelielā angārā aizmugurē, lai varētu to uzlikt pie sienas.

7. solis: pēdējās domas

Šo projektu bija ļoti jautri veidot, un man patika uzzināt par neopikseliem un DS3234. Man īpaši patika beidzot izveidot projektu, kas no sākuma līdz beigām izskatījās jauki. Ir dažas lietas, kuras es atjauninātu, ja to darītu vēlreiz, taču tās ir nelielas:

  • Vienkāršības labad es izvēlējos divas pogas, nevis trīs. Bet, ja būtu poga, kas ļautu man nolaisties, kā arī uz augšu, būtu bijis jauki iestatīt pulksteni
  • Režīma poga un iestatīšanas poga neatšķiras. Es bieži tos sajaucu. Varbūt nākotnē es tos novietotu pretējās pusēs.
  • Es nekad neesmu pabeidzis koka priekšpusi. Sākumā man patika neapstrādāts izskats un vēlāk uztraucos, ka, ja izjaukšu apdari, tā labošana izmaksās daudz.
  • Koka rasterizācija bija labs izskats, bet nākotnē es varētu būt uzzīmējis kokam sīkāku informāciju.
  • Arī pulksteņa aptumšošana būtu jauka funkcija, jo tumsā tas ir diezgan gaišs. Tomēr aptumšošana ir saistīta ar krāsu un izdomā, ka uzgalis aizņēma pārāk ilgu laiku, tāpēc es to nometu. Nākotnē es, iespējams, atkārtoti ieguldītu šajā funkcijā.

Paldies, ka izlasījāt šo pamācību. Es ceru, ka jūs izveidosit savu pulksteņa vai neopikseļu projektu un dalīsities tajā ar mani. Laimīgu celtniecību!

Ieteicams: