چرا ماشین RC موجود بهترین نقطه شروع است؟
یک ماشین RC ۱:۱۰ (مثل Wltoys 144001 یا هر کلون Tamiya) پلتفرم مکانیکی آمادهای است با سیستم Ackermann، ESC، سرو فرمان و باتری. به جای ساخت از صفر، فقط باید گیرنده RC را با یک آردوینو جایگزین کنیم که از طریق PWM همان ESC و سرو را کنترل میکند. ۲–۳ ساعت کار برای داشتن یک UGV کاملاً کارکرد!
🛠️ کارت پروژه
| پایه | Wltoys 144001 (~۸۰۰K) یا هر ماشین RC 1:10 با ESC/Servo |
| اضافه میشود | Arduino Nano + GPS + LoRa (~۵۰۰K) |
| حفظ میشود | ESC اصلی، سرو فرمان، شاسی، باتری LiPo |
اتصال آردوینو به ESC و سرو ماشین RC
| قطعه ماشین | اتصال به Arduino | نکته |
|---|---|---|
| سرو فرمان (کانکتور سفید ۳ پین) | سیگنال → D9 (PWM) | VCC سرو از BEC داخلی ESC |
| ESC (کانکتور ۳ پین موتور) | سیگنال ESC → D10 (PWM) | ESC از PWM 1–2ms کار میکند |
| BEC خروجی ESC (5V) | +5V → Arduino 5V Pin | برق آردوینو از ESC |
| GND | GND مشترک | همه GNDها وصل باشند |
کد کنترل ESC و سرو با Servo Library
#include <Servo.h>
Servo esc, steer;
void setup(){
esc.attach(10);
steer.attach(9);
// آرم کردن ESC: ابتدا پالس neutral بفرست
esc.writeMicroseconds(1500); // ۱۵۰۰ = بیحرکت
steer.writeMicroseconds(1500); // مستقیم
delay(3000); // منتظر آرم شدن ESC
}
// throttle: -100 تا +100، steering: -100 تا +100
void drive(int throttle, int steering){
// ESC: 1000=full reverse, 1500=stop, 2000=full forward
int escPulse = map(throttle, -100,100, 1000,2000);
// Servo: 1000=full left, 1500=center, 2000=full right
int strPulse = map(steering, -100,100, 1000,2000);
esc.writeMicroseconds(escPulse);
steer.writeMicroseconds(strPulse);
}