Overblog
Suivre ce blog Administration + Créer mon blog
19 septembre 2013 4 19 /09 /septembre /2013 12:31

L'utilisation d'un Arduino Uno comme ISP (In-System Programmer) est relativement bien documentée.

Il en va tout autrement concernant l'utilisation d'un Arduino Leonardo. Cette carte est très différente quant à sa gestion du port USB et au branchement de l'ATTiny.

Fort heureusement un bloggueur a décrit le processus en détails.

J'en propose ici une version francisée et un peu complétée, peut-être plus accessible aux makers francophones:

 

Tout d'abord munissez-vous d'un environnement de développement Arduino récent.

1) Comme indiqué dans le schéma ci-dessous, connecter les broches MISO/MOSI et SCK de l'ATTiny sur les pins correspondants du connecteur ICSP de l'Arduino.

Connecter la broche Reset de l'ATTiny sur la broche 10 de l'Arduino.

 

http://petervanhoyweghen.files.wordpress.com/2012/09/leo_attiny851.png?w=249&h=300

 

2) Ouvrir l'IDE Arduino et charger le sketch "Arduino ISP".

Changer la ligne:

#define RESET SS

en:

#define RESET 10

 

Cela définit la pin 10 comme pin de Reset de l'ATTiny.

Sauvegarder ce sketch sous le nom "Arduino ISP (Leonardo)"

3) Compiler et uploader ce sketch dans l'Arduino.

 

4) Dans l'IDE ouvrir le moniteur série et s'assurer que le baud rate n'est pas égal à 1200bps. Refermer le moniteur série. Cette étape enlève le magic baud rate du port série, qui causerait des auto-resets unintentionnels.

 

5a) Sur Linux (et probablement aussi sur Mac), vous pouvez sumplement aller dans le menu "Tools > Programmer" et sélectionner le programmateur "Arduino as ISP". L'Arduino Leonardo est maintenant prêt à être utilisé en tant qu'ISP.

 

5b) Sur Windows les choses sont un peu plus compliquées. Quand on utilise l'Arduino en tant qu'ISP, l'IDE utilise AVRDude avec le protocole stk500v1. Avec l'IDE Arduino 1.0.2, 1.0.3 et probablement d'autres versions, cela ne fonctionne pas et produit le message d'erreur suivant:

avrdude.exe: Send: 0 [30]   [20]

avrdude.exe: Send: 0 [30]   [20]

avrdude.exe: Send: 0 [30]   [20]

avrdude.exe: Recv:

avrdude.exe: stk500_getsync(): not in sync: resp=0x00


Une solution temporaire (mais qui fonctionne parfaitement) a été suggérée ici. Il s'agit de définir un programmateur qui utilise le protocole "Arduino" au lieu de "stk500v1". 

Pour ce faire, créer un dossier "hardware\leofix" dans votre dossier "carnet de croquis" (sketchbook). Dans ce dossier, créer un fichier programmers.txt avec le contenu suivant:

 

arduinoispleo.name=Arduino as ISP (Leonardo)

arduinoispleo.communication=serial

arduinoispleo.protocol=arduino

arduinoispleo.speed=19200

 

Après redémarrage de l'IDE, vous aurez une entrée "Arduino as ISP (Leonardo)" dans le menu "Outils / Programmateur". L'explication technique détaillée du fix est donnée dans la version originale de l'article.

 

6) Il est maintenant temps de tester le programmateur. La suite de cet article s'inspire de celui-ci, qui m'a été fort utile pour configurer l'IDE Arduino pour l'ATTiny. En effet les ATTiny n'apparaissent pas par défaut dans le menu des cartes disponibles.

Il va falloir télécharger le fichier master.zip

Décompresser ce fichier. Il contient un dossier atttiny-master contenant un dossier attiny.

Créer un dossier hardware dans votre dossier "carnet de croquis", s'il n'existe pas déjà.

Y copier le dossier attiny (pas le dossier attiny-master!). Vous devriez maintenant avoir une structure de dossiers du genre Documents\Arduino\hardware\attiny contenant le dossier atttiny.

Redémarrer l'IDE Arduino. Vous devriez maintenant avoir des entrées ATTiny dans le menu "Outils / Type de carte"

 

7) Connecter une LED à travers une résistance de 220Ω entre la broche 2 (Pin 3) de l'ATTiny et la masse.

http://hlt.media.mit.edu/wp-content/uploads/2011/10/ATtiny45-85.png

 

8) Charger le sketch d'exemple "Blink".

Modifier la ligne:

int led = 13;

en

int led = 3; 

 

9) Dans le menu Outils/Type de carte, choisir le modèle d'ATTiny que vous utilisez.

Si vous souhaitez changer la fréquence d'horloge (1Mhz par défaut), cliquer sur Outils/Graver la séquence d'initialisation. Cela va modifier les fusibles de l'ATTiny selon vos réglages de type de carte.

Dans le menu Outils/Programmateur choisir "Arduino as ISP (Leonardo)".

Compiler et uploader le sketch.

Vous aurez ce message d'erreur, qui est normal!

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny8

 

La LED de l'ATTiny doit maintenant clignotter!

 

FAQ:

*La LED ne clignotte pas: 

Branchez-là sur la broche 3 de l'Arduino Leonardo. Si elle clignotte c'est que vous avez oublié de sélectionner le programmateur "Arduino as ISP (Leonardo)" et c'est le Leonardo qui a été programmé à la place. Re-sélectionner le programmateur "AVRISP mkII", et re-uploader "Arduino ISP (Leonardo)", puis recommencer la procédure au point 6).

 

Partager cet article
Repost0
24 juin 2013 1 24 /06 /juin /2013 16:51

Le Mycophone a bien marché à la fête de l'école.

mycophone 20130623 144552

Les enfants ont apprécié, même si certains n'osaient pas essayer au début.

Les parents ont souvent été surpris et j'ai eu quelques discussions intéressantes avec certains d'entre eux.

Je pense remettre ça l'an prochain, mais avec une nouvelle version du logiciel sur PC. Scratch est un peu trop rudimentaire pour ce genre d'application. Je pense la ré-écrire en HTML5. Ca me fera un bon exercice 

Partager cet article
Repost0
9 avril 2013 2 09 /04 /avril /2013 22:20

C'est lors du Jardin Numérique #2 que j'ai découvert le projet Makey Makey.

La carte Makey-Makey est en fait un Arduino Leonardo customisé et les inventeurs ont eu la bonne idée de rendre leur logiciel open-source. Ce sont des entrées à haute impédance. La carte est vue comme un clavier et une souris USB.

 

J'ai eu envie d'essayer la chose. Plutôt qu'acheter une Makey-Makey à 50 euros j'ai acheté un Arduino Leonardo à 25 Euros et je me suis fait un shield Makey-Makey, en quelque sorte.

L'idée est de faire un instrument de musique en utilisant de vrais champignons comme clavier!

 

Le shield Makey-Makey est essentiellement constitué de résistances de pull-up de 20 MOhms. (2 résistances de 10MOhms en série sur chaque entrée). Il y a aussi quelques LED témoins.

Voilà ce que ça donne sur ma plaque de prototypage:

 

2013 04 09 5052

 

C'est artisanal mais ça marche. C'était la première fois que je faisais un circuit double face avec ce genre de plaque!

2013 04 09 5053

 

Ensuite il restait à faire le clavier.

Le voilà à l'endroit. Les pointes vont servir à fixer les champignons ainsi que la clémentine qui servira à changer d'instrument. Les punaises sont les embases des boutons de sélection. On remarque aussi le plan de masse ainsi que le bracelet lui aussi relié à la masse, qui sert à pouvoir jouer avec les deux mains.

2013 04 09 5049

 

Le câblage du clavier:

2013 04 09 5050

 

Restait à faire le logiciel côté PC.

J'ai découvert récemment le langage Scratch, un langage graphique développé par des ingénieurs du MIT pour aider à l'enseignement de la programmation. C'est vraiment sympa et facile d'accès. Mon fils de 11 ans adore (il est en train de se faire un casse-brique, avec un peu d'aide tout de même).

 

J'ai donc développé un logiciel d'éveil musical qui permet soit de jouer librerment, soit d'apprendre une comptine parmi 4 possibles. La gamme est limitée à la gamme de Do majeur sur une octave.

 scratch

Les enfants adorent.

Une petite démo avec ma fille au clavier:

 

 


 

 

Ca va faire un tabac à la fête de l'école!

Partager cet article
Repost0
26 février 2013 2 26 /02 /février /2013 15:28

J'ai encore eu une idée folle dans un moment d'ennui au boulot: 

Construire une machine de Rube-Goldberg avec les différents jouets et objets de récupération qui traînent à la maison.

Sur le thème de l'aviation et pilotée par un Arduino (Leonardo en l'occurence).

J'ai profité d'une pause déjeuner pour gribouiller une esquisse:

arduiRG1

L'idée a un peu évolué depuis suite à différents tests de faisabilité.

*Au départ il n'y a pas d'ascenceur mais une rampe sur laquelle est positionné un camion de pompier.

*En fin de rampe un contact déclenche l'allumage d'une lumière (un DC3 lumineux).

*Mais comme l'avion solaire n'est pas assez puissant pour avancer avec cette lumière, on va le faire tracter par un treuil jusqu'à l'hélicoptère.

*L'hélicoptère radiocommandé décolle (guidé par un systèmes à base de fils de nylon tendus) et à une certaine hauteur, il libère une bille qui dévale alors une rampe en spirale.

*En bas de la rampe, la bille déclenche l'avion radio-commandé pour bébé qui va avancer jusqu'au bout de la piste.

*Quand il atteind le bout de la piste, l'avion en attente de décollage décolle (il décolle vraiment via un système de guides à base de fils en nylon).

*En fin de course un mécanisme arrête l'avion et l'empêche de revenir en arrière.

 

L'Arduino est là pour coordonner et piloter le tout (via un mélange d'entrées/sorties numériques et servos qui à leur tour vont piloter les radio-commandes IR, Radio et Infra-rouge des différents jouets).

 

Y'a plus qu'à continuer les tests des différents modules .

Partager cet article
Repost0
4 mai 2012 5 04 /05 /mai /2012 23:14

J'ai créé un tutoriel expliquant comment développer pour l'Arduino avec AVR Studio 5.1.

Ce tutoriel est une traduction et adaptation de cet excellent tutoriel en anglais.

Il s'adresse à ceux qui comme moi trouvent l'environnement de développement Arduino un peu trop rudimentaire et qui souhaiteraient profiter de tous les avantages d'un vrai IDE avec leur Arduino.

 

Il est disponible ici.

 
Partager cet article
Repost0