Talaan ng mga Nilalaman:

TheSUN, Arduino Powered Design Wall Clock: 6 na Hakbang (na may Mga Larawan)
TheSUN, Arduino Powered Design Wall Clock: 6 na Hakbang (na may Mga Larawan)

Video: TheSUN, Arduino Powered Design Wall Clock: 6 na Hakbang (na may Mga Larawan)

Video: TheSUN, Arduino Powered Design Wall Clock: 6 na Hakbang (na may Mga Larawan)
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Hulyo
Anonim
TheSUN, Arduino Pinapatakbo na Disenyo ng Clock sa Wall
TheSUN, Arduino Pinapatakbo na Disenyo ng Clock sa Wall
TheSUN, Arduino Pinapatakbo na Disenyo ng Clock sa Wall
TheSUN, Arduino Pinapatakbo na Disenyo ng Clock sa Wall
TheSUN, Arduino Pinapatakbo na Disenyo ng Clock sa Wall
TheSUN, Arduino Pinapatakbo na Disenyo ng Clock sa Wall

Kumusta ulit Mga Instructable-folks!:-P

Dahil sa mga problema sa pagpapadala ay hindi ko maipagpatuloy ang aking ABTW Project kaya't napagpasyahan kong ipakita sa iyo ang isa pa, ang aking pinakabagong nilikha.

Sa palagay ko marami sa atin, tulad ng sa akin, tulad ng magagandang addressable LED Stripes (tinatawag ding NEOPIXEL LED). Maaari mong makuha ang mga ito mula sa ADAFRUIT. Ang iba pang mga vendor ay magbibigay din ng mga katulad na produkto. Mayroong isang silid-aklatan na magagamit sa ADAFRUITS - GitHub (i-click sa akin) kasama ang ilang sample code. Kaya't dapat na straight-forward ang pag-coding…

Nakita ko ang mga NEOPIXEL na iyon ng isang pag-iisip, ano ang h … magagawa ko sa mga makintab na maliliit na bagay.

  • Isang Display sa LED-matrix? -> Upang kumplikado at hindi ko ito ginagamit (sa ngayon)
  • X-Mas Lighting? -> Tama ang sukat sa panahon ngunit magiging mas mura ang bumili ng isa:-P
  • orasan? -> Bakit hindi! Ngunit dapat itong naka-istilo at hindi kinaugalian

Kaya, gumawa tayo ng isang orasan sa dingding.

Kung malapit titingnan natin ang relo ng pulso (kung mayroon kang isang analog na katulad ko) mapapansin namin na mayroon kaming 12 oras at 60 minuto (sana). Mangangahulugan iyon, kailangan namin ng 60 addressable LED's, phu! Kung kukuha kami ng isang guhit na may 60 LED's / meter makakakuha kami ng isang diameter ng ~ 318mm (radius = saklaw / (2 * Π)) tiyak na masyadong malaki.

Ang totoo, kung tatanungin mo ang isang tao para sa oras, walang sinuman ang magsasabi na 2 minuto na ang nakalipas 3! Makukuha mo ang "It s 5 past 3" bilang isang sagot. Kaya bakit hindi natin sukatin ang lahat hanggang sa 5min na mga hakbang? Para doon kakailanganin lamang namin ang 12 LEDs na nangangahulugang nakakakuha kami ng diameter na 63.6mm. Nagagawa rin naming pag-iba-iba ang oras at minuto sa pamamagitan ng pagbibigay sa kanila ng magkakahiwalay na kulay. Magagawa rin naming ibigay ang "nawawalang" solong minutong mga hakbang na may isang karagdagang Strip ng 4 LEDs (o iisang address na LED.

YUN ANG PLANO! Tingnan natin kung paano ko nagawa ang lahat. Tulad ng dati ay magbibigay ako ng isang listahan / bayarin ng mga materyales at tagubilin sa kung paano ito maitatayo.

Kung sa palagay mo, ang mga taga-Switzerland lamang ang makakagawa ng mga cool na orasan, patunayan nating mali ka (paumanhin sa Switzerland:-P)

Hakbang 1: Disenyo at Pagpili ng Mga Materyales

Disenyo at Pagpili ng Mga Materyales
Disenyo at Pagpili ng Mga Materyales
Disenyo at Pagpili ng Mga Materyales
Disenyo at Pagpili ng Mga Materyales

Disenyo:

Kung mayroon tayong masusing pagtingin sa aming analog na relo / orasan muli nakikita natin na ang bilog ay nahahati sa 12 * 30 ° na mga hakbang na alam natin, na kailangan natin ng 63.6mm para sa LED-Strip. Kaya't dapat na posible na ihanay ang strip sa paligid ng isang tubo sa paanuman. Napagpasyahan kong gumamit ng acrylic na baso, dahil maganda ito at posible na i-encapsulate ang ilaw na LED dito at sa bawat pagkukulang sa baso ay magaganap ang ilang pagsabog ng ilaw. Kaya, sabihin natin: mas maraming mga impurities ay hahantong sa mas maraming pagsabog ng ilaw! Iyon mismo ang gusto namin. Kaya huwag mag-atubiling kunin ang iyong mga tool sa pag-ukit at maging malikhain:-)

Kung sumangguni ka sa aking BoM-list at sa pangalang ibinigay ko sa orasan, pumili ako ng isang araw na tulad ng disenyo. Nakuha ko ang lahat ng mga bahagi ng acrylic mula sa isang nagbebenta ng Aleman sa E-Bay (ibinigay ang link sa BoM). Para sa aking disenyo kakailanganin mong:

  • acrylic ground plate, transparent kapal = 6mm, diameter = 300mm
  • acrylic gitna plate, transparent kapal = 3mm, diameter = 150mm
  • plato sa harap ng acrylic, satin, kapal = 3mm, diameter = 90mm
  • acrylic tube, transparent, panlabas na diameter = 64mm (ay nangangahulugang kailangan nating mag-tweak nang kaunti sa LED strip)
  • acrylic rod, transparent, diameter = 5mm (ito ang magiging beams namin); Mayroon ding mga acrylic rods sa paligid na may mga bula sa loob, inirerekumenda ko ang mga ito ngunit hindi ko sila pinalibot.
  • pandikit ng acrylic

Electronics (sumangguni sa mga Fritzing-files):

  • Arduino mini (o katulad)
  • 1 addressable LED Strip (12 LEDs para sa oras at 5min hakbang)
  • 4 addressable LEDs (solong minuto)
  • 2 330Ohm Resistors
  • 1 1000µF Capacitor
  • 1 powersupply (5V / 500mA)
  • isang RTC DS-1307 (opsyonal!)
  • Bluetooth module (opsyonal! Oo maaari mong itakda ang oras sa pamamagitan ng BT at isang Android Smartphone)

Kung tatanungin mo ang iyong sarili kung bakit mayroon akong MAX485 chips sa aking BoM. Ang sagot ay, nais kong i-syncronize ang orasan sa home automation system na gagawin ko (hindi kailanman magtatakda ng isang orasan para sa pag-save muli ng liwanag ng araw:-P). Ilalarawan ko iyon sa aking blog sa susunod ilang linggo / buwan.

Tulad ng napansin mo, susubukan ko ring makuha ang orasan na off-grid na may ilang mga solar panel at isang LiPo, ngunit hindi ko ito saklawin sa Maituturo na huwag mag-atubiling subukan ito mismo.

Hakbang 2: Ihanda ang Mga Bahaging Acrylic

Ihanda ang Mga Bahaging Acrylic
Ihanda ang Mga Bahaging Acrylic
Ihanda ang Mga Bahaging Acrylic
Ihanda ang Mga Bahaging Acrylic
Ihanda ang Mga Bahaging Acrylic
Ihanda ang Mga Bahaging Acrylic

Ang mga kagamitan:

Una sa lahat talagang kapaki-pakinabang kung nai-print mo ang plano ng DWG na idinagdag ko sa sukat 1: 1. Tutulungan ka nitong ihanay ang lahat ng mga bahagi at magsisilbi sa iyo bilang isang plano sa pagbabarena. Dagdag pa kakailanganin mo:

  • hobbyknife
  • gauge gauge
  • hacksaw
  • clamp
  • drill ng kamay
  • Maaari drill, diameter 65mm
  • isang hanay ng mga metal drills
  • isang maliit na file na metal
  • pandikit ng acrylic

Magsimula tayo:

Kunin ang ground plate at ihanay ito sa plano, upang makuha mo ang gitna ng bilog. Ngayon kunin ang iyong drill ng kamay gamit ang can drill na naka-mount dito at mag-drill (napakabagal! Hindi gaanong presyon!) Isang butas sa gitna ng ground plate, ang panlabas na bilog ay dapat na ~ 2-3mm malalim. Ito ay upang malubog ang LED strip sa ground plate (LED strip ~ 10mm ang lapad, 5mm lamang ang lapad ng mga poste) at upang ihanay ang mga ito sa mga beam (sumangguni sa larawan 1).

Ngayon kailangan namin ang hacksaw, ang mitre gauge at ang acrylic tube. Gupitin lamang ito sa mga piraso nagpasya akong gawin ang pabahay (tubo) na 40mm ang haba (larawan 2). Ngayon grab ulit ang hacksaw at gumawa ng isang maliit na rabbet sa isang gilid ng tubo, gawin itong makinis kasama ang metal na file. Doon lalabas ang mga wire;-) (sumangguni sa larawan 3)

Oras para sa ilang pandikit … Kunin ang gitnang plato (d = 150mm) at ang plato sa harap (ang naka-satinado). Iayos muli ang mga ito sa plano, maglagay ng ilang pandikit sa gitna ng gitnang plato, ihanay ang harap na plato at maghintay hanggang sa ang kola ay medyo pinatigas. Ang pandikit na ginamit ko ay light hardening at maaari itong tumagal ng hanggang 2-3 oras, kaya't nais mong gumamit ng clamp… (larawan 3 at 4)

Gawin ang pareho para sa pagdikit ng tubo sa ground plate, siguraduhin na ang rabbet ay nakaharap sa plato at nakalaan sa isang lugar kung saan mo nais ang unang LED (12:00).

Maghintay hanggang sa tumigas ito!

Maaari na nating ihanay ang 2 bahagi (naitugma sa book) sa plano ng isang drill ng aming 4 na solong minutong butas (5mm ang lapad o ang diameter ng LED na iyong napili; drill ito ng mabagal nang walang labis na presyon). Mag-drill tungkol sa malalim na 8-9mm. Mag-ingat, ang satinado na plato ay napaka malutong at maaaring mag-preno kung mag-drill ka hanggang sa malalim. Maaari mo na rin silang idikit o magpasya ka, tulad ng pagputol ng banta sa ground plate at ilakip ito sa isang tornilyo.

Muli, maghintay hanggang sa tumigas ang pandikit. Ngayon ay ihanay at idikit ang mga beam sa ground plate. (larawan 6) Hulaan kung ano … maghintay hanggang sa tumigas ang pandikit:-) Magpatuloy tayo sa electronics …

Hakbang 3: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Ang mga kagamitan:

  • panghinang
  • solderwire
  • libangan na kutsilyo
  • isang maliit na piraso ng prototyping PCB
  • enamelled wire o anumang iba pang kawad na gusto mo
  • mainit na pandikit

Nag-strate ako sa solong mga LED. Kung gumagamit ka ng enamelled wire huwag kalimutang i-scrape ang may kakulangan bago maghinang. Maaari kang gumamit ng isang libangan na kutsilyo para doon. Wire up sila, maaari kang mag-refer sa larawan na may pinout sa flikto.de. Tandaan na ang DOUT ay pupunta sa DIN sa susunod na LED! (tingnan ang larawan 2) Pagkatapos nito ay maaari mong i-cut ang LED strip sa 4 na elemento bawat isa ay may 3 LEDs. Tandaan, mayroon kaming 63.6mm LED Strip at 64mm panlabas na diameter ng tubo kaya kailangan namin ng ilang "dagdag na haba upang ihanay ito nang tumpak sa mga beams. Wire up ito ng enamelled wire tulad ng sa larawan 4. Gumawa ako ng isang maliit na PCB ng PC na magsisilbi bilang isang "power harness" at maglalaman ng mga sangkap para sa LED Strips (ang dalawang 330Ohm Resistors at ang 1000µF Capacitor, larawan 7). Sumangguni sa Fritzing Image para doon.

Ngayon i-mount ang Strip sa paligid ng tubo, ihanay ang mga LED sa mga poste. Ang unang Pixel ay tumutugma sa 12 oras. Kung napalingon mo ang iyong pabahay, huwag kalimutan na ang lahat ay nakasalamin. Magpatuloy sa counter nang pakaliwa! Gumamit ng ilang maiinit na pandikit upang ilakip ito sa tubo. Isang maliit na patak para sa bawat segment ang gagawa nito!

Maaari mong gawin ang pareho para sa solong mga LED (sa paglaon ay nakasalamin), magdagdag lamang ng ilang maiinit na pandikit at pindutin ang mga ito sa mga paunang nahuhusay na butas.

Huwag wire ang Arduino, gagamitin namin ang serial-hardware para sa koneksyon sa BT, kaya suriin muna ang mga susunod na hakbang kung saan ko inilalarawan ang software.

Hakbang 4: Code

Code
Code
Code
Code

Maaari mo na ngayong mai-load ang sketch sa Arduino. Magagawa mo ring i-wire ang mga LED strip ngayon. Huwag ikonekta ang BT Module !!! Una naming nais na tingnan ang code, dapat mong malaman kung saan ka maaaring mag-tweak ng maraming bagay …

I-download ang Arduino IDE at ang Mga Aklatan. Arrdino IDE, AdafruitNeoPixel, Oras, DS1307RTC

I-install ang IDE at ilagay ang mga library sa library-folder. Buksan ang naka-attach na INO file at i-upload ito sa iyong arduino. Ang code na inilarawan dito ay pareho ngunit may mga karagdagang komento! Kung nagawa mo nang tama ang lahat, maaari mo na ngayong makita ang "bootanimation". Posibleng itakda ang oras sa serialmonitor. I-type lang ang @ "oras" / "min" / "sec" hal. @ 10/33/00 (10:33).

Huwag mag-atubiling upang i-play sa code … Narito masamang magbigay sa iyo ng isang maikling paglalarawan ng Code (Pag-setup nang walang RTC!)

KAHULUGAN:

#define PIN 6 // Hour LED Strip #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Bilang ng mga Pixel para sa oras #define MINNUMPIXELS 4 // Bilang ng mga Pixel para sa solong minuto #define BAUDRATE 115200 // Baudrate, dapat na tumugma ang baudrate ng BT Module #define utch '@' // simulan ang BYTE ng TimeSync

int timeset = 0; // flag to store kung ang oras ay itinakda pagkatapos ng pagkaantala ng bootint = 20; // pagkaantala para sa pagkupas ng animasyon sa relo = 10000; // time refresh int timebright = 250; // brightness of hour Strip int mtimebright = 50; // brightness of singelminint initialize = 0; // flag upang tawagan ang clearpixels function pagkatapos ng bootint ahour; int oldahour = 0; // store prev orasint aminute; int oldamin = 0; // nag-iimbak ng nakaraang minuto para sa pag-refresh ng asecond; int aday; int amonth; int ayear; int mmin; tmMga Elemento_t tm;

// Setup for the 2 NeoPixel LED arrays (NAME = TYPE (NUMBER OF PIXELS, WHICH PIN, FORMAT RGB OR GRB, FREQ); Sumangguni sa gabay ng Adafruit para sa karagdagang impormasyon. Mga Adafruit_NeoPixel pixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KH); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

SETUP:

walang bisa ang pag-setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Initialice the strips, all OFFpixels.begin (); minpixels.begin (); pix.show (); minpixels.show ();

// Gumawa ng isang maliit na animationSerial.println ("SUNRISE"); pagsikat ng araw (); pagkaantala (1000); Serial.println ("SUNSET"); paglubog ng araw (); pix.show (); Serial.println ("HANDA"); }

LOOP:

void loop () {// check for timesync habang (Serial.available ()> 0) {char c = Serial.read (); kung (c == utch) // kung mayroong isang @ sa linya, basahin ang mga darating na byte / ints {readtime (); }} // ipasimula ang mga LED, i-clear ang boot animasyon

kung (ipasimulan == 0) {clearpixels (); ipasimula = 1; }

ahour = oras ();

aminute = minuto (); kung (timeset == 1 || timeset == 0) // dito maaari mong suriin kung ang Oras ay itinakda, maaari mong ihinto ang programa dito kung Timeset = FALSE, alisin lamang ang "|| timeset == 0"!

{

kung (itinakda ng oldamin <aminute || oldahour ang lahat sa OFF, ipakita ang bagong oras {clearpixels (); ClockDisplay ();}}}

Ipakita ang Clock:

walang bisa ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xhour, xmin;

kung (ahour> = 12) {xhour = ahour-12; // mayroon lamang kaming 12 LEDs para sa 24h display} iba pa {xhour = ahour; } // scale it into 5min steps xmin = (aminute / 5); kung (oldamin <aminute) {oldamin = aminute; mga clearpixel (); } // kunin ang natitirang bahagi ng dibisyon dor ng singelmin LED mmin = (aminute% 5); // modulo operator hal. 24% 5 = 4! napaka kapaki-pakinabang: -Ppixels.setBightness (timebright); pix.setPixelColor (xmin, pixel. Color (5, 125, 255)); // maaari mong baguhin ang mga kulay dito! maglaro sa paligid! pixel.setPixelColor (xhour, pixel. Color (255, 50, 0)); pix.show ();

// ipakita ang singel minsfor (int m = 0; m

minpixels.setBightness (mtimebright); minpixels.setPixelColor (m, pixel. Color (255, 255, 0)); minpixels.show (); }} Basahin at iproseso ang TIMEinformation mula sa Serial

void readtime () // kung nakuha na namin ang nangungunang "@" na proseso ng darating na data at iimbak ang oras para sa TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Serial.print (ahour); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Alisin lahat

void clearpixels () // itakda ang bawat solong PIXEL upang i-off upang i-refresh ang display {

pix.begin (); minpixels.begin (); para sa (int i = 0; ipixels.setPixelColor (i, mga pixel. Color (0, 0, 0)); minpixels.setPixelColor (i, mga pixel. Color (0, 0, 0)); pix.show (); minpixels.show ();}}

Hakbang 5: Ang Android APP at Koneksyon sa BT

Ang Android APP at Koneksyon sa BT
Ang Android APP at Koneksyon sa BT
Ang Android APP at Koneksyon sa BT
Ang Android APP at Koneksyon sa BT
Ang Android APP at Koneksyon sa BT
Ang Android APP at Koneksyon sa BT

Kung matagumpay ka sa mga nakaraang hakbang, maaari mo na ngayong i-wire ang iyong BT Module. (Inaasahan kong natiyak mo, na tumutugma ang mga baudrates). huwag kalimutang tawirin ang mga linya ng TX & RX:-)

I-download at i-install ang app, ipares sa iyong BT dongle, simulan ang app, kumonekta sa dongle at I-sync ang oras sa iyong mobile. Karaniwang ginagawa ng APP ang katulad ng ginawa namin dati. Nagpapadala lamang ito ng @ hh / mm / ss / dd / mm / YYYY na nabuo mula sa systemtime nito. Ibinigay ko rin ang APPInventor AIA File at isang paliwanag sa susunod na hakbang (para sa mga interesado).

Hakbang 6: Imbentor ng APP

APP Imbentor
APP Imbentor
APP Imbentor
APP Imbentor

Ang APP Inventor ay medyo madaling gamitin at nagkakahalaga ng pagsisikap para sa isang simpleng programa.

Kung gumawa ka ng isang bagong proyekto ay mahahanap mo ang iyong sarili sa screen ng DESIGNER. (larawan 1) Dito kami nagdaragdag ng mga talahanayan, pindutan, sensor at iba pang mga elemento para sa karagdagang paggamit. Sa aming kaso kailangan namin:

  • isang mesa (upang ihanay ang lahat ng mga elemento)
  • isang listpicker (para sa pagpili ng BT aparato na ikinonekta namin)
  • isang pindutan (upang sunugin ang TIME sa paglipas ng BT)
  • ilang mga label (ipakita ang aktwal na oras at petsa)
  • ang sensor ng orasan (i-refresh ang oras)
  • ang Bluetooth client sensor (pagkakakonekta)

Ang pagdaragdag sa kanila ay kasing dali ng pag-drag at drop! Sa Larawan 2 maaari mong makita ang isang pangkalahatang ideya ng "APP" sa screen ng BLOCKS. Sa gayon, karaniwang iyon kung saan nangyayari ang lahat ng "mahika." Sa itaas ay lumikha ako ng ilang mga variable upang maiimbak ang Oras at Petsa. Ang unang bloke sa kaliwang itaas ay sisimulan ang elemento ng listpicker na may listahan ng mga ipinares na BT aparato. Sa pangalawang pag-block ay nagpasya kami kung ano ang gagawin sa dating piniling elemento. Sa gayon, nais naming kumonekta dito.

Kung mayroon kang malapit na pagtingin sa susunod na Block, maaari mong makita, na bumubuo kami, kung ang katayuan ng BT ay "konektado", ang mensahe ng BT. Ito ay pareho na nai-type namin sa SerialMonitor dati. Ang huling bloke sa kaliwa ay magbibigay sa amin ng mga nangungunang zero upang ipakita ang oras (hal. 01:08). Sa kanang bahagi ay mahahanap mo ang aming huling bloke, doon namin ginagamit ang elemento ng orasan. Dito namin ina-update ang mga variable at isasama ang mga ito sa pamamaraang digit, mangyayari ito bawat 1000ms (default setting, palitan ito sa mode ng taga-disenyo) at ipakita ang na-update na mga halaga gamit ang label. Ito ay isang maikling paglalarawan lamang, ngunit ang APPInventor ay talagang madali na:-) Marahil ay may isang tao sa komunidad na nais na magsulat ng isang software para sa iOS o WindowsPhone. (ay magiging mahusay)

Umaasa ako na nagustuhan mo ang aking Instructable! Magsaya sa iyong bagong dingding sa dingding! Marahil nais mong ibigay ito sa isang taong mahal mo (Ang panahon ng X-Mas):-)

At kung may anumang mga katanungan, huwag mag-atubiling magtanong sa akin!

Pinakamahusay na pagbati at Merry X-Mas.

Inirerekumendang: