Programmation par schéma bloc

Portrait de Leov66

Bonjour, 
Je cherche activement un moyen de coder l'Arduino pour faire des asservissements avec correcteur. 

Pour ça j'ai quelques solutions : 

  • En cours j'utilise Scilab,

Point positif : on peut coder avec des schémas blocs
Point négatif : on est obligé de garder l'ordinateur connecté à la carte Arduino 
Et, la mise en place de tout ça est compliquée, Scilab et Arduino et Arduino toolbox etc ...

  • Avec l'IDE Arduino :

Je sais qu'on peut utiliser des lignes de codes qui remplacent le dérivateur, l'intégrateur ou le proportionnel.
Dans les deux liens ci-dessous il y a ce que j'ai trouvé de plus simple.
Implémenter un PID sans faire de calculs ! » Sciences et Techniques (ferdinandpiette.com)
Asservissement en vitesse d’un moteur avec Arduino » Sciences et Techniques (ferdinandpiette.com)

Ma question :
Est-ce qu'il existe un compilateur qui compile un code en C (en Arduino) à partir d'un schéma bloc ?

Je sais que Matlab (une version payante de Scilab en gros) permet de compiler en C et de laisser le code sur la carte Arduino (mieux que Scilab).

Portrait de hercule124

Bonjour,

regarde ce lien , il y'a le logiciel FLOWCODE   programmation de blocs fonctionnels  compatible avec arduino,arm et pic.

Flowcode 8 : programmation graphique pour PIC, Arduino et ARM | Elektor Magazine

tu as une version d'essai de quelques jours

une nouvelle version v9 est disponible.

Portrait de Walter

Bonjour,

je ne suis pas sûre de comprendre ce que tu veux.
Tu voudrais un outil comme scratch qui te génères un exécutable pour arduino ?

Pourquoi ne pas utiliser l'IDE arduino est écrire ton code en C++ et utiliser la librairie PID, comme c'est indiqué dans tes liens ?

Portrait de Leov66

Je ne reçois pas de mail quand vous répondez, excuser mon retard ...

Je suis d'accord que je pourrais utiliser la bibliothèque PID et coder en C++ (c'est d'ailleurs là-dessus que je m'oriente).
Je fais découvrir le monde de l'IDE Arduino à pas mal de personne en ce moment, mais il faut l'avouer ce n'est pas un monde simple à comprendre.

Les schémas bloc sont des connaissances de cours et on les étudie depuis près de 2 ans maintenant. Il y a donc une certaine facilité à coder avec des schéma bloc comme sur Scilab. 

Je me demande donc si je peux 'récupérer' le code en C que Scilab utilise pour faire marcher la carte Arduino. 
Le problème c'est le fonctionnement de Scilab avec Arduino :

  1. Téléverser un fichier Arduino Tools sur la carte Arduino
  2. Réalisation d'un schéma bloc
  3. Création d'un code mystère (je ne sais pas trop ce que c'est comme code)
  4. Envoie ce code sur la carte Arduino (là où le fichier Arduino Tools interprète ce code mystère)
  5. La carte Arduino fonctionne comme l'indique le schéma bloc 

Le problème c'est que le programme ne reste pa sur la carte Arduino une fois qu'on la débranche du PC.

Ma question c'est est-ce qu'on peut récupérer et interpréter ce code mystère ?
Je joins le fichier Arduino Tools

Portrait de Leov66

Pour répondre à hercule124, 
Flowcode est une solution, je la garde en tête. 
J'ai quand même une préférence à récupérer le code mystère que génère Scilab.

Portrait de Walter

Salut,

Si j'ai bien compris comment marche Scilab avec une toolbox pour arduino, tu charge un programme dédié sur ton arduino, qui permet a Scilab de dialoguer avec ton arduino et de le piloter.
A aucun moment Scilab génère un exécutable pour arduino.

Je crois que mblock permet de générer un code C, qui sera lui même compiler par l'IDE arduino pour générer un executable arduino.

Portrait de Leov66

Je pense que Scilab communique par port série ou quelque chose comme ça 

Je vais me pencher plus sérieusement sur le Arduino Tools et je vais essayer de comprendre

Erreur | Les Électroniciens.com

Message d'erreur

  • Warning : Error while sending QUERY packet. PID=4777 dans DatabaseStatementBase->execute() (ligne 2227 dans /home/leselectnn/www/includes/database/database.inc).
  • Warning : Cannot modify header information - headers already sent by (output started at /home/leselectnn/www/includes/bootstrap.inc:1640) dans drupal_send_headers() (ligne 1499 dans /home/leselectnn/www/includes/bootstrap.inc).
  • PDOException : SQLSTATE[HY000]: General error: 2006 MySQL server has gone away: SELECT 1 AS expression FROM {variable} variable WHERE ( (name = :db_condition_placeholder_0) ); Array ( [:db_condition_placeholder_0] => cron_last ) dans variable_set() (ligne 1258 dans /home/leselectnn/www/includes/bootstrap.inc).

Erreur

Le site Web a rencontré une erreur inattendue. Veuillez essayer de nouveau plus tard.

Uncaught exception thrown in shutdown function.

PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away: DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => 10889539476041ce32de0691.97539767 ) in lock_release_all() (line 269 of /home/leselectnn/www/includes/lock.inc).