Cuprins:

Ceas multifuncțional bazat pe poziție: 5 pași (cu imagini)
Ceas multifuncțional bazat pe poziție: 5 pași (cu imagini)

Video: Ceas multifuncțional bazat pe poziție: 5 pași (cu imagini)

Video: Ceas multifuncțional bazat pe poziție: 5 pași (cu imagini)
Video: FEMEIA De 399 De ANI ! #shorts 2024, Iulie
Anonim
Image
Image
Ceas Cube multifuncțional bazat pe poziție
Ceas Cube multifuncțional bazat pe poziție
Ceas Cube multifuncțional bazat pe poziție
Ceas Cube multifuncțional bazat pe poziție

Proiecte Fusion 360 »

Acesta este un ceas bazat pe Arduino, cu un afișaj OLED care funcționează ca un ceas cu data, ca temporizator de somn și ca lumină de noapte. Diferitele „funcții” sunt controlate de un accelerometru și sunt selectate prin rotirea ceasului cubului.

Am vrut un nou ceas de noptieră, dar nu am vrut să cheltuiesc bani pe un ceas de lux care avea o mulțime de funcții pe care nu le-aș folosi. În plus, colectasem componente și senzori care se întindeau, așa că am decis să le folosesc pentru a-mi crea propriul ceas!

Am avut câteva obiective pentru acest proiect:

  1. Afișați acea oră cu o opțiune de dezactivat
  2. Includeți o funcție de noapte
  3. Includeți un temporizator de 15 minute cu alarmă
  4. Afișați data

Provizii

  • Arduino Pro Mini 5V
  • Accelerometru cu 3 axe ADXL335
  • DS3231 AT24C32 IIC precizie Ceas în timp real
  • Mini difuzor
  • Afișaj OLED SSD1306 IIC 0.96in
  • Sursa de alimentare 5V DC
  • LED x 2
  • Rezistoare 220ohm x 2
  • Jack cu butoi DC
  • Sârmă
  • Instrumente

    • Mașini de tăiat / decupat sârme
    • Fier de lipit / lipit
    • Imprimantă 3D (opțional)
    • Programator FTDI pentru interfață între Pro mini și Arduino IDE

Pasul 1: Prototipați și testați circuitul

Protejează și testează circuitul
Protejează și testează circuitul
Protejează și testează circuitul
Protejează și testează circuitul
Protejează și testează circuitul
Protejează și testează circuitul

Conectați componentele la Arduino. Schema sau schema de afișare sunt prezentate mai sus. RTC și OLED utilizează protocolul I2C pentru a interfața cu Arduino și utiliza pinii A4 și A5. Accelerometrul folosește 3 pini analogici. Am folosit A0, A1, A2. LED-urile și Piezo pot folosi oricare dintre pinii digitali, am folosit 4 și respectiv 8.

Interfață cu fiecare componentă. A trebuit să instalez câteva biblioteci Arduino pentru a interfața cu fiecare componentă. Acestea sunt afișate în imaginea de mai sus.

Cod utilizând ID-ul Arduino. Am cercetat câteva schițe de exemplu furnizate de fiecare bibliotecă pentru a afla sintaxa adecvată pentru fiecare componentă pe baza a ceea ce am vrut să facă. Am venit cu o schiță pentru fiecare componentă pentru a le testa individual. Acestea sunt furnizate mai jos. Am început cu difuzorul piezo, pentru că a fost cel mai ușor. De fapt nu avea nevoie de o bibliotecă specială, ci doar de o funcție specifică care stabilește frecvența și sunetul. Funcționarea LED-urilor a necesitat doar tragerea unuia dintre pinii digitali în sus și în jos. Apoi, m-am mutat pe OLED și acest lucru a fost destul de simplu de configurat, de asemenea. Schița de mai jos este o demonstrație Adafruit care trece prin toate animațiile / textele care pot fi afișate. Apoi, am încercat să pun RTC să funcționeze. Schița pe care am furnizat-o face parte dintr-un exemplu din bibliotecă care obține ora curentă și o imprimă pe monitorul serial. În cele din urmă, am folosit exemplul furnizat pentru a testa accelerometrul. Ieșirile fiecărei axe sunt tipărite pe monitorul serial.

Acum este timpul să punem totul împreună!

Pasul 2: Programul principal

Programul principal
Programul principal
Programul principal
Programul principal

Acum, că știu că totul funcționează individual, pot începe să vin cu un program care să reunească totul. Voi discuta despre procesul meu de scriere a programului de mai jos, dar nu ezitați să descărcați codul complet de mai jos pentru al utiliza pentru propriul dvs. proiect. Am încercat să las comentarii specifice, astfel încât să puteți parcurge singur codul.

Aveam nevoie să afișez ora și data pe OLED, ceea ce era destul de simplu. Trebuia doar să imprim ora curentă pe ecran în locul monitorului serial. Au fost câteva lucruri de formatare pe care trebuia să le iau în considerare pentru a-l face să afișeze un format de 12 ore în loc de 24 și să adauge / să elimine 0 acolo unde erau potrivite. Data a fost similară cu adăugarea afișării lunii și zilei în dreptunghiuri desenate pe ecran. Am folosit o buclă FOR imbricată pentru a crea temporizatorul și am pornit piezo-ul după sfârșitul buclei. Am decis să fac ecranul să clipească pe măsură ce buzzerul se declanșa, ceea ce era o animație de bază preluată de la demonstrația Adafruit. Am făcut să întorc cubul înapoi în poziția ceasului singurul mod de a opri soneria. În cele din urmă, am dorit o modalitate de a opri ecranul, care a fost realizat doar prin golirea afișajului. Acum, aveam nevoie de toate aceste funcții pentru a funcționa pe baza ieșirilor accelerometrului. Am folosit scriptul Accel_Test pentru a determina coordonatele axelor fiecărei poziții în care doream să ruleze fiecare funcție. Am mutat manual cipul accelerometrului și am înregistrat citirile pe monitorul serial. Diagrama de mai sus oferă coordonatele de ieșire ale fiecărei poziții în GREY. Coordonatele din RED sunt granițele dintre fiecare poziție și am folosit aceste numere pentru programul meu. În cele 4 poziții de afișare, sunt necesare doar coordonatele axelor X și Y. A cincea poziție pentru lumina de noapte utilizează axa Z. Am folosit instrucțiuni IF simple pentru pozițiile accelerometrului înainte de fiecare bloc funcțional. Dacă utilizați un accelerometru diferit, aceste coordonate pot varia și vor trebui ajustate în program.

Pasul 3: Imprimarea 3D a cubului

Imprimarea 3D a cubului
Imprimarea 3D a cubului
Imprimarea 3D a cubului
Imprimarea 3D a cubului
Imprimarea 3D a cubului
Imprimarea 3D a cubului

M-am gândit că un cub ar fi cel mai bun design pentru a se potrivi cu modul în care doream să funcționeze ceasul. Am folosit fusion360 pentru a face modelul. Aveam nevoie de un decupaj pentru OLED și mufa de butoi. De asemenea, am vrut acces ușor pentru a înlocui bateria celulară din RTC după ce totul a fost conectat. Aveam nevoie de un slot pentru a menține Arduino într-o orientare care să fie ușor de reprogramat, dacă este necesar. În plus, carcasa trebuia să poată fi ușor demontată, astfel încât să pot accesa Arduino. Puteți vedea modelul CAD de mai sus, iar fișierele STL sunt mai jos.

Am imprimat corpul în PLA negru cu umplutură de 20%, rezoluție de 0,2 mm.

Carcasa sau manșonul au fost imprimate în filament flexibil Solutech cu umplutură 100%, rezoluție 0,3 mm. Am folosit acest material, deoarece are o oarecare flexibilitate, ceea ce a ușurat întinderea peste corp. De asemenea, are o senzație mai moale la rotirea ceasului. În cele din urmă, am ales un filament clar, astfel încât LED-urile pentru luminile de noapte să strălucească.

Pasul 4: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Am conectat totul împreună folosind schema de la Pasul 1. Am folosit o mică bucată de perfboard pentru a conecta toate firele comune, astfel încât să nu trebuiască să lipesc mai multe fire la un singur pin de pe Arduino. Adezivul fierbinte a fost folosit pentru a asigura totul la locul său, cu excepția Arduino. A fost doar împins în slotul său desemnat. M-am asigurat că placa accelerometrului este perpendiculară și nivelată pe partea inferioară a corpului, astfel încât coordonatele din cod să nu fie nevoie să fie schimbate.

Pasul 5: Încărcați și ați terminat

Încărcați și ați terminat!
Încărcați și ați terminat!
Încărcați și ați terminat!
Încărcați și ați terminat!
Încărcați și ați terminat!
Încărcați și ați terminat!
Încărcați și ați terminat!
Încărcați și ați terminat!

Acum, programul final poate fi încărcat pe ceas pentru a seta ora corectă. Bateria celulară ar trebui să păstreze timpul chiar și atunci când alimentarea este deconectată. Glisați manșonul imprimat 3D peste corp pentru a ascunde toate componentele și aveți un ceas cub complet!

Sper că vă place să faceți acest proiect și să îl găsiți la fel de util ca mine. Partea frumoasă a acestui proiect este că este foarte personalizabilă. Simțiți-vă liber să adăugați propriile funcții, cum ar fi o funcție de alarmă, să utilizați diferite componente, cum ar fi un receptor OLED mai mare, un radio FM, etc.

Recomandat: