• Welcome to Forum des utilisateurs de Blockly(s). Please login or sign up.
 

Problème création blocs pour robot zowi

Démarré par Gabriel, novembre 02, 2017, 06:04:04 pm

« précédent - suivant »

Gabriel

Bonjour,
j'aimerai pouvoir faire programmer des robots de type zowi et j'essaye de créer mon premier bloc qui permet au robot de s'initialiser (de rester sur place).
Le code arduino à obtenir est le suivant  :

#include <Servo.h>
#include <Oscillator.h>
#include <EEPROM.h>

//-- Zowi Library
#include <Zowi.h>

//-- Configure the pins where the servos are attached
#define PIN_RR 5
#define PIN_RL 4
#define PIN_YR 3
#define PIN_YL 2

//-- This is Zowi!!
Zowi Zowi;

void setup()
{
  //---------- Zowi Initialization
  //--  Set the servo pins
    Zowi.init(PIN_YL, PIN_YR, PIN_RL, PIN_RR);
}

void loop()
{
  //-- Zowi at rest position
  Zowi.home();
}


J'ai créé la catégorie et le premier bloc mais j'ai un message d'erreur lors de l'affichage du code : TypeError: b is undefined
Donc je pense que le problème vient du fichier présent dans "Generator\Arduino" mais j'ai besoin d'experts je ne trouve pas l'erreur.
Je vous joins les fichiers réalisés
En vous remerciant pour votre aide
Cyrille

fontaine.jp

salut,
Il y avait juste quelques petites erreurs :
des ' en plus
des majuscules et minuscules mélangées
des /n inutiles
voila.
Blockly.Arduino.zowi_home = function() {
  Blockly.Arduino.includes_['define_servo'] = '#include <Servo.h>';
  Blockly.Arduino.includes_['define_oscillator'] = '#include <Oscillator.h>';
  Blockly.Arduino.includes_['define_eeprom'] = '#include <EEPROM.h>';
  Blockly.Arduino.includes_['define_zowi'] = '#include <Zowi.h>';
  Blockly.Arduino.definitions_['broche_servo0'] = '#define PIN_RR 5';
  Blockly.Arduino.definitions_['broche_servo1'] = '#define PIN_RL 4';
  Blockly.Arduino.definitions_['broche_servo2'] = '#define PIN_YR 3';
  Blockly.Arduino.definitions_['broche_servo3'] = '#define PIN_YL 2';
  Blockly.Arduino.definitions_['zowi'] = 'Zowi zowi;';
  Blockly.Arduino.setups_['setup_pin_servo'] = 'zowi.init(PIN_YL, PIN_YR, PIN_RL, PIN_RR);';
  return 'zowi.home();\n';
};

fontaine.jp

et les // s'utilisent pour commenter son code
;-)

Gabriel

Merci je vais pouvoir poursuivre avec les autres blocs, prochain à réaliser : avancer avec des arguments de direction et vitesse

SebCanet

novembre 02, 2017, 10:59:26 pm #4 Dernière édition: novembre 02, 2017, 11:04:03 pm par SebCanet
Et il faut penser à typer les blocs. Le wiki n'est peut être pas super à jour mais il contient les pistes : http://www.libreduc.cc/wiki/doku.php/fr/arduino/blockly_rduino/creerblocsmultiling
Ensuite il faut signaler à \blocks\blocks_typing.js qu'il faut aller chercher tes typages, comme pour les couleurs ou le générateur Arduino.
Le mieux est souvent de partir d'un bloc qui fait ce que tu veux dans l'esprit et que tu récupères pour ta propre catégorie.

Et en parcourant le wiki, avec le transfert de domaine je viens voir que les infos sont en double...zou au boulot !

Sinon pour le code à générer tu as des exemples là : http://zowi.bq.com/fr/category/apprends-a-programmer/

j'ai ha^te de voir ça !!!! Merci.  ;D

Gabriel

Bonsoir,
petit compte-rendu de la création des blocs pour Zowi.
Le bloc de déplacement est réalisé : marche avant/arrière rapide ou lente.

La suite devrait avancer rapidement (il s'agit des mêmes styles de blocs).
Je rencontre un problème pour le téléversement car les librairies nécessaires sont disponibles pour l'EDI Arduino mais pas pour Codebender, donc pour l'instant je fais un copier/coller pour tester. Si quelqu'un à une solution ?
Bonne soirée
Cyrille

fontaine.jp

Salut,
Les bibliothèques servo et eeprom sont chez codebender par contre oscillator et zowi n'y sont pas.
il te reste 2 possibilités :
- tu copies/colles ces 2 bibliothèques dans tes blocs (attention ça peut être très lourd si tu utilises toutes les fonctions)
- tu connais quelqu'un chez codebender qui pourrait mettre sur le site ces 2 bibliothèques
Bon courage ;-)

SebCanet

Salut,
sinon tu copies colle dans la version de l'EDI Arduino que j'entretiens en parallèle de Blockly@rduino pour que les bibliothèques suivent,
ou tu utilises Blockly@rduino_AIO avec EDI "intégré".

SebCanet

Peut être que le mieux sera de passer par la création d'un "kit" ou maquette : http://www.libreduc.cc/wiki/doku.php/fr/arduino/blockly_rduino/kit

N'hésite pas à te lancer et à demander un coup de main.