PRÀCTICA 1: ROBOT SENSOR PROXIMITAT
A partir del tutorial de http://microembebidos.com/2013/09/12/tutorial-robotica-robot-sensor-de-proximidad-con-arduino/ hem canviat el shield del motor DFRduino L298P per el motor shield R3 d'arduino. S'ha hagut de connectar a l'entrada del motor A ja que la llibreria de ultrasons utilitza els pins digitals D8, D9, D10 i D11. I el motor B necessitava un d'aquests pins. (Motor A utilitza el D12 i D3)
Prèviament ens ha calgut descarregar la llibreria del sensor HC-SR04 (apartat 09 d'aquesta mateixa web al final de la pàgina es pot descarregar edl web) i la carreguem al ID del programa (Arduino 1.6.7)
(#include <Ultrasonic.h>)
L'arxiu .ino del sensor de proximitat l'hem adjuntat al final d'aquesta pàgina.
PRÀCTICA 2: ROBOT ACCIONAT AMB BLUETOOTH
Haurem de descarregat l'aplicació de mòbil de Imagina3dbot del Play Store:
Utilitzem la Shield R3 per fer anar dos motors de cc:
Record que el mòdul bluetooth les connexions d'emissió i recepció van creuades!!
Al final ens ha quedat així:
Descarrega't el fitxer comprimit amb .rar a baix de la pàgina amb l'sketch i les llibreries.
#include <Arduino.h>
#include <Wire.h>
#include <Servo.h>
#include <SoftwareSerial.h>
#include "MeSerial.h"
double command;
MeSerial se;
void setup(){
Serial.begin(9600);
pinMode(12,OUTPUT);
pinMode(9,OUTPUT);
pinMode(13,OUTPUT);
pinMode(8,OUTPUT);
pinMode(3,OUTPUT);
pinMode(11,OUTPUT);
command = 0;
Serial.println("Arduino3dbot");
}
void loop(){
if(Serial.available() > (0)){
command = Serial.read();
if(((command)==('U'))){ //Endavant
digitalWrite(12,HIGH); // motor A direcció en un sentit
digitalWrite(9,LOW); //no activo els frens al pin 9
analogWrite(3, 200); //velocitat 200 entre 0 i 255
digitalWrite(13,HIGH); // motor B direcció en un sentit
digitalWrite(8,LOW);
analogWrite(11, 200);
}
if(((command)==(67))){ //Paro
//digitalWrite(12,0);
digitalWrite(9,HIGH); //posa el brake en estat alt
analogWrite(3, 0);
//digitalWrite(13,0);
digitalWrite(8,HIGH); //posa el freno en estat alt
analogWrite(11, 0);
}
if(((command)==(68))){ //Enrerra
digitalWrite(12,LOW); // motor A direcció en sentit contrari
digitalWrite(9,LOW);
analogWrite(3, 133);
digitalWrite(13,LOW); // motor B direcció en sentit contrari
digitalWrite(8,LOW);
analogWrite(11,133);
}
if(((command)==(82))){ //Esquerra
digitalWrite(12,0);
digitalWrite(9,1); // frena el motor A
analogWrite(3, 0); //velocitat=0
digitalWrite(13,1); //endavant motor B
digitalWrite(8,0); // frens no activats
analogWrite(11, 133); //velocitat= mig gas
}
if(((command)==(76))){ //Dreta
digitalWrite(12,1); //motor A endavant
digitalWrite(9,0); // no frena motor A
analogWrite(3, 133); //velocitat de maniobra
digitalWrite(13,0);
digitalWrite(8,1); //frena motor B
analogWrite(11,0); //velocitat=0 motor B
}
}
}