Ceci est une ancienne révision du document !


En utilisant les variables à remplir (appendValueInput), on va alimenter du code qui n'est finalement que du texte. Mais parfois le texte vient d'une variable, parfois c'est le texte qui sera directement affiché.

Mais il faut connaître le code Arduino à utiliser pour ensuite l'injecter dans la moulinette de Blockly.

On peut s'aider des blocs existants pour générer le code à faire apparaître :

#include <Servo.h>

Servo servo_2;
void setup() {
servo_2.attach(2);
}

void loop() {
servo_2.write(180);
delay(3000);
servo_2.write(0);
delay(3000);
}

Donc il faudra faire écrire :

  • un appel à une bibliothèque : #include <Servo.h>
  • la définition du nom d'un servomoteur : Servo servo_2;
  • dans le setup on explicite que le servo_2 est connecté sur la broche 2 : servo_2.attach(2);
  • dans la boucle 'loop' on décrit le fonctionnement voulu

Le 2 est le numéro de la broche où sera connectée la Flycam, mais elle doit être alimentée par un bloc extérieur puis on utilise la variable ad-hoc : variable 'PIN' définie lors de this.appendValueInput (“PIN”, 'Number')

blink.jpg

On créé un dossier de texte brut dans le dossier '\generators\arduino\' avec le même nom que celui qui a définit le dessin du bloc !

blink.jpg

On s'sinspire de blocs existants et on attaque !

/**
 * Block pour la FlycamOne Eco v2
 * @author Seb Canet (canet.s@free.fr)
 */
'use strict';

goog.provide('Blockly.Blocks.flycam');

goog.require('Blockly.Arduino');

Blockly.Blocks.flycam_switch = {
  var value_pin = Blockly.Arduino.valueToCode(this, 'PIN', Blockly.Arduino.ORDER_ATOMIC);

  Blockly.Arduino.definitions_['define_servo'] = '#include <Servo.h>\n';
  Blockly.Arduino.definitions_['var_servo'   value_pin] = 'Servo servo_'   value_pin   ';\n';
  Blockly.Arduino.setups_['setup_servo_'   value_pin] = 'servo_'   value_pin   '.attach('   value_pin   ');\n';
  var code = 'servo_'   value_pin   '.write(180);\n'
    'delay(3000);\n'
    'servo_'   value_pin   '.write(0);\n'
    'delay(3000);\n';
  return code;
};
  • fr/arduino/blockly_rduino/creerblocsmultiling/bloccode.1471734949.txt.gz
  • Dernière modification: 2018/11/18 19:00
  • (modification externe)