Satura rādītājs:

TheSUN, Arduino darbināms sienas pulkstenis: 6 soļi (ar attēliem)
TheSUN, Arduino darbināms sienas pulkstenis: 6 soļi (ar attēliem)

Video: TheSUN, Arduino darbināms sienas pulkstenis: 6 soļi (ar attēliem)

Video: TheSUN, Arduino darbināms sienas pulkstenis: 6 soļi (ar attēliem)
Video: Sundial - Really Works or Not 🙁 #shorts #fierydev 2024, Jūlijs
Anonim
TheSUN, Arduino darbināms dizaina sienas pulkstenis
TheSUN, Arduino darbināms dizaina sienas pulkstenis
TheSUN, Arduino darbināms dizaina sienas pulkstenis
TheSUN, Arduino darbināms dizaina sienas pulkstenis
TheSUN, Arduino darbināms dizaina sienas pulkstenis
TheSUN, Arduino darbināms dizaina sienas pulkstenis

Sveiki vēlreiz Instructables-folks!:-P

Piegādes problēmu dēļ es nevarēju turpināt savu ABTW projektu, tāpēc nolēmu parādīt jums citu, savu jaunāko radījumu.

Es domāju, ka daudziem no mums, piemēram, man, patīk šīs jaukās adresējamās LED svītras (sauktas arī par NEOPIXEL LED). Jūs varat tos iegūt no ADAFRUIT. Citi pārdevēji piedāvās līdzīgus produktus. Vietnē ADAFRUITS ir pieejama bibliotēka - GitHub (noklikšķiniet uz manis), ieskaitot kādu koda paraugu. Tātad kodēšanai jābūt tiešai…

Es redzēju šos NEOPIXELS domas, ko es… vai es varu darīt ar šīm spīdīgajām sīkumiem.

  • LED matricas displejs? -> Sarežģīti, un es to neizmantoju (šobrīd)
  • X-Mas apgaismojums? -> Tas atbilst sezonai, bet to iegādāties būtu lētāk:-P
  • pulkstenis? -> Kāpēc ne! Bet tam vajadzētu būt stilīgam un netradicionālam

Tātad, izgatavosim sienas pulksteni.

Ja mēs rūpīgi aplūkosim savu rokas pulksteni (ja jums ir analogs kā es), mēs pamanīsim, ka mums ir 12 stundas un 60 minūtes (cerams). Tas nozīmē, ka mums ir nepieciešami 60 adresējami gaismas diodes, phu! Ja mēs uzņemam svītru ar 60 LED / metriem, mēs iegūsim ~ 318 mm diametru (rādiuss = diapazons / (2*Π)), kas noteikti ir pārāk liels.

Patiesība ir tāda, ka, ja jūs kādam jautājat laiku, neviens neteiks, ka ir 2 minūtes pāri 3! Jūs saņemsiet atbildi "Tas ir 5 pēc 3". Tātad, kāpēc mums nevajadzētu visu samazināt līdz 5 minūšu soļiem? Šim nolūkam mums būs nepieciešami tikai 12 gaismas diodes, kas nozīmē, ka mēs iegūstam 63,6 mm diametru. Mēs arī varam atšķirt stundas un minūtes, piešķirot tām atsevišķu krāsu. Mēs arī varēsim nodrošināt "trūkstošos" vienas minūtes soļus ar papildu 4 gaismas diodes (vai vienu adresējamu gaismas diodi).

TAS IR PLĀNS! Apskatīsim, kā es visu izdarīju. Kā vienmēr, es sniegšu materiālu sarakstu/rēķinu un norādījumus par tā izveidi.

Ja domājat, ka tikai Šveices iedzīvotāji var izgatavot jaukus pulksteņus, pierādīsim, ka kļūdāties (atvainojiet, Šveice:-P)

1. darbība. Dizains un materiālu izvēle

Dizains un materiālu izvēle
Dizains un materiālu izvēle
Dizains un materiālu izvēle
Dizains un materiālu izvēle

Dizains:

Ja mēs vēlreiz rūpīgi aplūkojam savu analogo pulksteni, mēs redzam, ka aplis ir sadalīts 12 * 30 ° pakāpēs, ko mēs zinām, ka LED sloksnei ir nepieciešami 63,6 mm. Tāpēc vajadzētu būt iespējai kaut kā izlīdzināt sloksni ap cauruli. Es nolēmu izmantot akrila stiklu, jo tas izskatās jauki un tajā ir iespējams iekapsulēt LED gaismu, un pie katra stikla trūkuma notiks gaismas izkliede. Tātad, teiksim: vairāk piemaisījumu izraisīs lielāku gaismas izkliedi! Tieši to mēs vēlamies. Tāpēc nekautrējieties paņemt savus gravēšanas rīkus un esiet radoši:-)

Ja jūs atsaucaties uz manu BoM sarakstu un vārdu, ko es devu pulkstenim, es izvēlējos saulei līdzīgu dizainu. Visas akrila detaļas es saņēmu no vācu pārdevēja vietnē E-Bay (saite sniegta dokumentā). Jums būs nepieciešams:

  • akrila slīpēšanas plāksne, caurspīdīgs biezums = 6 mm, diametrs = 300 mm
  • akrila vidējā plāksne, caurspīdīgs biezums = 3 mm, diametrs = 150 mm
  • priekšējā akrila plāksne, satīns, biezums = 3 mm, diametrs = 90 mm
  • akrila caurule, caurspīdīga, ārējais diametrs = 64 mm (tas nozīmē, ka mums nedaudz jāpielāgojas ar LED sloksni)
  • akrila stienis, caurspīdīgs, diametrs = 5mm (tās būs mūsu sijas); Apkārt ir arī akrila stieņi ar burbuļiem, es tos iesaku, bet man to nav.
  • akrila līme

Elektronika (skatiet Fritzing failus):

  • Arduino mini (vai līdzīgs)
  • 1 adresējama LED sloksne (12 gaismas diodes stundām un 5 minūtēm)
  • 4 adresējamas gaismas diodes (vienas minūtes)
  • 2 330 omi rezistori
  • 1 1000µF kondensators
  • 1 barošanas avots (5V/500mA)
  • RTC DS-1307 (pēc izvēles!)
  • Bluetooth modulis (pēc izvēles! Jā, jūs varat iestatīt laiku, izmantojot BT un Android viedtālruni)

Ja jūs sev jautājat, kāpēc manā BoM ir MAX485 mikroshēmas. Atbilde ir tāda, ka es vēlos sinhronizēt pulksteni ar mājas automatizācijas sistēmu, kuru gatavojos gatavot (nekad vairs nebūs jāiestata pulkstenis vasaras laikam:-P). Es to aprakstīšu savā emuārā nākamajā pāris nedēļas/mēnesī.

Kā jūs pamanījāt, es arī mēģināšu noņemt pulksteni no tīkla ar dažiem saules paneļiem un LiPo, taču es to neaptveru šajā pamācībā, izmēģiniet to pats.

2. solis: Sagatavojiet akrila detaļas

Sagatavojiet akrila daļas
Sagatavojiet akrila daļas
Sagatavojiet akrila daļas
Sagatavojiet akrila daļas
Sagatavojiet akrila daļas
Sagatavojiet akrila daļas

Rīki:

Pirmkārt, tas ir patiešām noderīgi, ja izdrukājat DWG plānu, ko pievienoju mērogā 1: 1. Tas palīdzēs saskaņot visas detaļas un kalpos kā urbšanas plāns. Tālāk jums būs nepieciešams:

  • vaļasprieks
  • garenvirziena mērītājs
  • zāģis
  • skavas
  • rokas urbis
  • var urbt, diametrs 65mm
  • metāla urbju komplekts
  • neliela metāla vīle
  • akrila līme

Sāksim:

Paņemiet zemes plāksni un izlīdziniet to plānā, lai jūs varētu iegūt apļa centru. Tagad paņemiet rokas urbi ar tam piestiprinātu urbjmašīnu un urbiet (ļoti lēni! Ne pārāk lielā spiedienā!) Caurumu zemes plāksnes centrā, ārējam aplim jābūt ~ 2-3 mm dziļam. Tas ir iegrimt LED sloksnē zemējuma plāksnē (LED sloksne ~ 10 mm plata, staru kūļi tikai 5 mm diametrā) un izlīdzināt tos ar stariem (skat. 1. attēlu).

Tagad mums ir nepieciešams zāģis, slīpuma mērītājs un akrila caurule. Vienkārši sagrieziet to gabalos, es nolēmu padarīt korpusu (cauruli) 40 mm garu (2. attēls). Tagad atkal satveriet zāģi un vienā mēģenes pusē izveidojiet mazu rabīti, padariet to gludu ar metāla vīli. Tur iznāks vadi;-) (skat. 3. attēlu)

Laiks pielīmēt … Paņemiet vidējo plāksni (d = 150 mm) un priekšējo plāksni (satinēto). Vēlreiz izlīdziniet tos plānā, ielieciet līmi uz vidējās plāksnes centra, izlīdziniet priekšējo plāksni un pagaidiet, līdz līme ir nedaudz sacietējusi. Līme, ko izmantoju, ir viegli sacietējoša, un tā var ilgt līdz 2-3 stundām, tāpēc, iespējams, vēlaties izmantot skavu… (3. un 4. attēls)

Dariet to pašu, lai pielīmētu cauruli pie zemes plāksnes, pārliecinieties, ka trusis ir vērsts pret plāksni un ir novietots vietā, kur vēlaties, lai būtu pirmā gaismas diode (pulksten 12).

Pagaidiet, līdz tas sacietē!

Tagad mēs varam izlīdzināt 2 daļas (pēc grāmatām saskaņotas) uz plānu un urbt mūsu 4 vienas minūtes caurumus (5 mm diametrā vai jūsu izvēlētās gaismas diodes diametrā; urbt to lēnām ar ne pārāk lielu spiedienu). Urbt apmēram 8-9 mm dziļumā. Esiet piesardzīgs, satinātā plāksne ir ļoti trausla un var nobremzēt, ja urbjat dziļi. Tagad jūs varat tos pielīmēt kopā vai arī jūs nolemjat, piemēram, es, iezāģēt zemes plāksnē un piestiprināt to ar skrūvi.

Atkal pagaidiet, līdz līme sacietē. Tagad izlīdziniet un pielīmējiet sijas uz zemes plāksnes. (6. attēls) Uzmini nu … pagaidi, kamēr līme sacietē:-) Pāriesim pie elektronikas …

3. solis: elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Rīki:

  • lodāmurs
  • lodēt
  • hobija nazis
  • neliels prototipa PCB gabals
  • emaljēta stieple vai jebkurš cits vads, kuru vēlaties
  • karsta līme

Es teicu ar atsevišķām gaismas diodēm. Ja izmantojat emaljētu stiepli, neaizmirstiet pirms lodēšanas nokasīt laku. Šim nolūkam varat izmantot hobija nazi. Pieslēdziet tos, jūs varat atsaukties uz attēlu ar pinout vietnē flikto.de. Ņemiet vērā, ka DOUT pāriet uz DIN nākamajā gaismas diodē! (skat. 2. attēlu) Pēc tam LED sloksni var sagriezt 4 elementos, katrā ar 3 gaismas diodēm. Atcerieties, ka mums ir 63,6 mm LED sloksne un 64 mm caurules ārējais diametrs, tāpēc mums ir nepieciešams papildu garums, lai to precīzi pielīdzinātu sijām. Vada to ar emaljētu stiepli, kā parādīts 4. attēlā. Es izveidoju nelielu proto PCB, kas kalpos kā "strāvas siksna" un tajā būs LED sloksņu sastāvdaļas (divi 330 omu rezistori un 1000 μF kondensators, 7. attēls).

Tagad uzstādiet sloksni ap cauruli, piestipriniet gaismas diodes pie stariem. Pirmais Pixel atbilst pulksten 12. Ja esat apgriezis savu mājokli, neaizmirstiet, ka viss ir atspoguļots. Turpiniet pretēji pulksteņrādītāja virzienam! Izmantojiet karstu līmi, lai to piestiprinātu pie caurules. Neliels kritums katram segmentam to darīs!

To pašu var izdarīt ar atsevišķām gaismas diodēm (galu galā spoguļattēlā), vienkārši pievienojiet karstu līmi un nospiediet tās iepriekš izurbtajos caurumos.

Vēl nevadiet Arduino, mēs BT savienojumam izmantosim aparatūras sēriju, tāpēc vispirms pārbaudiet nākamās darbības, kurās es aprakstīju programmatūru.

4. solis: kods

Kods
Kods
Kods
Kods

Tagad jūs varat ielādēt skici Arduino. Tagad jūs varat pieslēgt LED sloksnes. Nepievienojiet BT moduli !!! Vispirms mēs vēlamies apskatīt kodu, jums vajadzētu zināt, kur var pielāgot vairākas lietas …

Lejupielādējiet Arduino IDE un bibliotēkas. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Instalējiet IDE un ievietojiet bibliotēkas bibliotēkas mapē. Atveriet pievienoto INO failu un augšupielādējiet to savā arduino. Šeit aprakstītais kods ir tāds pats, bet ar papildu komentāriem! Ja esat visu izdarījis pareizi, tagad varat redzēt "bootanimation". Sērijveida monitorā ir iespējams iestatīt laiku. Vienkārši ierakstiet @"stunda"/"min"/"sek", piem. @10/33/00 (10:33).

Jūtieties brīvi spēlēties ar kodu… Šeit jūs īsi aprakstīsit kodu (iestatīšana bez RTC!)

DEFINĪCIJAS:

#define PIN 6 // Stundu LED sloksne #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Pikseļu skaits stundā #define MINNUMPIXELS 4 // Pikseļu skaits vienai minūtei #define BAUDRATE 115200 // Baudrate, jāatbilst BT moduļa datu pārraides ātrums #define utch '@' // sākt BYTE no TimeSync

int Timeset = 0; // atzīmēt, lai saglabātu, ja laiks tika iestatīts pēc bootint delayval = 20; // aizkavēšanās animācijai int clocktimer = 10000; // laika atsvaidzināšana int timebright = 250; // stundas spilgtums Strip int mtimebright = 50; // singelminint spilgtuma inicializācija = 0; // karogs, lai izsauktu funkciju clearpixels pēc bootint ahour; int oldahour = 0; // veikals iepriekš. stunda aminute; int oldamīns = 0; // saglabā atsvaidzināšanas iepriekšējo minūti asecond; int aday; mēneša laikā; gadā; int mmin; tmElements_t tm;

// 2 NeoPixel LED masīvu iestatīšana (NAME = TYPE (PIXELU SKAITS, KURA PIN, FORMAT RGB OR GRB, FREQ); Plašāku informāciju skatiet Adafruit ceļvedī. Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GB); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

UZSTĀDĪT:

void setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicializējiet sloksnes, visas OFFpixels.begin (); minpixels.begin (); pikseļi.parādīt (); minpixels.show ();

// Izveidojiet nelielu animācijuSerial.println ("SUNRISE"); saullēkts (); kavēšanās (1000); Serial.println ("SUNSET"); saulriets (); pikseļi.parādīt (); Serial.println ("GATAVS"); }

LOOP:

void loop () {// pārbaudiet, vai nav laika sinhronizācijas, kamēr (Serial.available ()> 0) {char c = Serial.read (); ja (c == utch) // ja uz līnijas ir @, izlasiet nākamos baitus /collas {readtime (); }} // inicializējiet gaismas diodes, notīriet sāknēšanas animāciju

if (inicializēt == 0) {clearpixels (); inicializēt = 1; }

ahour = stunda ();

aminute = minūte (); ja (timeset == 1 || timeset == 0) // šeit jūs varat pārbaudīt, vai ir iestatīts laiks, jūs varat apturēt programmu šeit, ja Timeset = FALSE, vienkārši noņemiet "|| timeset == 0"!

{

ja (oldamin <aminute || oldahour iestatīts uz OFF, parādīt jaunu laiku {clearpixels (); ClockDisplay ();}}}

Parādiet pulksteni:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xhour, xmin;

ja (stunda> = 12) {x stunda = stunda-12; // mums ir tikai 12 gaismas diodes 24h displejam} else {xhour = ahour; } // mērogojiet to 5 minūšu soļos xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; dzidri pikseļi (); } // ņem pārējo dalījumu dor singelmin LED mmin = (aminute % 5); // modulo operators, piem. 24 % 5 = 4! ļoti noderīga: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // krāsas vari mainīt šeit! spēlēties! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pikseļi.parādīt ();

// parādīt singel minsfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pikseļi. Krāsa (255, 255, 0)); minpixels.show (); }} Lasīt un apstrādāt TIMEinformāciju no sērijas

void readtime () // ja mēs jau esam ieguvuši vadošo "@", apstrādājiet nākamos datus un saglabājiet laiku TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); mēnesis = Serial.parseInt (); gads = Serial.parseInt (); Serial.println ("TIMESET"); Sērijas nospiedums (stunda); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Nodzēst visu

void clearpixels () // lai atsvaidzinātu displeju, izslēdziet katru PIXEL

pikseļi.sākas (); minpixels.begin (); par (int i = 0; ipixels.setPixelColor (i, pixels. Color (0, 0, 0))); minpixels.setPixelColor (i, pixels. Color (0, 0, 0)); pixels.show (); minpixels.parādīt ();}}

5. darbība: Android APP un BT savienojums

Android APP un BT savienojums
Android APP un BT savienojums
Android APP un BT savienojums
Android APP un BT savienojums
Android APP un BT savienojums
Android APP un BT savienojums

Ja iepriekšējās darbības bija veiksmīgas, tagad varat pieslēgt BT moduli. (es ceru, ka jūs pārliecinājāties, ka datu pārraides ātrums sakrīt). neaizmirstiet šķērsot TX un RX līnijas:-)

Lejupielādējiet un instalējiet lietotni, savienojiet pārī ar savu BT dongle, palaidiet lietotni, izveidojiet savienojumu ar dongle un sinhronizējiet laiku ar savu mobilo tālruni. APP pamatā dara to pašu, ko mēs iepriekš. Tas tikai nosūta @hh/mm/ss/dd/mm/YYYY, kas ģenerēts no tā sistēmas laika. Es arī sniedzu APPInventor AIA failu un paskaidrojumu par nākamo soli (tiem, kas interesējas).

6. darbība: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP izgudrotājs ir diezgan viegli lietojams, un ir vērts pielikt pūles tik vienkāršai programmai.

Ja veidojat jaunu projektu, jūs atradīsit sevi DESIGNER ekrānā. (1. attēls) Šeit mēs pievienojam tabulas, pogas, sensorus un citus elementus turpmākai lietošanai. Mūsu gadījumā mums ir nepieciešams:

  • tabula (lai iezīmētu visus elementus)
  • saraksta atlasītājs (lai izvēlētos BT ierīci, ar kuru mēs izveidojam savienojumu)
  • poga (lai aktivizētu TIME, izmantojot BT)
  • dažas etiķetes (parādīt faktisko laiku un datumu)
  • pulksteņa sensors (atsvaidziniet laiku)
  • Bluetooth klienta sensors (savienojums)

To pievienošana ir tikpat vienkārša kā vilkšana un nomešana! 2. attēlā ekrānā BLOKS varat redzēt "APP" pārskatu. Būtībā tur notiek visa “maģija”. Augšpusē es izveidoju dažus mainīgos, lai saglabātu laiku un datumu. Pirmais bloks augšējā kreisajā pusē inicializēs saraksta atlasītāja elementu ar pārī savienoto BT ierīču sarakstu. otrajā blokā mēs izlemjam, ko darīt ar iepriekš izvēlēto elementu. Nu, mēs vēlamies tam pieslēgties.

Ja jūs rūpīgi aplūkojat nākamo bloku, jūs varat redzēt, ka mēs ģenerējam BT ziņojumu, ja BT statuss "ir savienots". Tas ir tas pats, ko mēs iepriekš ierakstījām SerialMonitor. Pēdējais bloks pa kreisi sniegs mums sākuma nulles, lai parādītu laiku (piemēram, 01:08). Labajā pusē ir mūsu pēdējais bloks, kur mēs izmantojam pulksteņa elementu. Šeit mēs atjauninām mainīgos un apvienojam tos ar ciparu procedūru, tas notiks ik pēc 1000 ms (noklusējuma iestatījums, mainiet to dizainera režīmā) un parādīt atjauninātās vērtības ar etiķeti. Tas ir tikai īss apraksts, taču APPInventor ir tikpat vienkāršs:-) Varbūt sabiedrībā ir kāds, kurš vēlas uzrakstīt programmatūru iOS vai WindowsPhone. (būtu lieliski)

Es ceru, ka jums patika mans Instructable! Izklaidējieties ar savu jauno sienas pulksteni! Varbūt jūs vēlaties to uzdāvināt kādam, kas jums patīk (tā X-Mas sezona):-)

Un, ja ir kādi jautājumi, droši jautājiet man!

Visu cieņu un priecīgus Ziemassvētkus.

Ieteicams: