[résolu] eggduino : configuration du moniteur série

Bonjour, je m'occupe du club informatique de mon village et nous avons comme projet de faire un eggbot avec un arduino.

Bien qu'ayant fait quelques projets arduino (station méteo, pouleduino, imprimante 3D ...), nous rencontrons un problème avec ce firmware.

Le firmware utilisé est celui détaillé ici Thingiverse - Digital Designs for Physical Objects

Notre problème est que le firmware ne répond pas lorsqu'on lui demande sa version via le moniteur série (commande "v"). Le moniteur série est paramétré en nouvelle ligne et 115200 bauds.

Nous utilisons comme matériel :

  • un arduino uno
  • protoneer CNC shield V3
  • Pc windowd 10
  • arduino ide 1.8.5

Si quelqu'un a une solution, merci

Le firmware de qui, connecté et alimenté comment, avec quelle méthode d’envoi de commandes ?

Salut J-M-L,
le firmware est celui indiqué dans le lien GitHub - plex3r/EggDuino: Arduino Firmware for Spherebot / Eggbot integration in Inkscape. Si tu en connais un autre qui utilise un shield protoneer V3 je suis preneur.
Pour le moment je ne branche que l'arduino en usb, sans monter le shield.
Pour vérifier le firmware, j'utilise le moniteur série de l'IDE 1.8.5.

OK ce n'est pas vraiment ce qu'on appelle un "firmware" (le terme est assez générique) c'est le programme complet qui tourne sur votre Arduino

Quand je regarde leur code je vois cela

void setup() {   
	Serial.begin(9600);
	makeComInterface();
	initHardware();
}

et je me dis donc que ça ne correspond pas trop à

Le moniteur série est paramétré en nouvelle ligne et 115200 bauds.

vous avez essayé à 9600?

Vous noterez que juste après avoir initialisé la communication série ils appellent makeComInterface() dont le code est le suivant:

void makeComInterface(){
	SCmd.addCommand("v",sendVersion);
	SCmd.addCommand("EM",enableMotors);
	SCmd.addCommand("SC",stepperModeConfigure);
	SCmd.addCommand("SP",setPen);
	SCmd.addCommand("SM",stepperMove);
	SCmd.addCommand("SE",ignore);
	SCmd.addCommand("TP",togglePen);
	SCmd.addCommand("PO",ignore);    //Engraver command, not implemented, gives fake answer
	SCmd.addCommand("NI",nodeCountIncrement);
	SCmd.addCommand("ND",nodeCountDecrement);
	SCmd.addCommand("SN",setNodeCount);
	SCmd.addCommand("QN",queryNodeCount);
	SCmd.addCommand("SL",setLayer);
	SCmd.addCommand("QL",queryLayer);
	SCmd.addCommand("QP",queryPen);
	SCmd.addCommand("QB",queryButton);  //"PRG" Button,
	SCmd.setDefaultHandler(unrecognized); // Handler for command that isn't matched (says "What?")
}

c'est ce qui définit les fonctions associées au langage de commande, et effectivement entrer v dans la console, ça appellera la fonction sendVersion() qui est définie comme cela:

void sendVersion(){
	Serial.print(initSting);
	Serial.print("\r\n");
}

en lisant le source on voit que le délimiteur de fin de commande est bien '\n' (new line)

Salut J-M-L,
A taton j'avais essayé toute les vitesses mais je n'avais pas trouvé ou était défini la vitesse de communication.

Je viens de faire le test avec 9600 bauds , "nouvelle ligne", et c'est pas mieux. j'ai essayé aussi sur un autre arduino uno ,idem ....

C'est super sympa de nous aider.

Petite constatation de dernière minute, la led TX clignote quand j'envois la commande "v". Je me dit que la commande semble arriver à l'arduino ...

J'ai pris le code ici, téléchargé, mis dans un dossier du nom de EggDuino, lancé l'IDE et ouvert le EggDuino.ino

je compile pour un UNO sans pb, je charge, je tape

v

dans la ligne de commande de la console réglée à 9600 bauds et j'envoie et j'obtiens

[sub][color=blue]EBBv13_and_above Protocol emulated by Eggduino-Firmware V1.6a[/color][/sub]

--> Je pense que le commentaire dans le fichier n'est pas bon, il faut envoyer à la fois CR et LF comme fin de ligne pour que ce soit pris en compte

Super, ca marche !!!

En mettant 9600 bauds , "les deux NL et CR" j'obtient :

EBBv13_and_above Protocol emulated by Eggduino-Firmware V1.6a

Un grand merci J-M-L pour pour ton aide.

avec plaisir :slight_smile: