Come costruire un robot semplice
Membuat robot sederhana adalah cara yang menyenangkan untuk belajar tentang elektronika, mekanika dasar, dan pemrograman. Banyak orang mengira robot harus mahal dan rumit, padahal kita bisa memulainya dari proyek kecil yang mudah dirakit di rumah. Dalam artikel ini, kita akan membuat robot sederhana tipe robot penghindar halangan (obstacle avoiding robot) menggunakan sensor ultrasonik. Robot ini dapat berjalan maju dan secara otomatis berbelok saat mendeteksi benda di depannya. Proyek ini cocok per principianti, pelajar, atau siapa pun yang ingin mulai belajar robotika.
1. Comprendere il concetto di robot semplici
Secara umum, robot memiliki tiga komponen utama: otak (kontroler), indera (sensor), dan otot (aktuator) . Pada proyek ini:
– Kontroler : Arduino Uno (atau kompatibel)
– Sensor : Sensor ultrasonik HC-SR04 untuk mengukur jarak
– Aktuator : Motor DC yang menggerakkan roda
– Penggerak motor : Driver motor L298N (atau L293D) agar motor bisa dikontrol oleh Arduino
Quando il sensore rileva una distanza troppo ravvicinata dal robot, Arduino comanda al driver del motore di cambiare la direzione di movimento, ad esempio girando a destra o a sinistra.
2. Strumenti e materiali necessari
Ecco l'elenco komponen yang umum digunakan dan mudah ditemukan di toko elektronik atau marketplace:
1. Arduino Uno (1 buah)
2. Driver motor L298N (1 buah)
3. Sensor ultrasonik HC-SR04 (1 buah)
4. Motor DC + gearbox dan roda (2 buah) untuk robot 2 roda (differential drive)
5. Caster wheel (1 buah) roda kecil penyeimbang di depan atau belakang
6. Baterai (misalnya 2×18650 atau pack 7,4V) atau 6xAA, sesuai kebutuhan motor
7. Chassis robot (bisa beli jadi atau buat dari akrilik/triplek)
8. Kabel jumper (male-female dan male-male)
9. Saklar on/off (opsional, tapi sangat membantu)
10. Breadboard kecil (opsional)
11. Baut, mur, obeng, dan lem tembak secukupnya
Se desiderate qualcosa di ancora più semplice (senza sensori a ultrasuoni), potete costruire un robot "segui-linea" con sensori di linea, ma le versioni con evitamento degli ostacoli spesso risultano più "reali" perché reagiscono agli oggetti che si trovano di fronte a loro.
3. Progettazione del telaio del robot
Il telaio è la struttura su cui vengono montati tutti i componenti. È possibile utilizzare un kit di telaio già pronto o costruirne uno personalizzato con materiali leggeri come acrilico, PVC o legno sottile. Il principio è il seguente:
– Pasang dua motor DC di sisi kiri dan kanan.
– Montare le ruote sulla moto.
– Tambahkan caster wheel sebagai penyeimbang agar robot stabil.
– Posizionare la batteria in modo che il robot non si inclini.
– L'Arduino e i driver dei motori devono essere posizionati nella parte superiore per un facile accesso.
Assicurati che il cavo non penda, altrimenti potrebbe impigliarsi nelle ruote.
4. Schema elettrico di base
Ecco uno schema generale di connessione (i pin sono personalizzabili):
a) Motore al driver L298N
– Motor kiri ke output OUT1 dan OUT2
– Motor kanan ke output OUT3 dan OUT4
b) Driver L298N per Arduino
– IN1, IN2 per il motore sinistro verso alcuni pin digitali di Arduino
– IN3, IN4 per il motore destro verso alcuni pin digitali di Arduino
– ENA e ENB (enable) possono essere collegati ai pin PWM di Arduino per controllare la velocità (opzionale). In caso contrario, alcuni moduli L298N dispongono già di un jumper di abilitazione che consente al motore di funzionare alla massima velocità.
c) Collegamento del sensore HC-SR04 ad Arduino
– Da VCC a 5V Arduino
– GND a GND Arduino
– TRIG al pin digitale di Arduino
– ECHO al pin digitale di Arduino
d) Potenza
Il motore richiede una corrente maggiore di quella che Arduino può fornire. Pertanto:
– La batteria principale va al driver del motore (+12V e terminali GND sull'L298N).
– Arduino può essere alimentato anche a batteria (tramite VIN) o tramite un power bank/USB separato.
– Satukan ground : GND baterai/driver dan GND Arduino harus terhubung agar sinyal kontrol stabil.
L'errore più comune tra i principianti è dimenticare di collegare il GND, quindi il robot si muove in modo irregolare.
5. La logica di funzionamento del robot per l'evitamento degli ostacoli
Robot akan bekerja dengan alur sederhana:
1. Leggere la distanza dal sensore a ultrasuoni.
2. Se la distanza è superiore alla soglia (ad esempio 20 cm), il robot si muove in avanti.
3. Se la distanza è ≤ 20 cm, il robot si ferma brevemente.
4. Il robot indietreggia leggermente e poi si gira (ad esempio a destra) per alcune centinaia di millisecondi.
5. Leggi di nuovo la distanza e ripeti.
Con questo schema, il robot sembrerà "evitare" gli ostacoli, anche se non sceglie il percorso più ottimale.
6. Semplice esempio di codice Arduino
Di seguito è riportato un esempio di codice di base. È possibile personalizzare i pin in base alle proprie esigenze:
“`cpp
definire TRIG 8
definire ECHO 9
// Motore sinistro
definire IN1 2
definire IN2 3
// Motore destro
definire IN3 4
definire IN4 5
lunga durata;
distanza intera;
int readDistance() {
digitalWrite(TRIG, LOW);
ritardoMicrosecondi(2);
scrittura digitale(TRIG, HIGH);
ritardoMicrosecondi(10);
digitalWrite(TRIG, LOW);
durata = impulsoIn(ECHO, ALTO);
int cm = durasi 0.034 / 2;
restituisci cm;
}
void forward() {
scrittura digitale(IN1, ALTO);
digitalWrite(IN2, LOW);
scrittura digitale(IN3, ALTO);
digitalWrite(IN4, LOW);
}
void reverse() {
digitalWrite(IN1, LOW);
scrittura digitale(IN2, ALTO);
digitalWrite(IN3, LOW);
scrittura digitale(IN4, ALTO);
}
void turnRight() {
scrittura digitale(IN1, ALTO);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
scrittura digitale(IN4, ALTO);
}
void stop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void setup () {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(IN1, USCITA);
pinMode(IN2, USCITA);
pinMode(IN3, USCITA);
pinMode(IN4, USCITA);
Serial.begin (9600);
}
void loop () {
distanza = readDistance();
Serial.println(distanza);
se (distanza > 20) {
procedere();
} Else {
fermare();
ritardo (200);
inversione();
ritardo (300);
fermare();
ritardo (200);
Girare a destra();
ritardo (400);
fermare();
}
ritardo (50);
}
“`
Questo codice è la versione più semplice. Se il robot si scontra troppo spesso, è possibile aumentare la soglia a 25-30 cm o aumentare il tempo di rotazione.
7. Test e messa a punto
Una volta assemblato il robot, eseguire i test passo passo:
1. Uji motor terlebih dahulu : jalankan fungsi maju/mundur untuk memastikan roda berputar sesuai arah.
2. Uji sensor ultrasonik : lihat hasil jarak di Serial Monitor Arduino IDE.
3. Gabungkan sistem : jalankan program full dan amati reaksi robot.
Se il robot gira o si muove all'indietro quando dovrebbe andare avanti, potrebbe essere necessario invertire i cavi del motore o la logica IN1-IN2 (e IN3-IN4).
8. Problemi comuni e soluzioni
Alcuni ostacoli che spesso si presentano:
– Robot tidak bergerak sama sekali : cek baterai, cek driver motor, pastikan enable jumper aktif.
– Arduino reset saat motor jalan : suplai daya tidak cukup atau noise dari motor. Coba gunakan baterai terpisah untuk Arduino, tambahkan kapasitor, dan rapikan ground.
– Sensor membaca jarak tidak stabil : pastikan sensor menghadap lurus, jauhkan dari getaran berlebih, dan pastikan kabel tidak longgar.
– Robot “nyangkut” di sudut : tambahkan logika belok acak (random) atau gunakan servo untuk menggerakkan sensor agar bisa “melihat” kiri dan kanan.
9. Idee di sviluppo dopo il successo
Una volta che il robot base è operativo, puoi aggiornarlo a qualcosa di più interessante:
– Menambahkan servo untuk menggerakkan sensor ultrasonik agar robot memilih jalur terbaik.
– Menambahkan kontrol Bluetooth (HC-05) agar bisa dikendalikan dari HP.
– Menggunakan sensor garis untuk membuat robot line follower.
– Mengatur kecepatan PWM agar gerakan lebih halus.
– Menambahkan buzzer atau LED sebagai indikator saat mendeteksi halangan.
conclusione
Costruire un robot semplice non deve essere per forza difficile. Con un Arduino, un motore a corrente continua, un driver per motori e un sensore a ultrasuoni, è possibile creare un robot in grado di muoversi ed evitare gli ostacoli automaticamente. Le chiavi del successo sono un cablaggio ordinato, risorse sufficienti e test approfonditi. Una volta portato a termine con successo questo progetto, sarete più preparati ad affrontare progetti di robotica più complessi, come un robot intelligente basato su telecamera o uno in grado di seguire gli oggetti.
Jika Anda ingin, saya bisa membantu membuatkan skema wiring yang lebih detail sesuai pin yang Anda pilih , atau menyesuaikan kode agar robot bisa belok kiri/kanan secara acak dan lebih “cerdas”.