Ardunio MBlock Projesi

HeyLut

Decapat
Katılım
19 Haziran 2019
Mesajlar
45
Mühendisliğe Giriş dersi projem için yardımınıza ihtiyacım var. Eğer projeyi Cuma sabahına yetiştiremezsem dersten kalacağım. Proje kısaca şu:

MBlock duvara karşı 1.5 metre uzaklıktan 20 derecelik açıyla bırakılacak. MBlock'un duvara çarpmadan durması gerekiyor(0-10 cm aralığında).

Lab'da kullandığımız örnek bir kod var. Bu kod geliştirilerek yapılabiliyor proje. Yardımcı olursanız çok memnun olurum.

ÖRNEK KOD :
Kod:
#include "MeOrion.h"

MeDCMotor motor(M1);
MeUltrasonicSensor ultraSensor(PORT_7);

void setup() {
   Serial.begin(9600);
}

void loop() {
   float distance = ultraSensor.distanceCm();
   Serial.print("Distance : ");
   Serial.print(distance);
   Serial.print(" cm");
   delay(100);
   int motorSpeed = 255;
   
   if(distance > 100){
     motor.run(motorSpeed);}

  if(distance > 80 && distance <=100) {
     motor.run(motorSpeed-40);}

   else if(distance > 60 && distance <=80){
     motor.run(motorSpeed-80);}

   else if(distance > 30 &&  distance <=60){
     motor.run(motorSpeed-120);}
     
   else if(distance > 10 && distance <=30){
     motor.run(motorSpeed-160) ;}

   else{
     motor.run(-motorSpeed);}  
   
}


BİRAZ GELİŞTİRDİĞİM KOD :
Kod:
 #include "MeOrion.h"

MeDCMotor motor(M1);
MeDCMotor motor2(M2);

MeUltrasonicSensor ultraSensor(PORT_7);

void setup() {
   Serial.begin(9600);
}

void loop() {
   float distance = ultraSensor.distanceCm();
   Serial.print("Distance : ");
   Serial.print(distance);
   Serial.print(" cm");
   delay(100);
   int motorSpeed = 255;
   int motor2Speed = -255;
   

  if(distance > 150){
     motor.run(motorSpeed);
     motor2.run(motor2Speed);
     }

  if(distance > 110 && distance <=150) {
     motor.run(motorSpeed-40);
     motor2.run(motor2Speed+40);
     }

   else if(distance > 70 && distance <=110){
     motor.run(motorSpeed-80);
     motor2.run(motor2Speed+80);
     }

   else if(distance > 30 &&  distance <=70){
     motor.run(motorSpeed-120);
     motor2.run(motor2Speed+120);
     }
     
   else if(distance > 10 && distance <=30){
     motor.run(motorSpeed-160) ;
     motor2.run(motor2Speed+160);
     }

   else {
     motor.stop();
     motor2.stop();
     }  
     
   
}


PROJE :
Proje.jpg
 
Son düzenleyen: Moderatör:
Hocam anladığım kadarıyla mBot'un duvara yaklaştıkça yavaşlamasını ve belirli bir mesafede durmasını istiyorsunuz. Daha önce mBot kullandım ama ben mBlock programı ile çalışıyorum. Arduino ile mBot programlamadım daha önce. Motor2'nin hızını neden - olarak belirlediniz? O şekilde motor ters yönde dönmez mi?
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı