==== PMCBot ====
=== Participants ===
* [[wiki:utilisateurs:yanis_mazouz|Yanis MAZOUZ]]
* [[wiki:utilisateurs:karang|Arthur Hennequin]]
=== Introduction ===
Le PMCBot est la nouvelle mascotte du PMCLab. Sa version de base est terminée, mais nous allons l'améliorer en lui donnant un beau PCB.
=== Code ===
Code du PMCBot :
#include
device_t role = HOST;
#define M1_AVANT 2
#define M1_ARRIERE 3
#define M2_AVANT 4
#define M2_ARRIERE 5
int vitesse = 0;
int angle = 0;
void setup() {
pinMode(M1_AVANT, OUTPUT);
pinMode(M1_ARRIERE, OUTPUT);
pinMode(M2_AVANT, OUTPUT);
pinMode(M2_ARRIERE, OUTPUT);
RFduinoGZLL.begin(role);
}
void loop() {
int vG = vitesse + angle;
int vD = vitesse - angle;
if (vG>0) {
analogWrite(M1_AVANT, vG);
digitalWrite(M1_ARRIERE, 0);
} else {
digitalWrite(M1_AVANT, 0);
analogWrite(M1_ARRIERE, -vG);
}
if (vD>0) {
analogWrite(M2_AVANT, vD);
digitalWrite(M2_ARRIERE, 0);
} else {
digitalWrite(M2_AVANT, 0);
analogWrite(M2_ARRIERE, -vD);
}
}
void RFduinoGZLL_onReceive(device_t device, int rssi, char *data, int len) {
if (device == DEVICE0) {
vitesse = (data[1]-6)*33;
angle = 90-(data[0]-1)*18;
}
}
Code du PMCBotJoystick :
#include
device_t role = DEVICE0;
#define Y_PIN 2
#define X_PIN 3
void setup() {
pinMode(Y_PIN, INPUT);
pinMode(X_PIN, INPUT);
RFduinoGZLL.begin(role);
}
void loop() {
int x = analogRead(X_PIN)/100;
int y = analogRead(Y_PIN)/100;
char data[2];
data[0] = (char)(x+1);
data[1] = (char)(y+1);
RFduinoGZLL.sendToHost(data);
delay(50);
}
void RFduinoGZLL_onReceive(device_t device, int rssi, char *data, int len) { }