Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Mga Proyekto ng Fusion 360 »
Ito ay isang orasan na nakabatay sa Arduino na nagtatampok ng isang display na OLED na gumana bilang isang orasan kasama ang petsa, bilang isang nap timer, at bilang isang nightlight. Ang iba't ibang mga "pag-andar" ay kinokontrol ng isang accelerometer at napili ng pag-ikot ng orasan ng kubo.
Nais ko ng isang bagong orasan ng nighttand ngunit hindi ko nais na gumastos ng pera sa isang magarbong orasan na may tone-toneladang mga function na hindi ko gagamitin. Bukod pa rito, nakakolekta ako ng mga sangkap at sensor na nakalagay lamang kaya't napagpasyahan kong gamitin ang mga ito upang makagawa ng sarili kong orasan!
Mayroon akong ilang mga layunin para sa proyektong ito:
- Ipakita ang oras na iyon sa isang pagpipilian upang i-off
- Isama ang isang pagpapaandar ng nightlight
- Magsama ng 15 minutong nap timer na may alarma
- Maipakita ang petsa
Mga gamit
- Arduino Pro Mini 5V
- ADXL335 3-Axis Accelerometer
- Sakto ang DS3231 AT24C32 IIC Real time na orasan
- Mini Speaker
- OLED Display SSD1306 IIC 0.96in
- 5V DC power supply
- LED x 2
- Mga resistorista 220ohm x 2
- DC barong jack
- Kawad
-
Mga kasangkapan
- Mga cutter / gulong ng wire
- Panghinang / panghinang
- 3D printer (opsyonal)
- FTDI programmer upang mag-interface sa pagitan ng Pro mini at ng Arduino IDE
Hakbang 1: Prototype at Subukan ang Circuit
Ikonekta ang mga bahagi sa Arduino. Ang layout ng breadboard o eskematiko ay ipinapakita sa itaas. Ang RTC at OLED ay gumagamit ng I2C protocol upang makipag-ugnay sa Arduino at gamitin ang mga A4 at A5 na pin. Gumagamit ang Accelerometer ng 3 mga analog na pin. Gumamit ako ng A0, A1, A2. Ang mga LED at Piezo ay maaaring gumamit ng alinman sa mga digital na pin, ginamit ko ang 4 at 8 ayon sa pagkakabanggit.
Interface sa bawat bahagi. Kailangan kong mag-install ng ilang mga aklatan ng Arduino upang mag-interface sa bawat bahagi. Ipinapakita ang mga ito sa imahe sa itaas.
Code gamit ang Arduino IDE. Sinala ko ang ilang mga halimbawa ng mga sketch na ibinigay ng bawat silid-aklatan upang malaman ang tamang syntax para sa bawat bahagi batay sa kung ano ang nais kong gawin nila. Nakuha ko ang isang sketch para sa bawat bahagi upang subukan ang mga ito nang paisa-isa. Ibinibigay ang mga ito sa ibaba. Nagsimula ako sa piezo speaker dahil ito ang pinakamadali. Talagang hindi nito kailangan ng isang espesyal na silid-aklatan, isang tukoy na pagpapaandar lamang na nagtatakda ng dalas at tunog. Ang pagkuha ng mga LED upang gumana kinakailangan lamang ang paghila ng isa sa mga digital na pin na mataas at mababa. Susunod, lumipat ako sa OLED at ito ay medyo simple na i-setup din. Ang sketch sa ibaba ay isang demo ng Adafruit na dumaan sa lahat ng mga animasyon / teksto na maaaring ipakita. Pagkatapos, sinubukan kong gumana ang RTC. Ang sketch na ibinigay ko ay bahagi ng isang halimbawa sa library na nakakakuha ng kasalukuyang oras at nai-print ito sa serial monitor. Panghuli, ginamit ko ang ibinigay na halimbawa upang subukan ang accelerometer. Ang mga output ng bawat axis ay naka-print sa serial monitor.
Ngayon oras upang pagsamahin ang lahat!
Hakbang 2: Pangunahing Program
Ngayon na alam ko na ang bawat isa ay gumagana nang paisa-isa, maaari akong magsimulang magkaroon ng isang programa na pinagsasama-sama ang lahat. Tatalakayin ko ang aking proseso para sa pagsusulat ng programa sa ibaba ngunit huwag mag-atubiling i-download lamang ang buong code sa ibaba upang magamit para sa iyong sariling proyekto. Sinubukan kong mag-iwan ng mga tukoy na komento upang maaari kang maglakad sa iyong code mismo.
Kailangan kong ipakita ang oras at petsa sa OLED na medyo simple. Kailangan ko lamang i-print ang kasalukuyang oras sa display sa halip na ang serial monitor. Mayroong ilang mga bagay sa pag-format na kailangan kong account upang maipakita ito ng isang 12 oras na format sa halip na 24 at idagdag / alisin ang 0 kung saan naaangkop. Ang petsa ay pareho sa pagdaragdag ng pagpapakita ng buwan at araw sa loob ng mga parihaba na iginuhit sa screen. Gumamit ako ng isang pugad SA loop upang likhain ang timer at i-set ang piezo pagkatapos ng pagtatapos ng loop. Napagpasyahan kong gawin ang flash ng screen habang ang buzzer ay papatay na isang pangunahing animation na kinuha mula sa demo ng Adafruit. Ginawa kong ibalik ang kubo sa posisyon ng orasan sa tanging paraan na patayin ang buzzer. Sa wakas, gusto ko ng isang paraan upang patayin ang screen na nagawa sa pamamagitan ng pag-clear lamang ng display. Ngayon, kailangan ko ang lahat ng mga pagpapaandar na ito upang gumana batay sa mga output ng accelerometer. Ginamit ko ang script ng Accel_Test upang matukoy ang mga axis coordinate ng bawat posisyon na nais kong patakbuhin ng bawat pagpapaandar. Manu-mano kong inilipat ang accelerometer chip sa paligid at naitala ang mga readout sa serial monitor. Ang diagram sa itaas ay nagbibigay ng mga output ng bawat posisyon sa GRAY. Ang mga coordinate sa RED ay ang mga hangganan sa pagitan ng bawat posisyon at ginamit ko ang mga numerong iyon para sa aking programa. Sa 4 na posisyon sa pagpapakita, ang mga coordinate ng axis ng X at Y lamang ang kinakailangan. Ang ikalimang posisyon para sa nightlight ay gumagamit ng Z axis. Gumamit ako ng simpleng mga pahayag na KUNG para sa mga posisyon ng accelerometer bago ang bawat pag-andar ng function. Kung gagamit ka ng ibang accelerometer, maaaring magkakaiba ang mga coordinate na ito at kailangang ayusin sa programa.
Hakbang 3: Pag-print ng 3D sa Cube
Naisip ko na ang isang kubo ay ang pinakamahusay na disenyo upang mapaunlakan kung paano ko nais na gumana ang orasan. Gumamit ako ng fusion360 upang gawin ang modelo. Kailangan ko ng isang ginupit para sa OLED at ng jack jack. Nais ko din ng madaling pag-access upang mapalitan ang cell baterya sa RTC pagkatapos na ang lahat ay naka-wire. Kailangan ko ng puwang upang mapanatili ang Arduino sa isang oryentasyon na magiging madaling i-reprogram kung kinakailangan. Bukod dito kinakailangan ang enclosure upang madaling matanggal upang ma-access ko ang Arduino. Maaari mong makita ang modelo ng CAD sa itaas at ang mga file ng STL ay nasa ibaba.
Nai-print ko ang katawan sa itim na PLA na may 20% infill, 0.2mm na resolusyon.
Ang enclosure o manggas ay naka-print sa Solutech kakayahang umangkop na filament na may 100% infill, 0.3 mm na resolusyon. Ginamit ko ang materyal na ito sapagkat mayroon itong kaunting kakayahang umangkop na ginagawang madali upang mabatak sa katawan. Mayroon din itong mas malambot na pakiramdam dito kapag paikutin ang orasan. Panghuli, pumili ako ng isang malinaw na filament upang ang mga LED para sa mga nightlight ay lumiwanag.
Hakbang 4: Assembly
Pinagsama ko ang lahat gamit ang eskematiko mula sa Hakbang 1. Gumamit ako ng isang maliit na piraso ng perfboard upang ikonekta ang lahat ng mga karaniwang wires upang hindi ko maghinang ng maraming mga wires sa isang pin sa Arduino. Ginamit ang mainit na pandikit upang ma-secure ang lahat sa kani-kanilang lugar maliban sa Arduino. Itinulak lamang ito sa itinalagang slot nito. Natiyak ko na ang board ng accelerometer ay patayo at antas sa ilalim ng katawan upang ang mga coordinate sa code ay hindi kailangang baguhin.
Hakbang 5: Mag-upload at Tapos Na
Ngayon ang pangwakas na programa ay maaaring mai-upload sa orasan upang maitakda ang tamang oras. Dapat panatilihin ng baterya ng cell ang oras kahit na ang kuryente ay hindi naka-plug. I-slide ang 3D naka-print na manggas sa katawan upang maitago ang lahat ng mga bahagi at mayroon kang isang kumpletong orasan ng kubo!
Inaasahan kong nasisiyahan ka sa paggawa ng proyektong ito at hanapin itong kapaki-pakinabang tulad ng ginagawa ko. Ang magandang bahagi tungkol sa proyektong ito ay napapasadyang. Huwag mag-atubiling idagdag ang iyong sariling iba't ibang mga pag-andar tulad ng isang pag-andar ng alarma, gumamit ng iba't ibang mga bahagi tulad ng isang mas malaking OLED, FM radio receiver, atbp Maligayang paggawa!