- Komponen Diperlukan
- Modul Sensor MPU6050 - Pengenalan Ringkas
- Diagram Litar Pembilang Langkah Attiny85
- Membuat PCB untuk Kaunter Langkah Attiny85
- Memesan PCB dari PCBWay
- Memasang PCB Kaunter Langkah ATtiny85
- Penjelasan Kod Kaunter Langkah ATtiny85
- Mari ikuti Arduino Step Counter kami untuk berjalan-jalan
Dalam tutorial ini, kita akan membina Pedometer yang mudah dan murah menggunakan ATtiny85 IC, MPU6050 Accelerometer & Gyroscope, dan OLED Display Module. Kaunter langkah Arduino yang ringkas ini dikuasakan oleh sel duit syiling 3V, menjadikannya mudah dibawa ketika anda keluar berjalan-jalan atau berjoging. Ia juga memerlukan sedikit komponen untuk dibina dan kodanya juga agak mudah. Program dalam projek ini menggunakan MPU6050 untuk mengukur besaran pecutan sepanjang paksi 3 (X, Y, dan Z). Kemudian ia mengira perbezaan magnitud pecutan antara nilai sebelumnya dan semasa. Sekiranya perbezaannya lebih besar dari ambang tertentu (Untuk berjalan lebih besar dari 6 dan berjalan lebih besar dari 10), maka ia akan meningkatkan jumlah langkah yang sesuai. Keseluruhan langkah yang diambil kemudian dipaparkan di Paparan OLED.
Untuk membina kaunter langkah mudah alih ini pada PCB, kami telah membuat papan PCB kami dari PCBWay dan kami akan memasang dan menguji perkara yang sama dalam projek ini. Sekiranya anda ingin menambahkan lebih banyak ciri, anda juga dapat menambahkan monitor Denyut Jantung pada penyediaan ini dan kami juga sebelumnya telah membuat penghitung langkah akselerometer Arduino menggunakan ADXL335, periksa jika anda berminat.
Komponen Diperlukan
Untuk membina pedometer ini menggunakan Arduino, anda memerlukan komponen berikut.
- IC Attiny85
- MPU6050
- Modul Paparan OLED
- 2 × Butang Tekan
- Perintang 5 × 10KΩ (SMD)
Modul Sensor MPU6050 - Pengenalan Ringkas
MPU6050 didasarkan pada teknologi Sistem Mikro-Mekanikal (MEMS). Sensor ini mempunyai akselerometer 3 paksi, giroskop 3 paksi, dan sensor suhu terbina dalam. Ia dapat digunakan untuk mengukur parameter seperti Percepatan, Kecepatan, Orientasi, Perpindahan, dll. Kami sebelumnya telah menghubungkan MPU6050 dengan Arduino dan Raspberry pi dan juga membangun beberapa proyek menggunakannya seperti- Self Balancing robot, Arduino Digital Protractor, dan Arduino Inclinometer.
Modul MPU6050 berukuran kecil dan mempunyai penggunaan kuasa rendah, pengulangan tinggi, toleransi kejutan tinggi, dan titik harga pengguna rendah. MPU6050 dilengkapi dengan bas I2C dan antara muka bas A2iliary I2C dan boleh mengganggu sensor lain seperti magnetometer dan mikrokontroler dengan mudah.
Diagram Litar Pembilang Langkah Attiny85
Skema untuk Kaunter Langkah MPU6050 diberikan di bawah:
Gambar di atas menunjukkan gambarajah litar untuk antara muka MPU6050 dan OLED Display dengan Attiny85 IC. Antara muka antara MPU6050, OLED Display, dan Arduino mesti dilaksanakan menggunakan I2C Protocol. Oleh itu, SCLPin (PB2) ATtiny85 masing-masing disambungkan ke SCLPin MPU6050 dan OLED Display. Begitu juga, SDAPin (PB0) ATtiny85 disambungkan ke SDAPin MPU6050 dan OLED Display. Dua butang tekan juga disambungkan ke pin PB3 & PB4 dari ATtiny85 IC. Butang ini dapat digunakan untuk menatal teks atau mengubah teks yang dipamerkan.
Catatan: Ikuti tutorial kami sebelumnya Pengaturcaraan ATtiny85 IC secara langsung melalui USB menggunakan Digispark Bootloader untuk memprogramkan ATtiny85 IC melalui USB dan Digispark Boot-loader.
Membuat PCB untuk Kaunter Langkah Attiny85
Skema selesai, dan kita dapat melanjutkan dengan meletakkan PCB. Anda boleh merancang PCB menggunakan perisian PCB pilihan anda. Kami telah menggunakan EasyEDA untuk membuat PCB untuk projek ini.
Berikut adalah paparan model 3D lapisan atas dan lapisan bawah Step Counter PCB:
Susun atur PCB untuk litar di atas juga boleh dimuat turun sebagai Gerber dari pautan yang diberikan di bawah:
- Fail gerber untuk Kaunter Langkah ATtiny85
Memesan PCB dari PCBWay
Sekarang setelah menyelesaikan reka bentuk, anda boleh terus memesan PCB:
Langkah 1: Masuk ke https://www.pcbway.com/, daftar jika ini pertama kali anda. Kemudian, pada tab Prototaip PCB, masukkan dimensi PCB anda, jumlah lapisan, dan jumlah PCB yang anda perlukan.
Langkah 2: Teruskan dengan mengklik butang 'Quote Now'. Anda akan dibawa ke halaman di mana untuk menetapkan beberapa parameter tambahan seperti jenis Papan, Lapisan, Bahan untuk PCB, Ketebalan, dan Banyak Lagi, kebanyakannya dipilih secara lalai, jika anda memilih parameter tertentu, anda boleh memilih di sini.
Langkah 3: Langkah terakhir adalah memuat naik fail Gerber dan meneruskan pembayaran. Untuk memastikan prosesnya lancar, PCBWAY mengesahkan apakah fail Gerber anda sah sebelum meneruskan pembayaran. Dengan cara ini, anda dapat memastikan bahawa PCB anda mesra fabrikasi dan akan menghubungi anda sebagai komited.
Memasang PCB Kaunter Langkah ATtiny85
Selepas beberapa hari, kami menerima PCB kami dalam pakej yang kemas dan kualiti PCB baik seperti biasa. Lapisan atas dan lapisan bawah papan ditunjukkan di bawah:
Setelah memastikan jejak dan jejak kaki betul. Saya meneruskan pemasangan PCB. Papan yang dipateri sepenuhnya seperti di bawah:
Penjelasan Kod Kaunter Langkah ATtiny85
Kod kaunter langkah Arduino yang lengkap diberikan di akhir dokumen. Di sini kami menerangkan beberapa bahagian penting kod.
Kod tersebut menggunakan perpustakaan TinyWireM.h & TinyOzOLED.h. Perpustakaan TinyWireM boleh dimuat turun dari Pengurus Perpustakaan di Arduino IDE dan dipasang dari sana. Untuk itu, buka Arduino IDE dan pergi ke Sketch <Include Library <Manage Libraries . Sekarang cari TinyWireM.h dan pasang perpustakaan TinyWireM oleh Adafruit.
Sementara perpustakaan TinyOzOLED.h boleh dimuat turun dari pautan yang diberikan.
Setelah memasang perpustakaan ke Arduino IDE, mulakan kod dengan memasukkan fail perpustakaan yang diperlukan.
#masuk "TinyWireM.h" #masuk "TinyOzOLED.h"
Setelah memasukkan perpustakaan, tentukan pemboleh ubah untuk menyimpan bacaan Accelerometer.
intaccelX, accelY, accelZ;
Di dalam gelung persediaan () , inisialisasi perpustakaan wayar dan tetapkan semula sensor melalui daftar pengurusan daya juga menginisialisasi komunikasi I2C untuk Paparan OLED. Kemudian pada baris seterusnya tetapkan orientasi paparan dan masukkan alamat daftar untuk nilai pecutan dan giroskop.
TinyWireM.begin (); OzOled.init (); OzOled.clearDisplay (); OzOled.setNormalDisplay (); OzOled.sendCommand (0xA1); OzOled.sendCommand (0xC8); TinyWireM.beginTransmission (mpu); TinyWireM.write (0x6B); TinyWireM.write (0b00000000); TinyWireM.write (0x1B);
Dalam fungsi getAccel () , mulakan dengan membaca data pecutan. Data untuk setiap paksi disimpan dalam dua bait (Atas & Bawah) atau daftar. Untuk membaca semuanya, mulakan dengan daftar pertama, dan gunakan fungsi requiestFrom () , kami meminta untuk membaca semua 6 register untuk paksi X, Y, dan Z. Kemudian kami membaca data dari setiap daftar, dan kerana outputnya adalah pelengkap dua, gabungkan dengan tepat untuk mendapatkan nilai akselerometer yang lengkap.
voidgetAccel () {TinyWireM.beginTransmission (mpu); TinyWireM.write (0x3B); TinyWireM.endTransmission (); TinyWireM.requestFrom (mpu, 6); accelX = TinyWireM.read () << 8-TinyWireM.read (); accelY = TinyWireM.read () << 8-TinyWireM.read (); accelZ = TinyWireM.read () << 8-TinyWireM.read (); }
Sekarang di dalam fungsi gelung, baca dulu nilai paksi X, Y, dan Z dan setelah mendapat nilai paksi 3, hitung jumlah vektor pecutan dengan mengambil punca kuasa dua nilai paksi X, Y, dan Z. Kemudian hitung perbezaan antara vektor semasa dan vektor sebelumnya dan jika perbezaannya lebih besar daripada 6, maka tambah jumlah langkah.
getAccel (); vektor = sqrt ((accelX * accelX) + (accelY * accelY) + (accelZ * accelZ)); totalvector = vektor - vektor terdahulu; jika (totalvector> 6) {Langkah ++; } OzOled.printString ("Langkah", 0, 4); OzOled.printNumber (Langkah, 0, 8, 4); vectorpre sebelumnya = vektor; kelewatan (600);
Mari ikuti Arduino Step Counter kami untuk berjalan-jalan
Setelah selesai memasang PCB, sambungkan ATtiny85 ke papan pengaturcara, dan muat naik kodnya. Sekarang ambil langkah penghitung langkah di tangan anda dan mulailah berjalan langkah demi langkah, ia harus menunjukkan jumlah langkah di OLED. Kadang-kadang ia meningkatkan bilangan langkah ketika penyediaan bergetar dengan sangat cepat atau sangat perlahan.
Ini adalah bagaimana anda boleh membina Step Counter anda sendiri menggunakan ATtiny85 dan MPU6050. Penyelesaian projek yang lengkap juga terdapat dalam video yang dipautkan di bawah. Mudah-mudahan anda menikmati projek ini dan menjadikannya menarik untuk membina sendiri. Sekiranya anda mempunyai pertanyaan, sila tinggalkan di bahagian komen di bawah.