Isi kandungan:

TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino: 6 Langkah (dengan Gambar)
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino: 6 Langkah (dengan Gambar)

Video: TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino: 6 Langkah (dengan Gambar)

Video: TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino: 6 Langkah (dengan Gambar)
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, Julai
Anonim
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino
TheSUN, Jam Dinding Reka Bentuk Bertenaga Arduino

Hai lagi Instructables-orang!:-P

Kerana masalah penghantaran, saya tidak dapat meneruskan Projek ABTW saya jadi saya memutuskan untuk menunjukkan kepada anda satu lagi, ciptaan terbaru saya.

Saya rasa ramai di antara kita, seperti saya, seperti LED Stripes yang bagus (juga disebut NEOPIXEL LED). Anda boleh mendapatkannya dari ADAFRUIT. Penjual lain juga akan menyediakan produk serupa. Terdapat perpustakaan yang terdapat di ADAFRUITS - GitHub (klik saya) termasuk beberapa contoh kod. Oleh itu, pengekodan mestilah lurus ke hadapan…

Saya melihat NEOPIXELS itu pemikiran, apa yang … boleh saya lakukan dengan perkara-perkara kecil yang berkilat itu.

  • Paparan matriks LED? -> Untuk rumit dan saya tidak menggunakannya (pada masa ini)
  • Pencahayaan X-Mas? -> Ini sesuai musim tetapi lebih murah jika membelinya:-P
  • sebuah jam? -> Kenapa tidak! Tetapi ia harus bergaya dan tidak konvensional

Jadi, mari buat jam dinding.

Sekiranya kita melihat dengan teliti jam tangan kita (jika anda mempunyai analog seperti saya) kita akan melihat bahawa kita mempunyai 12 jam 60 minit (semoga). Ini bermaksud, bahawa kita memerlukan 60 LED yang dapat dialamatkan, phu! Sekiranya kita mengambil jalur dengan 60 LED / meter, kita akan mendapat diameter ~ 318mm (radius = lingkup / (2 * Π)) yang pasti terlalu besar.

Yang benar adalah, jika anda meminta seseorang untuk masa itu, tidak ada yang akan mengatakan bahawa sudah 2 minit lewat 3! Anda akan mendapat "Ini 5 lewat 3" sebagai jawapan. Oleh itu, mengapa kita tidak perlu menurunkan semuanya hingga 5 minit? Untuk itu kita hanya memerlukan 12 LED yang bermaksud kita mempunyai diameter 63.6mm. Kami juga dapat membezakan jam dan minit dengan memberi mereka warna yang berasingan. Kami juga dapat memberikan langkah-langkah satu minit yang "hilang" dengan Jalur tambahan 4 LED (atau LED yang dapat diatasi.

ITU RENCANA! Mari kita lihat bagaimana saya melakukan semuanya. Seperti biasa saya akan memberikan senarai / bil bahan dan arahan bagaimana membinanya.

Sekiranya anda fikir, hanya orang Switzerland yang boleh membuat jam yang sejuk, mari buktikan anda salah (maaf Switzerland:-P)

Langkah 1: Reka Bentuk & Pilihan Bahan

Reka Bentuk & Pilihan Bahan
Reka Bentuk & Pilihan Bahan
Reka Bentuk & Pilihan Bahan
Reka Bentuk & Pilihan Bahan

Reka bentuk:

Sekiranya kita melihat kembali jam / jam analog kita lagi, kita melihat bahawa bulatan dibahagikan kepada 12 * 30 ° langkah yang kita tahu, bahawa kita memerlukan 63.6mm untuk Jalur LED. Oleh itu, mungkin untuk menyelaraskan jalur di sekitar tiub entah bagaimana. Saya memutuskan untuk menggunakan kaca akrilik, kerana ia kelihatan bagus dan mungkin untuk menyalakan lampu LED ke dalamnya dan pada setiap cacat di dalam kaca akan berlaku penyerakan cahaya. Oleh itu, katakan: lebih banyak kekotoran akan menyebabkan penyerakan cahaya lebih banyak! Itulah yang kami mahukan. Oleh itu, sila gunakan alat ukiran anda dan kreatif:-)

Sekiranya anda merujuk kepada senarai BoM saya dan nama yang saya berikan untuk jam, saya telah memilih reka bentuk seperti matahari. Saya mendapat semua bahagian akrilik dari penjual Jerman di E-Bay (pautan disediakan di BoM). Untuk reka bentuk saya anda perlu:

  • plat tanah akrilik, ketebalan telus = 6mm, diameter = 300mm
  • plat tengah akrilik, ketebalan telus = 3mm, diameter = 150mm
  • plat depan akrilik, satin, ketebalan = 3mm, diameter = 90mm
  • tiub akrilik, lutsinar, diameter luar = 64mm (bermaksud kita harus sedikit menyesuaikan dengan jalur LED)
  • batang akrilik, telus, diameter = 5mm (ini akan menjadi rasuk kami); Terdapat juga batang akrilik dengan gelembung di dalamnya, saya mengesyorkannya tetapi saya tidak memilikinya.
  • gam akrilik

Elektronik (rujuk fail Fritzing):

  • Arduino mini (atau serupa)
  • 1 Jalur LED yang boleh ditujukan (12 LED untuk jam dan 5 minit langkah)
  • 4 LED yang boleh dialamatkan (satu minit)
  • 2 Perintang 330Ohm
  • 1 Kapasitor 1000µF
  • 1 bekalan kuasa (5V / 500mA)
  • RTC DS-1307 (pilihan!)
  • Modul Bluetooth (pilihan! Ya, anda boleh menetapkan masa melalui BT dan Telefon Pintar Android)

Sekiranya anda bertanya kepada diri sendiri mengapa saya mempunyai cip MAX485 di BoM saya. Jawapannya adalah, bahawa saya ingin menyegerakkan jam dengan sistem automasi rumah yang akan saya buat (tidak pernah perlu menetapkan jam untuk penjimatan siang lagi:-P). Saya akan menerangkannya di blog saya pada masa akan datang beberapa minggu / bulan.

Seperti yang anda perhatikan, saya juga akan mencuba untuk mematikan jam dengan beberapa panel solar dan LiPo, tetapi saya tidak membincangkannya dalam Instructable ini, jangan ragu untuk mencuba sendiri.

Langkah 2: Sediakan Bahagian Akrilik

Sediakan Bahagian Akrilik
Sediakan Bahagian Akrilik
Sediakan Bahagian Akrilik
Sediakan Bahagian Akrilik
Sediakan Bahagian Akrilik
Sediakan Bahagian Akrilik

Alat:

Pertama sekali sangat berguna jika anda mencetak rancangan DWG yang saya tambahkan dalam skala 1: 1. Ini akan membantu anda menyelaraskan semua bahagian dan akan berfungsi sebagai rancangan penggerudian. Selanjutnya anda akan memerlukan:

  • pisau hobi
  • tolok miter
  • gergaji besi
  • pengapit
  • gerudi tangan
  • boleh menggerudi, diameter 65mm
  • satu set latih tubi logam
  • fail logam kecil
  • gam akrilik

Mari mulakan:

Ambil pelat tanah dan sejajarkan pada pelan, sehingga anda boleh mendapatkan pusat bulatan. Sekarang ambil gerudi tangan anda dengan gerudi kaleng yang terpasang di atasnya dan gerudi (sangat perlahan! Tidak terlalu banyak tekanan!) Lubang di tengah-tengah pelat tanah, lingkaran luar harus sedalam ~ 2-3mm. Ini untuk merendam jalur LED ke pelat tanah (jalur LED lebar 10mm, balok hanya berdiameter 5mm) dan untuk menyelaraskannya dengan balok (rujuk gambar 1).

Sekarang kita memerlukan gergaji besi, tolok pengukur dan tiub akrilik. Hanya potong-potong saya memutuskan untuk membuat perumahan (tiub) sepanjang 40mm (gambar 2). Sekarang ambil gergaji besi lagi dan buat sedikit kelinci di satu sisi tiub, jadikannya halus dengan fail logam. Di sinilah wayar akan keluar;-) (rujuk gambar 3)

Masa untuk merekatkan… Ambil piring tengah (d = 150mm) dan piring depan (yang satin). Sejajarkan pada pelan semula, letakkan sedikit gam di bahagian tengah plat tengah, sejajarkan plat depan dan tunggu hingga gam sedikit mengeras. Gam yang saya gunakan adalah pengerasan ringan dan boleh memakan masa hingga 2-3 jam, jadi saya mahu menggunakan penjepit… (gambar 3 dan 4)

Lakukan hal yang sama untuk merekatkan tiub ke pelat tanah, pastikan kelinci menghadap ke piring dan diselaraskan di suatu tempat di mana anda mahu LED pertama (jam 12).

Tunggu sehingga ia mengeras!

Kita sekarang boleh menyelaraskan 2 bahagian (padanan buku) ke dalam rencana pengeboran lubang 4 satu minit kami (diameter 5mm atau diameter LED yang anda pilih; gerakkan perlahan dengan tidak terlalu banyak tekanan). Gerudi sedalam 8-9mm. Hati-hati, plat satin sangat rapuh dan boleh brek jika anda menggerudi ke dalam. Anda kini boleh melekatkannya bersama atau anda membuat keputusan, seperti saya untuk memotong ancaman ke dalam pelat tanah dan pasangkannya dengan skru.

Sekali lagi, tunggu sehingga gam mengeras. Sekarang selaraskan dan lekatkan balok ke pelat tanah. (gambar 6) Tebak apa … tunggu sehingga lem mengeras:-) Mari kita lanjutkan ke elektronik …

Langkah 3: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Alat:

  • besi pematerian
  • solderwire
  • pisau hobi
  • sekeping kecil prototaip PCB
  • wayar enamel atau wayar lain yang anda mahukan
  • gam panas

Saya menggunakan LED tunggal. Sekiranya anda menggunakan wayar enamel, jangan lupa mengikis lakuer sebelum menyolder. Anda boleh menggunakan pisau hobi untuk itu. Wire mereka, anda boleh merujuk gambar dengan pinout di flikto.de. Perhatikan bahawa DOUT menuju DIN pada LED seterusnya! (lihat gambar 2) Selepas itu anda boleh memotong jalur LED menjadi 4 elemen masing-masing dengan 3 LED. Ingat, kita mempunyai Jalur LED 63.6mm dan diameter luar tiub 64mm jadi kita memerlukan panjang "ekstra" untuk meluruskannya tepat ke balok. Kabelkan dengan wayar enamel seperti pada gambar 4. Saya membuat PCB proto kecil yang akan berfungsi sebagai "power harness" dan akan mengandungi komponen untuk Jalur LED (dua Resistor 330Ohm dan Kapasitor 1000µF, gambar 7). Rujuk Gambar Fritzing untuk itu.

Sekarang pasangkan Jalur di sekitar tiub, sejajarkan LED ke balok. Pixel pertama sepadan dengan jam 12. Sekiranya anda telah membalikkan tempat tinggal anda, jangan lupa bahawa semuanya dicerminkan. Teruskan berlawanan arah jam! Gunakan sedikit gam panas untuk melekatkannya ke tiub. Setitik kecil untuk setiap segmen akan berjaya!

Anda boleh melakukan perkara yang sama untuk LED tunggal (akhirnya dicerminkan), hanya tambahkan sedikit gam panas dan tekan ke lubang yang telah diprilemkan.

Jangan masukkan Arduino, kami akan menggunakan siri perkakasan untuk sambungan BT, jadi periksa dahulu langkah-langkah seterusnya di mana saya menerangkan perisian.

Langkah 4: Kod

Kod
Kod
Kod
Kod

Anda kini boleh memuatkan lakaran ke Arduino. Anda juga boleh memasang jalur LED sekarang. Jangan sambungkan Modul BT !!! Kami pertama kali ingin melihat kodnya, anda harus tahu di mana anda boleh mengubah beberapa perkara …

Muat turun Arduino IDE dan Perpustakaan. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Pasang IDE dan masukkan perpustakaan ke folder library. Buka fail INO yang dilampirkan dan muat naik ke arduino anda. Kod yang dinyatakan di sini sama tetapi dengan komen tambahan! Sekiranya anda telah melakukan semuanya dengan betul, kini anda dapat melihat "bootanimation". Adalah mungkin untuk menetapkan masa untuk pemantau serial. Cukup ketik @ "hour" / "min" / "sec" mis. @ 10/33/00 (10:33).

Jangan ragu untuk bermain dengan kodnya … Di sini, anda akan memberi penerangan ringkas mengenai Kod (Persediaan tanpa RTC!)

DEFINISI:

#define PIN 6 // Strip LED Hour #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Jumlah Pixel untuk jam #define MINNUMPIXELS 4 // Jumlah Pixel untuk satu minit #define BAUDRATE 115200 // Baudrate, harus sepadan baudrate Modul BT #define utch '@' // mulakan BYTE of TimeSync

int timeet = 0; // bendera untuk menyimpan jika waktu ditetapkan selepas bootint delayval = 20; // kelewatan untuk memudar animasi int clocktimer = 10000; // time refresh int timebright = 250; // kecerahan Jam jalur int mtimebright = 50; // kecerahan singelminint inisialisasi = 0; // bendera untuk memanggil fungsi clearpixels selepas bootint ahour; int oldahour = 0; // kedai yang ada jam aminute; int oldamin = 0; // menyimpan minit sebelumnya untuk penyegaran semula sekejap; int aday; int amonth; int tahun; int mmin; tmElements_t tm;

// Persediaan untuk 2 susunan LED NeoPixel (NAMA = JENIS (NOMBOR PIXEL, PIN YANG, FORMAT RGB ATAU GRB, FREQ); Rujuk panduan Adafruit untuk maklumat lebih lanjut. Adelruit_NeoPixel piksel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_GRB + NEO_GRB + NEO_GRB Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

PENYEDIAAN:

batal persediaan () {

Serial.begin (BAUDRATE); Wire.begin (); // Mulakan jalur, semua OFFpixels.begin (); minpixels.begin (); piksel.show (); minpixels.show ();

// Buat sedikit animasiSerial.println ("SUNRISE"); matahari terbit (); kelewatan (1000); Serial.println ("SUNSET"); matahari terbenam (); piksel.show (); Serial.println ("SIAP"); }

PINJAMAN:

gelung kosong () {// periksa timesync sementara (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // jika ada @ di talian, baca byte / ints yang akan datang {readtime (); }} // mulakan LED, hapus animasi but

jika (inisialisasi == 0) {clearpixels (); memulakan = 1; }

ahour = jam ();

aminute = minit (); if (timeset == 1 || timeset == 0) // di sini anda dapat memeriksa sama ada Time telah ditetapkan, anda boleh menghentikan program di sini jika Timeset = FALSE, hapus saja "|| timeset == 0"!

{

jika (oldamin <aminute || oldahour menetapkan semua ke OFF, paparkan waktu baru {clearpixels (); ClockDisplay ();}}}

Paparkan Jam:

batal ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xjam, xmin;

jika (ahour> = 12) {xhour = ahour-12; // kami hanya mempunyai 12 LED untuk paparan 24 jam} yang lain {xhour = ahour; } // skalakannya menjadi 5min langkah xmin = (aminute / 5); jika (oldamin <aminute) {oldamin = aminute; clearpixels (); } // ambil bahagian yang lain untuk singelmin LED mmin = (aminute% 5); // pengendali modulo cth. 24% 5 = 4! sangat berguna: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // anda boleh menukar warna di sini! main-main! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); piksel.show ();

// paparkan singel minsfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, piksel. Warna (255, 255, 0)); minpixels.show (); }} Baca dan proseskan maklumat TIME dari Serial

batal waktu baca () // jika kita sudah mendapat "@" memproses data yang akan datang dan simpan masa untuk TIME Lib {

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

Kosongkan semua

batal clearpixels () // tetapkan setiap PIXEL mati untuk menyegarkan paparan {

piksel.begin (); minpixels.begin (); untuk (int i = 0; ipixels.setPixelColor (i, pixels. Color (0, 0, 0)); minpixels.setPixelColor (i, pixels. Color (0, 0, 0)); pixels.show (); minpixels. tunjukkan ();}}

Langkah 5: Sambungan APP Android dan BT

Aplikasi Android dan Sambungan BT
Aplikasi Android dan Sambungan BT
Aplikasi Android dan Sambungan BT
Aplikasi Android dan Sambungan BT
Aplikasi Android dan Sambungan BT
Aplikasi Android dan Sambungan BT

Sekiranya anda berjaya dengan langkah-langkah sebelumnya, kini anda dapat menyusun Modul BT anda. (Saya harap anda memastikan bahawa baudrates sesuai). jangan lupa untuk melintasi garisan TX & RX:-)

Muat turun dan pasang aplikasi, pasangkan dengan dongle BT anda, mulakan aplikasi, sambungkan ke dongle dan Segerakkan masa dengan telefon bimbit anda. APP pada dasarnya melakukan perkara yang sama seperti yang kita lakukan sebelumnya. Ia hanya menghantar @ hh / mm / ss / dd / mm / YYYY yang dihasilkan dari waktu sistemnya. Saya juga memberikan Fail AIA APPInventor dan penjelasan mengenai langkah seterusnya (bagi mereka yang berminat).

Langkah 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor cukup mudah digunakan dan bernilai usaha untuk program yang sederhana ini.

Sekiranya anda membuat projek baru, anda akan menemui diri anda di skrin DESIGNER. (gambar 1) Di sinilah kita menambah jadual, butang, sensor dan elemen lain untuk penggunaan lebih lanjut. Dalam kes kita, kita memerlukan:

  • jadual (untuk menjajarkan semua elemen)
  • listpicker (untuk pemilihan peranti BT yang kami sambungkan)
  • butang (untuk mengaktifkan MASA ke atas BT)
  • beberapa label (paparkan masa dan tarikh sebenar)
  • sensor jam (muat semula waktu)
  • sensor klien bluetooth (penyambungan)

Menambahkannya semudah drag & drop! Pada Gambar 2 anda dapat melihat gambaran keseluruhan "APP" di skrin BLOK. Nah, di sinilah semua "sihir" berlaku. Di bahagian atas saya membuat beberapa pemboleh ubah untuk menyimpan Masa dan Tarikh. Blok pertama di kiri atas akan memulakan elemen pemilih senarai dengan senarai peranti BT berpasangan. Dengan blok kedua kami memutuskan apa yang harus dilakukan dengan elemen yang dipilih sebelumnya. Kami mahu berhubung dengannya.

Sekiranya anda melihat dengan dekat Blok seterusnya, anda dapat melihat, yang kami hasilkan, jika status BT "disambungkan", mesej BT. Sama seperti yang kita taip ke SerialMonitor sebelumnya. Blok terakhir di sebelah kiri akan memberi kita angka sifar terkemuka untuk memaparkan waktu (mis. 01:08). Di sebelah kanan anda boleh menemui blok terakhir kami, di situlah kami menggunakan elemen jam. Di sini kami mengemas kini pemboleh ubah dan menggabungkannya dengan prosedur digit, ini akan berlaku setiap 1000ms (tetapan lalai, ubah dalam mod pereka) dan paparkan nilai yang dikemas kini dengan label. Itu hanya penerangan ringkas, tetapi APPInventor semudah itu:-) Mungkin ada seseorang dalam komuniti yang ingin menulis perisian untuk iOS atau WindowsPhone. (pasti hebat)

Saya harap anda menyukai Instructable saya! Bersenang-senang dengan jam dinding baru anda! Mungkin anda ingin memberikannya kepada orang yang anda sayangi (Musim X-Masnya):-)

Sekiranya ada pertanyaan, sila tanya saya!

Salam dan Merry X-Mas.

Disyorkan: