Daftar Isi:

Akselerometer Nirkabel Terkendali Rgb-LED: 4 Langkah
Akselerometer Nirkabel Terkendali Rgb-LED: 4 Langkah

Video: Akselerometer Nirkabel Terkendali Rgb-LED: 4 Langkah

Video: Akselerometer Nirkabel Terkendali Rgb-LED: 4 Langkah
Video: Как подключить модуль акселерометра ADXL335 к Arduino | Руководство 2024, Juli
Anonim
Akselerometer Nirkabel Terkendali Rgb-LED
Akselerometer Nirkabel Terkendali Rgb-LED
Akselerometer Nirkabel Terkendali Rgb-LED
Akselerometer Nirkabel Terkendali Rgb-LED

MEMS (Micro-Electro-Mechanical Systems) Akselerometer digunakan secara luas sebagai sensor kemiringan di ponsel dan kamera. Akselerometer sederhana tersedia baik sebagai ic-chip dan papan PCB pengembangan yang murah.

Chip nirkabel juga terjangkau dan tersedia di sirkuit rakitan, dengan jaringan antena dan tutup decoupling yang cocok. Hubungkan papan nirkabel dan akselerometer ke mikrokontroler melalui antarmuka serial dan Anda memiliki pengontrol nirkabel dengan fungsi nintendo-wii. Kemudian buat receiver dengan jenis chip nirkabel yang sama dan rgb-LED yang dikontrol pwm, voila, Anda memiliki petir ruangan berwarna yang dapat dikontrol kemiringan dan nirkabel. Pertahankan level papan pemancar dengan papan tempat memotong roti menghadap ke atas dan LED berwarna biru dingin, hanya led biru yang aktif. Kemudian miringkan pemancar ke satu arah dan Anda mencampur warna merah atau hijau tergantung ke arah mana Anda memiringkannya. Miringkan hingga 90 derajat, dan Anda melewati semua campuran merah dan biru atau hijau dan biru hingga hanya merah atau hijau yang aktif pada kemiringan 90 derajat. Miringkan sedikit ke arah x dan y dan Anda mendapatkan campuran semua warna. Pada 45 derajat ke segala arah cahaya adalah campuran yang sama dari merah, hijau dan biru, dengan kata lain, cahaya putih. Suku cadang yang digunakan tersedia dari toko elektronik hobi internet. Harus dapat diidentifikasi dari beberapa gambar.

Langkah 1: Pemancar Dengan Akselerometer

Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer
Pemancar Dengan Akselerometer

Pemancar didasarkan pada mikrokontroler Atmel avr168. Papan merah yang nyaman dengan 168 adalah papan arduino dengan pengatur tegangan dan rangkaian reset. Akselerometer terhubung ke avr dengan bus i2c bit-banged, dan papan nirkabel terhubung dengan perangkat keras SPI, (Serial Peripheral Interface).

Papan tempat memotong roti benar-benar nirkabel dengan baterai 4, 8V diikat di bawahnya. Papan nirkabel dan arduino wee menerima hingga 9 V dan memiliki regulator tegangan linier onboard, tetapi akselerometer membutuhkan 3, 3V dari rel yang diatur pada wee.

Langkah 2: Penerima Dengan RGB-LED

Penerima Dengan RGB-LED
Penerima Dengan RGB-LED
Penerima Dengan RGB-LED
Penerima Dengan RGB-LED
Penerima Dengan RGB-LED
Penerima Dengan RGB-LED

Penerima didasarkan pada demoboard atmel avr169 bernama kupu-kupu. Papan memiliki banyak fitur yang tidak digunakan dalam proyek ini. Transceiver nirkabel terhubung ke PortB dan led yang dikendalikan pwm terhubung ke PortD. Daya disuplai di ISP-header, 4.5V sudah cukup. Papan nirkabel dapat mentolerir 5V pada pin i / o, tetapi membutuhkan pasokan 3.3V yang dipasok oleh regulator onboard.

Kabel header yang dimodifikasi untuk rf tranceiver sangat nyaman, dan menghubungkan papan nirkabel dengan pengontrol spi daya dan perangkat keras pada kupu-kupu. Shiftbright adalah pengontrol modulasi lebar pulsa yang dipimpin rgb yang menerima perintah 4 byte yang dikunci dan kemudian dikunci pada pin output. Sangat mudah untuk terhubung secara seri. Pindahkan saja banyak kata perintah, dan yang pertama digeser akan berakhir di LED terhubung terakhir di daisy-chain.

Langkah 3: Pemrograman C

Kode ditulis dalam C karena saya tidak peduli untuk mempelajari bahasa pemrosesan "lebih mudah" yang menjadi dasar arduino. Saya menulis sendiri antarmuka transceiver SPI dan rf untuk pengalaman belajar, tetapi meminjam kode assembler i2c dari avrfreaks.net. Antarmuka shiftbright di-bitbang dalam kode-C. Salah satu masalah yang saya temui adalah variasi irradic kecil di accelerometer-output, ini membuat banyak berkedip led. Saya memecahkan ini dengan filter low-pass perangkat lunak. Rata-rata tertimbang bergerak pada nilai-nilai accelerometer. Rf-tranceiver mendukung perangkat keras crc dan ack dengan transmisi ulang otomatis, tetapi untuk proyek ini pembaruan led secara realtime dan mulus lebih penting. Setiap paket dengan nilai accelerometer tidak perlu tiba utuh di penerima, selama paket yang rusak dibuang. Saya tidak punya masalah dengan paket RF yang hilang dalam jarak pandang 20 meter. Tapi lebih jauh link menjadi tidak stabil, dan leds tidak memperbarui terus menerus. Loop utama pemancar di pseudo-code:initialize();sementara(true){ Nilai = abs(dapatkan x, y, z nilai accelerometer()); RF_send(Nilai); delay(20ms);}Loop utama penerima dalam pseudo-code:initialize(); while(true){ newValues = blocking_receiveRF()); rgbValues = rgbValues + 0.2*(newValues-rgbValues); tulis rgbValues ke shiftbrigth;}

Langkah 4: Hasilnya

Hasil
Hasil
Hasil
Hasil
Hasil
Hasil
Hasil
Hasil

Saya kagum dengan betapa halus dan akuratnya kontrolnya. Anda benar-benar memiliki kontrol akurasi ujung jari dari warna. Pwm-LED-controller memiliki resolusi 10 bit untuk setiap warna, yang menghasilkan jutaan kemungkinan warna. Sayangnya accelerometer hanya memiliki resolusi 8 bit yang membawa jumlah warna teoritis ke ribuan. Tetapi masih tidak mungkin untuk melihat langkah apa pun dalam perubahan warna. Saya meletakkan receiver di lampu IKEA dan memotret berbagai warna di bawah ini. Ada juga video, (kualitas mengerikan sekalipun)

Direkomendasikan: