Program Neural Network Sederhana di Arduino Nano untuk Kontrol Robot AI

3 min read 23-08-2024
Program Neural Network Sederhana di Arduino Nano untuk Kontrol Robot AI

Pendahuluan

Dalam era teknologi yang terus berkembang, penggunaan kecerdasan buatan (AI) semakin meluas dalam berbagai aplikasi, termasuk robotika. Untuk pengembang dan hobiis, menggunakan komponen seperti Arduino Nano untuk mengembangkan sistem robot berbasis AI adalah pengalaman yang memuaskan. Artikel ini akan membahas bagaimana cara membuat program neural network sederhana yang dapat digunakan untuk kontrol robot AI dengan menggunakan Arduino Nano.

Apa Itu Neural Network?

Neural network adalah sebuah model komputasi yang terinspirasi oleh cara kerja otak manusia. Neural network terdiri dari neuron-neuron yang saling terhubung, yang dapat belajar dari data yang diberikan. Dalam konteks robotika, neural network dapat digunakan untuk mengevaluasi data sensor dan menghasilkan keputusan berdasarkan pola yang telah dipelajari.

Mengapa Menggunakan Arduino Nano?

Arduino Nano adalah papan mikrokontroler yang kecil dan kuat. Papan ini ideal untuk proyek-proyek yang memerlukan ukuran kompak dan kemudahan penggunaan. Dengan banyaknya library dan dukungan dari komunitas, Arduino Nano memudahkan pengembangan robot dengan kontrol berbasis AI, meskipun dengan keterbatasan daya pemrosesan.

Komponen yang Diperlukan

Sebelum kita mulai, berikut adalah daftar komponen yang diperlukan untuk proyek ini:

  • Arduino Nano
  • Sensor Ultrasonik (HC-SR04)
  • Motor Driver L298N
  • Motor DC
  • Baterai
  • Breadboard dan kabel jumper
  • Resistor

Membuat Rangkaian

Langkah pertama adalah merangkai semua komponen. Berikut adalah skema dasar dari rangkaian yang digunakan:

  1. Sensor Ultrasonik:

    • VCC ke 5V Arduino
    • GND ke GND Arduino
    • Trig Pin ke pin D2 Arduino
    • Echo Pin ke pin D3 Arduino
  2. Motor Driver:

    • IN1 dan IN2 ke pin D4 dan D5 Arduino
    • OUT1 dan OUT2 ke motor DC
    • VCC dan GND ke baterai (perhatikan tegangan)
  3. Power:

    • Pastikan semua komponen mendapatkan sumber daya yang cukup.

Implementasi Neural Network

Sebelum menerapkan neural network pada Arduino, kita perlu melatih modelnya terlebih dahulu. Dalam contoh ini, kita akan menggunakan dataset sederhana yang berisi dua jenis input dan output yang terkait, seperti jarak dari objek yang terdeteksi dan arah gerakan robot.

1. Pengumpulan Data

Kita akan menggunakan sensor ultrasonik untuk mengukur jarak dan berdasarkan jarak tersebut, kita menetapkan gerakan yang diinginkan (maju, mundur, belok kanan, belok kiri).

2. Latih Neural Network

Anda bisa menggunakan framework seperti TensorFlow atau Keras di komputer Anda untuk melatih model neural network yang sederhana. Dataset yang dihasilkan dari pengukuran jarak ini akan membantu model menggali pola.

Berikut adalah contoh kode Python untuk melatih model sederhana:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense

# Dataset: [jarak] -> [arah]
X = np.array([[10], [20], [30], [40], [50]])  # Misal: jarak dalam cm
y = np.array([[1], [1], [0], [0], [-1]])       # 1: maju, 0: belok kiri, -1: belok kanan

model = Sequential()
model.add(Dense(5, input_dim=1, activation='relu'))
model.add(Dense(3, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, y, epochs=150, verbose=0)

# Simpan model
model.save('robot_model.h5')

Setelah model dilatih, Anda perlu mengekspor bobot dan bias ke dalam format yang bisa dibaca oleh Arduino.

3. Mengimplementasikan Di Arduino

Setelah mendapatkan model, kita memerlukan library yang dapat membantu kita dalam melakukan implementasi neural network di Arduino. Salah satu library yang dapat digunakan adalah TensorFlow Lite untuk Microcontrollers, tetapi saat ini masih membutuhkan optimasi yang lebih lanjut agar bisa berfungsi pada Arduino Nano.

Kami tidak akan membahas penyesuaian ini dalam detail, namun berikut adalah bagian dari kode yang Anda bisa gunakan setelah Anda berhasil mengkonversi model:

#include <NewPing.h>

#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(9600);
  // Inisialisasi motor dan pin
}

void loop() {
  delay(50);
  int distance = sonar.ping_cm();
  
  // Menggunakan jarak untuk memutuskan gerakan
  if (distance < 20) {
    // Belok kanan
  } else if (distance < 50) {
    // Belok kiri
  } else {
    // Maju
  }
}

Mengontrol Robot AI

Dalam program di atas, robot akan terus membaca jarak menggunakan sensor ultrasonik. Berdasarkan data yang diterima, robot akan menentukan gerakan yang diambil. Anda bisa menambahkan logika lebih lanjut dan bahkan lebih banyak input ke dalam sistem untuk membuat robot lebih responsif dan pintar.

Kesimpulan

Membangun neural network sederhana di Arduino Nano memerlukan pemahaman yang baik mengenai algoritma pembelajaran mesin dan keterampilan pemrograman. Selain itu, proyek ini memberi Anda kesempatan untuk mengeksplorasi dan menerapkan konsep robotika dan kecerdasan buatan secara praktis. Dengan teknologi yang terus maju, siapa tahu apa yang akan Anda ciptakan selanjutnya!

Selamat mencoba proyek robot AI Anda!