Satura rādītājs:

Uz pozīciju balstīts daudzfunkcionāls kuba pulkstenis: 5 soļi (ar attēliem)
Uz pozīciju balstīts daudzfunkcionāls kuba pulkstenis: 5 soļi (ar attēliem)

Video: Uz pozīciju balstīts daudzfunkcionāls kuba pulkstenis: 5 soļi (ar attēliem)

Video: Uz pozīciju balstīts daudzfunkcionāls kuba pulkstenis: 5 soļi (ar attēliem)
Video: oKhaliD vs Rw9 | Feer Fest Группа C | Ракетная лига 1 на 1 2024, Jūlijs
Anonim
Image
Image
Uz stāvokli balstīts daudzfunkcionāls kuba pulkstenis
Uz stāvokli balstīts daudzfunkcionāls kuba pulkstenis
Uz stāvokli balstīts daudzfunkcionāls kuba pulkstenis
Uz stāvokli balstīts daudzfunkcionāls kuba pulkstenis

Fusion 360 projekti »

Šis ir uz Arduino balstīts pulkstenis ar OLED displeju, kas darbojas kā pulkstenis ar datumu, kā miega taimeris un kā naktsgaisma. Dažādas "funkcijas" kontrolē ar akselerometru, un tās izvēlas, pagriežot kuba pulksteni.

Es gribēju jaunu naktsgaldiņa pulksteni, bet es negribēju tērēt naudu izsmalcinātam pulkstenim, kuram bija daudz funkciju, kuras es neizmantotu. Turklāt es biju savācis komponentus un sensorus, kas tikko atradās, tāpēc es nolēmu tos izmantot, lai izveidotu savu pulksteni!

Šim projektam man bija daži mērķi:

  1. Parādiet šo laiku ar iespēju izslēgt
  2. Iekļaujiet nakts gaismas funkciju
  3. Iekļaujiet 15 minūšu miega taimeri ar modinātāju
  4. Spēj parādīt datumu

Piegādes

  • Arduino Pro Mini 5V
  • ADXL335 3 asu akselerometrs
  • DS3231 AT24C32 IIC precizitāte Reālā laika pulkstenis
  • Mini skaļrunis
  • OLED displejs SSD1306 IIC 0,96 collas
  • 5 V līdzstrāvas barošanas avots
  • LED x 2
  • Rezistori 220ohm x 2
  • DC mucas ligzda
  • Vads
  • Rīki

    • Stiepļu griezēji/noņēmēji
    • Lodāmurs/lodētava
    • 3D printeris (pēc izvēles)
    • FTDI programmētājs saskarnei starp Pro mini un Arduino IDE

1. solis: prototipa izveidošana un ķēdes pārbaude

Prototips un pārbaudiet ķēdi
Prototips un pārbaudiet ķēdi
Prototips un pārbaudiet ķēdi
Prototips un pārbaudiet ķēdi
Prototips un pārbaudiet ķēdi
Prototips un pārbaudiet ķēdi

Savienojiet komponentus ar Arduino. Maizes dēļa izkārtojums vai shematisks ir parādīts iepriekš. RTC un OLED izmanto I2C protokolu, lai izveidotu savienojumu ar Arduino un izmantotu A4 un A5 tapas. Akselerometrs izmanto 3 analogās tapas. Es izmantoju A0, A1, A2. Gaismas diodes un pjezo var izmantot jebkuru no digitālajām tapām, es izmantoju attiecīgi 4 un 8.

Saskarne ar katru komponentu. Man bija jāinstalē dažas Arduino bibliotēkas, lai saskartos ar katru komponentu. Tie ir parādīti attēlā iepriekš.

Kods, izmantojot Arduino IDE. Es izskatīju dažus skices piemērus, ko sniedza katra bibliotēka, lai noskaidrotu pareizo katra komponenta sintaksi, pamatojoties uz to, ko es vēlējos, lai viņi dara. Es izdomāju skici katram komponentam, lai tos pārbaudītu atsevišķi. Tie ir sniegti zemāk. Es sāku ar pjezo skaļruni, jo tas bija vieglākais. Tam faktiski nebija vajadzīga īpaša bibliotēka, tikai īpaša funkcija, kas nosaka frekvenci un skaņu. Lai gaismas diodes sāktu darboties, bija nepieciešams pavilkt vienu no digitālajām tapām augstu un zemu. Tālāk es pārgāju uz OLED, un arī to bija diezgan vienkārši uzstādīt. Zemāk esošā skice ir Adafruit demonstrācija, kas iziet cauri visām animācijām/tekstiem, kurus var parādīt. Tad es mēģināju panākt, lai RTC darbotos. Mana sniegtā skice bija daļa no piemēra bibliotēkā, kas iegūst pašreizējo laiku un izdrukā to sērijas monitorā. Visbeidzot, es izmantoju sniegto piemēru, lai pārbaudītu akselerometru. Katras ass izejas tiek drukātas uz seriālā monitora.

Tagad ir laiks visu salikt kopā!

2. darbība: galvenā programma

Galvenā programma
Galvenā programma
Galvenā programma
Galvenā programma

Tagad, kad zinu, ka viss darbojas individuāli, varu sākt izstrādāt programmu, kas visu apvieno. Tālāk es apspriedīšu savu programmas rakstīšanas procesu, bet nekautrējieties vienkārši lejupielādēt visu zemāk esošo kodu, lai to izmantotu savam projektam. Es mēģināju atstāt konkrētus komentārus, lai jūs pats varētu iziet kodu.

Man vajadzēja OLED attēlot laiku un datumu, kas bija diezgan vienkārši. Man vienkārši vajadzēja izdrukāt pašreizējo laiku displejā, nevis sērijas monitorā. Bija jāņem vērā dažas formatēšanas lietas, lai tas parādītu 12 stundu formātu 24 vietā un pievienotu/noņemtu 0, kur tie bija piemēroti. Datums bija līdzīgs, pievienojot mēnesi un dienu ekrānā uzzīmētiem taisnstūros. Es izmantoju ligzdotu FOR cilpu, lai izveidotu taimeri un pēc cilpas beigām ieslēgtu pjezo. Es nolēmu izslēgt ekrānu, kad atskanēja skaņas signāls, kas bija pamata animācija, kas ņemta no Adafruit demonstrācijas. Es padarīju kuba pagriešanu atpakaļ pulksteņa pozīcijā vienīgo veidu, kā izslēgt skaņas signālu. Visbeidzot, es gribēju veidu, kā izslēgt ekrānu, kas tika paveikts, vienkārši notīrot displeju. Tagad man vajadzēja, lai visas šīs funkcijas darbotos, pamatojoties uz akselerometra izejām. Es izmantoju skriptu Accel_Test, lai noteiktu katras pozīcijas asu koordinātas, kuras es vēlējos, lai katra funkcija darbotos. Es manuāli pārvietoju akselerometra mikroshēmu un ierakstīju rādījumus sērijas monitorā. Iepriekš redzamajā diagrammā ir norādītas katras GREY pozīcijas izvades koordinātas. RED koordinātas ir robežas starp katru pozīciju, un es izmantoju šos skaitļus savai programmai. 4 displeja pozīcijās ir nepieciešamas tikai X un Y ass koordinātas. Piektā nakts gaismas pozīcija izmanto Z asi. Akselerometra pozīcijām pirms katra funkciju bloka es izmantoju vienkāršus IF paziņojumus. Ja izmantojat citu akselerometru, šīs koordinātas var atšķirties, un tās programmā būs jāpielāgo.

3. darbība: kuba 3D drukāšana

3D drukāšana kubā
3D drukāšana kubā
3D drukāšana kubā
3D drukāšana kubā
3D drukāšana kubā
3D drukāšana kubā

Es sapratu, ka kubs būtu labākais dizains, lai pielāgotos tam, kā es gribēju, lai pulkstenis darbotos. Modeļa izgatavošanai es izmantoju fusion360. Man bija nepieciešams izgriezums OLED un mucas ligzdai. Es arī gribēju vieglu piekļuvi, lai nomainītu šūnu akumulatoru RTC pēc tam, kad viss bija pieslēgts vadam. Man vajadzēja slotu, lai Arduino saglabātu orientāciju, kuru vajadzības gadījumā būtu viegli pārprogrammēt. Turklāt korpusam bija jābūt viegli noņemamam, lai es varētu piekļūt Arduino. Jūs varat redzēt CAD modeli iepriekš, un STL faili ir zemāk.

Es drukāju korpusu melnā PLA ar 20% pildījumu, 0.2 mm izšķirtspēju.

Korpuss vai uzmava tika iespiests Solutech elastīgajā pavedienā ar 100% pildījumu, 0,3 mm izšķirtspēju. Es izmantoju šo materiālu, jo tam ir zināma elastība, kas ļāva viegli izstiepties virs ķermeņa. Griežot pulksteni, tam ir arī maigāka sajūta. Visbeidzot, es izvēlējos skaidru kvēldiegu, lai naktsgaismas gaismas diodes spīdētu cauri.

4. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Es saslēdzu visu kopā, izmantojot 1. darbības shēmu. Es izmantoju nelielu perforētas plāksnes gabalu, lai savienotu visus kopējos vadus, lai man nebūtu jāpielodē vairāki vadi ar vienu Arduino tapu. Karstā līme tika izmantota, lai visu nostiprinātu savā vietā, izņemot Arduino. Tas tikko tika iespiests tam paredzētajā slotā. Es pārliecinājos, ka akselerometra tāfele ir perpendikulāra un līdzena ķermeņa apakšai, lai nebūtu jāmaina koda koordinātas.

5. darbība: augšupielādējiet un esat pabeidzis

Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!
Augšupielādējiet un esat pabeidzis!

Tagad pēdējo programmu var augšupielādēt pulkstenī, lai iestatītu pareizo laiku. Šūnas akumulatoram vajadzētu saglabāt laiku pat tad, kad strāva ir atvienota. Bīdiet 3D drukāto uzmavu virs ķermeņa, lai paslēptu visas sastāvdaļas, un jums ir pilnīgs kuba pulkstenis!

Es ceru, ka jums patiks šī projekta veidošana un tas būs tikpat noderīgs kā man. Šī projekta jaukā daļa ir tā, ka tas ir ļoti pielāgojams. Jūtieties brīvi pievienot savas dažādas funkcijas, piemēram, trauksmes funkciju, izmantojiet dažādus komponentus, piemēram, lielāku OLED, FM radio uztvērēju utt.

Ieteicams: