-
Notifications
You must be signed in to change notification settings - Fork 59
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
french translation + harmonisation of pin number font weight (**bold*…
…*) in problem.md files
- Loading branch information
Showing
15 changed files
with
617 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# Bienvenue au nodebot-workshop | ||
|
||
Nous allons apprendre les rudiments de l'api de `johnny-five`, comme une série de défis de code. | ||
|
||
`johnny-five` est une api permettant de travailler avec Arduino et autres cartes de prototypage rapide, mais | ||
|
||
**Vous *n’avez pas* besoin d'un Arduino pour cet atelier** | ||
|
||
L’atelier va te poser un défi et tester ta solution. Le code de bas niveau pour parler à l’Arduino est simulé. | ||
|
||
**Tu *va* écrire du code qui est exécutable par `johnny-five` sur un micro contoleur** | ||
|
||
Chacune des solutions peut être exécutée comme un programme `node`. Cable un Arduino, connecte le au port usb et tu peux voir ta solution s'executer devant toi. | ||
|
||
* * * | ||
|
||
# Clignote | ||
|
||
**Ecris un programme qui fais fais clignoter une LED attachée à la broche 13 une fois par seconde.** | ||
|
||
- Quand la carte est 'prête', crée une nouvelle instance de `Led`. | ||
- Passe a nombre au constructeur de `Led` pour lui dire a quelle broche l'attacher. | ||
- `Led` a une méthode `strobe`; elle prends comme argument un intervalle, en millisecondes. | ||
|
||
## Pour cela, il va te falloir | ||
|
||
1. Un répertoire pour tes réponses, et y entrer en utilisant la commande `cd` de ton terminal. | ||
2. Récupère johnny-five par npm: `npm install johnny-five` | ||
3. Crée un fichier pour ta solution (p. ex. 01-clignote.js) | ||
|
||
Dans tout tes solution tu devra : | ||
|
||
- `require` le module `johnny-five` | ||
- Créer une instance de `new Board` | ||
- Ajouter une fonction de rappel (callback) pour l'événement **ready** de la 'board' | ||
- Ta solution sera dans cette fonction de rappel (callback)... | ||
|
||
```js | ||
var five = require('johnny-five') | ||
var board = new five.Board() | ||
board.on('ready', function () { | ||
|
||
// Ta solution sera ici ! | ||
}) | ||
``` | ||
|
||
## Diagramme du circuit | ||
|
||
330 LED | ||
Pin 13 o--/\/\/---->|------o GND | ||
|
||
|
||
## Composants | ||
|
||
- LED - http://node-ardx.org/electronics-primer#led | ||
|
||
> Une LED (diode électroluminescente) émet de la lumière lorsqu'un faible courant la traverse dans une direction, et bloque le courant dans l'autre (c'est un composant polarisé). | ||
## Documentation | ||
|
||
- Board - https://github.com/rwaldron/johnny-five/wiki/Board | ||
- Led - https://github.com/rwaldron/johnny-five/wiki/Led#api | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
**Construis une "alarme à incendie" qui émet un son quand la température de l'air passe au dessus de 50°.** | ||
|
||
- Fixe le capteur de température TMP36 à la broche **A0** | ||
- Attaches un piezo à la broche **9** | ||
- Attaches une LED à la broche **13** | ||
- Attaches un bouton à la broche **5** | ||
- Quand le capteur de température détecte une température supérieure à 50° C, le piezo dois sonner et la LED dois clignoter en continuellement | ||
- Si la température descends en dessous de 50° C, le piezo et la LED doivent s’éteindre | ||
- Si le bouton est pressé le piézo et la LED doivent s’éteindre et ne doivent pas s’allumer à nouveau à moins que la température soit inférieure à 50° C | ||
|
||
## Diagramme du circuit | ||
|
||
330 LED | ||
Pin 13 o--------/\/\/-------->|--------- | ||
| | ||
Pin 5 o---------------------- | | ||
| | | ||
10k | | | ||
+5 o----.--------/\/\/---. | | ||
| | | | ||
| | | | ||
| .--|--|--. | | ||
| | | | | | | ||
| Button --+-| | | | | ||
| | | | | | | ||
| '--|--|--' | | ||
| | | | ||
| ----------.---o GND | ||
__ | | ||
| \ | | ||
A0 o---| ) TMP36 | | ||
|__ / | | ||
| | | ||
---------------------------. | ||
| | ||
Piezo | | ||
_ | | ||
|| || | | ||
Pin 9 o-----------|| ||--------------- | ||
||_|| | ||
|
||
|
||
## Documentation | ||
|
||
- LED - https://github.com/rwaldron/johnny-five/wiki/Led | ||
- Piezo - https://github.com/rwaldron/johnny-five/blob/master/docs/piezo.md | ||
- TMP36 - https://github.com/rwaldron/johnny-five/blob/master/docs/temperature-tmp36.md | ||
- Button - https://github.com/rwaldron/johnny-five/wiki/Button#usage | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
**Écris un programme qui agit comme un interrupteur pour allumer ou éteindre une LED.** | ||
|
||
- Branche un interrupteur sur la broche 5 et une LED sur la broche **9** | ||
- Utilises la classe `Button` pour détecter des événements `press` et activer/désactiver votre LED | ||
|
||
## Diagramme du circuit | ||
|
||
330 LED | ||
Pin 9 o---/\/\/------>|------ | ||
| | ||
Pin 5 o------------ | | ||
| | | ||
10k | | | ||
+5 o---/\/\/---. | | ||
| | | ||
| | | ||
.---------. | | | ||
| | | | | ||
-+-_______-+--+ | | ||
| | | | | ||
-+-___|___-+--+ | | ||
| | | | | | ||
'____|____' | | | ||
| | | | ||
Intérupteur | | | ||
+---------+---o GND | ||
|
||
|
||
## Composants | ||
|
||
- Button - http://node-ardx.org/electronics-primer#pushbutton | ||
|
||
> Ferme un circuit quand on lui appuie dessus. | ||
## Documentation | ||
|
||
- Button - https://github.com/rwaldron/johnny-five/wiki/Button#usage | ||
- LED - https://github.com/rwaldron/johnny-five/wiki/Led#api | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
**Crée un serveur UDP qui émet un son lorsqu’un message est reçu.** | ||
|
||
- Branche un piezo sur la broche 9 | ||
- Utilise le module `dgram` de node pour créer un socket **udp4** | ||
- Attache ton serveur au port **1337** et écoutes les messages | ||
- Quand un message est reçu, fait sonner le piezzo | ||
|
||
## Diagramme du circuit | ||
|
||
Piezo | ||
_ | ||
|| || | ||
Pin 8 o---|| ||---o GND | ||
||_|| | ||
|
||
|
||
## Documentation | ||
|
||
- http://nodejs.org/api/dgram.html | ||
- https://github.com/rwaldron/johnny-five/blob/master/docs/piezo.md | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
**La temperature autour de vous 'as a service'.** | ||
|
||
Utilise dnode pour créer un serveur rpc qui permet à quiconque d’interroger la dernière température connue d’un capteur de température TMP36. | ||
|
||
- Branche la sonde de température à la broche **A0** | ||
- Installer dnode `npm install dnode` | ||
- Mettre en place votre serveur dnode pour écouter sur le port 1337 | ||
- Votre point de terminaison (endpoint) rpc doit exposer une fonction appelée `getTemperature` | ||
- la fonction de rappel de `getTemperature` dois retourner une température en degré **celsius** | ||
|
||
## Diagramme du circuit | ||
|
||
+5 o-----. | ||
| | ||
| | ||
__ | ||
| \ | ||
A0 o---| ) TMP36 | ||
|__ / | ||
| | ||
| | ||
GND o-----' | ||
|
||
|
||
## Composants | ||
|
||
- TMP36 - http://node-ardx.org/electronics-primer#tempsensor | ||
|
||
> Exerce une résistance variable selon la température ambiante. | ||
## Conseils | ||
|
||
- N’oubliez pas, vous travaillez toujours avec des tensions sur les broches | ||
- La valeur d’un capteur est une représentation de la tension sur la broche | ||
- Vous aurez besoin de convertir cette valeur en une lecture de température utile... | ||
- Pour créer un point de terminaison, passer à dnode un objet avec votre point de terminaison en tant que méthode | ||
- Votre point de terminaison doit prendre comme argument une fonction de rappel et de lui passer la valeur comme retour | ||
|
||
## Documentation | ||
|
||
- https://github.com/rwaldron/johnny-five/blob/master/docs/temperature-tmp36.md | ||
- dnode - https://github.com/substack/dnode | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
**Construis un bras robot controlable a distance** | ||
|
||
Utilise un potentiomètre (potard) pour controller la position d'un servomoteur. | ||
|
||
- Fixez un potentiomètre à borne **A2** | ||
- Branche un piezo sur la broche **9** | ||
- Fais tourner le servomoteur quand le potard est tourné | ||
|
||
## Diagramme du circuit | ||
|
||
Servomoteur | ||
.---. | ||
| | | | ||
-===+===- | ||
| | | | ||
| | | ||
'---' | ||
| | | | ||
| | | | ||
| | ------------------o Pin 9 | ||
| | | ||
| ----------------.---o +5 | ||
| | | ||
| Potentiomètre | | ||
GND o---.------/\/\/------. | ||
^ | ||
| | ||
| | ||
A2 o-------------- | ||
|
||
|
||
|
||
## Composants | ||
|
||
- Potentiomètre - http://node-ardx.org/electronics-primer#pot | ||
|
||
> Exerce une résistance variable selon l'angle du curseur métalique. | ||
## Documentation | ||
|
||
- Sensor - https://github.com/rwaldron/johnny-five/wiki/Sensor | ||
- Fn - https://github.com/rwaldron/johnny-five/blob/master/lib/fn.js | ||
|
||
## Conseils | ||
|
||
- Un potard est un autre cas d'utilisation de l'objet 'Sensor'... | ||
- Un potard a produit des valeurs dans une plage allant de 0 a 1023. | ||
- Un servomoteur peut généralement étre orienté dans un angle de 0 a 180°. | ||
- `five.Fn.map` peut étre utiliser pour normaliser les valeur du potard (0 - 1023) en angles pour le servomoteur (0 - 179). | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
**Fait faire la vague a un servomoteur pour toi pendant 3 secondes, s'arrêter, puis revenir a sa position centrale.** | ||
|
||
- Crée une nouvelle instance de `Servo` attaché a la broche (pin) **9** | ||
- Utilise `servo.sweep` pour le faire tourner entre 0 ° et 180 ° | ||
- Utilise `board.wait` pour appeler une fonction de rappel 'reset' au bout de **3 secondes** | ||
- La fonction de rappel 'reset' doit `stop` et `center` le servomoteur | ||
- Vérifiez la documentation pour voir comment le remettre en ligne | ||
|
||
## Base | ||
|
||
```js | ||
var five = require('johnny-five') | ||
var board = new five.Board() | ||
board.on('ready', function () { | ||
|
||
// Ta solution sera ici ! | ||
|
||
}) | ||
``` | ||
|
||
## Diagramme du circuit | ||
|
||
Servomoteur | ||
.---. | ||
| | | | ||
-===+===- | ||
| | | | ||
| | | ||
'---' | ||
| | | | ||
| | | | ||
GND o--. | .--o Broche 9 | ||
| | ||
+5 o----. | ||
|
||
|
||
|
||
## Composants | ||
|
||
- Servomoteur - http://node-ardx.org/electronics-primer#servo | ||
|
||
> Prends une impulsion cadencée et la convertis en une angle de l'axe du servomoteur. | ||
## Documentation | ||
|
||
- Servo - https://github.com/rwaldron/johnny-five/wiki/Servo#apiservomoteur | ||
- Board - https://github.com/rwaldron/johnny-five/wiki/Board#api | ||
|
||
* * * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.