Faire un algorigramme avec Flowcode à partir d'un code Arduino


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 :

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.


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Faire un algorigramme avec Flowcode à partir d'un code Arduino


arduino

Comments