Talaan ng mga Nilalaman:
- Hakbang 1: Pagtitipon ng Mga Pantustos at Mga Tool
- Hakbang 2: Pagmamarka, Pagbabarena at Pagruruta
- Hakbang 3: Napakaraming Soldiering, Pagputol at Paghubad
- Hakbang 4: Pag-install
- Hakbang 5: Mga Pangwakas na Pag-ugnay
Video: 132 Pixel Clock: 5 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Mayroon akong, hangga't maaari kong matandaan ang nahuhumaling sa mga LED at oras. Sa proyektong ito lumikha ako ng isang malaking orasan sa dingding na nagpapakita ng kasalukuyang oras gamit ang 132 neopixel LEDs na naka-mount at nagniningning sa pamamagitan ng isang spruce board. Ito ay isang hybrid analog digital na may isang Indibidwal na pixel para sa bawat oras, minuto at segundo.
Ito ang pinakamalaking proyekto na kinuha ko hanggang ngayon, sinimulan kong isipin ito 6 buwan na ang nakakaraan at ang ideya ay dahan-dahang nagkasama. Talagang masaya ako sa kinalabasan at inaasahan kong ibahagi ito sa iyo.
Hakbang 1: Pagtitipon ng Mga Pantustos at Mga Tool
Mga Bahagi
Ang proyektong ito ay itinayo sa isang cheep hobby board mula sa aking lokal na tindahan ng DIY. Ang sukat ng board ay 850mm ang lapad ng 500mm taas at 18mm ang lalim.
Ang mga LED na ginamit sa proyektong ito ay 5050 WS2812b na naka-mount sa paikot na PCB na humigit-kumulang na 9mm ang lapad na may mga solder pad sa likuran.
Gumagamit ako ng isang Arduino Pro Mini na katugmang micro controller. Ito ang bersyon ng 5V 16 MHZ. Pinili ko ang isang ito dahil mayroon itong isang napaka-manipis na disenyo, maliit na paa sa pag-print at lahat ng mga nessary port kasama ang ilang ekstrang para sa mga pag-upgrade sa hinaharap. 5 volt din ito upang makagamit ako ng isang solong supply ng kuryente para sa mga LED, Micro controller at RTC
Ang pag-iingat ng oras ay alagaan ng isang RTC (Real Time Clock) na module na nagtatampok ng DS3231 chip. Ang chip na ito ay napaka-tumpak kaya ang oras ay hindi dapat naaanod ng sobra.
Ginamit din:
Kawad. Panghinang at mainit na pandikit.
Mga tool:
Mga power drill at kahoy na drill bits (10mm at 5mm)
Panghinang
Mainit na glue GUN
wire frags
Dremel at plunge router accessories
Hakbang 2: Pagmamarka, Pagbabarena at Pagruruta
Pagbabarena
- Gamit ang isang makitid na gilid hanapin ang gitna ng board sa pamamagitan ng pagguhit ng isang linya mula sa tapat ng mga sulok.
- Markahan ang 3 bilog gamit ang isang piraso ng string at isang bolpen. Ang panlabas na pinaka bilog ay dapat na tungkol sa 20mm mula sa gilid ng board kasama ang iba pang 2 mga linya na gumagalaw sa pamamagitan ng 15mm mula sa huling linya.
- Gumamit ako ng naka-print na mukha ng orasan upang matulungan akong markahan ang mga posisyon ng bawat minuto at segundo sa panlabas na 2 linya at oras sa panloob na linya.
- Mag-drill ng 10mm na butas na humigit-kumulang na 5mm para sa bawat oras, minuto at segundo.
- Gamitin ang 5mm drill upang gumawa ng mga butas kahit na ang board para sa oras, minuto at segundo.
Ruta
Bagaman hindi kinakailangan ang hakbang na ito papayagan nito ang relo na ilalagay sa isang pader.
- Paggamit ng isang router at gabay ng bilog na ruta ng mga wire wire sa board
- Markahan at i-ruta ang isang pahinga para manirahan ang RTC at Micro Controller.
- Ruta ng isang channel mula sa mga panlabas na linya sa recess para sa mga wire
Hakbang 3: Napakaraming Soldiering, Pagputol at Paghubad
Ang susunod na bahagi na ito ay mas madali sabihin kaysa gawin. Ang aking payo ay mapapansin upang madaliin ito. subukan at makahanap ng isang sistema at makakuha sa isang ritmo.
Ang bawat isa sa mga LED ay nangangailangan ng 5 volts in, 5 volts out, Data in, Data out, Ground in at Ground out. kabilang ang lakas para sa micro controller at RTC na higit sa 400 mga wire, lahat ay hinubaran at solder sa magkabilang dulo.
Ang isang maingat na asul na sangkap ay lubhang kapaki-pakinabang para sa hakbang na ito.
- Nagsimula ako sa pamamagitan ng paglalagay ng 2 LEDs sa kanilang mga butas sa tabi ng bawat isa upang mag-ehersisyo ang haba ng kawad na kinakailangan upang kumonekta sa bawat isa.
- Gamit ang ika-1 piraso ng kawad bilang isang gabay pagkatapos ay pinutol ko ang 60 ng bawat kulay na wire.
- Huhubad ang 2mm ng manggas mula sa mga dulo ng bawat kawad at i-lata ang mga ito gamit ang panghinang.
- Maghinang ng isang maliit na patak ng panghinang sa bawat isa sa mga LED pad.
- Paghinang ng mga wire sa mga LED upang makabuo ng dalawang tanikala ng 60 para sa mga minuto at segundo at isang kadena ng 12 para sa mga oras. Gumamit ako ng pulang kawad para sa 5V, dilaw para sa data at asul para sa lupa.
- Mag-ingat na ikonekta ang bawat Data Out (DOUT) sa Data In (DIN) ng susunod na LED
- Ang huling humantong sa bawat kadena dosis ay hindi kailangan ng isang data out wire.
Kapag natapos ang lahat ng mga kadena isang magandang ideya upang subukan ang mga ito bago i-install ang mga ito. Ginamit ko ang aking Arduino UNO at ang Adafruit NeoPixel Strand Test upang kumpirmahing gumagana ang bawat LED.
Ang mga panghinang na haba na wires papunta sa bawat isa sa mga kadena para sa 5V, Ground at Data sa.
Sa puntong ito dapat mayroong limang 5v wires, tatlong Data wires na konektado sa Arduino Pro Mini at 5 Ground wires.
Huhubad ang 5mm mula sa mga dulo ng 5v wires at solder ang lahat ng ito at ulitin para sa Ground wires.
Matapos makumpleto ang tatlong chain solder isang 5V wire sa sa RAW pin ng Arduino Pro Mini at papunta din sa VCC pin para sa RTC. Isang Ground wire sa GND sa Arduino Pro Mini at RTC at pagkatapos ay 2 pang mga wire:
Ang SCL mula sa RTC hanggang A5 sa Pro Mini
SDA mula sa RTC hanggang A4 sa Pro Mini
Ang mga linya ng data mula sa mga LED ay dapat na kumonekta sa:
- Segundo - Digital Pin 3.
- Minuto - DigitalPin 4
- Mga Oras - DigitalPin 5
Hakbang 4: Pag-install
Kapag na-solder, ang pag-install ng mga LED sa kanilang mga butas ay dapat na tuwid na pasulong. Ang mga LED ay kailangang mai-install upang ang data ay tumatakbo sa paligid ng anti-Clockwise kapag tinitingnan ito mula sa likuran habang ang code ay naka-harap sa harapan.
Gumamit ako ng isang maliit na halaga ng mainit na pandikit upang mapigilan ang mga ito dahil nais kong mapalitan ang isang solong LED kung nabigo ito sa hinaharap.
Gumamit din ako ng mainit na pandikit upang panatilihing maayos at malinis ang lahat ng mga wire at upang ayusin ang konektor ng bariles sa board.
Mayroong isang bilang ng mga gabay sa arduino pro mini na magagamit. Ginagamit ko ang panlabas na USB sa pamamaraan ng serial converter upang mai-load ang code na ito sa Arduino:
Itatakda din ng code na ito ang oras sa RTC sa oras na naipon ito. kaya't mahalaga na i-hut nalang ang upload button upang sumunod ito at mag-upload nang mabilis hangga't maaari.
Karamihan sa code na ito ay hiniram mula sa NeoPixel Ring Clock ni Andy Doro. Ang ilan mula sa Adafruit NeoPixel Strand Test at ilang pinagsama ko.
Kakailanganin mong mag-install ng ilang mga aklatan. Magagamit ang mga ito mula sa Tagapamahala ng Mga Aklatan sa Arduino software.
Ang Adafruit NeoPixel para sa ws2812b LEDs
Wire para sa pakikipag-usap sa RTC sa paglipas ng I2C (ito ay naitayo bilang pamantayan)
at RTClib para sa pag-alam kung ano ang hihilingin sa RTC
/ ***** ***** * * ***** *****
Kasaysayan ng Pagbabago
Petsa Ni Ano
20140320 AFD First draft 20160105 AFD Faded arcs 20160916 AFD Trinket compatible 20170727 Ang AFD ay nagdagdag ng StartPIXEL para sa 3D enclosure, variable na panimulang punto, nagdagdag ng awtomatikong suporta ng DST 20180424 AFD gamit ang DST library https://github.com/andydoro/DST_RTC *
/ isama ang code ng library:
# isama ang # isama
# isama
// tukuyin ang mga pin
# tukuyin ang SECPIN 3 # tukuyin ang MINPIN 4 # tukuyin ang HOUPIN 5
#define BRIGHTNESS 20 // set max brightness
# tukuyin ang r 10
# tukuyin g 10 # tukuyin b 10 RTC_DS3231 rtc; // Itaguyod ang object ng orasan
Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // strip object
Adafruit_NeoPixel stripM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // strip object Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // strip object byte pixelColorRed, pixelColorGreen, pixelColorBlue; // humahawak ng mga halagang kulay
walang bisa ang pag-setup () {
Wire.begin (); // Start I2C rtc.begin (); // simulan ang orasan
Serial.begin (9600);
// set pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
kung (rtc.lostPower ()) {
Serial.println ("Nawalan ng lakas ang RTC, hinahayaan mong itakda ang oras!"); // ang sumusunod na linya ay nagtatakda ng RTC sa petsa at oras ng sketch na ito ay naipon rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Itinatakda ng linyang ito ang RTC na may isang malinaw na petsa at oras, halimbawa upang itakda // Enero 21, 2014 ng 3 ng umaga na tatawagan mo: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); //strip.show (); // Initialize all pixel to 'off'
// pagkakasunud-sunod ng pagsisimula
pagkaantala (500);
colorWipeS (stripS. Color (0, g, 0), 5); // Blue colorWipeM (stripM. Color (r, 0, 0), 5); // Blue colorWipeH (stripH. Color (0, 0, b), 50); // Bughaw
pagkaantala (1000);
DateTime theTime = rtc.now (); // isinasaalang-alang ang DST byte secondval = theTime.second (); // get seconds byte minuteval = theTime.minute (); // get minutes int hourval = theTime.hour (); hourval = hourval% 12; // Ang orasan na ito ay 12 oras, kung 13-23, i-convert sa 0-11`
para sa (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); antala (5); }
para sa (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); antala (5); }
para sa (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); antala (5); }
}
void loop () {
// kumuha ng oras
DateTime theTime = rtc.now (); // isinasaalang-alang ang DST
byte secondval = theTime.second (); // kumuha ng segundo
byte minuteval = theTime.minute (); // get minutes int hourval = theTime.hour (); // get hour hourval = hourval% 12; // Ang orasan na ito ay 12 oras, kung 13-23, i-convert sa 0-11`
stripS.setPixelColor (pangalawa, 0, 0, 20); stripS.show (); antala (10); kung (pangalawang == 59) {para sa (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); antala (16);}}
stripM.setPixelColor (minuto, 0, g, 0);
stripM.show (); antala (10); kung (secondval == 59 && minuteval == 59) {para sa (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); antala (16);}}
stripH.setPixelColor (oras na oras, r, 0, 0);
stripH.show (); antala (10); kung (secondval == 59 && minuteval == 59 && hourval == 11) {para sa (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); antala (83);}} // para sa serial debugging Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuto, DEC); Serial.print (':'); Serial.println (pangalawa, DEC); }
// Punan ang mga tuldok ng sunod-sunod sa isang kulay
void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); antala (maghintay); }}
walang bisa na colorWipeM (uint32_t c, uint8_t maghintay) {
para sa (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); antala (maghintay); }}
walang bisa na colorWipeH (uint32_t c, uint8_t maghintay) {
para sa (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); antala (maghintay); }}
Hakbang 5: Mga Pangwakas na Pag-ugnay
Ang natitira lamang ngayon ay upang ayusin ang RTC at Micro Controller pababa sa recess.
Nilagyan ko ang RTC na gilid ng baterya upang madali kong mabago ang baterya kung kinakailangan.
Ikonekta ang 5v wires sa + gilid ng konektor at ang Ground sa - gilid
Power up UP!
Nakakonekta ako sa isang USB bank bank ngunit ang isang USB charger ng telepono ay gagana rin.
Tandaan:
Ang ningning ng mga LED ay nakatakda sa code. Ito ay naitakda nang mababa upang panatilihing mababa ang kasalukuyang gumuhit. Sa buong ningning sa lahat ng mga LED na naiilawan maaari itong gumuhit ng halos 8 amps. Gamit ang kasalukuyang pag-set up mas mababa sa 1.
Runner Up sa Clocks Contest
Inirerekumendang:
Mga Buhay na Pixel - Isipin ang Teknolohiya May Buhay: 4 na Hakbang (na may Mga Larawan)
Mga Buhay na Pixel - Ang Teknolohiya ay May Buhay: Nakikita ang mga matalinong produkto ng bahay na mas karaniwan sa ating buhay, sinimulan kong isipin ang tungkol sa ugnayan ng mga tao at ng mga produktong ito. Kung isang araw, ang mga smart na produkto sa bahay ay naging isang kailangang-kailangan na bahagi ng buhay ng bawat isa, kung ano ang dapat nating gawin?
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Mga Kapansanan sa Locomotor: 9 Mga Hakbang (na may Mga Larawan)
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Kapansanan sa Locomotor: Ang mga taong may malubhang mga kapansanan sa lokomotor tulad ng mga sanhi ng cerebral palsy ay madalas na may mga kumplikadong pangangailangan sa komunikasyon. Maaaring kailanganin silang gumamit ng mga board na may alpabeto o karaniwang ginagamit na mga salitang nakalimbag sa kanila upang makatulong sa komunikasyon. Gayunpaman, marami
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Bumuo ng isang Tunay na Bell-striking Clock para sa Iyong PC at isang Fire Extinguisher-Striking Clock .: 3 Mga Hakbang (na may Mga Larawan)
Bumuo ng isang Real Bell-striking Clock para sa Iyong PC at isang Fire Extinguisher-Striking Clock .: Isang tanso na kampanilya, isang maliit na relay ng maraming mga bagay at isang tunay na kampana ay maaaring hampasin ang oras sa iyong desktop. Kahit na ang proyektong ito ay tumatakbo sa Windows at Mac Ang OS X din, nag-idecide ako upang mai-install ang Ubuntu Linux sa isang PC na nakita ko sa basurahan at ginagawa iyon: Hindi ko kailanman