تانک RC زنجیری با Raspberry Pi چیست؟ (مبتدی)
یک تانک زنجیری به جای چرخ از تسمههای لاستیکی یا فلزی برای حرکت روی سطوح ناهموار استفاده میکند. برخلاف UGV چرخدار، تانک میتواند از روی سنگهای بزرگ و زمین گلآلود بگذرد.
Raspberry Pi Zero W یک رایانه کوچک با WiFi داخلی و قیمت ۱۵ دلار است. با یک سرور وب Flask کوچک، میتوان کنترل تانک را از طریق مرورگر موبایل (بدون نیاز به App نصب) انجام داد. دوربین Pi Camera هم میتواند تصویر زنده ارسال کند — یک تانک FPV واقعی!
محصولی که میسازید
یک تانک RC زنجیری با FPV از طریق مرورگر موبایل.
- هزینه: ۱ تا ۲ میلیون تومان
- کنترل: WiFi، بدون App
- زنجیر: کیت زنجیر پلاستیکی (AliExpress)
کد Flask — کنترل تانک از موبایل
from flask import Flask, render_template_string, request
import RPi.GPIO as GPIO
app = Flask(__name__)
GPIO.setmode(GPIO.BCM)
# L298N پینها:
IN1,IN2,ENA = 17,18,27 # موتور چپ
IN3,IN4,ENB = 22,23,24 # موتور راست
for p in [IN1,IN2,IN3,IN4]: GPIO.setup(p, GPIO.OUT); GPIO.output(p,0)
for e in [ENA,ENB]: GPIO.setup(e,GPIO.OUT)
pwm_l = GPIO.PWM(ENA, 1000); pwm_l.start(0)
pwm_r = GPIO.PWM(ENB, 1000); pwm_r.start(0)
def drive(l_spd, r_spd):
"""l_spd, r_spd: -100 تا +100"""
GPIO.output(IN1, l_spd > 0); GPIO.output(IN2, l_spd < 0)
GPIO.output(IN3, r_spd > 0); GPIO.output(IN4, r_spd < 0)
pwm_l.ChangeDutyCycle(abs(l_spd))
pwm_r.ChangeDutyCycle(abs(r_spd))
HTML = """
Tank RC
"""
@app.route('/')
def index(): return render_template_string(HTML)
@app.route('/cmd/')
def cmd(action):
if action=='F': drive(70,70)
elif action=='B': drive(-70,-70)
elif action=='L': drive(-60,60)
elif action=='R': drive(60,-60)
elif action=='S': drive(0,0)
return 'OK'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
چکلیست تانک
| بررسی | روش |
|---|---|
| RPi Zero W به WiFi وصل میشود؟ | wpa_supplicant.conf تنظیم |
| هر دو موتور در جهت درست؟ | تست جداگانه |
| صفحه موبایل دکمهها را نشان میدهد؟ | http://[IP تانک] |
| Camera Stream کار میکند؟ | mjpeg-streamer نصب |