Pencatatan Data dengan VEX Brain dan Sensor Menggunakan Python

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.

    Diagram yang mengilustrasikan komponen dan fitur robot V5, digunakan dalam tutorial Python untuk tujuan pendidikan di bidang robotika.

  • Berikutnya, tambahkan kode untuk mendeklarasikan variabel numOfDataEntries untuk menyimpan jumlah entri data untuk perekaman, mendeklarasikan variabel polling_delay_msec untuk menyimpan nilai interval waktu untuk membaca data, dan membuat variabel string kosong data_buffer untuk menyimpan data yang dibaca dari sensor.

    Diagram yang mengilustrasikan cara menyimpan data yang dibaca dari sensor di VEX V5 menggunakan Python, menampilkan potongan kode dan representasi visual aliran data dan metode penyimpanan.

  • 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.

    Tangkapan layar yang menunjukkan proses pengaturan ulang VEX V5 Timer dalam Python, mengilustrasikan cara mengatur kembali nilai timer ke 0 detik sebelum pengumpulan 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 variabel data_buffer dalam format tertentu.

    Diagram yang mengilustrasikan format variabel dalam Python, digunakan dalam Deskripsi Kategori V5 di bawah Tutorial Python, yang menunjukkan struktur dan komponen variabel.

    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_buffer dalam format yang ditentukan.

    Diagram yang mengilustrasikan format variabel dalam Python, bagian dari Deskripsi Kategori V5, di bawah Tutorial Python. Gambar tersebut secara visual menggambarkan struktur dan penggunaan variabel dalam pemrograman Python.

    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 loop for untuk berulang kali mengeksekusi instruksi yang mengambil data dan menambahkan data ke variabel data_buffer untuk sejumlah iterasi. Strategi kami adalah menggunakan nilai variabel numOfDataEntries untuk menentukan jumlah iterasi.

    Grafik yang menggambarkan jumlah iterasi dalam tutorial VEX V5 Python, menunjukkan titik data dan tren yang terkait dengan iterasi pemrograman dalam robotika.

  • 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 loop for untuk menghentikan program guna menambahkan interval waktu tertentu di antara dua pembacaan. Kami menggunakan nilai variabel polling_delay_msec untuk menentukan nilai interval waktu.

    Grafik yang mengilustrasikan proses penentuan nilai interval waktu dalam Python, menampilkan variabel kunci dan hubungannya. Relevan dengan Tutorial Python V5.

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.

Diagram yang mengilustrasikan struktur kategori V5 untuk tutorial Python, menampilkan komponen dan hubungan utama dalam ekosistem VEX Robotics.




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.

Diagram yang mengilustrasikan konfigurasi robot V5 untuk tutorial Python, menampilkan komponen utama dan koneksinya untuk tujuan pendidikan.

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.

    Screenshot of VEX IQ Brain screen displaying a message indicating that the SD card is not inserted, with instructions for holding the program. Relevant to Python tutorials in the V5 category.


    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_buffer sebelum merekam data.
    Jadi, tambahkan kode untuk mendeklarasikan variabel csvHeaderText untuk menyimpan teks header CSV untuk menentukan nama kolom untuk file CSV dan mendeklarasikan variabel sd_file_name untuk menyimpan nama file CSV yang akan ditulis ke kartu SD.

    Diagram yang mengilustrasikan deskripsi kategori V5 untuk tutorial Python, menampilkan komponen utama dan hubungannya dalam format visual.

Catatan: Pastikan header berada dalam urutan yang sama dengan data yang disimpan dalam variabel data_buffer.

  • Berikutnya, tambahkan teks header CSV ke string data_buffer sebelum for loop untuk pengumpulan data.

    Diagram yang mengilustrasikan lingkungan pemrograman Python V5, memamerkan komponen utama dan fungsinya, relevan dengan Deskripsi Kategori V5 dan Tutorial Python.

  • Sebelum menulis data ke berkas di kartu SD, mari kita pahami cara menggunakan fungsi brain.sdcard.savefile() terlebih dahulu.

    Diagram yang mengilustrasikan deskripsi kategori V5 untuk tutorial Python, memamerkan komponen dan fungsi utama sistem robotika VEX V5.


    Instruksi ini menulis data yang disimpan dalam variabel data_buffer ke 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 loop untuk pengumpulan data, gunakan fungsi brain.sdcard.savefile() untuk menulis data yang disimpan dalam variabel data_buffer ke file CSV pada kartu SD. Selain itu, tambahkan kode untuk memeriksa nilai pengembalian dari fungsi brain.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.

    Diagram illustrating the V5 robot's components and their functions, used in Python tutorials for educational purposes.


    Catatan: Fungsi brain.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 fungsi brain.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. 

Diagram yang mengilustrasikan komponen robot V5 dan fungsinya, digunakan dalam tutorial Python untuk pemrograman robotika VEX. Gambar menyediakan referensi visual bagi pelajar untuk memahami pengaturan perangkat keras.

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.

    Gambar ikhtisar tutorial Python VEX V5, mengilustrasikan konsep utama dan sumber daya untuk pemrograman dengan robotika VEX.

  • (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).

    Diagram illustrating the V5 Python tutorial structure, showcasing various components and their relationships in a clear and organized manner, designed to aid users in understanding the programming framework for VEX robotics.


    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.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: