Arduino ou comment s'en passer par transfert

Toutes les discussions sur l'Arduino !

Modérateur : MOD

Répondre
Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Arduino ou comment s'en passer par transfert

Message par HDE5962 » jeu. 30 janv. 2014, 14:54

Bonjour à tous ceux qui rejoindront ce fil.

il est essentiellement basé sur le transfert des programmes réalisés sous Arduino vers les microcontroleurs de type Attinys 44/84 et 45/85 ou autres.

Je possède un Arduino méga2560 avec le logiciel Arduino version 1.5.4.
Si l'un de vous peut tester avec son Arduino Uno et une autre version et ainsi nous faire partager son expérience, il est bien évidemment le bienvenu sur ce fil.

Je ne peux garantir que les expérimentations faites sous la version 1.5.4 avec le méga2560.

Cousin Hub
Le train de la vie file.

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Arduino ou comment s'en passer

Message par HDE5962 » jeu. 30 janv. 2014, 15:14

Nous avons vu et continuerons à voir avec tous les fils présent sur ce forum en rapport avec l'Arduino, comment réaliser des programmes et les exécuter en gardant L'Arduino comme support.
Mais le but est de pouvoir les implanter sur nos réseaux de manières permanentes et pour un prix minime.
Ce qui, n'est pas le cas, si nous devons acheter une carte Arduino pour chaque programme.
A l'origine, il n'a pas été concu dans ce but, mais plus dans l'optique de developper des programmes, d'expérimenter sur plaque d'expérimentation électronique (plaque d'essais) et dans la dernière étape d'effectuer un transfer sur des plaques indépendantes comme par exemple des shields spécifiques ou circuit électronique dédié à une application.


Nous avons vu comment installer et programmer une carte Arduino, mais ce qui nous intéresse plus particulièrement, ce sont les microprocesseurs Attiny . Ces petites bêtes à huit ou 16 pattes carrées ou rectangulaires qui vont nous permettre de réaliser des modules électroniques facilement logeable dans nos réseaux.
Nous allons expliquer dans ce fil, le descriptif aussi détaillé que possible pour réaliser le transfert et se passer au final de la carte Arduino qui nous servira pour programmer d'autre modules que nous transfererons sur des microcontroleurs dédiés à une application et pour une modique somme.

Cousin Hub
Modifié en dernier par HDE5962 le ven. 31 janv. 2014, 10:21, modifié 2 fois.
Le train de la vie file.

Avatar du membre
Class66240
Bavard
Messages : 65
Enregistré le : sam. 03 oct. 2009, 01:13
Localisation : Paris
Âge : 65

Re: Arduino ou comment s'en passer par transfert

Message par Class66240 » jeu. 30 janv. 2014, 17:20

Bonjour,
je suis sur ce même projet de transférer les appli testées sur Arduino vers un ATTiny45. Je vais démarrer l'essai avec le programme de chenillard avec 6 leds qui s'allument successivement (balisage de voie en travaux). Ce programme n'est pas de moi... Je ne me souviens plus ou je l'ai trouvé !!!
Le test doit vérifier que l'on peut utiliser les six sorties pour allumer les leds.
J'ai le schéma pour transformer l'arduino en programmateur de l'ATTiny45.

C'est en cours et je vous informerai des résultats.
Ci-joint quelques infos sur l'utilisation des pins de l'ATTiny45.

Code : Tout sélectionner

/*
         +-\/-+
A0 PB5  1|    |8  Vcc
A3 PB3  2|    |7  PB2 D0 A1
A2 PB4  3|    |6  PB1 D1
   GND  4|    |5  PB0 D2
         +----+        
*/
#define LED0 PB0
#define LED1 PB1
#define LED2 PB2
#define LED3 PB3
#define LED4 PB4
#define LED5 PB5

void setup() {

  pinMode(LED0,OUTPUT);
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(LED4,OUTPUT);
  pinMode(LED5,OUTPUT);

etc...
Programme pour l'Arduino, à modifier pour l'ATTiny 45.

Code : Tout sélectionner

/*
Ce programme réalise un chenillard.
Il fait flasher successivement six LED oranges reliées aux sorties 4 à 9
Puis il réalise une pause de 500 millisecondes avant de recommencer
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led13 = 13;

// Initialisation des lignes 4 à 9 en sortie
void setup () {

// initialisation de la ligne entrée-sortie numérique 13
  pinMode(led13, OUTPUT);

  pinMode (4, OUTPUT) ;
  pinMode (5, OUTPUT) ;
  pinMode (6, OUTPUT) ;
  pinMode (7, OUTPUT) ;
  pinMode (8, OUTPUT) ;
  pinMode (9, OUTPUT) ;
}

// Fonction loop
void loop () {
  // Extinction de toutes les LED au départ du programme
    digitalWrite (led13, LOW) ; // éteint la LED sur broche 13
  for (byte i = 4 ; i <= 9 ; i++) {
    digitalWrite (i, LOW) ; // éteint la LED reliée à la broche i
  }
  // led13 ON
     digitalWrite (led13, HIGH) ; // allume la LED sur broche 13
  // Boucle pour faire flasher les LED
  for (byte i = 4 ; i <= 9 ; i++) {
    digitalWrite (i, HIGH) ; // allume la LED sur broche i
    delay (50) ; // durée du flash 50 millisecondes
    digitalWrite (i, LOW) ; // éteint la LED
  }
  digitalWrite (led13, LOW) ; // éteint la LED sur broche 13
  // délai de 500 millisecondes
  delay (1000) ;
  
  // Recommence la séquence
}
Réseau N - MS Minitrix

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » jeu. 30 janv. 2014, 21:05

Bonjour class66240,

Précise sur quel Arduino tu es et en quelle version de logiciel, car selon la version, tu dois intégrer un condensateur ou pas.

si tu le met sur un Attiny 85 donc huit Broches, tu auras un problème avec la pin RESET.

une broche 5V
Une broche GND
Une broche RESET

donc il ne reste plus que 5 Broches, on peut programmer en utilisant la broche RESET mais avec précaution et pour l'instant je n'ai pas testé.

Cousin Hub
Modifié en dernier par HDE5962 le jeu. 30 janv. 2014, 22:08, modifié 1 fois.
Le train de la vie file.

Guillaume22
Papotier
Messages : 145
Enregistré le : dim. 29 sept. 2013, 09:20

Re: Arduino ou comment s'en passer par transfert

Message par Guillaume22 » jeu. 30 janv. 2014, 21:27

arduino uno et leonardo like : pas de souci.
Version arduino 1.2 ou 1.3 je ne sais plus laquelle debian a.
Le condensateur n'est plus nécessaire.
N'oublions pas aussi tout simplement la puce atmega, le coeur simple de l'arduino.

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » jeu. 30 janv. 2014, 22:13

Tout a fait Guillaume, c'est pourquoi j'ai mis autre dans mon premier post.
seulement la démarche est la même quelle que soit le microcontrôleur pourvu que nous sachions exactement ou se trouve les broches.

Après le prix et l'optimisation de la taille par rapport à l'application fait le reste.

Cousin Hub
Le train de la vie file.

Guillaume22
Papotier
Messages : 145
Enregistré le : dim. 29 sept. 2013, 09:20

Re: Arduino ou comment s'en passer par transfert

Message par Guillaume22 » ven. 31 janv. 2014, 09:16

Je lis trop vite et ai oublié de lire ce dernier mot ;)
On veut le montage !

Avatar du membre
Arduino
Prolixe
Messages : 1699
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Arduino ou comment s'en passer par transfert

Message par Arduino » ven. 31 janv. 2014, 10:17

Bonjour cousin Hub et Guillaume,

Ce nouveau forum est une belle initiative ; de toute façon, nous avions dans l'équipe, l'idée de développer du "Arduino sans Arduino". :lol: C'est donc ici que cela commence.

Je viens d'acheter le livre de Tavernier (Applications avancées) et son chapitre 10 est entièrement consacré à cela. Ce n'est pas si compliqué et il faut le faire savoir aux Arduineurs. En effet, les programmes, publiés sur nos forums, de feux tricolores, chenillard, enseigne ou bien soudure à arc, peuvent tout à fait contenir dans un ATtiny (voire même plusieurs programmes à la fois, dans ce cas, c'est le nombre de pattes de sorties qui limite) ; on peut alors les transférer car le prix de ces puces et des composants qui vont autour est tout à fait minime.

Bonne continuation à tous les deux.

Christian

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » ven. 31 janv. 2014, 10:48

Vous aurez le droit à l'image ce soir ou ce WE.

Pour ma part, j'ai déja transferer ma gestion des 4 feux tricolores+ enseigne+ feux de travaux (chenillard) sur un Attiny 84 à 14 broches moins 3 broches pour l'alim et le reset. je l'ai alimenté avec une pile 9 Volts il a fonctionné pendant environ 2 jours non stop avant que la pile ne descende en dessous des 5 volts et que je retire le régulateur de tension 7805 que j'avais intercalé pour proteger l'Attiny qui fonctionne au maximum avec 5V5.
j'ai branché un transformateur d'Arduino 5V sur le montage électronique que j'ai fait et il tourne depuis lundi sans aucun souci, pas de chauffe, pas de bug ( 24h/24).

Donc la fiabilité des microcontroleurs est excellente. j'ai fais egalement des essais successifs sur le même microcontroleur avec des programmes différents et tests.
Aucun problème pour reprogrammer un Attiny déjà programmé.

De même pour la carte Arduino, je suis passé du mode transfert de programme au mode developpement sans aucune difficulté apparente, juste une logique de vérification de l'onglet outils pour vérifier sur quel support le programme doit être envoyé, soit vers l'Arduino soit vers L'Atttiny.

Dans la foulée, à force de brancher/ débrancher les liaisons sur la plaque de test pour transferer puis tester l'Attinny et refaire le montage pour recommencer a chaque fois, j'en ai eu marre, donc j'ai fait un montage électronique sur un circuit imprimé avec un support de microcontroleur et tous les fils qui vont avec pour avoir une plaque de transfert directement utilisable.

ce montage s'adapte quelque soit la carte puisque seule la position des fils sur les sortie de l'Arduino selon le modêle doit être respectée. sur l'Attiny les branchements sont les mêmes.

Même les lecteurs ne maîtrisant pas l'électronique, peuvent faire cette plaque et le résultat est surprenant.

Cousin Hub
Modifié en dernier par HDE5962 le ven. 31 janv. 2014, 20:06, modifié 1 fois.
Le train de la vie file.

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » ven. 31 janv. 2014, 11:23

class66240 a écrit :Bonjour,
je suis sur ce même projet de transférer les appli testées sur Arduino vers un ATTiny45. Je vais démarrer l'essai avec le programme de chenillard avec 6 leds qui s'allument successivement (balisage de voie en travaux). Ce programme n'est pas de moi... Je ne me souviens plus ou je l'ai trouvé !!!
Le test doit vérifier que l'on peut utiliser les six sorties pour allumer les leds.
J'ai le schéma pour transformer l'arduino en programmateur de l'ATTiny45.

C'est en cours et je vous informerai des résultats.
Ci-joint quelques infos sur l'utilisation des pins de l'ATTiny45.

Code : Tout sélectionner

/*
         +-\/-+
A0 PB5  1|    |8  Vcc
A3 PB3  2|    |7  PB2 D0 A1
A2 PB4  3|    |6  PB1 D1
   GND  4|    |5  PB0 D2
         +----+        
*/
#define LED0 PB0
#define LED1 PB1
#define LED2 PB2
#define LED3 PB3
#define LED4 PB4
#define LED5 PB5 

void setup() {

  pinMode(LED0,OUTPUT);
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(LED4,OUTPUT);
  pinMode(LED5,OUTPUT);

etc...
Programme pour l'Arduino, à modifier pour l'ATTiny 45.

Code : Tout sélectionner

/*
Ce programme réalise un chenillard.
Il fait flasher successivement six LED oranges reliées aux sorties 4 à 9
Puis il réalise une pause de 500 millisecondes avant de recommencer
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led13 = 13;

// Initialisation des lignes 4 à 9 en sortie
void setup () {

// initialisation de la ligne entrée-sortie numérique 13
  pinMode(led13, OUTPUT);

  pinMode (4, OUTPUT) ;
  pinMode (5, OUTPUT) ;
  pinMode (6, OUTPUT) ;
  pinMode (7, OUTPUT) ;
  pinMode (8, OUTPUT) ;
  pinMode (9, OUTPUT) ;
}

// Fonction loop
void loop () {
  // Extinction de toutes les LED au départ du programme
    digitalWrite (led13, LOW) ; // éteint la LED sur broche 13
  for (byte i = 4 ; i <= 9 ; i++) {
    digitalWrite (i, LOW) ; // éteint la LED reliée à la broche i
  }
  // led13 ON
     digitalWrite (led13, HIGH) ; // allume la LED sur broche 13
  // Boucle pour faire flasher les LED
  for (byte i = 4 ; i <= 9 ; i++) {
    digitalWrite (i, HIGH) ; // allume la LED sur broche i
    delay (50) ; // durée du flash 50 millisecondes
    digitalWrite (i, LOW) ; // éteint la LED
  }
  digitalWrite (led13, LOW) ; // éteint la LED sur broche 13
  // délai de 500 millisecondes
  delay (1000) ;
  
  // Recommence la séquence
}
Quelques conseils pour le transfert

#define LED5 PB5 //atttention Broche RESET de l'Attiny 85

il faut revoir tes instructions comportant le numéro de sortie
exemple la led13 sur la pin 13 ne fonctionnera pas, la mettre sur la pin 0
pinMode(0,OUTPUT);

De même les boucles For avec une incrementation de 4 à 9 est à revoir.
L'Attiny 85 à des broches de pin 0 à Pin 4 + Pin RESET + VCC + GND (8 broches)

for (byte i =0 ; i <= 4 ; i++) {
digitalWrite (i, LOW) ; // éteint la LED reliée à la broche i

Normalement pour ton chenillard avec 5 leds reliés tu peux prendre un Attiny 85 en utilisant les broches 5,6,7,2,3 de celui-ci qui correspondent respectivement aux pins 0,1,2,3,4 dans la programmation.
Tu laisses tomber les broches 1,4 et 8 respectivement RESET,GND et VCC.

ton programme tel qu'il est au dessus ne fonctionnera pas. il ne plantera pas sous Arduino et génerera des erreurs lors du transfert ou alors si il passe le transfert tu n'auras pas le fonctionnement que tu souhaites.

je te donnerai si tu as besoins ton programme de chenillard avec les parametres que tu veux, de delai de temps d'allumage ou de séquence. tu peux par exemple ajouter une séquence d'inversion de sens ou de clignotement de l'ensemble ou fixe selon ton scénario.

Pour moi,pas de souci pour réaliser le programme adapté si tu as besoin.
De même pour te faire le plan du montage électronique ou il ne te restera plus qu'a suivre le schéma. Rien de bien compliquer si tu sais utiliser un fer à souder.

Cousin Hub
Le train de la vie file.

Avatar du membre
likiki
Causant
Messages : 296
Enregistré le : dim. 29 avr. 2012, 15:21
Echelle pratiquée : H0 3R
Prénom : Christian
Site Internet : http://passionnement.forumactif.org
Localisation : Corbeil Essonne
Âge : 52

Re: Arduino ou comment s'en passer par transfert

Message par likiki » ven. 31 janv. 2014, 18:05

HDE5962 a écrit :Dans la foulée, à force de brancher/ débrancher les liaisons sur la plaque de test pour transferer puis tester l'Attinny et refaire le montage pour recommencer a chaque fois, j'en ai eu marre, donc j'ai fait un montage électronique sur un circuit imprimé avec un support de microcontroleur et tous les fils qui vont avec pour avoir une plaque de transfert directement utilisable.

ce montage s'adapte quelque soit la carte puisque seule la position des fils sur les sortie de l'Arduino selon le modêle doit être respectée. sur l'Attiny les branchements sont les mêmes.

Même les lecteurs ne maîtrisant pas l'électronique, peuvent faire cette plaque et le résultat est surprenant.

Cousin Hub
Hummm :gne: un petit plan de ce montage ?

:roll:
Cordialement,

Christian.

Guillaume22
Papotier
Messages : 145
Enregistré le : dim. 29 sept. 2013, 09:20

Re: Arduino ou comment s'en passer par transfert

Message par Guillaume22 » ven. 31 janv. 2014, 18:58

Il y a restriction de l'information
Heureusement que je la connais ;)

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » ven. 31 janv. 2014, 19:25

Voila, vous avez été sage donc vous avez droit à une image.

Celle- ci est le schéma que j'ai réalisé avant le montage réel sur plaque électronique.

Montage pour transférer de l'Arduino (quelque soit le type) vers un Attiny 84

Image

je vous fais une photo de la vraie plaque car on ne voit pas le support sur l'image.

Cousin Hub
Fichiers joints
plaque de transfert sur attiny 84 (16 broches).jpg
plaque de transfert sur attiny 84 (16 broches).jpg (51.36 Kio) Vu 6534 fois
Modifié en dernier par HDE5962 le ven. 31 janv. 2014, 19:34, modifié 1 fois.
Le train de la vie file.

Guillaume22
Papotier
Messages : 145
Enregistré le : dim. 29 sept. 2013, 09:20

Re: Arduino ou comment s'en passer par transfert

Message par Guillaume22 » ven. 31 janv. 2014, 19:34

Les LED c'est pour vérifier le bon transfert ou non du programme ?
Je n'en ai jamais mis pour ma part.

Avatar du membre
HDE5962
Disert
Messages : 487
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : HO et de cordes
Prénom : Hubert
Localisation : Malakoff par obligation et Schti par naissance
Âge : 56

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » ven. 31 janv. 2014, 19:39

oui les leds servent à voir :
la led verte clignote légèrement pour signaler que l'Attiny est sous contrôle de l'arduino.
La led Orange pour le contrôle du transfert des données.
La led Rouge pour la détection des erreurs.
Elles ne sont absolument pas obligatoire mais cela rassure de voir que tout fonctionne. :D

Cousin Hub
Le train de la vie file.

Répondre