Kisa yon robo ye, tout bon?
Nan imaj popilè, yon robo se yon moun metal ki gen de je limen. Nan reyalite, yon robo se yon machin ki pran enfòmasyon sou mond lan, ki pran yon desizyon, epi ki aji. Yon machin lave ki suiv yon pwogram fiks san li pa gade anyen se yon otomàt, pa yon robo. Yon robo ki pa santi anyen pa ka adapte lè mond lan chanje.
1. Santi
Sansò yo mezire distans, limyè, mouvman, tanperati, imaj. San sa, robo a avèg.
2. Deside
Kontwolè a (Arduino, ESP32, Raspberry Pi) egzekite kòd: «si mi devan, vire».
3. Aji
Motè, servo, pòmpe, limyè. Se kò robo a — pati ki fè bagay rive.
Bouk la: Santi → Deside → Aji → Santi ankò. Yon robo fè bouk sa a 10, 50, oswa 1000 fwa pa segond. Tout sa w ap aprann nan leson sa a se pou fè bouk sa a pi rapid, pi egzak, epi pi fasil pou w konprann lè l pa mache.
Yon robo ki pote dlo nan yon jaden, ki kontwole kalite dlo nan yon sous, ki triye mango, oswa ki fè mezi nan yon lekòl — se bagay ou ka bati ak pyès ki genyen deja. Objektif la se rezoud yon pwoblèm lokal, pa imite yon fim.
Kalite robo
| Kalite | Sa li fè | Egzanp |
|---|---|---|
| Bras endistriyèl | Repete yon mouvman egzak nan yon zòn fiks | Soude, pentire, monte pyès |
| Robo mobil | Deplase sou tè (wou, chemiy, pye) | Aspiratè, livrezon, agrikòl |
| Dwon | Vole; kat propulsè | Katografi, enspèksyon, cinematografi |
| ROV / AUV | Navige anba dlo | Enspèksyon bato, syans maren |
| Humanoyid | Gen fòm moun; mache ak de pye | Rechèch, sèvis |
| Swam | Anpil ti robo ki kolabore | Formasyon dwon, similyasyon |
| Robo edikatif | Fèt pou aprann | Line follower, bras servo, kits |
Pifò robo ou pral bati poukont ou se robo mobil ki gen wou: li pi senp, pi bon mache, epi li anseye prèske tout konsèp enpòtan yo.
Anatomi yon robo
┌─────────────────────────────┐
│ KONTWOLÈ │ ← "sèvo": Arduino / ESP32 / Pi
│ (li sansò, deside, kòmande)│
└───────┬─────────────┬───────┘
│ │
┌───────▼──────┐ ┌───▼──────────┐
│ SANSÒ │ │ DRIVÈ MOTÈ │
│ distans, IMU │ │ (H-bridge) │
└──────────────┘ └───┬──────────┘
│
┌─────▼─────┐
│ MOTÈ │
└─────┬─────┘
│
┌─────▼─────┐
│ WOU │ → kò a deplase
└───────────┘
+ CHASI (estrikti) + BATRI (pouvwa) + KÒD (lojisyèl)
| Patì | Wòl | Sa pou w gade |
|---|---|---|
| Chasi | Kenbe tout bagay ansanm | Rèd, lejè, fasil pou modifye |
| Aksyonè | Fè mouvman | Koupl, vitès, vòltaj, kouran |
| Sansò | Mezire mond lan | Seri, presizyon, vitès, bri |
| Kontwolè | Egzekite kòd la | Pin, memwa, vitès, Wi-Fi |
| Pouvwa | Bay enèji | Vòltaj estab, kouran ase, sekirite |
| Kominikasyon | Pale ak lòt aparèy | Wi-Fi, Bluetooth, seri, radio |
Aksyonè: sa ki fè robo a deplase
Yon aksyonè konvèti enèji elektrik an mouvman. Gen plizyè kalite, epi chwazi bon an se mwatye siksè a.
| Kalite | Kijan li mache | Bon pou | Fèb pou |
|---|---|---|---|
| Motè DC | Vire kontinyèl; vitès selon vòltaj/PWM | Wou, propulsè, pòmpe | Pozisyon egzak (san kodè) |
| Servo | Ale nan yon ang (0–180°) selon siyal | Bras, direksyon, pinza | Rotasyon kontinyèl |
| Stepper | Vire pa ti pa egzak | Enprimant 3D, CNC | Vitès wo, senp |
| Brushless | Elektwonik, pi efikas | Dwon, gwo vitès | Pri, kontwolè konplèks |
| Lineyè | Pouse oswa rale an liy dwat | Pòt, pòmpe, presyon | Vwayaj long |
| Pneumatik | Lè konprese | Fòs rapid, anviwònman difisil | Presizyon, bezwen konpresè |
Koupl, vitès, ak angrenaj
Koupl (torque) se fòs wotasyon. Li mezire an N·m oswa kg·cm. Yon motè ki gen anpil koupl ka leve yon chaj lou men li vire dousman. Yon motè ki vire vit men li gen mwens koupl.
Fòs sou wou F = koupl ÷ reyon wou
Vitès robo v = (π × dyamèt wou × RPM) ÷ 60
Yon angrenaj (gearbox) chanje balans lan: si rapò a se 10:1, vitès la divize pa 10 epi koupl la miltipliye pa 10 (mwens pèt). Se poutèt sa motè ak angrenaj se pi bon zanmi yon robo.
Yon pin dijital bay ~20–40 mA. Yon motè ti kras mande 200–2000 mA, epi li fè yon pik lè li demare. Si w konekte motè dirèkteman sou pin, ou boule kontwolè a. Sèvi ak yon drivè motè (L298N, TB6612, DRV8833) ak yon alimantasyon separe.
Kontwole yon motè DC
Pou kontwole yon motè DC ou bezwen de bagay:
- Direksyon — yon pon H (H-bridge) ki ka ranvèse polarite a.
- Vitès — PWM: ou limen/epenn kouran a byen vit. Si li limen 50% tan an, motè a resevwa ~50% vòltaj. Sa rele rapò sik (duty cycle).
// L298N: IN1/IN2 = motè goch, IN3/IN4 = motè dwat
const int IN1 = 5, IN2 = 6, IN3 = 9, IN4 = 10;
void setup() {
pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
}
void moteur(int g, int d) { // -255 rive 255
analogWrite(IN1, g >= 0 ? g : 0); // direksyon + vitès
analogWrite(IN2, g >= 0 ? 0 : -g);
analogWrite(IN3, d >= 0 ? d : 0);
analogWrite(IN4, d >= 0 ? 0 : -d);
}
void loop() {
moteur(180, 180); // avanse
delay(2000);
moteur(180, -180); // vire sou plas
delay(800);
}
Sonje: L298N pèdi anpil vòltaj (1,5–3 V). Pou yon robo ki sot sou batri 7,4 V, sa grav. TB6612 oswa DRV8833 pi efikas.
Servo: mouvman egzak
Yon servo resevwa yon siyal PWM 50 Hz. Yon enpilsyon 1 ms = 0°, 1,5 ms = 90°, 2 ms = 180° (apeprè). Li gen yon kontwolè entèn ki kenbe ang lan.
- Koupl: yon SG90 se ~1,8 kg·cm — ase pou yon ti bras, pa pou leve yon bwat lou.
- Kouran: yon servo ka pran 500 mA–2 A lè l anba chaj. Alimante l separeman, epi konekte tè yo ansanm.
- Pa fòse l pi lwen pase limit mekanik li — li ap chofe epi boure.
#include <Servo.h>
Servo bras;
void setup() {
bras.attach(9); // siyal sou pin 9
}
void loop() {
bras.write(0); // 0°
delay(1000);
bras.write(90); // mitan
delay(1000);
bras.write(180); // 180°
delay(1000);
}
Sansò: je, zòrèy, ak po robo a
Yon robo san sansò se yon machin avèg. Men sansò ki pi komen yo ak fay yo:
| Sansò | Mezire | Kijan | Pyèj |
|---|---|---|---|
| Ultrasonik (HC-SR04) | Distans 2–400 cm | Voye yon son, mezire tan retou | Sifas mou, ang, entèferans |
| Infrawouj (IR) | Liy nwa/blan, pwoksimite | Refleksyon limyè | Limyè solèy, koulè sifas |
| IMU (MPU6050) | Akselerasyon, rotasyon | MEMS entèn | Drift, bri, bezwen fusion |
| Kodè | Rotasyon wou | Disk twou + detektè | Pousyè, fil kase |
| Kamera | Imaj | Lidar/CMOS | Bezwen anpil pouvwa kalkil |
| LDR | Limyè | Rezistans ki chanje | Lantè, kouvèti |
| Swich limit | Kontak | Mekanik | Rebond (debounce) |
| Kouran (ACS712) | Kouran | Hall effect | Offset, bri |
Ultrasonik: fòmil la
Son vwayaje ~343 m/s nan lè a (0,0343 cm/µs). Li fè ale-retou, kidonk:
Si w mezire 5800 µs: 5800 × 0,0343 ÷ 2 = 99,5 cm.
Yon sansò toujou gen bri. Pratik senp: pran 5 mezi, jete pi wo ak pi ba a, fè mwayèn rès la. Pou yon swich, ajoute yon debounce 20–50 ms. Pou yon IMU, konbine akseleromèt (drift ki ba, bri wo) ak jiroskòp (bri ba, drift wo) — sa rele filtè konplemantè.
Kontwolè: chwazi sèvo a
| Kontwolè | Pri | Pwen fò | Pa bon pou |
|---|---|---|---|
| Arduino Uno | $ | Senp, solid, anpil dokimantasyon | Wi-Fi, AI, gwo kalkil |
| ESP32 | $ | Wi-Fi + Bluetooth + dual-core, 3,3 V | Pin 3,3 V (pa 5 V tolerant) |
| Raspberry Pi | $$ | Linux, kamera, AI, Python | Pa tan reyèl, bezwen SD card bon |
| Raspberry Pi Pico | $ | MicroPython, rapid, bon mache | Pa gen Wi-Fi (Pico W genyen) |
| STM32 | $$ | Tan reyèl, pisan | Koub aprantisaj pi apik |
Règ pratik: kòmanse ak Arduino oswa ESP32 pou kontwòl motè ak sansò. Si w bezwen kamera oswa AI, ajoute yon Raspberry Pi ki pale ak Arduino a (seri oswa I2C). Pa eseye fè yon Pi kontwole motè dirèkteman san drivè.
Pouvwa: kote pifò robo echwe
Yon robo ki mache byen sou tab epi ki fou lè motè yo demare — prèske toujou se yon pwoblèm pouvwa. Men règ yo:
- Tè komen: tout bagay (batri, drivè, kontwolè, sansò) dwe pataje menm tè a. Sinon siyal yo pa gen referans.
- Alimantasyon separe: motè yo sou batri dirèkteman (ak fuse), kontwolè a sou yon regilatè estab.
- Kondansatè: 100–470 µF tou pre drivè motè a, ak 0,1 µF tou pre chak sansò. Sa absòbe bri.
- Fuse: sou fil pozitif batri a, tou pre batri a. Yon kout-sikui san fuse se yon dife.
- Kont pit vòltaj: yon batri 7,4 V ka tonbe a 6 V lè motè yo mande kouran. Verifye pi piti vòltaj kontwolè a.
- Kapasite: dire (èdtan) ≈ kapasite (mAh) ÷ kouran mwayèn (mA) × 0,8.
Yon batri LiPo ki gonfle, ki pèse, oswa ki cho se yon danje dife. Sèvi ak yon BMS, yon chajè ki fèt pou li, epi pa janm chaje l san sipèvizyon. Pou yon premye robo, yon batri 6×AA oswa yon 18650 ak BMS pi fasil epi pi sekirize.
Kontwòl: louvri bouk ak fèmen bouk
Nan yon bouk ouvè, ou di motè a «vire 50%» epi ou espere sa mache. Nan yon bouk fèmen, ou mezire rezilta a epi ou korije.
Sòti = Kp × erè + Ki × Σ(erè × dt) + Kd × (Δerè ÷ dt)
Se PID. Li senp men li pisan:
- P (pwopòsyonèl): «plis erè, plis fòs». Twò wo → osilasyon.
- I (entegral): «akimile erè ki rete». Li retire yon deplasman konstan, men twò wo → rale.
- D (derivatif): «gade kote erè a prale». Li frennen epi diminye depase.
Metòd manyèl: kòmanse ak Ki=0, Kd=0, monte Kp jiskaske li kòmanse osile; ajoute Kd pou kalme; ajoute yon ti Ki pou retire erè ki rete. Gen yon labo PID anba a pou w santi sa.
Saturation: si motè a deja 100%, plis erè pa chanje anyen. Anti-windup: lè sòti a satire, sispann akimile entegral la. Epitou, kenbe dt konstan — yon bouk ki pa regilye fè PID konpòte l dwòl.
Kinemati: kote robo a prale
Robo ak de wou (differential drive)
Si w konnen vitès wou goch (vG) ak wou dwat (vD), epi distans ant yo se L:
Si vG = vD, robo a ale dwat. Si vG = −vD, li vire sou plas. Si vG = 0, li vire alantou wou goch la.
Bras ak de segman
Pou yon bras ki gen longè L1 ak L2, ak ang θ1 ak θ2:
y = L1·sin(θ1) + L2·sin(θ1+θ2)
Sa rele kinemati dirèk: ou konnen ang yo, ou jwenn pwent lan. Kinemati envès se kontrè a: ou vle pwent lan nan yon pwen, ou kalkile ang yo. Gen yon labo pou sa tou.
Pwogramasyon yon robo
Yon pwogram robo gen yon estrikti ki toujou menm:
- Inisyalize: konfigre pin, sansò, motè.
- Bouk: li sansò → deside → aji.
- Wè tan: pa sèvi ak
delay()pou tout bagay; li sansò ak motè dwe kontinye.
const int TRIG = 9, ECHO = 10;
long distansCM() {
digitalWrite(TRIG, LOW); delayMicroseconds(2);
digitalWrite(TRIG, HIGH); delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long t = pulseIn(ECHO, HIGH, 30000); // timeout 30 ms
if (t == 0) return 999; // pa gen eko
return t * 0.0343 / 2;
}
void loop() {
long d = distansCM();
if (d < 30) { // mi devan
moteur(-120, 120); // vire sou plas
} else {
moteur(180, 180); // avanse
}
delay(50); // 20 mezi pa segond
}
from machine import Pin, PWM
import time
g = PWM(Pin(25), freq=1000)
d = PWM(Pin(26), freq=1000)
def moteur(vg, vd): # 0 rive 1023
g.duty(vg)
d.duty(vd)
while True:
moteur(700, 700) # avanse
time.sleep(1)
moteur(700, 200) # vire
time.sleep(0.6)
Navigasyon: pa pèdi chemen
- Odométri: konte rotasyon wou yo pou estimasyon pozisyon. Li toujou drift — li pa ase pou li menm.
- Swiv liy: de sansò IR ki kenbe w sou yon liy. Senp, solid, bon pou kòmanse.
- Swiv mi: yon sansò distans ki kenbe yon distans fiks.
- Jaden potansyèl: atire robo a sou sib la, repouse l soti nan obstak. Bon pou evite obstak.
- A*: chèche pi kout chemen sou yon griy. Bon lè w gen yon kat.
- SLAM: bati yon kat epi lokalize tèt ou an menm tan. Sa mande lidar oswa kamera ak anpil kalkil — se yon pwojè avanse.
- Fizyon sansò: konbine odométri, IMU, ak kamera pou diminye erè.
AI ak vizyon
«AI» nan robotik se sitou pèsepsyon (rekonèt sa kamera a wè) ak desizyon (chwazi aksyon).
- Vizyon klasik: seuil, koulè, kontou, deteksyon liy. Bon kòmanse ak OpenCV sou yon Pi.
- Apwantisaj pwofon: yon modèl (YOLO, MobileNet) ki detekte objè. Li kouri sou Pi ak TensorFlow Lite oswa Coral.
- Reinforcement learning: robo a aprann pa eseye nan yon similyatè. Li mande anpil tan ak yon similyatè bon.
- ESP32-CAM: bon mache pou yon kamera ki voye imaj, men li pa ase pou AI lou.
Anpil «robo entèlijan» se senpleman yon bon sansò ak yon règ senp. Yon robo ki swiv yon liy ak de sansò IR ka fè plis pase yon robo ki gen yon kamera ki pa byen regle. Konprann pwoblèm nan anvan w ajoute AI.
ROS: lè w grandi
ROS (Robot Operating System) se yon seri lojisyèl pou bati robo konplèks. Li pa yon sistèm operasyon; se yon «bwal zouti» kominikasyon.
- Nod: yon ti pwogram ki fè yon travay (li kamera, kontwole motè).
- Topic: yon kanal kote nod yo voye mesaj (pibliye/abòne).
- tf: sistèm pou swiv pozisyon tout pati robo a nan tan.
- Gazebo: similyatè fizik pou teste anvan w kase yon bagay reyèl.
Pa kòmanse ak ROS. Bati yon robo ki mache ak Arduino/ESP32 an premye. Lè w gen yon robo ki gen kamera, lidar, ak plizyè pati ki dwe kowòdone, ROS ap vin natirèl.
Sekirite ak etik
Sekirite fizik
- Yon robo ki gen motè ka kase dwèt. Fè premye tès yo leve sou yon bwat, wou yo pa touche tè.
- Mete yon swich arè ijans oswa retire batri a fasil.
- Pwotèj je lè w soude oswa w koupe.
- Pa fè yon dwon vole bò moun, bò kay, oswa nan yon zòn ki gen règ.
- Batri: pa chaje san sipèvizyon, pa kout-sikui, pa pèse.
Etik
- Yon robo ka pran travay — mande ki moun li sèvi, epi ki moun li deplase.
- Pa fè robo pou siveye moun san konsantman.
- Pa fè zèl pou zam oswa pou fè moun mal.
- Bati bagay ki reparab: vis, pa kole; dokimante fil yo.
- Pataje konesans ou — se konsa yon kominote teknik grandi.
Pwojè: soti nan zewo rive byen lwen
-
Brushbot (0 elektwonik)
Yon ti motè vibre, yon bwòs dan, yon batri. Li deplase aza. Objektif: wè mouvman, sant, ak enèji.
-
Robo ki evite obstak
Chasi 2 wou, 2 motè DC, yon L298N, yon HC-SR04, yon Arduino. Premye vrè bouk fèmen: mezire → deside → aji.
-
Swiv liy ak PID
De sansò IR, yon kontwolè, yon kòd ki kenbe robo a sou liy. Ajoute PID epi wè diferans lan.
-
Kontwòl pa Wi-Fi
ESP32 + yon paj wèb senp sou menm rezo a. Ou ka kontwole robo a soti nan telefòn ou.
-
Bras ak servo
Twa oswa kat servo, yon chasi, ak kinemati envès. Objektif: pran yon objè nan yon pozisyon ou chwazi.
-
Vizyon oswa SLAM
Raspberry Pi + kamera. Detekte yon objè, swiv yon liy, oswa bati yon ti kat. Sa a se yon pwojè plizyè mwa.
| Pwojè | Materyèl | Tan | Pri w |
|---|---|---|---|
| Brushbot | Motè vibre, bwòs, batri AA | 1 èdtan | ________ |
| Evite obstak | Chasi, 2 motè, L298N, HC-SR04, Arduino | 1 wikenn | ________ |
| Swiv liy | 2 sansò IR, chasi, Arduino | 1 wikenn | ________ |
| Wi-Fi | ESP32, drivè, batri | 2 wikenn | ________ |
| Bras servo | 4 servo, chasi, alimantasyon | 2–3 semèn | ________ |
Depanaj: sentòm ak solisyon
| Sentòm | Kòz posib | Sa pou w fè |
|---|---|---|
| Robo vire an sèk | Yon motè branche ranvèse | Ranvèse de fil yo oswa koreksyon nan kòd |
| Motè a pa vire men li fè bri | Kouran twò fèb oswa mekanik bloke | Mezire vòltaj anba chaj, dekonekte wou |
| Arduino reset lè motè demare | Pik kouran, tè komen pòv | Alimantasyon separe, kondansatè, fil pi gwòs |
| Ultrasonik bay valè fou | Ang, sifas mou, de sansò pale ansanm | Filtre, espas mezi, ang dwat |
| Servo tranble | Alimantasyon fèb | Batri separe pou servo yo |
| Robo drift | Odométri, wou pa menm gwosè | Kalibre, fusion IMU |
| Swiv liy echèk sou koulè | Sansò IR sansib a limyè | Regle seuil, pwoteje soti nan solèy |
Desine robo a sou papye: ki sansò, ki motè, ki batri, ki kontwolè, ki fil. Verifye vòltaj ak kouran chak pati. Yon plan 10 minit sove yon semèn.
Pratike kounye a — san materyèl
Laboratwa robotik la gen 5 eksperyans: pwograme yon robo sou griy, evite obstak ak kòd, regle yon PID, kalkile yon bras, epi kalkile motè a. Tout mache sou paj la.
Louvri laboratwa a →Fè omwen de labo anvan w make leson sa fini.