فهرست مطالب:

موانع اجتناب از ماشین روباتیک: 9 مرحله
موانع اجتناب از ماشین روباتیک: 9 مرحله

تصویری: موانع اجتناب از ماشین روباتیک: 9 مرحله

تصویری: موانع اجتناب از ماشین روباتیک: 9 مرحله
تصویری: جدید ترین روش لیدر شدن کلش آف کلنز در کمتر از دو دقیقه...!!! 😳 2024, جولای
Anonim
موانع اجتناب از ماشین روباتیک
موانع اجتناب از ماشین روباتیک
موانع اجتناب از ماشین روباتیک
موانع اجتناب از ماشین روباتیک

نحوه ایجاد مانع برای جلوگیری از ربات

مرحله 1: جعبه سیاه

جعبه سیاه
جعبه سیاه

در اولین قدم از جعبه سیاه به عنوان پایه ای برای ربات خود استفاده کردم.

مرحله 2: آردوینو

آردوینو
آردوینو

آردوینو مغز کل سیستم است و موتورهای ما را تنظیم می کند

مرحله 3: اتصال آردوینو به Blackbox

اتصال آردوینو به بلک باکس
اتصال آردوینو به بلک باکس

آردوینو را با استفاده از چسب حرارتی به جعبه سیاه وصل کردم

مرحله 4: سنسور اولتراسونیک

سنسور اولتراسونیک
سنسور اولتراسونیک

برای ساختن رباتی که بتواند خود حرکت کند ، به نوعی ورودی نیاز داریم ، سنسوری که متناسب با هدف ما باشد. سنسور اولتراسونیک ابزاری است که با استفاده از امواج صوتی اولتراسونیک فاصله یک جسم را اندازه گیری می کند. یک سنسور اولتراسونیک از یک مبدل برای ارسال و دریافت پالس های اولتراسونیک استفاده می کند که اطلاعات مربوط به مجاورت یک جسم را ارسال می کند.

مرحله 5: اتصال Breadboard سنسور به آردوینو

Breadboard اتصال سنسور به آردوینو
Breadboard اتصال سنسور به آردوینو
Breadboard اتصال سنسور به آردوینو
Breadboard اتصال سنسور به آردوینو

من از سیم برای ارتباط بین تخته نان و آردوینو استفاده کردم.

توجه داشته باشید که سنسور پینگ شما ممکن است دارای طرح پین متفاوتی باشد اما باید دارای پین ولتاژ ، پایه زمین ، پایه سنجاق و پین اکو باشد.

مرحله ششم: سپر موتور

سپر موتور
سپر موتور

بردهای آردوینو نمی توانند موتورهای دی سی را به تنهایی کنترل کنند ، زیرا جریانهایی که تولید می کنند بسیار کم است. برای حل این مشکل از سپرهای موتور استفاده می کنیم. سپر موتور دارای 2 کانال است که امکان کنترل دو موتور DC یا 1 را می دهد. موتور پله ای … با آدرس دهی به این پین ها می توانید یک کانال موتور را برای راه اندازی انتخاب کنید ، جهت موتور (قطبیت) را مشخص کنید ، سرعت موتور را تنظیم کنید (PWM) ، موتور را متوقف کرده و راه اندازی کنید و جذب جریان هر کانال را کنترل کنید.

مرحله 7: اتصال Motor Shield به آردوینو

اتصال Motor Shield به آردوینو
اتصال Motor Shield به آردوینو

کافی است سپر موتور را به آردوینو وصل کنید و سیم های سنسور را در هم فشار دهید

مرحله 8: اتصال 4 موتور و باتری به Shield

اتصال 4 موتور و باتری به شیلد
اتصال 4 موتور و باتری به شیلد

هر موتور شیلد (حداقل) دو کانال دارد ، یکی برای موتورها و دیگری برای منبع تغذیه ، آنها را نسبت به یکدیگر متصل کنید

مرحله 9: برنامه ربات را تنظیم کنید

این کد را اجرا کنید

#شامل #شامل شود

سونار NewPing (TRIG_PIN ، ECHO_PIN ، MAX_DISTANCE) ؛

AF_DC موتور موتور 1 (1 ، MOTOR12_1KHZ) ؛ موتور AF_DC موتور 2 (2 ، MOTOR12_1KHZ) ؛ موتور AF_DC موتور 3 (3 ، MOTOR34_1KHZ) ؛ موتور AF_DC موتور 4 (4 ، MOTOR34_1KHZ) ؛ Servo myservo؛

#تعریف TRIG_PIN A2 #تعریف ECHO_PIN A3 #تعریف MAX_DISTANCE 150 #تعریف MAX_SPEED 100 #تعریف MAX_SPEED_OFFSET 10

boolean goingForward = false؛ int فاصله = 80 ؛ int speedSet = 0؛

void setup () {

myservo.attach (10)؛ myservo.write (115)؛ تاخیر (2000) ؛ فاصله = readPing ()؛ تأخیر (100) ؛ فاصله = readPing ()؛ تأخیر (100) ؛ فاصله = readPing ()؛ تأخیر (100) ؛ فاصله = readPing ()؛ تأخیر (100) ؛ }

حلقه خالی () {int distanceR = 0؛ int فاصله L = 0 ؛ تأخیر (40) ؛ if (فاصله <= 15) {moveStop ()؛ تأخیر (50) ؛ moveBackward ()؛ تأخیر (150) ؛ moveStop ()؛ تأخیر (100) ؛ distanceR = lookRight ()؛ تأخیر (100) ؛ distanceL = lookLeft ()؛ تأخیر (100) ؛

if (distanceR> = distanceL) {turnRight ()؛ moveStop ()؛ } else {turnLeft ()؛ moveStop ()؛ }} else {moveForward ()؛ } distance = readPing ()؛ }

int lookRight () {myservo.write (50)؛ تأخیر (250) ؛ int distance = readPing ()؛ تأخیر (50) ؛ myservo.write (100)؛ فاصله بازگشت ؛ }

int lookLeft () {myservo.write (120)؛ تأخیر (300) ؛ int distance = readPing ()؛ تأخیر (100) ؛ myservo.write (115)؛ فاصله بازگشت ؛ تأخیر (100) ؛ }

int readPing () {تاخیر (70)؛ int cm = sonar.ping_cm ()؛ اگر (cm == 0) {cm = 200؛ } بازگشت cm؛ }

void moveStop () {motor1.run (RELEASE)؛ motor2.run (انتشار) ؛ motor3.run (انتشار) ؛ motor4.run (انتشار) ؛ } void moveForward () {

if (! goForward) {goForward = true؛ motor1.run (FORWARD)؛ motor2.run (FORWARD)؛ motor3.run (FORWARD)؛ motor4.run (FORWARD)؛ برای (speedSet = 0 ؛ speedSet <MAX_SPEED ؛ speedSet += 2) {motor1.setSpeed (speedSet) ؛ motor2.setSpeed (speedSet) ؛ motor3.setSpeed (speedSet) ؛ motor4.setSpeed (speedSet) ؛ تأخیر (5) ؛ }}}

void moveBackward () {goForward = false؛ motor1.run (BACKWARD) ؛ motor2.run (BACKWARD) ؛ motor3.run (BACKWARD) ؛ motor4.run (BACKWARD) ؛ برای (speedSet = 0 ؛ speedSet <MAX_SPEED ؛ speedSet += 2) {motor1.setSpeed (speedSet) ؛ motor2.setSpeed (speedSet) ؛ motor3.setSpeed (speedSet) ؛ motor4.setSpeed (speedSet) ؛ تأخیر (5) ؛ } void turnLeft () {motor1.run (BACKWARD)؛ motor2.run (BACKWARD) ؛ motor3.run (FORWARD)؛ motor4.run (FORWARD)؛ تأخیر (500) ؛ motor1.run (FORWARD)؛ motor2.run (FORWARD)؛ motor3.run (FORWARD)؛ motor4.run (FORWARD)؛ }

void turnLeft () {motor1.run (BACKWARD)؛ motor2.run (BACKWARD) ؛ motor3.run (FORWARD)؛ motor4.run (FORWARD)؛ تأخیر (500) ؛ motor1.run (FORWARD)؛ motor2.run (FORWARD)؛ motor3.run (FORWARD)؛ motor4.run (FORWARD)؛ }

توصیه شده: