Penerapan kode program FreeRTOS - Free Real Time Operating Sytem, pada pemograman multitasking ESP32
A. Pendahuluan
1.
Apa itu
FreeRTOS
FreeRTOS (Free
Real-Time Operating System) adalah sistem operasi real-time open-source
yang ringan dan dirancang untuk mikrokontroler dan sistem embedded. FreeRTOS
memberikan kemampuan multitasking (menjalankan beberapa tugas atau task
secara bergantian) dengan penggunaan sumber daya yang sangat efisien — ideal
untuk perangkat dengan memori dan prosesor terbatas seperti Arduino, ESP32,
STM32, dan lainnya.
2. Fitur
Utama FreeRTOS :
a. Multitasking:
Menjalankan beberapa task secara konkuren menggunakan penjadwalan
berbasis prioritas.
b.
Task Management: Setiap task bisa dibuat,
dijeda, dimulai ulang, atau dihentikan.
c.
Inter-task Communication:
-
Queue (antrian pesan)
-
Semaphore & Mutex (sinkronisasi antar-task)
-
Event Groups
d.
Timer: Mendukung software timer untuk
menjalankan fungsi tertentu setelah waktu tertentu.
e.
Lightweight: Biasanya hanya membutuhkan beberapa
KB RAM.
f.
Portabilitas Tinggi: Bisa digunakan di banyak
arsitektur mikrokontroler (ARM Cortex-M, AVR, ESP32, dsb.).
3.
Percobaan Uji coba Program sederhana menggunakan
FreeRtos
a. Deskripsi
:
Program ini merupakan contoh sederhana penggunaan FreeRTOS pada Arduino
untuk menjalankan dua tugas (task) secara paralel. Tugas pertama (TaskBlink)
mengendalikan sebuah LED yang terhubung ke pin GPIO2 untuk berkedip dengan
interval 500 milidetik, sedangkan tugas kedua (TaskSerial) secara berkala
mencetak pesan "Running serial task..." ke Serial Monitor setiap 1
detik.
b. Skematik
ESP-32 :
c. Kode
Program Sketch :
#include <Arduino.h> void TaskBlink(void *pvParameters) { pinMode(2, OUTPUT); while (1) {
digitalWrite(2, HIGH);
vTaskDelay(500 / portTICK_PERIOD_MS);
digitalWrite(2, LOW);
vTaskDelay(500 / portTICK_PERIOD_MS);
} } void TaskSerial(void *pvParameters) { while (1) {
Serial.println("Running serial task...");
vTaskDelay(1000 / portTICK_PERIOD_MS);
} } void setup() { Serial.begin(115200);
xTaskCreate(TaskBlink, "Blink Task", 1000, NULL, 1, NULL);
xTaskCreate(TaskSerial, "Serial Task", 1000, NULL, 1, NULL); } void loop() { // kosong, semua
dijalankan oleh FreeRTOS } |
d. Hasil
Pengujian Program :
Berdasarkan hasil pengujian, program berhasil menjalankan dua task
secara paralel tanpa gangguan. LED pada pin GPIO2 berkedip dengan stabil setiap
500 milidetik, menunjukkan bahwa TaskBlink berjalan sesuai waktu yang
ditentukan. Secara bersamaan, Serial Monitor menampilkan pesan "Running
serial task..." dengan interval yang konsisten setiap 1 detik, menandakan
bahwa TaskSerial juga berfungsi dengan baik. Tidak ditemukan konflik atau
gangguan antara kedua task, yang menunjukkan bahwa FreeRTOS berhasil melakukan
penjadwalan multitasking secara efisien dan real-time. Sistem tetap responsif
dan stabil selama pengujian.
e. Link
Video Hasil Simulasi :
Nama Video : Penerapan kode program FreeRTOS
- Free Real Time Operating Sytem, pada
pemograman multitasking ESP32
Link durasi
ke : https://youtu.be/mFPd69qe7fg
Menit : 00:00 – 01:30
Tidak ada komentar:
Posting Komentar
Mari berdiskusi dan silahkan memberi komentar berupa kritik dan saran yang bersifat membangun ya sobat smua....!