Projet BTS : rObOscratch 2017

Sujets et documents

Bibliographie et ressources

Serveur HTTP pour scratch [PJ2/E2]

Il s’agit de concevoir la passerelle entre scratch2 et le robot.

Le premier objectif consiste à établir la connexion entre scratch2 et le monde extérieur. On peut s’inspirer des travaux de J. Maloney (MIT) qui propose un exemple de serveur HTTP qui attend les requêtes de scratch2.
HTTP Extension Test
Dans cette archive, on trouve le fichier HTTPExtensionTest.java
Sans aucune modification, ce fichier établi la liaison avec un programme scratch (+ «Experimental HTTP Extension ») dont le fichier json de description (rbs1.json) est :

{ {  "extensionName": "rObOtScratch",
   "extensionPort": 9010,
   "blockSpecs": [
["r", "lire la valeur du capteur %m.capteur", "capteur"],
[" ", "Stop", "ST"],
[" ", "Mettre la vitesse du moteur droit à %n", "VD", 50],
[" ", "Mettre la vitesse du moteur gauche à %n", "VG", 50],
["r", "Capteur droit", "CD"],
["r", "Capteur gauche", "CG"],
   ],
   "menus": {
"capteur": ["droit", "gauche"],
"moteur": ["droit", "gauche"],
    },
}

Programme de test scratch:




test17.sb2
Mise en oeuvre :

Pilotage de la carte i2c (2 moteurs) [PJ2 E1]

Arduino : carte d’extension

Entrées sorties disponibles

La vocation de cette carte est d’être une ressource pour le prototypage rapide d’applications exécutées sur une arduino ATMEGA-2560 communément répandue.
La plupart des IO de l’arduino restent accessibles. Cependant la carte privilégie:

  • 4 sorties digitales (sorties 10, 11, 12 et 13)
  • 2 entrées digitales : les 2 et 3, qui sont aussi utilisables pour les IRQ
  • 6 entrées analogiques : A1 à A6, avec pour chacune une masse et un Vcc disponible pour faciliter
    le branchement de capteurs
  • 4 sorties PWM : les 4, 7 et 8, pour connecter directement 3 servo-moteurs

Initialisation

Pour utiliser la carte, il convient de faire les initialisations en cohérence avec le câblage:


#include <Servo.h>
Servo M0;
Servo M1;
Servo M2;

void setup() {
    pinMode(10, OUTPUT); digitalWrite(10, LOW);
    pinMode(11, OUTPUT); digitalWrite(11, LOW);
    pinMode(12, OUTPUT); digitalWrite(12, LOW);
    pinMode(13, OUTPUT); digitalWrite(13, LOW);

    pinMode(2, INPUT);
    pinMode(3, INPUT);

    M0.attach(4); M0.write(0);
    M1.attach(7); M1.write(0);
    M2.attach(8); M2.write(pos2);      
}

void loop() { ... }

Fichiers EAGLE