Perkenalan
Dalam artikel ini, kami akan membahas cara membuat proyek pencatatan data yang menginstruksikan Robot VEX untuk mengumpulkan data dengan VEX Brain dan menyimpannya dalam file CSV pada kartu SD untuk analisis data.
Pencatatan data adalah alat yang ampuh yang dapat kita gunakan untuk membantu penelitian ilmiah, melakukan eksperimen kita sendiri, dan memecahkan masalah tertentu. Ada berbagai tugas menyenangkan dan menarik yang dapat kita kendalikan dengan Robot VEX untuk diselesaikan melalui pencatatan data. Berikut ini adalah beberapa contohnya:
- Mengumpulkan data dengan Sensor Jarak untuk menghitung kecepatan robot.
- Mengendalikan robot di sekitar kelas dan mengumpulkan data dengan Sensor Optik untuk mengamati perubahan cahaya di berbagai lokasi.
- Membawa robot pada suatu petualangan dan merekam data koordinat GPS untuk membuat peta.
Keterampilan pengkodean yang dibutuhkan untuk mengembangkan Proyek Pencatatan Data
- Gunakan berbagai perintah untuk mengumpulkan data dengan VEX Brain/Sensor dan menambahkannya ke struktur data.
- Tulis data ke file Comma-Separated Values (CSV) pada kartu SD.
Perangkat Keras yang Diperlukan untuk Pencatatan Data:
- Otak VEX (IQ, V5, EXP)
- Kartu SD
- Sensor atau beberapa Sensor (Opsional, sesuai dengan data yang dibutuhkan)
Mendapatkan Data Dari Sensor
Kita dapat memprogram Robot VEX (IQ, V5, EXP) untuk menangkap data dari sensor berikut:
- Sensor Inersia
- Sensor Jarak
- Sensor Optik
- Sensor Penglihatan
- Sensor Rotasi (V5, EXP)
- Sensor GPS (V5)
Catatan: Otak VEX IQ (generasi ke-2) dan Otak VEX EXP memiliki Sensor Inersia yang terpasang di dalamnya. Kita dapat mengumpulkan data Sensor Inersia dengan VEX Brains ini.
Dalam artikel ini, kami akan mengembangkan proyek pencatatan data yang mengumpulkan data akselerasi dengan VEX IQ Brain (generasi ke-2) dan menyimpannya ke dalam kartu SD.
Pertama, kita perlu menulis program pendek untuk mendapatkan pembacaan dari Timer dan Sensor Inersia yang terpasang di VEX IQ Brain (generasi ke-2).
- Pada awal program ini, kita perlu mengimpor modul Python untuk mengendalikan VEX IQ Brain (generasi ke-2) dan mengambil data darinya. Jadi, mulailah dengan menambahkan instruksi ini ke proyek.
- Berikutnya, tambahkan kode untuk mendeklarasikan variabel
numOfDataEntriesuntuk menyimpan jumlah entri data untuk perekaman, mendeklarasikan variabelpolling_delay_msecuntuk menyimpan nilai interval waktu untuk membaca data, dan membuat variabel string kosongdata_bufferuntuk menyimpan data yang dibaca dari sensor. - Karena kita akan menggunakan nilai Timer saat ini untuk menambahkan Timestamp ke data, kita perlu mengatur ulang nilai timer kembali ke 0 detik sebelum mulai mengumpulkan data.
- Sebelum menggunakan instruksi yang mengambil data dari VEX IQ Brain (2nd) dan mencatat data dalam buffer, kita perlu memahaminya terlebih dahulu.
Instruksi berikut menambahkan nilai timer saat ini ke variabeldata_bufferdalam format tertentu.Mari kita uraikan string format
“%1.3f”:- “%”: Memperkenalkan penentu konversi.
- “1”: Menunjukkan jumlah digit minimum yang harus ada dalam string.
- “.3”: Menentukan jumlah tempat desimal yang akan disertakan dalam angka yang diformat.
- “f”: Menunjukkan bahwa nilai yang akan diformat adalah angka floating-point.
Dengan demikian, kita dapat menggunakan string format “%1.3f” untuk memformat angka floating-point dengan lebar minimum 1 digit dan presisi 3 tempat desimal.
- Sekarang, kita dapat membaca Timer dan nilai percepatan dari Sensor Inersia yang dibangun dalam VEX IQ Brain (generasi ke-2) lalu menambahkan data ke variabel
data_bufferdalam format yang ditentukan.Catatan: “\n” adalah karakter Baris Baru. Ini menunjukkan bahwa baris berakhir di sini dan awal baris baru.
- Kemudian, untuk merekam sejumlah entri data tertentu ke dalam variabel
data_buffer, kita dapat menggunakan loopforuntuk berulang kali mengeksekusi instruksi yang mengambil data dan menambahkan data ke variabeldata_bufferuntuk sejumlah iterasi. Strategi kami adalah menggunakan nilai variabelnumOfDataEntriesuntuk menentukan jumlah iterasi.
- Sejauh ini, program kami mencatat data secepat mungkin. Namun, kami ingin merekam data pada interval waktu tertentu. Oleh karena itu, kita dapat menggunakan fungsi
wait()dalam loopforuntuk menghentikan program guna menambahkan interval waktu tertentu di antara dua pembacaan. Kami menggunakan nilai variabelpolling_delay_msecuntuk menentukan nilai interval waktu.
Selamat! Kami telah menyelesaikan program untuk mendapatkan pembacaan (data percepatan) dari Sensor Inersia yang terpasang di VEX Brain. Berikutnya, kita akan menjelajahi cara menulis data ke berkas CSV pada kartu SD.
Memasang Kartu SD ke VEX Brain
Sebelum menulis data ke berkas di kartu SD, masukkan kartu SD ke dalam slot kartu SD VEX Brain terlebih dahulu.
Catatan: Format kartu SD ke FAT32 untuk penulisan data. Kami sarankan Anda menggunakan kartu SD yang berukuran 32GB atau kurang.
Untuk memastikan bahwa penulisan data ke berkas di kartu SD dapat dilakukan dalam kondisi yang tepat, kita perlu menambahkan kode untuk memeriksa apakah kartu SD dimasukkan dengan benar ke dalam VEX IQ Brain (generasi ke-2).
- Gunakan fungsi
brain.sdcard.is_inserted()untuk memeriksa apakah kartu SD telah dimasukkan. Jika kartu SD tidak dimasukkan, tampilkan pesan yang sesuai pada Layar Otak VEX IQ dan tahan programnya.
Catatan:fungsi brain.sdcard.is_inserted()mengembalikan True jika kartu SD dimasukkan ke dalam Brain.
Menulis Data ke file CSV di Kartu SD
Sejauh ini, program kami dapat mengumpulkan data dengan VEX IQ Brain (generasi ke-2). Untuk menyelesaikan proyek pencatatan data, kita perlu menulis data ke file Comma-Separated Values (CSV) pada kartu SD untuk pemeriksaan dan analisis di masa mendatang.
- Saat menulis berbagai jenis data ke berkas CSV, kita ingin mengetahui jenis data apa yang terdapat pada setiap kolom. Untuk melakukan ini, kita dapat menambahkan teks header CSV ke variabel
data_buffersebelum merekam data.
Jadi, tambahkan kode untuk mendeklarasikan variabelcsvHeaderTextuntuk menyimpan teks header CSV untuk menentukan nama kolom untuk file CSV dan mendeklarasikan variabelsd_file_nameuntuk menyimpan nama file CSV yang akan ditulis ke kartu SD.
Catatan: Pastikan header berada dalam urutan yang sama dengan data yang disimpan dalam variabel data_buffer.
- Berikutnya, tambahkan teks header CSV ke string
data_buffersebelumfor loopuntuk pengumpulan data.
- Sebelum menulis data ke berkas di kartu SD, mari kita pahami cara menggunakan fungsi
brain.sdcard.savefile()terlebih dahulu.
Instruksi ini menulis data yang disimpan dalam variabeldata_bufferke file CSV bernama pada kartu SD.
Mari kita uraikan:-
brain.sdcard.savefile(): Fungsi ini menyimpan array byte ke dalam file bernama di kartu SD. Fungsi ini mengembalikan jumlah byte yang ditulis ke berkas.
-
sd_file_name: Parameter pertama fungsi. Menunjukkan nama berkas yang akan ditulis. Dalam proyek ini, nama file disimpan dalam variabel
sd_file_name. -
bytearray(datat_buffer,'utf-8'): Parameter kedua dari fungsi. Mewakili bytearray yang akan ditulis ke dalam berkas.
-
- bytearray(): Metode ini membuat bytearray yang dapat diubah. Dalam instruksi ini, kami menggunakannya untuk mengubah string menjadi bytearray dengan menentukan pengkodean.
- data_buffer: Parameter pertama metode. Menunjukkan sumber yang akan diubah ke bytearray. Dalam proyek ini, sumbernya adalah data yang disimpan dalam variabel
data_buffer. - 'utf-8': Parameter kedua dari metode ini. Menunjukkan pengodean tertentu yang digunakan untuk mengodekan string. Pengkodean dalam instruksi ini adalah 'utf-8'.
-
-
- Setelah
for loopuntuk pengumpulan data, gunakan fungsibrain.sdcard.savefile()untuk menulis data yang disimpan dalam variabeldata_bufferke file CSV pada kartu SD. Selain itu, tambahkan kode untuk memeriksa nilai pengembalian dari fungsibrain.sdcard.savefile()untuk memverifikasi apakah data telah berhasil ditulis ke file dan tampilkan pesan yang sesuai di Layar Otak VEX IQ untuk mendapatkan umpan balik waktu nyata.
Catatan: Fungsibrain.sdcard.savefile()mengembalikan jumlah byte yang ditulis ke file. Dalam proyek ini, kami menggunakannya untuk menulis data yang dikumpulkan ke berkas CSV, jadi jumlah byte yang ditulis ke berkas harus lebih besar dari nol. Dengan kata lain, jika fungsibrain.sdcard.savefile()mengembalikan 0, kita dapat menyimpulkan bahwa data belum berhasil ditulis ke file. Jika tidak, data telah ditulis dalam file.
Selamat! Kami telah mengembangkan proyek pencatatan data yang mengumpulkan data akselerasi dengan VEX IQ Brain (generasi ke-2) dan menyimpannya ke dalam file CSV pada kartu SD. Selanjutnya, kita akan menjelajahi cara membuka file CSV untuk analisis data.
Membuka File CSV untuk Analisis Data
Setelah data ditulis ke berkas CSV pada kartu SD, kita dapat menggunakan aplikasi spreadsheet untuk membuka berkas tersebut guna membaca dan menganalisis data.
Catatan: Dua aplikasi spreadsheet yang paling umum adalah Google Sheets dan Microsoft Excel. Dalam artikel ini, kita akan menggunakan Google Sheets (Berbasis Web) untuk membuka file CSV di kartu SD. Proses penggunaan aplikasi lain serupa.
- Keluarkan kartu SD dari slot kartu SD VEX IQ Brain. Jika komputer memiliki slot kartu Micro SD bawaan, kita dapat memasukkan kartu SD langsung ke slot tersebut. Jika tidak, masukkan kartu SD ke adaptor kartu SD lalu sambungkan adaptor ke komputer.
- Masuk ke akun Google kami dan buka Google Sheets. Buat lembar kerja baru.
- Pada spreadsheet, buka menu “File” , pilih “Impor” -> “Unggah” -> “Telusuri” tombol, lalu pilih file CSV di komputer. Setelah mengunggah file CSV, klik tombol “Impor Data”. Setelah mengimpor data, klik “Buka sekarang” untuk melihat data yang dikumpulkan dalam file CSV.
- (Opsional) Salah satu cara mudah untuk menganalisis data adalah dengan menggambar grafik, lalu mencari tren dalam data. Pada lembar kerja, buka menu “Sisipkan” dan pilih “Bagan” untuk menggambar grafik menggunakan data dalam file CSV. Grafik berikut adalah hasil data percepatan yang dikumpulkan dengan VEX IQ Brain (generasi ke-2).
Catatan: Kita dapat menggunakan Editor Bagan untuk memilih Jenis Bagan yang berbeda atau mengedit bagan berdasarkan kebutuhan kita.
Sampai titik ini, kami telah menyelesaikan proyek pencatatan data yang mengumpulkan data dengan VEX IQ Brain (generasi ke-2) dan menyimpannya dalam file CSV di kartu SD. Kami juga telah mempelajari cara membaca berkas CSV pada kartu SD menggunakan Google Sheets dan bahkan membuat grafik untuk analisis lebih lanjut. Apa selanjutnya? Mari kita coba merencanakan eksperimen yang lebih menarik menggunakan Robot VEX untuk pencatatan data, untuk mengamati bagaimana perubahan faktor lingkungan memengaruhi berbagai jenis data dan mendapatkan pemahaman yang lebih dalam tentang dunia di sekitar kita.