Daftar Isi:

Dandelion Interaktif: 11 Langkah (dengan Gambar)
Dandelion Interaktif: 11 Langkah (dengan Gambar)

Video: Dandelion Interaktif: 11 Langkah (dengan Gambar)

Video: Dandelion Interaktif: 11 Langkah (dengan Gambar)
Video: BUNGA DANDELION | JEJAK SI GUNDUL (26/11/21) 2024, Desember
Anonim
Image
Image
Siapkan Cincin NeoPixel
Siapkan Cincin NeoPixel

Proyek ini menunjukkan cara membuat gambar interaktif dandelion. Ini dimulai sebagai bunga kuning dengan LED untuk kelopak kemudian berubah menjadi jam dandelion putih, yang dapat ditiup untuk membuat benih menyebar.

Ini didasarkan pada karya seni yang indah oleh Qi Jie, yang gambarnya terinspirasi oleh desain bunga tunggal oleh Jessie Thompson dan Zachory Berta. Saya membuat milik saya di atas kain dan membingkainya dalam lingkaran permadani untuk dipasang di dinding ruang pembuat Teknologi dan Tekstil di Devon, Inggris, sebagai contoh proyek pemula yang menggabungkan menjahit dengan Arduino.

Video lukisan cahaya oleh Qi Jie

Video desain bunga tunggal oleh Jessie Thompson dan Zachory Berta

Kode untuk kedua proyek yang ada tersedia dan saya pikir itu akan mudah dibuat, tetapi instruksinya minimal dan butuh beberapa upaya sebelum saya menemukan metode yang berhasil. Jadi, inilah instruksi lengkap dan tip menghemat waktu untuk remix yang menggabungkan elemen desain dan tweak saya sendiri.

Detail tentang apa yang tidak berhasil untuk saya ada di bagian akhir bagi siapa saja yang tertarik dengan alasan saya memilih cara ini.

Kode untuk lukisan cahaya oleh Qi Jie

Kode untuk gambar bunga kecil oleh Jessie Thompson dan Zachory Berta

Bahan:

  • Arduino UNO
  • Adafruit Ring 12 Neopiksel
  • Strip 5V dari 11 LED RGB
  • Sensor Mikrofon Suara
  • Kabel Jumper
  • Baterai Isi Ulang 5V dengan koneksi USB A
  • Kabel Printer (kabel USB A ke B)
  • Titik-titik Lem atau Lem Panas
  • Kartu A4
  • Kain Katun Cream 30cm x 30cm, seperti sarung bantal bekas
  • Cat Kain Hijau
  • Benang Katun Coklat
  • Karton Bergelombang 70cm x 50cm, seperti kotak pizza
  • Selotip
  • Lingkaran Bordir 9 inci untuk membingkai gambar
  • 9 Tab Velcro Perekat Diri

Peralatan

  • Komputer dengan Arduino IDE diunduh
  • Solder Besi dan Solder Bebas Timah
  • Papan tempat memotong roti untuk pengujian sirkuit
  • Pemotong/Pemotong Kawat
  • Jarum jahit
  • Pena
  • Gunting

Langkah 1: Siapkan Cincin NeoPixel

Solder kabel warna yang berbeda ke masing-masing daya, ground, dan bantalan data di bagian belakang cincin NeoPixel.

Jika Anda memiliki versi cincin yang berbeda, kabel Anda mungkin tidak berada pada posisi yang sama dengan foto saya.

Catat kabel mana yang untuk input dan output serta positif, data dan ground karena tanda untuk ini ada di bagian bawah ring dan tidak akan terlihat saat ring berada di posisinya.

Langkah 2: Potong Strip LED

Potong Strip LED
Potong Strip LED
Potong Strip LED
Potong Strip LED

Potong 11 LED individu dari strip LED RGB, hati-hati untuk memotong sepanjang garis tengah untuk meninggalkan bantalan solder di kedua sisi potongan. Oleskan gumpalan solder di sisi atas setiap bantalan.

Langkah 3: Solder LED

Solder LED
Solder LED
Solder LED
Solder LED
Solder LED
Solder LED

Buat lubang di tengah kartu agar sesuai dengan mikrofon. Dengan menggunakan titik lem, tempelkan cincin neo piksel dan masing-masing LED pada posisi seperti yang ditunjukkan, pastikan semua panah pada LED akan berbaris dengan cara yang sama saat daisy dirantai bersama.

Solder kabel output dari cincin ke LED individu pertama, sesuaikan kabel positif, ground, dan data ke bantalan yang sama pada kedua LED.

Cara tercepat dan termudah yang saya temukan untuk menggabungkan LED adalah dengan melepaskan kabel jumper menjadi untaian tembaga yang terpisah. Pasang satu untai untuk menghubungkan masing-masing bantalan yang disolder pada LED ke yang berikutnya, yang cocok dengan data positif, dan ground. Hanya membutuhkan sentuhan cepat dari besi solder panas karena bantalan telah disolder sebelumnya pada langkah sebelumnya. Alih-alih memotong kabel pada tahap ini, bawa kabel melintasi bagian atas LED untuk mencapai bantalan yang disolder di sisi lain. Pastikan tidak ada kabel yang bersilangan atau saling menyentuh, solder ke bantalan tersebut dan lanjutkan putaran ke sisi input LED terakhir.

Jangan pasang kabel ke sisi keluaran LED terakhir. Tidak seperti beberapa LED yang mungkin Anda kenal, Anda tidak perlu menyelesaikan sirkuit bundar yang mengembalikan daya ke ground karena Anda telah memasang kabel ground dan jalur positif yang terpisah sepanjang jalan. Potong semua kabel yang melintasi bagian atas LED sehingga Anda hanya memiliki kabel yang menghubungkannya.

Tip: Untuk mencegah kabel bersentuhan saat berbelok di tikungan, masukkan masing-masing kembali ke strip kecil insulasi plastik yang sebelumnya dilepas.

Langkah 4: Mempersiapkan Bagian Belakang

Mempersiapkan Punggung
Mempersiapkan Punggung
Mempersiapkan Punggung
Mempersiapkan Punggung

Buat lubang lain di kartu putih untuk kabel input dan dorong melaluinya.

Pisahkan kedua cincin lingkaran permadani. Gambarlah bagian luar cincin terkecil pada 5 lembar kartu bergelombang dan gunting. Potong lubang di tengah 3 lingkaran kira-kira 2cm dari tepi untuk membuat cincin dan potong celah 5mm di masing-masing lingkaran. Rekatkan cincin di atas satu sama lain, sejajarkan celahnya, dan tempelkan ini ke salah satu lingkaran kartu yang tersisa.

Langkah 5: Menghubungkan Mikrofon dan Arduino

Menghubungkan Mikrofon dan Arduino
Menghubungkan Mikrofon dan Arduino
Menghubungkan Mikrofon dan Arduino
Menghubungkan Mikrofon dan Arduino

Hubungkan Arduino Anda ke sensor mikrofon dan cincin LED seperti yang ditunjukkan. Saya menggunakan TinkerCad untuk membuat diagram sirkuit, yang tidak memiliki gambar mikrofon, jadi saya mengganti sensor lain yang menggunakan pin yang sama dan bekerja dengan cara yang sama dalam simulasi.

Untuk melihat simulasi, kunjungi https://www.tinkercad.com/things/5cgI2wluA0c. Seret lingkaran yang terpasang pada sensor ke area aktif untuk mensimulasikan tiupan ke mikrofon. LED di strip pada 6, jadi LED terakhir dalam simulasi bukan bagian dari desain dan tidak menyala.

Langkah 6: Memprogram Arduino

Memprogram Arduino
Memprogram Arduino

Buka Arduino IDE di komputer Anda dan mulai Sketsa baru Hapus semua yang ada di dalam sketsa dan salin dan tempel kode ini ke dalamnya

// Diadaptasi menggunakan sketsa sederhana NeoPixel Ring (c) 2013 Shae Erisson//dan kode sensor dari https://www.hackster.io/ingo-lohs/first-test-37-s… #include // Pin mana pada Arduino terhubung ke NeoPixels? #define PIN 6 // Berapa banyak NeoPixels yang terpasang ke Arduino? #define NUMPIXELS 23 // Saat kami menyiapkan perpustakaan NeoPixel, kami memberi tahunya berapa banyak piksel, dan pin mana yang digunakan untuk mengirim sinyal. // Perhatikan bahwa untuk strip NeoPixel lama Anda mungkin perlu mengubah parameter ketiga--lihat contoh strandtest // untuk informasi lebih lanjut tentang nilai yang mungkin. Adafruit_NeoPixel piksel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // delay selama setengah detik int sensorPin = A0; // pilih pin input untuk sensor int sensorValue = 0; // variabel untuk menyimpan nilai yang berasal dari sensor const int threshold = 200; // tingkat ambang arbitrer yang berada dalam kisaran input analog void setup() { pixels.begin(); // Ini menginisialisasi perpustakaan NeoPixel. piksel.setBrightness(20); // Atur kecerahan Serial.begin(9600); } void loop() { // Untuk satu set NeoPixel, NeoPixel pertama adalah 0, kedua adalah 1, hingga jumlah piksel dikurangi satu. // Dandelion LED // pixels. Color mengambil nilai RGB, dari 0, 0, 0 hingga 255, 255, 255 pixels.setPixelColor(0, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(2, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(5, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(6, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(7, pixels. Color(255, 165, 0)); // Jeruk. piksel.setPixelColor(8, piksel. Warna(255, 165, 0)); // Jeruk. piksel.setPixelColor(9, piksel. Warna(255, 165, 0)); // Jeruk. piksel.setPixelColor(10, piksel. Warna(255, 165, 0)); // Jeruk. pixels.setPixelColor(11, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(12, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(14, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(16, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(17, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(18, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(19, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(20, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Mati. piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. delay(delayval*6);//Perubahan bertahap dari bunga ke kepala benih // piksel. Warna mengambil nilai RGB, dari 0, 0, 0 hingga 255, 255, 255 piksel.setPixelColor(0, piksel. Color(0, 0, 0)); // Mati. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(2, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(5, pixels. Color(226, 246, 255)); // piksel putih kebiruan.setPixelColor(6, piksel. Warna(255, 165, 0)); // Jeruk. pixels.setPixelColor(7, pixels. Color(226, 246, 255)); // piksel putih kebiruan.setPixelColor(8, piksel. Warna(255, 165, 0)); // Jeruk. pixels.setPixelColor(9, pixels. Color(226, 246, 255)); // piksel putih kebiruan.setPixelColor(10, piksel. Warna(255, 165, 0)); // Jeruk. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); //putih kebiruan. pixels.setPixelColor(12, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(14, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(16, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(17, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(18, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(19, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(20, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Mati. piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. delay(delayval*6); // Kepala benih LED piksel.setPixelColor(0, piksel. Warna (226, 246, 255); // Putih kebiruan. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); //off pixels.setPixelColor(2, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); //off pixels.setPixelColor(4, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(5, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(6, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(7, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(8, pixels. Color(226, 246, 255)); // Putih kebiruan. piksel.setPixelColor(9, piksel. Warna(255, 165, 0)); // Jeruk. pixels.setPixelColor(10, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); //off pixels.setPixelColor(12, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(14, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(16, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(17, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(18, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(19, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(20, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Mati. piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. delay(delayval*3); // Penundaan untuk jangka waktu tertentu (dalam milidetik). pixels.setPixelColor(0, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); //off pixels.setPixelColor(2, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(3, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(4, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(5, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(6, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(7, pixels. Color(255, 165, 0)); // Jeruk. pixels.setPixelColor(8, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(9, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(10, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); //Putih kebiruan. pixels.setPixelColor(12, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(14, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(16, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(17, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(18, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(19, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(20, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Mati. piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. delay(delayval*3); // Penundaan untuk jangka waktu tertentu (dalam milidetik). pixels.setPixelColor(0, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(1, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(2, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(3, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(4, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(5, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(6, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(7, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(8, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(9, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(10, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(12, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(14, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(16, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(17, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(18, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(19, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(20, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Mati. piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. penundaan (delayval); // Penundaan untuk jangka waktu tertentu (dalam milidetik). // Baca nilai sensor dan tampilkan di serial monitor sensorValue = analogRead(sensorPin); Serial.println(Nilai sensor); penundaan (250); // Saat nilai sensor kurang dari ambang batas, periksa nilai sensor dan cetak di monitor serial. Ketika nilainya di atas ambang batas, sketsa dapat dilanjutkan while (sensorValue < threshold) { sensorValue = analogRead(sensorPin); Serial.println(Nilai sensor); penundaan (250); } // LED angin pertama pixels.setPixelColor(0, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(2, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(5, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(6, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(7, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(8, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(9, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(10, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(11, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(12, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(13, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(14, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(15, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(16, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(17, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(18, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(19, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(20, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Mati. piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. penundaan (delayval); // Penundaan untuk jangka waktu tertentu (dalam milidetik). // LED angin kedua pixels.setPixelColor(0, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(2, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(5, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(6, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(7, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(8, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(9, piksel. Warna (0, 0, 0)); // Mati. piksel.setPixelColor(10, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(11, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(12, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(14, pixels. Color(0, 0, 0)); // Mati. piksel.setPixelColor(15, piksel. Warna (0, 0, 0)); // Mati. pixels.setPixelColor(16, pixels. Color(0, 0, 0)); // Mati. pixels.setPixelColor(17, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(18, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(19, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(20, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(21, pixels. Color(226, 246, 255)); // Putih kebiruan. pixels.setPixelColor(22, pixels. Color(226, 246, 255)); // Putih kebiruan.piksel.tampilkan(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. penundaan(2000); // Penundaan untuk jangka waktu tertentu (dalam milidetik). }

Pasang Arduino Anda ke komputer dengan kabel printer USB

Buka Alat > Papan dan pilih papan Arduino/Genuino UNO

Buka Port dan pastikan papan Anda terhubung ke port USB yang tepat. Jika Anda tidak yakin, Anda dapat mencabut Arduino dan melihat port mana yang hilang dari daftar. Pasang kembali dan port akan terdaftar lagi.

Unggah sketsa dengan mengklik ikon Unggah, yang ditunjukkan pada foto beranotasi. Lampu harus berkedip pada Arduino saat mengunggah. Ketika selesai mengunggah setengah LED pada cincin neo piksel akan menyala kuning dan kemudian berubah menjadi cincin penuh lampu putih. Tiup mikrofon untuk menguji sirkuit. LED di lapisan luar harus menyala secara bergantian. Periksa solder pada LED yang tidak berfungsi.

Langkah 7: Mengubah Warna, Kecerahan, dan Ambang Sensor

Mengubah Warna, Kecerahan, dan Ambang Sensor
Mengubah Warna, Kecerahan, dan Ambang Sensor
Mengubah Warna, Kecerahan, dan Ambang Sensor
Mengubah Warna, Kecerahan, dan Ambang Sensor

warna

Warna LED diatur menggunakan nilai warna RGB (Red Green Blue). Jika Anda lebih suka menggunakan warna yang berbeda dari yang saya gunakan, Anda dapat menemukan nilai untuk warna yang Anda inginkan dengan menggunakan kalkulator warna RGB online seperti www.w3schools.com/colors/colors_rgb.asp

Untuk mematikan LED, gunakan nilai 0, 0, 0.

Untuk mengatur LED menjadi putih, gunakan nilai 255, 255, 255. Kode pada langkah sebelumnya menggunakan putih kebiruan dengan nilai 226, 246, 255 dan oranye dengan nilai 255, 165, 0.

Kecerahan

Untuk mengubah kecerahan LED, buka bagian pengaturan kosong dari kode dan temukan baris kode berikut:

piksel.setBrightness(20); // Setel kecerahan

Edit nomor dalam tanda kurung untuk mengubah kecerahan LED.

Ambang Sensor

Saat Anda menjalankan program, setengah cincin NeoPixel mulai berwarna kuning untuk mewakili bunga dan secara bertahap berubah menjadi lingkaran penuh LED putih untuk mewakili kepala benih. Pada titik ini program harus berhenti sampai Anda meniup sensor mikrofon. Jika program berlanjut dan menyalakan lapisan luar LED tanpa aktivasi dari sensor, buka bagian pengaturan batal dari kode dan turunkan nilai yang ditunjukkan di bawah ini. Tingkatkan nilainya jika program berhenti tetapi tidak merespons saat Anda meniup sensor.

const int ambang = 200;

Langkah 8: Membuat Sirkuit Lebih Permanen

Membuat Sirkuit Lebih Permanen
Membuat Sirkuit Lebih Permanen

Saat sirkuit berfungsi, cabut Arduino dari komputer dan lepaskan sensor mikrofon dari papan tempat memotong roti. Solder kabel dari Arduino ke sensor mikrofon untuk membuat sirkuit yang sama lebih permanen. Dorong mikrofon melalui lubang di kartu dari belakang. Jika perlu, tekuk mikrofon dengan hati-hati hingga 90 derajat sehingga papan dapat diletakkan rata di belakang kartu. Pasang baterai ke Arduino menggunakan kabel printer dan seluruh urutan akan berfungsi.

Langkah 9: Buat Gambar

Buat Gambar
Buat Gambar

Buat lubang di kain Anda di mana Anda ingin mikrofon. Saya menggunakan besi solder panas untuk membakar lubang kecil dan memotongnya dengan gunting sampai mikrofon terpasang. Cat dan jahit bunga Anda pada kain. Saat cat mengering, tempelkan lukisan ke lingkaran bordir dan rapikan kelebihan kain, sisakan batas kecil.

Untuk melihat apakah ada komponen sirkuit yang terlihat melalui kain, letakkan sementara kain dan lingkaran di atas kartu dengan mikrofon yang terlihat melalui lubang. Jika perlu, tutup rangkaian dengan selotip berlapis, periksa sesekali, sampai komponen tidak terlihat lagi. LED cukup terang untuk dilihat melalui lapisan selotip. Jika Anda harus menambahkan lebih banyak lapisan, Anda dapat membuat LED lebih terang dengan menyesuaikan kode Anda seperti yang ditunjukkan pada Langkah 7.

Tempatkan kain dan simpai kembali di atas kartu seperti sebelumnya dan kencangkan di tempatnya dengan menempelkan kain ekstra di bagian belakang kartu.

Langkah 10: Menyatukannya

Menyatukannya
Menyatukannya

Rekatkan kartu putih ke lingkaran karton bergelombang, tutup mikrofon, tetapi bukan Arduino dan paket baterai, yang harus melingkari tepi karton dengan kabel melewati celah.

Pasang lingkaran terakhir karton dengan Velcro sehingga Anda dapat mengakses baterai. Buat lubang di karton tempat Anda ingin menggantungnya di pengait di dinding.

Langkah 11: Belajar Dari Kesalahan

Belajar Dari Kesalahan
Belajar Dari Kesalahan
Belajar Dari Kesalahan
Belajar Dari Kesalahan
Belajar Dari Kesalahan
Belajar Dari Kesalahan

Upaya pertama saya adalah dengan stiker sirkuit dan pita tembaga. Stiker sirkuit adalah permukaan LED kecil yang dipasang pada stiker dengan bantalan tembaga. Mereka berasal dari perusahaan Qi Jie, Chibitroniks, dan saya pikir mereka akan sempurna.

Saya tidak bisa mendapatkan koneksi yang andal menggunakan pita tembaga atau pita perak dan ketika saya menyolder kawat ke stiker, saya masih hanya bisa menyalakan rangkaian 3 stiker LED menggunakan baterai 9V. Menjadi jelas bahwa mereka tidak dimaksudkan untuk proyek multi-ringan seperti yang saya harapkan. Ketika saya melihat lebih dekat pada halaman web tentang stiker sirkuit, sebuah proyek dengan 4 lampu ternyata merupakan jenis LED yang berbeda. Saya dapat memberi daya pada stiker sirkuit dengan baterai 12V tetapi akan terlalu besar untuk muat di dalam gambar.

Kemudian saya mencoba LED yang dapat dijahit. Saya pikir hanya memiliki daya dan ground akan lebih mudah untuk disambungkan daripada LED yang dapat diprogram yang memiliki jalur daya, ground, dan data. Tetapi ternyata menjadi sirkuit yang lebih rumit yang membutuhkan catu daya ekstra dan MOSFET, yang tidak saya miliki. Saya bisa menggunakan NeoPixels yang dapat dijahit, tetapi harganya lebih mahal.

Jadi setelah beberapa kesalahan dimulai, saya berakhir dengan serangkaian LED yang dapat diprogram yang murah dan mudah digunakan.

Direkomendasikan: