- Komponen Diperlukan
- MPU6050 Sensor Module - Pengantar Singkat
- Attiny85 Step Counter Circuit Diagram
- Fabrikasi PCB untuk Attiny85 Step Counter
- Memesan PCB dari PCBWay
- Merakit PCB Penghitung Langkah ATtiny85
- ATtiny85 Step Counter Code Penjelasan
- Ayo gunakan Penghitung Langkah Arduino untuk Jalan-jalan
Dalam tutorial ini, kita akan membuat Pedometer yang mudah dan murah menggunakan IC ATtiny85, Akselerometer & Giroskop MPU6050, dan Modul Layar OLED. Penghitung langkah sederhana berbasis Arduino ini didukung oleh sel koin 3V, sehingga mudah dibawa saat Anda keluar jalan-jalan atau jogging. Ini juga membutuhkan sedikit komponen untuk dibangun dan kodenya juga relatif sederhana. Program dalam proyek ini menggunakan MPU6050 untuk mengukur besarnya percepatan sepanjang 3 sumbu (X, Y, dan Z). Kemudian menghitung perbedaan besar percepatan antara nilai sebelumnya dan saat ini. Jika perbedaannya lebih besar dari ambang tertentu (Untuk berjalan lebih besar dari 6 dan untuk berlari lebih dari 10), maka hal itu akan meningkatkan jumlah langkah yang sesuai. Total langkah yang diambil kemudian ditampilkan di Layar OLED.
Untuk membangun penghitung langkah portabel ini pada PCB, kami telah membuat papan PCB kami dari PCBWay dan kami akan merakit dan menguji hal yang sama dalam proyek ini. Jika Anda ingin menambahkan lebih banyak fitur, Anda juga dapat menambahkan monitor Heartbeat ke pengaturan ini dan sebelumnya kami juga telah membuat penghitung langkah akselerometer Arduino menggunakan ADXL335, periksa jika Anda tertarik.
Komponen Diperlukan
Untuk membuat pedometer ini menggunakan Arduino, Anda membutuhkan komponen-komponen berikut.
- IC Attiny85
- MPU6050
- Modul Layar OLED
- 2 × Tombol Tekan
- 5 × 10KΩ Resistor (SMD)
MPU6050 Sensor Module - Pengantar Singkat
MPU6050 didasarkan pada teknologi Micro-Mechanical Systems (MEMS). Sensor ini memiliki akselerometer 3 sumbu, giroskop 3 sumbu, dan sensor suhu internal. Dapat digunakan untuk mengukur parameter seperti Akselerasi, Kecepatan, Orientasi, Perpindahan, dll. Sebelumnya kami telah menghubungkan MPU6050 dengan Arduino dan Raspberry pi dan juga membangun beberapa proyek dengan menggunakannya seperti- robot Self Balancing, Arduino Digital Protractor, dan Arduino Inclinometer.
Modul MPU6050 berukuran kecil dan memiliki konsumsi daya rendah, pengulangan tinggi, toleransi guncangan tinggi, dan harga pengguna rendah. MPU6050 dilengkapi dengan bus I2C dan antarmuka bus Auxiliary I2C dan dapat dengan mudah mengganggu sensor lain seperti magnetometer dan mikrokontroler.
Attiny85 Step Counter Circuit Diagram
Skema untuk Penghitung Langkah MPU6050 diberikan di bawah ini:
Gambar di atas menunjukkan diagram sirkuit untuk antarmuka MPU6050 dan Tampilan OLED dengan IC Attiny85. Antarmuka antara MPU6050, OLED Display, dan Arduino harus diimplementasikan menggunakan Protokol I2C. Oleh karena itu, SCLPin (PB2) dari ATtiny85 masing-masing terhubung ke SCLPin dari MPU6050 dan Layar OLED. Demikian pula, SDAPin (PB0) dari ATtiny85 dihubungkan ke SDAPin MPU6050 dan Layar OLED. Dua tombol tekan juga terhubung ke pin PB3 & PB4 dari IC ATtiny85. Tombol-tombol ini dapat digunakan untuk menggulir teks atau mengubah teks pada tampilan.
Catatan: Ikuti tutorial kami sebelumnya Pemrograman IC ATtiny85 langsung melalui USB menggunakan Digispark Bootloader untuk memprogram IC ATtiny85 melalui USB dan Boot-loader Digispark.
Fabrikasi PCB untuk Attiny85 Step Counter
Skema selesai, dan kita dapat melanjutkan dengan meletakkan PCB. Anda dapat mendesain PCB menggunakan perangkat lunak PCB pilihan Anda. Kami telah menggunakan EasyEDA untuk membuat PCB untuk proyek ini.
Di bawah ini adalah tampilan model 3D dari lapisan atas dan lapisan bawah PCB Penghitung Langkah:
Tata letak PCB untuk rangkaian di atas juga tersedia untuk diunduh sebagai Gerber dari tautan yang diberikan di bawah ini:
- File Gerber untuk ATtiny85 Step Counter
Memesan PCB dari PCBWay
Sekarang setelah menyelesaikan desain, Anda dapat melanjutkan dengan memesan PCB:
Langkah 1: Masuk ke https://www.pcbway.com/, daftar jika ini pertama kalinya Anda. Kemudian, di tab Prototipe PCB, masukkan dimensi PCB Anda, jumlah lapisan, dan jumlah PCB yang Anda butuhkan.
Langkah 2: Lanjutkan dengan mengklik tombol 'Kutip Sekarang'. Anda akan dibawa ke halaman di mana untuk mengatur beberapa parameter tambahan seperti jenis Papan, Lapisan, Bahan untuk PCB, Ketebalan, dan Lainnya, kebanyakan dipilih secara default, jika Anda memilih parameter tertentu, Anda dapat memilih itu di sini.
Langkah 3: Langkah terakhir adalah mengunggah file Gerber dan melanjutkan pembayaran. Untuk memastikan prosesnya lancar, PCBWAY akan memverifikasi apakah file Gerber Anda valid sebelum melanjutkan pembayaran. Dengan cara ini, Anda dapat yakin bahwa PCB Anda ramah fabrikasi dan akan menghubungi Anda sesuai komitmen.
Merakit PCB Penghitung Langkah ATtiny85
Setelah beberapa hari, kami menerima PCB kami dalam kemasan yang rapi dan kualitas PCB bagus seperti biasa. Lapisan atas dan lapisan bawah papan ditunjukkan di bawah ini:
Setelah memastikan jejak dan jejak kaki sudah benar. Saya melanjutkan dengan merakit PCB. Papan yang sepenuhnya disolder terlihat seperti di bawah ini:
ATtiny85 Step Counter Code Penjelasan
Kode penghitung langkah Arduino lengkap diberikan di akhir dokumen. Di sini kami menjelaskan beberapa bagian penting dari kode.
Kode tersebut menggunakan pustaka TinyWireM.h & TinyOzOLED.h. Perpustakaan TinyWireM dapat diunduh dari Manajer Perpustakaan di Arduino IDE dan menginstal dari sana. Untuk itu, buka Arduino IDE dan masuk ke Sketch <Include Library <Manage Libraries . Sekarang cari TinyWireM.h dan instal perpustakaan TinyWireM oleh Adafruit.
Sementara perpustakaan TinyOzOLED.h dapat diunduh dari tautan yang diberikan.
Setelah menginstal perpustakaan ke Arduino IDE, mulai kode dengan memasukkan file perpustakaan yang diperlukan.
#include "TinyWireM.h" #include "TinyOzOLED.h"
Setelah menyertakan pustaka, tentukan variabel untuk menyimpan pembacaan Accelerometer.
intaccelX, accelY, accelZ;
Di dalam loop setup () , inisialisasi wire library dan reset sensor melalui register manajemen daya juga menginisialisasi komunikasi I2C untuk OLED Display. Kemudian pada baris berikutnya atur orientasi tampilan dan masukkan alamat register untuk nilai akselerometer 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 () , mulailah dengan membaca data akselerometer. Data untuk setiap sumbu disimpan dalam dua byte (Atas & Bawah) atau register. Untuk membaca semuanya, mulailah dengan register pertama, dan menggunakan fungsi requiestFrom () , kami meminta untuk membaca semua 6 register untuk sumbu X, Y, dan Z. Kemudian kita membaca data dari setiap register, dan karena keluarannya adalah pelengkap dua, gabungkan keduanya secara tepat untuk mendapatkan nilai akselerometer 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 loop, pertama-tama baca nilai sumbu X, Y, dan Z dan setelah mendapatkan nilai sumbu 3, hitung vektor percepatan total dengan mengambil akar kuadrat dari nilai sumbu X, Y, dan Z. Kemudian hitung selisih antara vektor saat ini dan vektor sebelumnya dan jika selisihnya lebih besar dari 6, maka tingkatkan jumlah langkahnya.
getAccel (); vektor = sqrt ((accelX * accelX) + (accelY * accelY) + (accelZ * accelZ)); totalvector = vektor - vektorprevious; if (totalvector> 6) {Steps ++; } OzOled.printString ("Langkah", 0, 4); OzOled.printNumber (Langkah, 0, 8, 4); vectorprevious = vektor; penundaan (600);
Ayo gunakan Penghitung Langkah Arduino untuk Jalan-jalan
Setelah Anda selesai merakit PCB, hubungkan ATtiny85 ke papan pemrogram, dan unggah kodenya. Sekarang ambil pengaturan penghitung langkah di tangan Anda dan mulai berjalan selangkah demi selangkah, itu akan menampilkan jumlah langkah pada OLED. Terkadang ini meningkatkan jumlah langkah saat penyetelan bergetar sangat cepat atau sangat lambat.
Ini adalah bagaimana Anda dapat membuat Penghitung Langkah Anda sendiri menggunakan ATtiny85 dan MPU6050. Pekerjaan lengkap proyek juga dapat ditemukan di video yang ditautkan di bawah ini. Semoga Anda menikmati proyek ini dan merasa tertarik untuk membuat proyek Anda sendiri. Jika Anda memiliki pertanyaan, silakan tinggalkan di bagian komentar di bawah.