bonjour, on m'a donné un algorithme sous arduino et je dois faire un algorigramme expliquant clairement le fonctionnement de cet algorithme. cependant, j'ai du mal à comprendre cet algorithme donc je ne sais pas quoi mettre sur mon algorigramme.
voilà le programme :
le projet final étant de faire une interface de commande pour une lyre de spectacle. si j'ai bien compris, ce programme pour 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 programme :
code: [select]
#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;
(i=0;i<4;i++)
{
if (serial.available())
{
cmd[i] = serial.read();
}
else
{
cmd[i] = '*';
}
}
(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;
(i=0;i<4;i++)
{
if (btserial.available())
{
cmd[i] = btserial.read();
}
else
{
cmd[i] = '*';
}
}
(i=1;i<4;i++)
{
if (cmd[i]!='*')
{
nb = 10*nb + (cmd[i]-'0');
}
}
}
btserial.flush();
if (nb>=0 , 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 default baud rate
btserial.print("\r\n+stwmod=0\r\n"); //set bluetooth work in slave mode
btserial.print("\r\n+stna=llgbt\r\n"); //set bluetooth name
btserial.print("\r\n+stpin=1234\r\n");//set slave pincode
btserial.print("\r\n+stoaut=1\r\n"); // permit paired device connect me
btserial.print("\r\n+stauto=0\r\n"); // auto-connection should forbidden here
delay(2000); // delay required
btserial.print("\r\n+inq=1\r\n"); //make slave bluetooth inquirable
serial.println("the slave bluetooth inquirable!");
delay(2000); // delay 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 pour 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).
ton code sert à envoyer des commandes dmx, envoyées depuis le clavier du pc à l'arduino par le port série, le détail des commandes utilisables est listé dans ton pdf,
"7.1 configuration des canaux dmx"
c'est ensuite envoyé en blutooth.
"7.1 configuration des canaux dmx"
c'est ensuite envoyé en blutooth.
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Faire un algorigramme avec Flowcode à partir d'un code Arduino
arduino
Comments
Post a Comment