Daftar Isi:
- Langkah 1: Bahan dan Suku Cadang yang Dibutuhkan:
- Langkah 2: Cincin Neopiksel
- Langkah 3: Koneksi
- Langkah 4: Kode:
- Langkah 5: Menyatukan Semuanya:
Video: Kacamata Relaksasi - ITTT: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Proyek HKU - ITTT (Jika Ini Maka Itu) - Julia Berkouwer, 1B
Pernahkah Anda merasa stres dan tidak tahu cara menenangkan diri, maka Anda harus mencoba kacamata relaksasi ini! Anda memakainya dan menutup mata Anda, maka pola pernapasan akan dimainkan. Dengan mengikuti pola pernapasan ini, ritme pernapasan Anda akan turun menjadi bernapas masuk dan keluar 6 kali dalam satu menit. Melakukan hal ini melepaskan stres sehari-hari.
Anda juga dapat melacak intensitas pernapasan Anda dengan menekan tombol, menggunakan sensor fsr.
Dengan toturial ini saya akan memandu Anda melalui membangun kacamata relaksasi Anda sendiri langkah demi langkah.
Langkah 1: Bahan dan Suku Cadang yang Dibutuhkan:
Bahan:
1x arduino uno;
1xbreadboard atau PCV;
3x 10k resistor
Kabel (Lebih disukai warna yang berbeda sehingga lebih mudah untuk membedakan mana yang akan ke tanah dan mana yang akan ke pin yang berbeda, dll.);
Beberapa tabung panas menyusut;
2x NeoPixel Ring - LED 16 x 5050 RGB dengan Driver Terintegrasi;
1x beralih;
1x sensor FSR;
1x kacamata SteamPunk (Anda dapat membelinya di toko pesta, mudah digunakan karena cincin neopiksel sangat pas dengan kacamata. Anda selalu mencoba menggunakan kacamata lain atau membuatnya sendiri.);
1x semacam pita (elastik) untuk melingkari dada Anda.
Alat:-Laptop
-Besi solder
-Perangkat lunak Arduino IDE
Anda akan melihat dua tombol dan sakelar di pvc saya, saya hanya menggunakan tombol kiri untuk menghubungkannya ke sakelar, saya tidak menggunakan tombol kedua di sebelah kanan gambar. Saya meletakkan tombol di pvc sebelum menyadari bahwa saya tidak membutuhkannya dan saya perlu menggunakan sakelar sebagai gantinya.
Di bawah ini Anda akan melihat gambar dari semua yang saya gunakan:
Langkah 2: Cincin Neopiksel
Kabel putih terhubung ke ground di bagian belakang cincin neopiksel.
Kabel oranye terhubung ke 5V.
Dan kabel coklat terhubung ke input data
Langkah 3: Koneksi
Ini adalah tampilan papan tempat memotong roti saya saat membuat prototipe, Anda dapat menggunakan ini sebagai referensi.
Saya juga membuat tata letak pengkabelan yang seharusnya terlihat hanya dengan satu tombol.
Langkah 4: Kode:
Ini mungkin bukan kode yang paling efisien, tetapi berfungsi untuk saya. Tantang diri Anda dan cobalah membuatnya lebih efisien;P
#termasuk
// Yang
pin pada Arduino terhubung ke NeoPixels?
#mendefinisikan
PIN 6
// Yang
pin pada Arduino terhubung ke tombol
#mendefinisikan
BUTTON_PIN 9
// Bagaimana
banyak NeoPixels yang terpasang ke Arduino?
#mendefinisikan
NUMPIXEL 16
// Kapan
kami menyiapkan perpustakaan NeoPixel, kami memberi tahu berapa banyak piksel, dan pin mana yang digunakan untuk mengirim sinyal.
// Catatan
bahwa untuk strip NeoPixel yang lebih lama Anda mungkin perlu mengubah parameter ketiga--lihat strandtest
//
contoh untuk informasi lebih lanjut tentang nilai-nilai yang mungkin.
Adafruit_NeoPixel
piksel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int jeda
= 1; //tunda2
ke dalam
jeda2 = 80; // turun saat fsr digunakan
ke dalam
jeda3 = 150; // melakukan up ketika fsr sedang digunakan
ke dalam
delayval = 4; // tunda1
ke dalam
fsrPin = 0; // pulldown FSR dan 10K terhubung ke a0
ke dalam
fsrMembaca;
ruang kosong
mempersiapkan() {
pinMode(BUTTON_PIN, INPUT);
Serial.begin(9600);
piksel.mulai(); // Ini menginisialisasi
perpustakaan NeoPixel.
piksel.tampilkan();
}
bool
ditekan tombol(int pin){
kembalikan digitalRead(pin);
}
ruang kosong
loop() { //membaca apakah input pin benar atau salah
fsrReading = analogRead(fsrPin);
Serial.print("Bacaan Analog = ");
Serial.print(fsrMembaca);
if (ditekan tombol(BUTTON_PIN) == benar){
//efek cahaya saat menggunakan sensor fsr
if (fsrMembaca > 50){
piksel.setPixelColor(0, 1, 0, 1);
piksel.setPixelColor(15, 1, 0, 1);
piksel.setPixelColor(1, 1, 0, 1);
piksel.setPixelColor(14, 1, 0, 1);
piksel.tampilkan();
tunda(jeda3);
}
if (fsrMembaca < 52){
piksel.setPixelColor(0, 0, 0, 0);
piksel.setPixelColor(15, 0, 0, 0);
piksel.setPixelColor(1, 0, 0, 0);
piksel.setPixelColor(14, 0, 0, 0);
piksel.tampilkan();
tunda(jeda2);
}
if (fsrMembaca > 57){
piksel.setPixelColor(2, 1, 0, 1);
piksel.setPixelColor(13, 1, 0, 1);
piksel.setPixelColor(3, 1, 0, 1);
piksel.setPixelColor(12, 1, 0, 1);
piksel.tampilkan();
tunda(jeda3);
}
if (fsrMembaca <59){
piksel.setPixelColor(2, 0, 0, 0);
piksel.setPixelColor(13, 0, 0, 0);
piksel.setPixelColor(3, 0, 0, 0);
piksel.setPixelColor(12, 0, 0, 0);
piksel.tampilkan();
tunda(jeda2);
}
if (fsrMembaca > 65){
piksel.setPixelColor(4, 1, 0, 1);
piksel.setPixelColor(11, 1, 0, 1);
piksel.setPixelColor(5, 1, 0, 1);
piksel.setPixelColor(10, 1, 0, 1);
piksel.tampilkan();
tunda(jeda3);
}
if (fsrMembaca <67){
piksel.setPixelColor(4, 0, 0, 0);
piksel.setPixelColor(11, 0, 0, 0);
piksel.setPixelColor(5, 0, 0, 0);
piksel.setPixelColor(10, 0, 0, 0);
piksel.tampilkan();
penundaan (40);
}
if (fsrMembaca > 79){
piksel.setPixelColor(6, 1, 0, 1);
piksel.setPixelColor(9, 1, 0, 1);
piksel.setPixelColor(7, 1, 0, 1);
piksel.setPixelColor(8, 1, 0, 1);
piksel.tampilkan();
tunda(jeda3);
}
if (fsrMembaca <85){
piksel.setPixelColor(6, 0, 0, 0);
piksel.setPixelColor(9, 0, 0, 0);
piksel.setPixelColor(7, 0, 0, 0);
piksel.setPixelColor(8, 0, 0, 0);
piksel.tampilkan();
penundaan (20);
}
}
lain{
breath_blue(20, 100, 0, 1, 1); // biasa
memengaruhi
}
}
// Jeda
= penundaan antar transisi
// Langkah
= jumlah langkah
// R, G, B = Nilai RGB aktif penuh
// De void bernafas adalah voor het licht effect als de
fsrsensor niet gebruikt wordt. Deze void wordt di de void loop() weer aangeroepen.
void breath_blue(int jeda, langkah int, byte R, byte G, byte B) {
ke dalam
tmpR, tmpG, tmpB; // Nilai suhu
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Sayapiksel.setPixelColor(0, tmpR, tmpG+1, tmpB);
piksel.setPixelColor(15, tmpR, tmpG+1, tmpB);
}
piksel.tampilkan();
penundaan (4);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Sayapiksel.setPixelColor(1, tmpR, tmpG+1, tmpB);piksel.setPixelColor(14, tmpR, tmpG+1, tmpB);
}
piksel.tampilkan();
penundaan (4);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Sayapiksel.setPixelColor(2, tmpR, tmpG+2, tmpB);piksel.setPixelColor(13, tmpR, tmpG+2, tmpB);
}
piksel.tampilkan();
penundaan(3.5);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Sayapiksel.setPixelColor(3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor(12, tmpR, tmpG+3, tmpB+5);
}
piksel.tampilkan();
penundaan (3);
}
untuk (int i=0;
Sayapiksel.setPixelColor(0, 0, 0, 0);piksel.setPixelColor(15, 0, 0, 0);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Saya
piksel.setPixelColor(4, tmpR, tmpG+3, tmpB+15);piksel.setPixelColor(11, tmpR, tmpG+3, tmpB+15);
}
piksel.tampilkan();
penundaan (3);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Sayapiksel.setPixelColor(5, tmpR, tmpG+4, tmpB+20);piksel.setPixelColor(10, tmpR, tmpG+4, tmpB+20);
}
piksel.tampilkan();
penundaan (2);
}
untuk (int i=0;
Sayapiksel.setPixelColor(1, 0, 0, 0);
piksel.setPixelColor(14, 0, 0, 0);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Sayapiksel.setPixelColor(6, tmpR, tmpG+2, tmpB+40);
piksel.setPixelColor(9, tmpR, tmpG+2, tmpB+40);
}
piksel.tampilkan();
penundaan (delayval);
}
untuk (int i=0;
Sayapiksel.setPixelColor(2, 0, 0, 0);piksel.setPixelColor(13, 0, 0, 0);
}
// Memudar
for (int s=1; s<=langkah; s++) {
tmpR = (R * s) /
Langkah; // Kalikan terlebih dahulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0;
Saya
piksel.setPixelColor(7, tmpR, tmpG, tmpB+44);piksel.setPixelColor(8, tmpR, tmpG, tmpB+44);
}
piksel.tampilkan();
penundaan (delayval);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(7, tmpR, tmpG, tmpB);
piksel.setPixelColor(8, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (1);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(6, tmpR, tmpG, tmpB);
piksel.setPixelColor(9, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (1);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(5, tmpR, tmpG, tmpB);
piksel.setPixelColor(10, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (2);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(4, tmpR, tmpG, tmpB);
piksel.setPixelColor(11, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (2);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(3, tmpR, tmpG, tmpB);
piksel.setPixelColor(12, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (3);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; //
Kalikan dulu untuk menghindari kesalahan pemotongan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(2, tmpR, tmpG, tmpB);
piksel.setPixelColor(13, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (3);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(1, tmpR, tmpG, tmpB);
piksel.setPixelColor(14, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (4);
}
// Memudar
for (int s=langkah; s>0; s--) {
tmpR = (R * s) / langkah; // Kalikan dulu untuk menghindari pemotongan
kesalahan
tmpG = (G * s) / langkah;
tmpB = (B * s) / langkah;
untuk (int i=0; i
piksel.setPixelColor(0, tmpR, tmpG, tmpB);
piksel.setPixelColor(15, tmpR, tmpG, tmpB);
}
piksel.tampilkan();
penundaan (4);
}
}
Langkah 5: Menyatukan Semuanya:
Anda bisa membiarkan semua kabel Anda terhubung ke papan tempat memotong roti atau PVC, itu terserah Anda (saya memilih untuk meletakkan PVC di atas arduino itu bagus dan rapi seperti itu).
Langkah selanjutnya adalah memasang tabung panas menyusut di sekitar semua kabel sehingga tidak terlalu berantakan.
Jika Anda memilih untuk menggunakan PVC maka Anda seharusnya sudah menyolder semuanya bersama-sama sekarang.
Setelah itu Anda meletakkan cincin neopixel di bagian luar kacamata (pastikan led sejajar di bagian bawah) dan kencangkan dengan selotip atau lem (saya menggunakan selotip).
Anda dapat memilih untuk menempelkan sensor fsr ke karet gelang dengan selotip atau membiarkannya begitu saja.
Selamat menikmati kacamata:)
Direkomendasikan:
Kacamata Cerdas (Di Bawah $10!!!): 8 Langkah (dengan Gambar)
Kacamata Cerdas (Di Bawah $10!!!): Hai! Kita semua sudah tidak asing lagi dengan Smart Glasses seperti yang bernama E.D.I.T.H. dibuat oleh karakter kesayangan kita Tony Stark yang kemudian diteruskan ke Peter Parker. Hari ini saya akan membuat satu kaca pintar yang harganya juga di bawah $10! Mereka tidak cukup
Sakelar Lampu Terkendali Kedipan Mata Menggunakan Kacamata Penghapus Shota Aizawa (My Hero Academia): 8 Langkah (dengan Gambar)
Sakelar Lampu Terkendali Kedipan Mata Menggunakan Kacamata Penghapus Shota Aizawa (My Hero Academia): Jika Anda membaca manga hero academia atau menonton anime my hero academia, Anda pasti mengenal karakter bernama shota aizawa. Shota Aizawa juga dikenal sebagai Kepala Penghapus, adalah Pahlawan Pro dan wali kelas dari Kelas 1-A U.A. Quirk Shota memberinya ab
Kacamata dan Kostum LED: 4 Langkah (dengan Gambar)
Kacamata dan Kostum LED: Apakah Anda suka dilihat dari jauh dalam kegelapan? Apakah Anda ingin kacamata mewah seperti milik Elton? Maka, Instructable ini cocok untuk Anda !!! Anda akan belajar cara membuat kostum LED dan kacamata cahaya animasi
Menyaksikan Gerhana Melalui Kacamata Baca (dan Tidak Membakar Mata Saya): 4 Langkah (dengan Gambar)
Menonton Gerhana Melalui Kacamata Baca (dan Tidak Membakar Mata Saya): Hai, apakah saya menangkap rasa ingin tahu Anda dengan judul saya? Ayah saya juga, saat kami berjalan di Montr&al tua kemarin, dia melepas kacamatanya dan menunjukkan cara melihat gerhana, pikir kacamata bacanya. Jadi semua yang
Kacamata Kristal Cair untuk Amblyopia (Kacamata Pelatihan Oklusi Bergantian) [ATtiny13]: 10 Langkah (dengan Gambar)
Kacamata Kristal Cair untuk Amblyopia (Kacamata Pelatihan Oklusi Bergantian) [ATtiny13]: Amblyopia (mata malas), gangguan penglihatan yang mempengaruhi sekitar 3% populasi, biasanya diobati dengan penutup mata sederhana atau tetes atropin. Sayangnya, metode pengobatan tersebut menutup mata yang lebih kuat untuk jangka waktu yang lama dan tidak terputus, tidak