Interface MapleSim / Port série

Introduction

Maplesoft a choisi 3Sigma pour développer une interface entre MapleSim, son logiciel de modélisation physique multi-domaine, et le port série de l’ordinateur.

Pourquoi ce choix ?

  • Parce que 3Sigma connaît très bien Maple et MapleSim: les asservissements de nos robots Geeros ont été réalisés avec ces deux logiciels (http://blog.3sigma.fr/?p=254) sur lesquels nous réalisons par ailleurs des formations (http://www.formation-maple.com)
  • 3Sigma a également l’habitude de réaliser des développements utilisant le port série: dans certains de nos robots, une carte Arduino communique par ce biais avec une carte Linux embarqué

 

Qu’apporte à MapleSim une interface avec le port série ?

MapleSim est un logiciel très adapté pour modéliser des systèmes dans différents domaines de la physique. Il permet également de faire des calculs sur des signaux, afin d’enrichir les modèles avec des algorithmes d’asservissement ou de traitement du signal.

L’interface MapleSim / port série permet d’injecter dans votre modèle des données provenant d’un matériel externe connecté au port série de votre ordinateur. Ca peut-être, par exemple, une carte Arduino ! La seule contrainte sur les données envoyées est qu’elles soient séparées par des virgules et que chaque groupe de données se termine par un retour à la ligne.

Sur Arduino, un code qui fonctionne et qui permet d’envoyer les mesures des 6 premières entrées analogiques est le suivant:

// Variable stockant le temps écoulé depuis la dernière mesure
unsigned long previousMillis = 0;

// Intervalle entre deux mesures (en millisecondes)
const long interval = 10;

void setup() {
  Serial.begin(115200);
}

void loop() {
  // Temps courant (en millisecondes)
  unsigned long currentMillis = millis();

  // Ces mesures sont envoyées au port série toutes les "interval" ms
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    // Les données envoyées *doivent* être séparées par des virgules
    Serial.print((float)millis()/1000);
    Serial.print(",");
    Serial.print((float)analogRead(A0)/1024);
    Serial.print(",");
    Serial.print((float)analogRead(A1)/1024);
    Serial.print(",");
    Serial.print((float)analogRead(A2)/1024);
    Serial.print(",");
    Serial.print((float)analogRead(A3)/1024);
    Serial.print(",");
    Serial.print((float)analogRead(A4)/1024);
    Serial.print(",");
    // La dernière commande d'écriture sur le port série *doit* être println,
    // pour envoyer le caractère de retour à la ligne
    Serial.println((float)analogRead(A5)/1024);
  }

}

Pour avoir plus de détails au sujet de cette interface, disponible à partir de MapleSim 2016, vous pouvez contacter Maplesoft par téléphone au 01 84 73 00 10  ou par email à l’adresse france@maplesoft.com.