domenica 14 maggio 2017

Controllo mBot, con telecomando




Scopo del progetto:
Conoscere e lavorare con l’mBot.

Sviluppo del progetto:
Abbiamo studiato i diversi programmi presenti sul sito MakeBlock.
Successivamente abbiamo creato un nostro programma prendendo spunto dai programmi “Racing mBot” e “ the Led display”. Il nostro progetto è una fusione tra i due studiati.


Configurazione:
Per la realizzazione abbiamo usufruito dell’ambiente di sviluppo mBlock.
Il nostro progetto rende possibile l’uso della funzione wireless dell’mBot grazie al telecomando compreso nella confezione. Attraverso le nostre istruzioni il robottino è in grado di muoversi e allo stesso tempo accendere i led in base alla direzione. Implementati nel telecomando ci sono anche le funzioni per scegliere la velocità dell’mBot attraverso i numeri e ad ogni numero corrisponde un suono.

Istruzioni per l’uso:
Per utilizzare il nostro programma bisogna inserire la chiavetta wireless in una porta USB del pc. Poi attraverso l’ambiente di sviluppo mBlock dobbiamo connetterci alla porta dove abbiamo inserito la chiavetta. Infine fare doppio click sulla prima istruzione del codice del programma.
Ora si può comandare con il telecomando l’mBot.

Codice:

codice generato da mBlok


#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

#include <MeMCore.h>

MeDCMotor motor_9(9);
MeDCMotor motor_10(10);
void move(int direction, int speed)
{
     int leftSpeed = 0;
     int rightSpeed = 0;
     if(direction == 1){
        leftSpeed = speed;
        rightSpeed = speed;
     }else if(direction == 2){
        leftSpeed = -speed;
        rightSpeed = -speed;
     }else if(direction == 3){
        leftSpeed = -speed;
        rightSpeed = speed;
     }else if(direction == 4){
        leftSpeed = speed;
        rightSpeed = -speed;
     }
     motor_9.run((9)==M1?-(leftSpeed):(leftSpeed));
     motor_10.run((10)==M1?-(rightSpeed):(rightSpeed));
}
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
MeRGBLed rgbled_7(7, 7==7?2:4);
MeIR ir;

void setup(){
   ir.begin();
   motor_9.run((9)==M1?-(0):(0));
   motor_10.run((10)==M1?-(0):(0));
   rgbled_7.setColor(0,0,0,0);
   rgbled_7.show();
}

void loop(){
   if(ir.keyPressed(64)){
       motor_9.run((9)==M1?-(255):(255));
       motor_10.run((10)==M1?-(255):(255));
       rgbled_7.setColor(0,150,150,0);
       rgbled_7.show();
   }
   if(ir.keyPressed(7)){
       motor_9.run((9)==M1?-(0):(0));
       motor_10.run((10)==M1?-(255):(255));
       rgbled_7.setColor(2,150,150,0);
       rgbled_7.show();
   }
   if(ir.keyPressed(9)){
       motor_9.run((9)==M1?-(255):(255));
       motor_10.run((10)==M1?-(0):(0));
       rgbled_7.setColor(1,150,150,0);
       rgbled_7.show();
   }
   if(ir.keyPressed(25)){
       motor_9.run((9)==M1?-(-255):(-255));
       motor_10.run((10)==M1?-(-255):(-255));
       rgbled_7.setColor(0,255,0,0);
       rgbled_7.show();
   }
   _loop();
}

void _delay(float seconds){
   long endTime = millis() + seconds * 1000;
   while(millis() < endTime)_loop();
}

void _loop(){
   ir.loop();
}



Nessun commento:

Posta un commento