Algorigramme à partir d'un programme arduino

Publié le 11 mai 2015 il y a 9A par Anonyme - Fin › 14 mai 2015 dans 9A
1

Sujet du devoir

Bonjour je dois faire un algorigramme à partir d'un programme sur Arduino qu'on m'a donné. J'ai beau essayé, je bloque vraiment. Quelqu'un pourrait-il m'aider ?

Voilà le programme sur Arduino : 

#include <SoftwareSerial.h>
#include <DmxSimple.h>
char cmd[4] = {'*','*','*','*'};
SoftwareSerial btSerial(6, 7);
int i,nb = 0;

void setup()
{
DmxSimple.usePin(3);
DmxSimple.maxChannel(6);
setupBlueToothConnection();
Serial.begin(9600);
Serial.print("DMX prêt !");
}

void loop()
{
//On récupère les caractères sur la liaison série PC
if (Serial.available())
{
nb=0;
for (i=0;i<4;i++)
{
if (Serial.available())
{
cmd[i] = Serial.read();
}
else
{
cmd[i] = '*';
}
}
for (i=1;i<4;i++)
{
if (cmd[i]!='*')
{
nb = 10*nb + (cmd[i]-'0');
}
}
}
Serial.flush();
// Ou on récupère les caractères sur la liaison série bluetooth
if (btSerial.available())
{
nb=0;
for (i=0;i<4;i++)
{
if (btSerial.available())
{
cmd[i] = btSerial.read();
}
else
{
cmd[i] = '*';
}
}
for (i=1;i<4;i++)
{
if (cmd[i]!='*')
{
nb = 10*nb + (cmd[i]-'0');
}
}
}
btSerial.flush();
if (nb>=0 and nb<=255)
{
Serial.println(cmd[0]);
Serial.println(nb);
//On traite les données pour le dmx
switch (cmd[0])
{
case 'C':
DmxSimple.write(3,nb);
delay(25);
break;
case 'G':
DmxSimple.write(2,nb);
delay(25);
break;
case 'P':
DmxSimple.write(4,nb);
delay(25);
break;
case 'T':
DmxSimple.write(5,nb);
delay(25);
break;
default :
break;
}
}
}

void setupBlueToothConnection()
{
btSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate
btSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode
btSerial.print("\r\n+STNA=LLGBT\r\n"); //set the bluetooth name
btSerial.print("\r\n+STPIN=1234\r\n");//Set SLAVE pincode
btSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me
btSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here
delay(2000); // This delay is required
btSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable
Serial.println("The slave bluetooth is inquirable!");
delay(2000); // This delay is required
btSerial.flush();
}

Le projet final étant de faire une interface de commande pour une lyre de spectacle. Si j'ai bien compris, ce programme a pour but de donner des instructions à la lyre (la faire pivoter, changer la couleur de la lumière projetée, la déplacer, etc) en fonction des caractères qu'elle recevra via un PC ou une application smartphone.

On m'a également donné ce fichier pdf qui explique le fonctionnement de la lyre, c'est obligatoire pour comprendre à quoi correspondent certaines commandes dans l'algorithme (enfin je crois).

Voilà le fichier pdf : http://forum.arduino.cc/index.php?action=dlattach;topic=321797.0;attach=125433

Où j'en suis dans mon devoir

Voilà ce que j'ai commencé mais je bloque vraiment je ne sais pas comment procéder, je débute sur Flowcode et sur Arduino




1 commentaire pour ce devoir


Anonyme
Posté le 12 mai 2015

Salut! As tu déjà fait de la programmation? J'imagine qu'on t'a expliqué ce qu'était un algorigramme. 
Le but étant de traduire ce que fait le programme sur un schéma, il faut déjà bien comprendre ce que le programme fait, ligne par ligne (les commentaires sont là pour t'aider).
 Essaie déjà de traduire un "bloc" de l'algorithme : par exemple une boucle for. 


Ils ont besoin d'aide !

Il faut être inscrit pour aider

Crée un compte gratuit pour aider

Je m'inscrisOU

J'ai déjà un compte

Je me connecte