dimanche 7 février 2016

Programmer l'Attiny85 avec une arduino UNO

Le Tiny AVR Programmer de chez Saperkfun est très pratique et simple d'emploi après une légère configuration comme nous l'avons décrit ici

Mais il est intéressant aussi de savoir le programmer avec juste une carte arduino un breadboard et quelques fils.

Aller je me lance. Encore une fois je n'invente rien je suis un tuto et retranscrit ici ce que je fait.

Je pars du tutoriel suivant trouvé sur hackster.io  ICI

Il y a en premier lieu toute la partie configuration arduinoUNO comme ISP (In-System Programming)

Je connecte l'arduinoUNO, je lance le soft arduino IDE. J'ouvre l'exemple ArduinoISP.

File -> Examples -> ArduinoISP

Je le téléverse dans l'arduinoUNO

J'ajoute le support du Attiny85 dans le soft arduino IDE.

J'ouvre Fichiers > Préférences   puis dans la fenêtre qui s'ouvre dans la case nommées "Additional Boards Manager URLs" je colle l'adresse suivante :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Je clique OK


Après quoi j'ouvre le gestionnaire de cartes



Ceci ouvre une fenêtre comme ceci :

Je descend jusqu'à la ligne "attiny by Davis A. Mellis". Et je clique dessus.

Voila c'est installé.

Je vérifie dans >Outil




Voilà qui est fait, il maintenant temps de passer à la partie matériel.

Le matériel nécessaire :

  • une carte arduino UNO (originale)
  • l’ATtiny85 à programmer.
  • des câbles
  • une breadboard
  • un condensateur 10µF  25 V
Je connecte l' arduino UNO avec Attiny85 en utilisant un breadboard comme ci dessous :

Arduino Uno – ATtiny85
  • 5V – Vcc
  • Gnd – Gnd
  • Pin 13 – Pin 2
  • Pin 12 – Pin 1
  • Pin 11 – Pin 0
  • Pin 10 – Reset
Un schéma plus simple qu'un long discour :


Et dans la réalité j’obtiens :



J'ajoute le condensateur de 10µF entre Resest et GND sur l'arduino UNO.

Ceci pour prévenir le reset de l'arduino UNO quand le programme est chargé sur l'Attiny85.

Comme j'utilise un condensateur électrolytique je m'assure que l'anode est sur le GND (sinon c'est mal).

Téléversement du programme sur l'Attiny85.

Nous retournons donc maintenant sur le logiciel.

>outils>type de carte  sélectionner "attiny" 

>outils>processeur>  sélectionner "attiny85"

>outils>clock  sélectionner 8 MHz (internal)


Je m'assure pour finir que l'arduino comme isp est sélectionné.

>outils>programmateur  sélectionner "arduino as isp"


Par défaut le ATtiny85 fonctionne à 1Mhz, pour le faire fonctionner à 8Mhz :

>outils>   "graver la séquence d'initialisation"

Je devrais avoir un message du type de celui ci dessous


Mais en fait j'ai ça :



Et là je sèche total

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

après quelques recherches sur le toile j'ai trouvé ceci :

http://www.lesusinesnouvelles.com/wiki/index.php?title=Microcontrolleur_ATTINY85

J'ai
donc téléversé sur l'arduino après avoir :
tout déconnecté
sélectionné type de carte "Arduino Genuino/Uno"
le port
et programateur : "parallel programmer"

le téléversement se passe normalement

je reconnecte tout comme ci dessus

lance la séquence 

>outils>   "graver la séquence d'initialisation"

et là pas de message d'erreur, juste un écran noir



je  charge maintenant le code exemple  "Blink"


Je le téléverse, et là tout semble se passer nomalement :




Maintenant il faut vérifier que cela fonctionne :

J'enlève toutes les connection et réalise le cablage suivant :

Mais là rien ne se passe

à suivre ...

eureka, j'ai compris pourquoi j'ai oublié de modifier le 13 en zéro
 à suivre































lundi 1 février 2016

Premier essai attiny85 et Tiny AVR Programmer

Ca y est le Tiny AVR Programmer de chez Sparkfun est arrivé, les attiny 85 sont arrivés.

Let's go ......



Tout d'abord j'ai suivi le tutoriel de Spakfun,  celui CI

Comme je suis pour l'instant sous linux ou mac je suis passé directement à la page ICI 

Sur l'ordinateur Ubuntu le logiciel arduino est une version 1.0.X j'ai donc chargé le fichier nécessaire ATtiny for Arduino 1.0.x 

J'ai voulu aussi tester sur le mac ou est chargée une version 1.6.X j'ai donc chargé le fichier nécessaire ATtiny for Arduino 1.6.x

J'ai décompressé et déplacé le dossier "attiny" dans le dossier /arduino/hardware, j'ai d'ailleurs créé ce dossier hardware qui n’existait pas.

Puis j'ai lancé arduino, menu type de carte : ATtiny

Puis processeur : AtTiny85

J'utilise la puce suivante :



Le point suivant est très important d'après le site car il y a risque de destruction de la puce

Clock : 1 MHz

Apparemment mettre plus ralenti à 8 et détériore à 20.

Je connecte le Programmer et charge le sketch suivant :

je le copie d'abord dans la fenêtre du soft arduino, puis clique sur téléverser.

int blinkPin = 0;

void setup()
{
  pinMode(blinkPin, OUTPUT);
}

void loop()
{
  digitalWrite(blinkPin, HIGH);
  delay(500);
  digitalWrite(blinkPin, LOW);
  delay(500);
}

Le résultat vous le voyez sur la vidéo du début de l'article, donc ça fonctionne.

Les prochaines étapes :

1 - Tenter la même programation avec diverses cartes arduino uno, arduino nano, arduino mega, arduino leonardo

2 - essayer un projet simple, attiny85 seule et servo

3 - essayer attiny85 dht22 et transmission sans fil vers RaspberryPi pour usage Gladys (pour remplacer la liaison série actuelle) avec les composants suivants :

Émetteur récepteur NRF24L01 + 2,4 GHz :






et transmetteur Wi-Fi :





Et pour finir 433Mhz RF Transmetteur Module + Kit Récepteur pour Arduino ARM MCU WL TE122 :