LOCODUINO

Parlons Arduino => Vos projets => Discussion démarrée par: CATPLUS le décembre 14, 2016, 10:09:03 am

Titre: Utilisation d'ATTiny
Posté par: CATPLUS le décembre 14, 2016, 10:09:03 am
Bonjour
Je voudrais faire le montage de Rudys (voir le sujet)

https://rudysmodelrailway.wordpress.com/2015/10/15/use-an-attiny-with-usb-as-a-dcc-function-decoder/

Je ne trouve pas le fichier *.ino pour la programmation.
Quelqu'un peut-il m'aider?
Cordialement
Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 14, 2016, 05:56:08 pm
Bonjour,
sauf erreur, un ATTiny n'est pas un Arduino et faute d'un bootloader ne peut être programmé par l'IDE d'Arduino (mais je ne sais pas tout)
Question encombrement, l'Arduino pro mini n'est pas mal et là, on a les sketches.
A connecter au PC le temps de la programmation avec un adaptateur RS232 USB (FTDI ...)
A interfacer ensuite avec un opto 6N135 et alimenter par le DCC mais je crois qu'on en a parlé dans ces colonnes ...
Voir également la library :
https://github.com/MynaBay/DCC_Decoder
et les réalisations :
http://model-railroad-hobbyist.com/node/24316
http://model-railroad-hobbyist.com/node/20739
http://model-railroad-hobbyist.com/node/19446 -> schéma qu'on trouve reproduit de nombreuses fois
http://model-railroad-hobbyist.com/node/19775

Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le décembre 15, 2016, 02:17:31 pm
Bonjour
Merci pour ta réponse. Je connaissais les posts que tu as sélectionné (il est toujours bon de faire un rappel)
J'ai réalisé ces montages
Il semble que ma question n'était pas conforme à mes attentes.
Je souhaite faire le montage  précédent  pour plusieurs raisons
1 Fonctionnement en dcc
2 le nombre de sorties est limité (pour faire fonctionner 1 led, ou un relais) et surtout petit encombrement
 J'avais fait des petits modules genre compresseur de frigo avec des 555 et je souhaitai les faire démarer avec ce montage le coût est dérisoir par rapport à un décodeur.
3 programmation aisé par le biais d'un arduino

         https://www.indiegogo.com/projects/attiny-isp-shield#/
         http://www.semageek.com/tuto-programmation-des-attiny45-avec-un-arduino/

Ma préoccupation comment  programmer le ATTiny en mode dcc
Merci
Cordialement

Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 15, 2016, 06:45:54 pm
Merci d'avoir complété mon information !
Et probablement en intéressera plus d'un pour réaliser des minis décodeurs.

Sur cette page, https://rudysmodelrailway.wordpress.com/software/
en suivant le lien :
Arduino DCC, S88, and more Download link
on récupère un zip qui contient un sketch qui concerne un Attiny. Est ce pertinent ?

comment ajoute-t-on les Attiny à la liste des cartes Arduino dans l'IDE : il semble que c'est là via un des liens fournis :
https://codeload.github.com/damellis/attiny/zip/master
merci pour les liens pour la programmation (aisée ?)
Titre: Re : Re : Utilisation d'ATTiny
Posté par: patrick le décembre 15, 2016, 10:37:29 pm
Petite utilisation maison d'un ATTiny pour jeu de lumières... https://4.bp.blogspot.com/-2ImM1FXzQp4/V_lv_mAlbfI/AAAAAAAAA3Q/nWcVPA-YRnoM7rTvyBL_QKZjFj1red27ACLcB/s1600/premier%2Bpcb%2Bcomposants.jpg (https://4.bp.blogspot.com/-2ImM1FXzQp4/V_lv_mAlbfI/AAAAAAAAA3Q/nWcVPA-YRnoM7rTvyBL_QKZjFj1red27ACLcB/s1600/premier%2Bpcb%2Bcomposants.jpg) Certe, le résultat est quasiment aussi gros qu'un Arduino Mini, mais c'est fait maison  ;)

Ma préoccupation comment  programmer le ATTiny en mode dcc

Que veux-tu dire par: programmer le ATTiny en mode dcc ?
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le décembre 16, 2016, 07:46:23 am
Bonjour
Quand tu regarde la vidéo et le titre parle de lui même

https://rudysmodelrailway.wordpress.com/2015/10/15/use-an-attiny-with-usb-as-a-dcc-function-decoder/

il programme le ATTiny avec un numéro DCC, je ne trouve pas le programme pour faire la même chose
IL y a un raccourcis https://app.box.com/s/nekqcwvfc3z11imc1ksxr6htroenxjrs
mais impossible de charger
Cordialement

Titre: Re : Utilisation d'ATTiny
Posté par: patrick le décembre 16, 2016, 02:52:42 pm
Salut,

Ok je comprends ce que tu veux dire: tu veux donner une adresse au décodeur et non pas programmer les CV du décodeur en utilisant le bus DCC tel que tu pourrais le faire sur un réseau...

Quoiqu'il en soit, si tu n'arrives pas à télécharger les fichiers, tu peux trouver la librairie NMRA DCC à d'autres endroits, en particulier ici http://mrrwa.org/download/ (http://mrrwa.org/download/). Dans les exemples fournis avec la librairie tu trouveras un fichier DDC_Decoder.ino ou DCC_AccessoryDecoder.ino  ou un nom équivalent. Je n'ai pas chargé le fichier ZIP pour vérifier, mais en général, toutes les versions sont à peu près faites de la même manière...

Ensuite, une fois la librairie installée, pour donner une adresse à ton décodeur, tu devrais trouver dans le programme d'exemple, une structure avec un champs DCC_Address ou équivalent. Il te suffit de renseigner ce champs avec l'adresse qui t'intéresse et de compiler le programme. Ca ne devrait pas être plus compliqué que cela...

Remarque: certaines librairies renseignent l'adresse du décodeur sur 2 octets différents plutôt qu'avec un seul entier/valeur. Il faut bien vérifier lequel des deux octets est celui de poids fort et celui de poids faible. Sinon, en inversant les deux valeurs, tu crées une adresse différente.

Si tu as encore des difficultés, je pourrai essayer de poster une réponse plus détaillée dans la soirée ou ce week-end.

Patrick
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le décembre 16, 2016, 03:47:36 pm
Bonjour
Merci
 
Tu as tout à fait compris ma requête, c'est exactement ce que cherchais (oui je souhaite donner une adresse DCC à l'ATTiny et en sortie lui attribuer une tache, led, relais, etc....)

Donc je vais suivre tes recommandations et je vous ferais part de mes tests.

Cordialement
Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 16, 2016, 05:35:00 pm
Pour l'instant, cela dépasse mes compétences mais dans le lien de mon précédent message il y a le fichier zip correspondant au raccourci https://app.box.com/s/nekqcwvfc3z11imc1ksxr6htroenxjrs
Dans ce fichier Arduino_DCC_S88 inaccessible par le raccourci, il y a le sketch RB_DCC_Decoder_Function_ATtiny.ino ci-dessous
Est-ce que cela permet de programmer un Attiny ? Je vois que l'adresse DCC est en dur. Merci pour vos précisions.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DCC Function Decoder
// Author: Ruud Boer - October 2015
// This sketch turns an Arduino into a DCC function decoder for F0 - F12
// Output pins used: 3-19 (14-19 = A0-A5). Pin is HIGH when Function is ON.
// The DCC signal is fed to pin 2 (=Interrupt 0).
// Optocoupler schematics for conversion of DCC - 5V: www.rudysmodelrailway.wordpress.com/software
// Many thanks to www.mynabay.com for publishing their DCC monitor and -decoder code.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORTANT: GOTO lines 15 - 28 to configure some data!
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int decoderAddress = 1830; // This is the decoder address, change into the number you want.
#define F0_pin 1 // Define the output pin for every Function number in use
#define F0_pin2 3 // 2nd pin for same function is possible. Can use forward / reverse direction ... see line 97.
#define F1_pin 0 // Available pin numbers: 0,1,3,4,5
#define F2_pin 0
#define F3_pin 0
#define F4_pin 0
#define F5_pin 0
#define F6_pin 0
#define F7_pin 0
#define F8_pin 0
#define F9_pin 0
#define F10_pin 0
#define F11_pin 0
#define F12_pin 0

#include <DCC_Decoder.h>
#define kDCC_INTERRUPT 0

byte Func[4]; //0=L4321, 1=8765, 2=CBA9, 3=F20-F13, 4=F28-F21
byte instrByte1;
int Address;
byte forw_rev=1; //0=reverse, 1=forward

boolean RawPacket_Handler(byte pktByteCount, byte* dccPacket) {
  Address=0;
  if (!bitRead(dccPacket[0],7)) { //bit7=0 -> Loc Decoder Short Address
    Address = dccPacket[0];
    instrByte1 = dccPacket[1];
  }
  else if (bitRead(dccPacket[0],6)) { //bit7=1 AND bit6=1 -> Loc Decoder Long Address
    Address = 256 * (dccPacket[0] & B00000111) + dccPacket[1];
    instrByte1 = dccPacket[2];
  }

  if (Address==decoderAddress) {
    byte instructionType = instrByte1>>5;
    switch (instructionType) {
      case 2: // Reverse speed
        forw_rev=0;
        break;
      case 3: // Forward speed
        forw_rev=1;
        break;
      case 4: // Loc Function L-4-3-2-1
        Func[0]=instrByte1&B00011111;
        break;
      case 5: // Loc Function 8-7-6-5
        if (bitRead(instrByte1,4)) {
          Func[1]=instrByte1&B00001111;
        }
        else { // Loc Function 12-11-10-9
          Func[2]=instrByte1&B00001111;
        }
        break;
    }
    // F0 is an example of two output pins that alternate based on loc forw_rev driving direction.
    if (Func[0]&B00010000) {digitalWrite(F0_pin,forw_rev); digitalWrite(F0_pin2,!forw_rev);} else digitalWrite(F0_pin,HIGH);
    if (Func[0]&B00000001) digitalWrite(F1_pin,LOW); else digitalWrite(F1_pin,HIGH);
    if (Func[0]&B00000010) digitalWrite(F2_pin,LOW); else digitalWrite(F2_pin,HIGH);
    if (Func[0]&B00000100) digitalWrite(F3_pin,LOW); else digitalWrite(F3_pin,HIGH);
    if (Func[0]&B00001000) digitalWrite(F4_pin,LOW); else digitalWrite(F4_pin,HIGH);
    if (Func[1]&B00000001) digitalWrite(F5_pin,LOW); else digitalWrite(F5_pin,HIGH);
    if (Func[1]&B00000010) digitalWrite(F6_pin,LOW); else digitalWrite(F6_pin,HIGH);
    if (Func[1]&B00000100) digitalWrite(F7_pin,LOW); else digitalWrite(F7_pin,HIGH);
    if (Func[1]&B00001000) digitalWrite(F8_pin,LOW); else digitalWrite(F8_pin,HIGH);
    if (Func[2]&B00000001) digitalWrite(F9_pin,LOW); else digitalWrite(F9_pin,HIGH);
    if (Func[2]&B00000010) digitalWrite(F10_pin,LOW); else digitalWrite(F10_pin,HIGH);
    if (Func[2]&B00000100) digitalWrite(F11_pin,LOW); else digitalWrite(F11_pin,HIGH);
    if (Func[2]&B00001000) digitalWrite(F12_pin,LOW); else digitalWrite(F12_pin,HIGH);
  }
}

void setup() {
  DCC.SetRawPacketHandler(RawPacket_Handler);
  DCC.SetupMonitor( kDCC_INTERRUPT );
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
}

void loop() {
  DCC.loop();
}
Titre: Re : Utilisation d'ATTiny
Posté par: patrick le décembre 16, 2016, 06:03:50 pm
En effet, il semble s'agir du programme recherché. Il est basé sur DCC_decoder.h/.c.

La fonction RawPacket_Handler() agit comme une callback dans laquelle on peut ajouter la fonctionnalité désirée. Le principe de callback garantit que la fonction sera appelée lorsque le bon paquet DCC sera reçu. Elle est instanciée avec:

  DCC.SetRawPacketHandler(RawPacket_Handler);


Dans cet exemple, RawPacket_Handler() est appelé à chaque fois qu'un paquet générique (raw) est reçu (il peut s'agir d'un paquet décodeur de fonction ou décodeur de locomotive, etc...).  Une des premières tâches est de décoder l'adresse du destinataire transportée par le paquet.

  Address=0;
  if (!bitRead(dccPacket[0],7)) { //bit7=0 -> Loc Decoder Short Address
    Address = dccPacket[0];
    instrByte1 = dccPacket[1];
  }
  else if (bitRead(dccPacket[0],6)) { //bit7=1 AND bit6=1 -> Loc Decoder Long Address
    Address = 256 * (dccPacket[0] & B00000111) + dccPacket[1];
    instrByte1 = dccPacket[2];
  }


Ensuite, le code va vérifier que l'adresse reçue correspond à l'adresse du décodeur. Dans le cas contraire, le paquet est ignoré. De plus, libre à chacun d'utiliser l'adresse qu'il veut ici...

  int decoderAddress = 1830; // This is the decoder address, change into the number you want.
(...)
  if (Address==decoderAddress)...


Si c'est le cas, alors le paquet "est arrivé au bon endroit". Il ne reste plus qu'à décoder le numéro de fonction et son contenu, et d'exécuter l'action désirée (digitalWrite()... etc...).

J'espère que cela clarifie le problème...


Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 16, 2016, 10:57:41 pm
Merci pour la réponse. Je l'ai comprise mais je ne veux pas en poser d'autres car avant je dois lire les articles auxquels le sujet se réfère et dans lesquels je trouverai certainement au moins les réponses de base. (et voir ce que fait le DCC_decoder.h etc.)
Mon intérêt est de placer un mini décodeur embarqué dans la voiture de queue d'une rame nouvellement digitalisée pour allumer feux rouges et blancs (soit parallèlement à l'adresse de la locomotive avec gestion du sens, soit indépendamment). Pour cela, je n'ai besoin que de deux sorties.
Titre: Re : Utilisation d'ATTiny
Posté par: patrick le décembre 16, 2016, 11:45:21 pm
C'est un beau petit projet pour commencer avec les décodeurs embarqués.

Ceci-dit, si tu veux utiliser ton décodeur comme un décodeur de fonctions (par exemple dans la motrice de queue d'un TGV), tu devrais plutôt prendre un peu de temps pour examiner la librairie NMRA. Je pense qu'elle est plus adaptée pour ce cas-là. En effet, il y a déjà un exemple de décodeur loco (ou fonctions) ici: https://github.com/mrrwa/NmraDcc/blob/master/examples/NmraDccMultiFunctionDecoder_1/NmraDccMultiFunctionDecoder_1.ino (https://github.com/mrrwa/NmraDcc/blob/master/examples/NmraDccMultiFunctionDecoder_1/NmraDccMultiFunctionDecoder_1.ino)

La librairie est disponible au complet ici: https://github.com/mrrwa/NmraDcc (https://github.com/mrrwa/NmraDcc)

Quoiqu'il en soit, tu devrais obtenir à peu près les mêmes résultats avec ton approche...

Tiens-nous au courant...
Patrick

Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le décembre 17, 2016, 04:30:22 pm
Bonjour
Merci à Patrick et msport

Après avoir lu et relu, testé, chargé un tas de programmes pour les essais la première phase fonctionne
Mis le programme dans le NANO (voir pièce jointe)
Tester sur le banc d'essai avec le 6N137 et ma central ZIMO, fonctionnement correct, juste un soucis sur les 9 Leds qui doivent fonctionner la sortie 7 ne donne rien (à suivre)

La prochaine phase adapter le programme pour le ATTiny

Cordialement


Titre: Re : Re : Utilisation d'ATTiny
Posté par: msport le décembre 17, 2016, 10:02:25 pm

Tiens-nous au courant...

un grand merci pour le lien. J'y étais déjà allé mais bien rangé dans mes favoris, je ne l'avais pas exploité.
et merci d'un rappel au raisonnable déjà validé. Pour l'ATTiny, je crois que je me laisse aller à trop de curiosité et d'enthousiasme ... Je vais déjà tenter le décodeur sur base d'un arduino Mini *, pour l'ATTiny ce sera plus tard, d'autant que sauf erreur, une fois programmé, si il y a une erreur, c'est fini.
Mais je lirai avec plaisir tous les développements ! Merci CATPLUS.

* En fait, pour l'encombrement, les composants autour prennent beaucoup de place. j'attends des CMS dont le prix est en rapport avec la taille.
Titre: Re : Re : Re : Utilisation d'ATTiny
Posté par: patrick le décembre 18, 2016, 01:20:25 am
un grand merci pour le lien.
Avec plaisir...

Citer
d'autant que sauf erreur, une fois programmé, si il y a une erreur, c'est fini.
??? Que veux-tu dire?
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le décembre 18, 2016, 07:02:21 am
Bonjour

Je me suis fait un programme de nettoyage pour tout type d'Arduino
Sauf erreur de ma part, l'ATTiny peut être le programmé autant de fois que tu veux.

https://www.youtube.com/watch?v=D33NieHwyHw

https://www.youtube.com/watch?v=kq4VsR8gHtc


Pour le Ho et le Zéro la taille des composants devraient aller. Peut être beaucoup plus difficile pour le N
Utiliser des produites CMS sont bien mieux

Cordialement
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le décembre 18, 2016, 02:45:25 pm
Bonjour à tous,

Grâce à Dominique, je viens de prendre connaissance de ce forum ; cela tombe bien car j'ai proposé à la publication des articles sur la programmation de l'ATtiny et je peux peut-être apporter une modeste contribution, en étant désolé pour le retard.

Bonjour,
sauf erreur, un ATTiny n'est pas un Arduino et faute d'un bootloader ne peut être programmé par l'IDE d'Arduino (mais je ne sais pas tout)

Je vais donc commencer par de bonnes nouvelles : l'ATtiny ressemble fortement à Arduino ! C'est ce que je développe dans mes articles. En quoi ? Simplement parce que sa structure interne se rapproche fortement de la structure interne du µC ATmega328P des modules Arduino Uno.

Autre bonne nouvelle : l'ATtiny se programme grâce à un module Arduino Uno et une platine d'essai (breadboard). Simplicité garantie d'autant que la version 1.6.13 de l'IDE prend tout en charge. Et de nombreuses fonctions sont traductibles en langage machine de l'ATtiny !

Après ces deux bonnes nouvelles, je vais regarder plus en détail le contenu de ce fil pour voir si je peux y apporter quelque chose de plus.

Bien cordialement.

Christian
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le décembre 18, 2016, 03:07:20 pm
Je viens de parcourir ce fil. Je dois reconnaître que, ne pratiquant pas le DCC, je ne suis pas un spécialiste dans ce qui est le sujet de vos préoccupations, un décodeur basé sur un ATtiny, mais je pense qu'un décodeur de fonctions doit être faisable et peut-être aussi un décodeur tout court puisque l'ATtiny fait de la PWM mais il faut aussi l'électronique capable de passer du courant alternatif de la voie à cette PWM pour entrainer le moteur.

Je pense que vous vous êtes lancé un beau défit et c'est ce qui vous fera progresser, peut-être simplement en commençant par le décodeur de fonction, puis, pourquoi pas, le décodeur tout court.

Quant à la reprogrammation de l'ATtiny, la mémoire flash peut être programmée et reprogrammée jusqu'à 10 000 cycles d'écriture-effacement (données constructeur) : vous vous lasserez avant !  ;)

Je vais surveiller ce fil et j'interviendrai si je peux vous apporter une quelconque aide.
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le décembre 18, 2016, 06:19:27 pm
Petit commentaire concernant les deux vidéos du dessus :

- Celle du haut montre qu'il existe de petits shields permettant de programmer toute la gamme des ATtiny (24/44/84 et 25/45/85), mais vous pouvez aussi réaliser vous-même ce shield, ou bien vous en passer et utiliser une simple platine d'essai (breadboard).

- Celle du bas est hélas obsolète puisque basée sur la version 1.0.6 de l'IDE. Or depuis les versions plus récentes (et l'actuelle 1.6.13), il n'y a plus besoin d'importer la bibliothèque ATtiny, car celle-ci est fournie dans l'IDE, pour toute la gamme (donc, pas besoin de réfléchir où placer cette bibliothèque). De plus, la compilation d'un programme pour ATtiny ne génère plus de message d'erreur (ce qu'on voit en orange sur fond noir dans la vidéo). Systématiquement, je conseille de graver la séquence d'initialisation à la première programmation de la puce, pour justement éviter un programme qui fonctionnerait mais pas à la bonne fréquence, comme on le voit dans la vidéo.

Cette vidéo dure 10 min car il fallait bien prendre la peine d'expliquer, mais franchement avec un peu d'habitude, cette programmation se fait en moins de deux minutes.  ;)


Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 18, 2016, 09:47:35 pm
J'ai certainement mal interprété mais on parle de "fuse" pour les ATTiny (?)

Je viens de télécharger l'IDE 1.6.13 je n'ai pas les ATTiny (et d'ailleurs pas non plus Wire, ce qui m'étonne) Qu'ai je oublié ?

Dans la video du bas, il est effectivement indiqué de télécharger les drivers dans "hardware"; ça aurait du être automatique avec le 1.6.13 que j'ai. Fâché avec W7 ?
Enfin il est clair qu'on peut les reprogrammer.
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le décembre 19, 2016, 12:38:34 pm
Pour ma part, ma version 1.6.13 a été téléchargée sous forme d'un fichier ZIP (nous sommes plusieurs à Locoduino à préférer cette solution "transportable").
Une fois dézipé, le fichier contient tout ce qui est nécessaire.
Les ATtiny se trouvent dans Outils > Type de cartes et tout en bas. Il y a d'abord ATtiny25/45/85 (ceux à 8 broches) et au-dessous ATtiny24/44/84 (ceux à 14 broches).
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le décembre 19, 2016, 02:45:47 pm
Bonjour

Apparemment ce sujet intéresse
Pour  ma part, si je reprends le début de mon post, je souhaitais faire un décodeur avec une adresse simple (pas de décodeur pour machine)
Quoi qu'il en soit les réponses apportées sont au delà de mes espérances et l'en suis ravi.
J'attends avec impatience la suite (montage, etc....)
J'attends mes ATtiny 85, à suivre

Cordialement
 
 
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le décembre 19, 2016, 06:01:34 pm
Je suis content de voir qu'une petite communauté s'intéresse aux ATtiny.

Je les utilise depuis plus d'un an pour de petits montages autonomes trouvant leur place sur un réseau, et franchement, j'en suis content (économique et facile à programmer, rien à voir avec le PIC16F84 que j'ai aussi pratiqué).

De plus, la mise au point de leur programme peut se faire à partir d'un module Arduino, alors c'est vraiment très simple.

Pour ton décodeur d'accessoire, as-tu lu les écrits de Thierry (décodeur d'accessoires universel) et serait-ce possible d'adapter à un ATtiny ? (je n'y connais pas grand chose en DCC, donc ce que je viens de dire est peut-être une ânerie...)

En tout cas, puisque le titre de ce post est Utilisation d'ATtiny, on aura peut-être d'autres locoduineurs qui rejoindront le mouvement et plus on est de fous, plus on progresse vite...
Titre: Re : Re : Utilisation d'ATTiny
Posté par: msport le décembre 20, 2016, 11:19:51 pm
Pour ma part, ma version 1.6.13 a été téléchargée sous forme d'un fichier ZIP ...
Merci pour cette précision car j'ai chargé l'exe de 84.5 Mo pour Windows et en regardant son contenu avec 7z, il n'y a pas les ATTiny, ni Wire ...
Et je suivrais moi aussi ce fil avec beaucoup d’intérêt, j'ai commandé quelques ATTiny13.
Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 21, 2016, 12:43:32 pm
Bon, j'ai eu du mal ...
j'ai installé en dézippant la version zip (de 150Mo, c'est donc qu'il y en a plus que dans l'exe de 85 Mo) mais toujours rien dans la liste des cartes. Et pourtant il y a les ATTiny dans le hardware. Il y a peut-être lieu de les installer, mais comment ? je n'avais rien dans le gestionnaire de carte ?
Mais pas battu pour autant, une recherche sur google
On poursuit la recherche et on tombe sur :
https://forum.arduino.cc/index.php?topic=150870.0
avec un mode d'emploi et un lien :
http://code.google.com/p/arduino-tiny/
qui conduit à différentes archives dont la plus récente :
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/arduino-tiny/arduino-tiny-0150-0020.zip
Mais il est dit qu'il faut mettre dans le répertoire de ses sketches un répertoire hardware avec un fichier fourni. Pas de chance c'est déjà périmé : l'IDE signale qu'il manque un fichier boards.txt.
Enfin, un autre lien, un qui marche  :
http://highlowtech.org/?p=1695
dit comment ajouter un lien dans l'IDE via Préférences URL de cartes supplémentaires et propose :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Ensuite via Outils / Type de Carte / Gestionnaire de carte /  More info, choix d'une version on fait Installer et enfin les ATTiny figurent dans la liste.
Mais dites moi, vous avez fait tout ça ? ou c'est moi qui n'ai pas su faire simple ?

Titre: Re : Utilisation d'ATTiny
Posté par: patrick le décembre 21, 2016, 02:46:20 pm
Si cela peut te rassurer, la procédure afin d'ajouter des définitions de hardware est bien celle-là (utilisation du gestionnaire...). J'ai installé plusieurs hardwares différents et c'est toujours la même chose...

Bon, en tout cas, ça fonctionne 😉
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le décembre 21, 2016, 07:27:30 pm
Bon, j'ai eu du mal ...
j'ai installé en dézippant la version zip (de 150Mo, c'est donc qu'il y en a plus que dans l'exe de 85 Mo) mais toujours rien dans la liste des cartes. Et pourtant il y a les ATTiny dans le hardware. Il y a peut-être lieu de les installer, mais comment ? je n'avais rien dans le gestionnaire de carte ?
.........
dit comment ajouter un lien dans l'IDE via Préférences URL de cartes supplémentaires et propose :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Ensuite via Outils / Type de Carte / Gestionnaire de carte /  More info, choix d'une version on fait Installer et enfin les ATTiny figurent dans la liste.
Mais dites moi, vous avez fait tout ça ? ou c'est moi qui n'ai pas su faire simple ?

Cela fait quelques temps que j'utilise les versions ZIP (au moins trois versions différentes) et j'ai toujours eu la surprise de voir les cartes ATtiny.
Mais vu ce qu'il t'arrive, je commence à me poser des questions.
En effet, il a fallu un jour que j'importe les bibliothèques ATtiny, mais c'était il y a pas mal de temps, avec une version installée.
Serait-il possible que la version bundle (dans le répertoire) retrouve ce que j'avais installé il y a longtemps, je me le demande.
J'ai donc fait un essai, retirer le répertoire ATtiny de la version installée --> j'ai observé que cette version ne peut donc plus proposer les cartes ATtiny, par contre les versions 1.6.12 et 1.6.13 (origine ZIP) les ont toujours.
Je remets le répertoire ATtiny dans le répertoire Hardware de la version installée --> celle-ci retrouve les cartes ATtiny.

Pour en avoir le cœur net, il faudrait que j'installe une version ZIP sur un ordinateur qui n'a jamais reçu Arduino (celui de mon fils quand il rentrera de vacances).
Ensuite, je vous tiendrai au courant (cela veut dire qu'il faudra peut-être que je rajoute un paragraphe sur mon article ATtiny N°2, car j'étais persuadé que cette version proposait les cartes sans aucune intervention).

Ce que tu as décrit servira peut-être à d'autres, quant à moi, je vais vérifier si oui ou non, elles sont présentes sur la version 1.6.13.
Titre: Re : Re : Re : Utilisation d'ATTiny
Posté par: patrick le décembre 21, 2016, 09:11:37 pm
Ce que tu as décrit servira peut-être à d'autres, quant à moi, je vais vérifier si oui ou non, elles sont présentes sur la version 1.6.13.

J'ai installé récemment cette version (sur Linux) et il m'a fallu installer la librairie à la main. Ceci sur un ordi "propre". Donc, pas de ATTiny dans l'installateur.

J'ai l'impression que dans le cas Windows, les libraries sont installées dans un répertoire Documents/Arduino. Ainsi, ce répertoire est persistent quelque soit la version ou les versions de l'IDE qui sont installées ou désinstallées.

A une certaine époque, l'IDE créait un répertoire Arduino1.0, puis Arduino1.1, etc... dépendant de la version de celui-ci. Or depuis quelques versions je pense que le nom du répertoire est le même (ne contient plus de version) d'où la réutilisation des librairies...

Hmmm... J'espère que ce n'est pas trop du charabia...
Patrick
Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 21, 2016, 11:24:23 pm
Merci de me rassurer, je craignais d'être le seul à ne pas être doté des super pouvoirs !

Mais ça reste mystérieux :
apparemment d'origine avec la version zip j'avais des fichiers (tous ?) nommés ATTiny dans :

C:\Program Files (x86)\Arduino\hardware\tools\avr\lib\gcc\avr\4.9.2\device-specs
comme specs-attiny13

par contre, je ne voyais pas comment les mettre dans la liste des cartes ... (et actuellement je n'ai pas d'attiny13 dans ma liste, seulement séries 24 et 25)
Avec l'installation "automatique" permise par le lien dans préférence, il n'y a rien de plus (ATTiny*) dans Mes documents/Arduino (les sketches)
Donc réinstallation probable lors du prochain changement de version d'IDE, sauf si vous me dites que vous n'avez pas eu de problème à fusionner le nouveau zip avec l'ancien répertoire.

mais l'enquête se poursuit ...


Titre: Re : Utilisation d'ATTiny
Posté par: bagou91 le décembre 23, 2016, 01:51:03 pm
Pour complément d'infos:

Si jamais vous n'avez pas les cartes ATTiny listées dans le gestionnaire de cartes, il faut ajouter la bibliothèque comme ceci:
Arduino IDE: dans Fichier, Préférences, URL de gestionnaire de cartes supplémentaires.
Ajouter cet url : https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Puis revenir dans le gestionnaire de cartes, les cartes Attiny devrait apparaitre et pourront être téléchargé et installé.

D’autres bibliothèques listées ici :
http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips

Bonnes fêtes de fin d’année :)
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le décembre 23, 2016, 07:06:07 pm
Bravo,

Je viens d'installer l'ATtiny dans l'IDE 1.8.0 sur OSX et je vois bien les ATtiny

merci pour ce bon tuyau
Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le décembre 24, 2016, 12:12:14 pm
Je confirme que ça marche aussi sous Windows 10, IDE 1.6.9.

La subtilité, c'est que quand on est dans le gestionnaire de cartes, on a le choix (en haut à gauche) "possible mettre à jour" qui ne fait pas apparaître les ATTiny.

En effet, il ne s'agit pas d'une mise à jour, mais d'une installation.
Il faut donc choisir "tout" et aller tout en bas où, cette fois, apparaissent bien les ATTiny de Michael Damellis.
On les installe et on les a bien en choix dans le gestionnaire de cartes.

Merci à tous.
Titre: Re : Utilisation d'ATTiny
Posté par: msport le décembre 26, 2016, 03:46:22 pm
J'ai l'impression que c'est encore plus subtil que ça ...

Je pense que la liste de base dans le gestionnaire de cartes est celle téléchargée à partir de http://downloads.arduino.cc/packages/package_index.json

Si windows est de mauvaise humeur (on ne lui a pas permis de faire n'importe quoi depuis le web), il ne télécharge rien ou rien de plus.

Pour en avoir plus, il faut mettre dans préférence une adresse comme :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json pour les ATTiny de MICHAEL Damellis.

Ensuite on peut demander la mise à jour du package en cliquant More info dans la fenêtre concernée via le gestionnaire de cartes (avec Type "Tout").
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 01, 2017, 04:39:18 pm
Toute l’équipe de www.locoduino.org vous présente ses meilleurs vœux pour l’année 2017 et vous souhaite de nombreux projets dans le cadre du modélisme ferroviaire.

Pour nous, les projets ne manquent pas et nous sommes heureux de commencer cette nouvelle année en ouvrant dans nos colonnes une nouvelle rubrique concernant la programmation des microcontrôleurs ATtiny.

Voici le premier d’une longue série d’articles :
http://locoduino.org/spip.php?article188

En espérant que cette rubrique vous plaira.  :)
Titre: Re : Utilisation d'ATTiny
Posté par: msport le janvier 02, 2017, 12:27:14 pm
Merci et également une excellente année 2017 à tous !

Tout ce qu'on avait envie de savoir sans oser le demander : très bien ce début d'une série d’articles. On a vraiment envie d'en savoir plus.

Une question : et l'ATtiny 13, où se place t il dans la gamme ?
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 05, 2017, 09:38:03 am
Je viens de parcourir la datasheet de l'ATtiny13 et je ne suis pas perdu car je retrouve des caractéristiques similaires à l'ATtiny45 :
- 8 broches multiplexées
- même tension d'alimentation
- même fréquence horloge sous 5 V
- 1 seul timer au lieu de 2 (mais 2 canaux PWM)
- un ADC sur 10 bits
- 6 E/S mais en fait seulement 5 car une sert de RESET
- mémoire deux fois moindre que l'ATtiny25 (1 k flash programme, 64 SRAM, 64 EEPROM)

L'IDE d'Arduino ne contient pas les définitions pour l'ATtiny13, ce qui veut dire qu'il faut les créer et cela demande de bien connaître le composant. Vu la taille de sa mémoire, il est réservé à de très petites applications. Son prix 0,83 euros pièce alors que l'ATtiny45 (4 fois plus de mémoire) vaut 1,03 euros pièce chez un fournisseur.

A moins d'avoir un stock, je ne conseille pas de prendre ce µC. Ceux qui en ont peuvent toujours essayer de les programmer avec les définitions de l'ATtiny25 mais je ne garantis pas le résultat (cela peut marcher quand même mais je n'ai pas essayé). Ceux qui réussiront pourront toujours partager leur expérience sur ce forum.
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 05, 2017, 09:48:40 am

Tout ce qu'on avait envie de savoir sans oser le demander : très bien ce début d'une série d’articles. On a vraiment envie d'en savoir plus.


Dans un premier temps, nous comptons publier un article tous les quinze jours (à peu près) pour laisser le temps aux lecteurs pour s'équiper et surtout pour bien assimiler les notions. Il y a déjà 4 articles préparés ; cela nous reporte donc mi février. Ensuite, nous verrons comment cette série d'articles sera perçue par la population. N'hésitez donc pas à faire connaître vos attentes dans ce domaine, et n'hésitez pas non plus à pratiquer (l'investissement n'est pas très élevé pour découvrir ce petit circuit intégré).

Les articles proposés sont des articles pratiques, proposant des réalisations simples pour un réseau de train miniature ; c'est à la portée de tout le monde puisque schéma de câblage et programme sont donnés. Et en plus, il y a ce forum en complément pour aider ceux qui auraient des difficultés.

Plus aucune excuse pour ne pas s'y mettre...  ;)
Titre: Re : Re : Utilisation d'ATTiny
Posté par: msport le janvier 05, 2017, 11:08:04 pm
A moins d'avoir un stock ...

commandés quand un fil a démarré sur le sujet :
reçus 10 en CMS à 0,27€ pièce
et 5 en DIL à 0,52€ pièce. (mais le but n'était pas de faire des économies !)
Promis, je testerai.
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 13, 2017, 11:47:49 pm
Et bien voilà, j'ai le plaisir de t'apprendre que tu es désormais le responsable en chef des tests sur l'ATtiny13 !  :)

Si tu arrives à le programmer comme l'ATtiny25/45/85, ce dont je ne doute pas, tu vas découvrir toutes les possibilités qui s'offrent à toi.
Donc, tiens nous au courant.

Et le vrai challenge sera sans doute d'économiser les mémoires avec un code irréprochable, un peu comme au début de l'informatique. Ce défit aussi reste intéressant.
Alors ne regrette pas d'avoir acheter celui-ci plutôt que celui-là, tu as sous la main de quoi t'amuser un bon bout de temps avant d'arriver au bout de la bête.
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le janvier 15, 2017, 02:47:39 pm
A toutes fins utiles, on trouve chez TXHANG (voir l’article sur Les Achats) un kit de développement ATtiny85 pour 1,26€.
Ce kit contient un prise microUSB et il est compatible avec l’IDE Arduino sans matériel supplémentaire.
http://www.ebay.fr/itm/Mini-ATTINY85-Micro-USB-Development-Board-for-Digispark-Kickstarter-/400911402692?hash=item5d582e86c4 (http://www.ebay.fr/itm/Mini-ATTINY85-Micro-USB-Development-Board-for-Digispark-Kickstarter-/400911402692?hash=item5d582e86c4)

Du coup j'en ai commandé 5 pour voir (je ne sais plus combien de dizaines d'Arduino j'ai dans mes tiroirs, et maintenant des ATtiny en plus  :P :P :P)
Titre: Re : Utilisation d'ATTiny
Posté par: bagou91 le janvier 15, 2017, 03:09:37 pm
J'ai déjà utilisé ces attiny85 digispark. Très bien pour des petits projets basse consommation :)

Bien suivre à partir de l'étape 3 de ce tuto:
http://www.instructables.com/id/Digispark-DIY-The-smallest-USB-Arduino/?ALLSTEPS
Pour les utiliser.

En effet ils utilisent un bootloader spécial (déjà gravé) pour être utilisable sur USB. Donc il faut le driver et un IDE avec la plateforme reconnue.
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 18, 2017, 04:34:13 pm
Nous avons le plaisir de vous présenter le deuxième article sur les µC ATtiny :
Le microcontrôleur ATtiny45 (2) (http://locoduino.org/spip.php?article189)

Cet article revient sur la méthode de programmation de ces puces.

La suite d'ici une quinzaine de jours pour commencer les premières réalisations (ce qui vous laisse le temps de vous procurer le matériel et vous entraîner comme indiqué dans l'article).   ;)
Titre: Re : Utilisation d'ATTiny
Posté par: msport le janvier 18, 2017, 11:01:10 pm
Bonjour,
et merci pour ce deuxième article.
j'ai voulu tester, j'avais déjà  installé Damelis mais entretemps je suis passé à l'IDE 1.8.
Manifestement Windows 10 ne supporte pas qu'on installe un programme en le dézippant dans Program Files (il lui refuse l'accès internet sans rien dire)
Je l'ai mis sur le bureau, W10 a fini par demander si le parefeu pouvait le laisser passer et j'ai pu faire l'installation de Damelis.
Conclusion, on attendra demain pour voir la LED qui marche, marche pas, marche, etc. (avec un ATtiny 13)
PS : peut-être rappeler où est la pin1 sur le schéma.
Titre: Re : Utilisation d'ATTiny
Posté par: msport le janvier 19, 2017, 10:06:55 pm
Bonsoir,

le responsable en chef des tests sur l'ATtiny13 vous communique :
essai réussi ! la LED clignote (enfin si on peut dire qu'un cycle allumage extinction de 20s est un clignotement, alors que sur le sketch il y a 1s/1s)
L'IDE m'a dénoncé : il a vu que ce n'était pas un ATTiny 25 qui était monté et a refusé de télé-déverser.
D'où recherche sur Internet :
https://sourceforge.net/projects/ard-core13/?source=typ_redirect et à télécharger :
http://sourceforge.net/projects/ard-core13/files/latest/download
Installation du core ITTiny13 dans \hardware du répertoire des sketches , redémarrage de l'Arduino et c'était bon.
Mon problème d'horloge vient certainement de ce que j'ai télé-déverser le bootloader pour ATTiny, horloge à 8Mhz et télédéverser pour un ATTtiny à 9,6MHz.
J'ai tenté de recharger le bootloader, avec l'ATTiny 13
Arduino : 1.8.1 (Windows 10), Carte : "Attiny 13A standalone 9.6Mhz"
mais j'ai eu le message d'erreur :
Erreur lors de la gravure de la séquence d'initialisation : le paramètre de configuration « bootloader.tool » est manquant

Nota, j'ai alimenté mon ATTiny en 3V comme vu par ailleurs.

PS : sur la photo jointe, en marge : comment s'utilise ce "Development programmer" qui se connecte bien en USB mais n'est pas reconnu par W10.
Il ressemble à celui de Dominique (voir un peu plus haut) mais est vendu pour les ATTiny 13 (aussi).

Titre: Re : Utilisation d'ATTiny
Posté par: msport le janvier 20, 2017, 10:13:14 pm
Bonsoir,

pour aujourd'hui une réponse et une question :
1 en programmant avec pour cible l' ATTiny (13) standalone 1,2 MHz, le clignotement passe bien à ~ 1/1 s.
2. dans les messages détaillés de compilation j'ai :
Fichier du bootloader spécifié mais absent: C:\Users\Michel\Documents\Arduino\hardware\attiny13\avr\bootloaders\empty
effectivement il n'y a pas de répertoire bootloaders dans ...\avr\
je poursuis la chasse au bootloader pour ATTiny ...
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 22, 2017, 04:54:29 pm
Bonsoir,

pour aujourd'hui une réponse et une question :
1 en programmant avec pour cible l' ATTiny (13) standalone 1,2 MHz, le clignotement passe bien à ~ 1/1 s.
2. dans les messages détaillés de compilation j'ai :
Fichier du bootloader spécifié mais absent: C:\Users\Michel\Documents\Arduino\hardware\attiny13\avr\bootloaders\empty
effectivement il n'y a pas de répertoire bootloaders dans ...\avr\
je poursuis la chasse au bootloader pour ATTiny ...

Bonjour Michel,

Tout d'abord, félicitations pour ces succès ; je vois que j'ai bien fait de te désigner volontaire pour être responsable des projets ATtiny13.  :)

Tu peux arrêter ta chasse au bootloader d'ATtiny car pour moi, cela n'existe pas. Le bootloader est une invention Arduino qui aide à la programmation des modules du même nom. Ici, nous travaillons non plus avec de l'Arduino (sauf celui qu'on utilise comme programmateur) mais avec un µC de chez Atmel. Quand on grave la séquence d'initialisation, ce n'est pas un bootloader que l'on grave mais simplement quelques variables qui servent au microcontrôleur pour savoir dans quel mode il doit travailler. En tout cas, je l'ai compris comme cela car j'avais la même chose, une quinzaine d'années plus tôt, avec le µC PIC 16F84.

Par mode de travail, j'entends quelle horloge choisir (interne, externe) et quelle fréquence (voir les choix proposés par l'IDE). C'est pour cela que la programmation de cette séquence d'initialisation n'est à faire qu'une seule fois (lors de la première programmation) ou bien si on change de mode de travail (horloge, fréquence, ...). Et ceci explique aussi que si la séquence de travail n'est pas celle qui convient, le programme fonctionne (ou pas) avec un rythme qui n'est pas le bon (20 s au lieu d'une seconde). Ceci n'est pas grave, cela m'est arrivé avec un ATtiny45 car j'avais oublié de graver cette séquence ; j'ai donc recommencé et ensuite nickel !

Même si l'ATtiny13 n'est pas un composant d'avenir, ton travail sera très utile à la communauté ; en tout cas, il démontre qu'avec un peu de persévérance et de recherches sur internet, on peut résoudre les problèmes. C'est ce que tu as fait, alors bravo.  ;)

Titre: Re : Utilisation d'ATTiny
Posté par: msport le janvier 23, 2017, 11:30:10 pm
Bonsoir Chris,
je suis comblé par tant de compliments !
mais je dois reconnaitre quelques lacunes : j'ai confondu bootloader et séquence initialisation ... et ai imaginé qu'un bootloader était indispensable pour que l'ATTiny accepte de démarrer.
A priori les timings de l'ATTiny 13 sont très approximatifs et je crains qu'en tant que décodeur d'accessoires il ait du mal à reconnaitre les séquences de bits qu'on lui envoie.
Donc pour trouver une utilisation à mon circuit, je lui ai confié un chenillard à 5 LED, (doublées) suivant photo et programme joint.
Ai-je bien compris que si on utilise la broche 1 (reset) le circuit ne peut plus être reprogrammé ?
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le janvier 25, 2017, 12:32:13 pm
Ai-je bien compris que si on utilise la broche 1 (reset) le circuit ne peut plus être reprogrammé ?

Pour utiliser la broche RESET en tant que broche I/O, il faut lui défaire sa fonction de RESET et ceci n'est possible qu'en programmant un registre fusible appelé RSTDISBL. Or une fois que c'est fait, on ne peut plus programmer le µC avec notre programmateur de fortune Arduino as ISP. Néanmoins, d'après la doc ATMEL, il peut être reprogrammé à nouveau mais avec un programmateur série "Haut voltage" (en fait 12 V). Ceci se trouve en page 103 de la datasheet :
"When programming the RSTDISBL fuse, High-voltage Serial programming has to be used to change fuses to perform further programming."

Voilà pourquoi, pour une utilisation simple de ce genre de µC, je conseille de ne pas utiliser la broche 1 autrement que pour du RESET, sauf si on ne peut pas faire autrement, auquel cas, il faut bien étudier comment programmer le fuse RSTDISBL.

Pour ce qui concerne la fréquence de travail, en étudiant un peu la datasheet, tu dois pouvoir trouver comment améliorer la fiabilité ; pour ma part, cela fonctionne déjà assez bien quand je programme l'ATtiny45 avec l'horloge interne de 8 MHz. Bien entendu, une horloge interne ne sera jamais aussi précise qu'un quartz externe, mais qui consomme des broches (voir le module Arduino Uno par exemple).

Bravo pour ton chenillard, c'est déjà un premier résultat et tu verras que tu trouveras une utilité à ton stock d'ATtiny13 (avec 5 sorties, on fait déjà plein de jeux de lumières comme tu le verras dans les prochains articles sur l'ATtiny). Et pour une application plus sophistiquée, tu peux toujours commander des ATtiny84 (plus de mémoire et plus de sorties).
Titre: Re : Utilisation d'ATTiny
Posté par: msport le janvier 25, 2017, 11:32:42 pm
Merci pour ces précisions.
J'ai commandé quelques 45 et 85. Mon objectif étant de commander une LED rouge et une LED blanche, 5 pins devraient suffire ...
A suivre.
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le février 04, 2017, 04:27:40 pm
Bonjour
Suite à ma première question sur l'ATTiny et voir tous ces posts, je suis admiratif "Merci à tous"
Bien, je ne sais pas qui a dit que la persévérance ça paye, il avait raison.
Après avoir lu et relu, édité toute la documentation je me suis fabriqué un mini banc d'essai (voir photo) et enfin j'ai programmé mon premier ATTiny et la c'est magique cela fonctionne (je me suis quand pris un peu la tête)

Maintenant je vais pouvoir faire quelques montages

Je vous recommande de lire
http://www.locoduino.org/spip.php?article188
http://www.locoduino.org/spip.php?article189
et tous les posts

Cordialement
Marcel








Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le février 04, 2017, 04:32:49 pm
Citer
Bien, je ne sais pas qui a dit que la persévérance ça paye, il avait raison.

C'est moi, c'est moi ...  ;D ;D ;D ;D (fayot !!)
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le février 08, 2017, 12:53:04 pm
Un peu facile Denis ! Il faut donner des preuves scientifiques ou techniques de ce que nous postons !  :)

Et bien de la technique, en voilà pour tous ceux qui suivent assidûment ce fil : le troisième article sur les µC ATtiny !

Le microcontrôleur ATtiny45 (3) (http://locoduino.org/spip.php?article190)

Cette fois, nous abordons la pratique en proposant deux montages très simples qui trouveront leur place sur un réseau de trains miniatures : un chenillard et une enseigne d'hôtel.

A vos platines d'essais et à vos fers à souder et bon modélisme... électronique !  ;)
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le février 24, 2017, 04:58:02 pm
Réalisation de l’Enseigne Lumineuse HOTEL avec ATtiny85 plutôt avec un Digispark 85

J’ai acheté plusieurs Digispark (vu sur le net la facilité de programmation via le port USB)
Je me suis lancé, chargé les Librairies et comme d’habitude  à l’écran tout va bien mais en pratique cela ne fonctionne pas (donc recherche, etc…)
Je n’aime pas rester sur un échec, mon ex métier m’obligeait à trouver une solution. J’ai bricolé et trouvé ce qui suit  (Je n’ai pas trouvé de post sur ce sujet)

Le 1er problème, après installation des librairies Digispark, j’ai perdu les librairies pour ATtiny. En réinstallant les librairies pour ATtiny cela a  fait le contraire (possible que l’IDE, Windobe,  ou mon incompétence, soient  fâchés avec ce type de matériel)

1ère question : Quelle est la différence entre un ATtiny 85 et un Digispark 85 ?
Réponse :  ls portent tous les 2 le même nom, - la différence Digispark utilise un régulateur de tension 5volts

2ème question : Peut-on programmer le Digispark comme l’ATtiny ?
Réponse :  Oui, quelques fils et cela fonctionne

J’ai fait une prise côté Digispark  6 fils « récup ordinateur » Côté Arduino j’ai soudé les fils dans un support  8 broches et  rajouter les 2 fils pour l’alimentation 5volts (voir photo)
J’ai installé un support USB en supprimant les connections à l’intérieur uniquement pour maintenir le Digispark à la verticale

Ensuite le Process écrit par Chistian Bezanger

http://www.locoduino.org/spip.php?article188
http://www.locoduino.org/spip.php?article189
http://www.locoduino.org/spip.php?article190

Mise en place du programme et tout il est correct.
J’ai refait le programme à la sauce Marcel (le principal, cela fonctionne et cela me convient. Je vais surement avoir les foudres de nos amis programmeurs, j’ai les mêmes quand je fais les macros dans Excel)

Cordialement
Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le février 24, 2017, 05:01:23 pm
suite
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le février 24, 2017, 05:02:16 pm
suite
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le février 24, 2017, 06:30:48 pm
Bonjour Marcel,

Moi aussi j'ai succombé au prix alléchant du Digispark. Mais je les ai récupérés le jour de mon départ à la neige. Je reviens la semaine prochaine et j'ai hâte d'essayer aussi sur Mac.

Amicalement
Dominique
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le février 24, 2017, 07:45:48 pm
Bravo pour cette réalisation à partir d'un Digispark 85. Au vu des photos, ton enseigne a plus de gueule que celle que j'ai hâtivement bricolée pour faire ma vidéo !  :D

J’ai refait le programme à la sauce Marcel (le principal, cela fonctionne et cela me convient. Je vais surement avoir les foudres de nos amis programmeurs, j’ai les mêmes quand je fais les macros dans Excel)

Cordialement
Marcel

Peu importe ce que pensent les ayatollahs de la programmation. Ce qui comptent en premier, c'est que le programme fonctionne sans boguer. De plus, on fait un loisir, il n'y a pas à être compétitif ou suivre des normes. Enfin, la programmation se peaufine au fil du temps : dans un an, tu ne coderas plus de la même façon qu'aujourd'hui car tu auras appris plein de choses en programmant à ta façon, en lisant les programmes des autres, etc.
Il n'y a pas de complexe à avoir. C'est comme pour l'anglais, c'est pourtant vrai que les Français parlent mal l'anglais ... mais au moins, ils le parlent ! Et cela, les anglo-saxons sont les premiers à le reconnaître et à nous en remercier. Il n'y a que nous pour nous dévaloriser.

Programmez et tant que ça marche, soyez-en fiers ! ! !  ;)
Titre: Re : Utilisation d'ATTiny
Posté par: Thierry le février 24, 2017, 10:34:04 pm
Etant programmeur de métier depuis plus de trente ans, je fais partie de ces ayatollahs dont parle Christian (sans rancune !). Il y a des constructions de code qui me hérissent le poil mais tu peux me croire: la toute première qualité d'un logiciel, c'est qu'il fasse ce qu'on lui demande ! Après seulement viennent la lisibilité et la facilité de maintenance, qui ne sont au final utiles que si tu comptes revenir un jour sur ton code pour le corriger ou l'améliorer, voire pour le donner à d'autres. Dans ce cas là, un passage vite fait pour nettoyer, reformater et documenter s'impose. Mais sinon, tant que ça fait ce que l'on veut...
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le février 25, 2017, 09:23:21 am
Bonjour
Merci on va continuer (je suis la réalisation d'un bruitage de compresseur pour car avec décodeur)
Pour l'enseigne quelques bouts de plasticard, 5 leds blanches, un peu de fils émaillés.
Je me suis inspiré de ce que j'avais fait sur le MRS
A l'époque j'avais (qui fonctionne toujours) mis des lampes avec un montage à transistors + diodes (à l'occasion ce sera remplacée par un Digispark + ULN28003
Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le février 26, 2017, 11:37:25 am
Ayatollah bis !  ;)

Moi aussi, j'ai commencé en programmant sans me préoccuper de l'indentation, du nom des variables, des commentaires etc...
Tant que le programme marchait, c'était bon.
Disons que jusqu'à une centaine de lignes, on s'y retrouve quand même. Après ... on s'en mord les doigts.

Après, si peu qu'on l'abandonne quelques jours, on n'arrive plus à se relire ("Et pourtant, c'est moi qui ai écrit ce programme", se dit-on. "Mais qu'est que j'ai f** ?"

Maintenant que je me balade dans plus de 5 000 lignes, il y a longtemps que j'ai pris de bonnes résolutions et que je m'y tiens.

OK, ça n'est pas nécessaire, ça fait perdre un tout petit peu de temps, mais c'est largement compensé par une relecture plus facile et un dépannage plus aisé.

Ceci dit, en changeant complètement de sujet : magnifique photo  ;D ;D ;D ;D
Un vrai plaisir à voir. Une réelle atmosphère.
Bravo.

Denis
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le février 26, 2017, 03:06:51 pm
Etant programmeur de métier depuis plus de trente ans, je fais partie de ces ayatollahs dont parle Christian (sans rancune !).

En parlant d'ayatollahs de la programmation, je ne pensais ni à toi Thierry, ni à toi Denis, mais plutôt aux donneurs de leçons qui sont souvent forts en théorie mais n'ont jamais montré la moindre réalisation : tous les deux, vous avez un joli palmarès à votre actif alors je ne me permettrai pas de vous traiter de termes barbares...  :-[

De plus, nous sommes bien d'accord ; au début, ce qui compte c'est que le programme fonctionne et dans ce sens, je ne peux qu'encourager ceux qui programment à continuer à le faire à leur manière pourvu que le résultat soit atteint. Après, et nous sommes toujours d'accord, il faut se débarrasser de ses défauts et apprendre à bien présenter son code, bien l'indenter, bien choisir la taille des variables, bien structurer, utiliser des boucles plutôt que des répétitions, etc. etc. Mais après ! Et il ne faut pas attendre d'être au niveau d'un expert pour tenter de faire quelque chose. Sinon, on ne fait jamais rien ...

Comme toute phase d'apprentissage : en premier les bases avec sans doute des erreurs, en deuxième s'améliorer dans ce qui constitue aussi un art, la programmation.  ;)
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le février 26, 2017, 03:09:39 pm
Voici le quatrième article sur les µC ATtiny :
Le microcontrôleur ATtiny45 (4) (http://locoduino.org/spip.php?article191)

Une fois de plus, deux montages très simples qui trouveront leur place sur votre réseau de trains miniatures, vous sont proposés : un simulateur de soudure à arc et des feux de carrefours routiers. Le tout bien sûr pour un prix défiant toute concurrence !   8)

Bon modélisme... électronique !   ;)
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mars 02, 2017, 09:56:08 am
Bonjour
Une petite pause  pour un miniblock_fictif mais fonctionnel.

Dans les expositions, sur de nombreux réseaux  (un peu moins maintenant) il y a des signaux  qui hélas sont souvent soient éteints, toujours au vert même quand le train passe devant le dit signal ,  parfois posés et même pas câblés.
Je trouve que  cela est injuste de ne pas faire fonctionner ce matériel.

Une détection (cela ne manque pas)
Une alimentation 5volts (alime de PC)
Sur le site ptitrain

http://www.ptitrain.com/electronique/index.htm

Il y a bon nombres d’articles dont je me suis inspiré (surtout le TTT), je vous invite à consulter.

L’article pour ce post reposait sur  le » BalBid » il semble que l’accès ne fonctionne plus  pour cet article.
C’était un montage simple et surtout très efficace.
J’avais réalisé un montage quelque peu similaire avec un CI 555 (tempo + relais) qui fonctionne encore sur le MRS (à terme qui sera remplacé par un Digispark)

Aujourd’hui force est de constater qu’une nouvelle technologie est arrivée l’ Arduino et les Attiny.

Comme d’habitude j’ai repris le Digispark (ou un ATtiny) pour réaliser ce petit montage qui peut s’implanter sur tous réseaux et surtout pour les réseaux  modulaires.

Matériel nécessaire :
Un module Digispark ou ATtiny, un signal avec Leds Rouge et Verte (moins commun avec une résistance de 150Ω)
 
Pour les Entrées (2)
La première est destinée au contact de la détection 
La  seconde (pas nécessaire)  pour une aiguille mal positionnée, un train dans le canton N+1, etc….
Pour le/les  contacts » bouton poussoir, ils , etc….. » (ils doivent venir du moins 5volts)

Pour les Sorties (2)
Raccorder les Leds Rouge et Verte (NE PAS oublier la résistance)
Sur la photo le signal est à l’échelle N (fabrication personnelle)

Le programme


Titre: Re : Re : Utilisation d'ATTiny
Posté par: PhB22 le mars 02, 2017, 12:08:29 pm
Bonjour
Sur le site ptitrain

http://www.ptitrain.com/electronique/index.htm

L’article pour ce post reposait sur  le » BalBid » il semble que l’accès ne fonctionne plus  pour cet article.
C’était un montage simple et surtout très efficace.
Merci pour tout.
Effectivement plus d'accès au "balbid".
Les schémas sont joints. J'avais réalisé le premier (4538) pour un diorama. c'est sympa.
Mais maintenant c'est un gadget à incorporer facilement dans un programme pourvu que l'on ait un "top" de détection.
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le mars 02, 2017, 11:48:02 pm
Bonjour
Une petite pause  pour un miniblock_fictif mais fonctionnel.


Bonjour CATPLUS,

Tout d'abord, bravo pour tes signaux qui sont des réalisations personnelles en N !

Par contre, je n'ai pas compris ce que réalise ton montage...  :-[

Je suis en train de cogiter pour qu'un ATtiny45 puisse gérer son canton, c'est-à-dire détecter s'il est libre ou occupé et aubiner le signal en fonction de l'occupation des cantons aval. Pour le moment, je bute un peu car il me manque une entrée-sortie. Solution : passer à 6 E/S, ce qui veut dire ne plus pouvoir programmer l'ATtiny45 simplement ou bien passer à un ATtiny44. Je vous tiens au courant.

En attendant, une de mes prochaines fiches pratiques de Loco-Revue devrait donner un exemple de simulateur de B.A.L, c'est-à-dire un montage qui réagit comme un signal de B.A.L mais sans assurer l'espacement. Et c'est parfait pour un petit réseau. Cela résout, très simplement, le problème du signal éclairé de façon fixe au vert même quand un train passe. Un peu de patience dans la mesure où je ne décide pas des dates de parution des FP de LR.  ;)

Et avant la fin de ce mois, un nouvel article sur l'ATtiny45 sur le site LOCODUINO avec une application à vous couper le souffle ! Enfin, j'espère...  ;) (c'est fou ce que l'on peut faire avec des puces, comme dirait Rantamplan !  :D )

Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mars 03, 2017, 08:31:22 am
Bonjour Chris

Je croyais  l'avoir expliquer dans le titre, ce montage serre uniquement a faire fonctionner en l'absence  de cantonnement un signal fictif au passage d'un convoi (pas d'arrêt du dit convoi) uniquement pour le fonctionnement un signal (Rouge/Vert)
Il peut être utilisé n'importe où, dés lors qu'il y a une détection
Une pâle copie de ce que faisait le site de Ptitrain (voir la réponse précédente)

J'avais un peu de temps libre (je suis sur la programmation du DCC avec un Digispark) donc j'ai bricolé ce montage.

Si toute fois ce post ne correspond pas au attente de nos Amis Locoduinoistes. On délete.
Je n'en prendrais pas Ombrage

Cordialement
Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mars 03, 2017, 05:21:12 pm
Sans en être certain, c'est ce que j'avais cru comprendre.
Et du coup, cela rejoint ce que j'ai prévu pour une prochaine fiche pratique, déjà envoyée à la publication. On pourra donc comparer nos solutions.  ;)

Nous allons réfléchir à une possibilité d'article mais cela prendra certainement un peu de temps car des articles, nous en avons encore en réserve et nous avons déjà beaucoup fait attendre leurs auteurs.
Tout cela pour dire que le travail ne manque pas et c'est la preuve que LOCODUINO fonctionne et que les microcontrôleurs ont fini par s'imposer dans notre hobby.
Titre: Re : Utilisation d'ATTiny
Posté par: Marc-Henri le mars 03, 2017, 07:52:18 pm
Bravo à tous pour vos réalisations. J'aime particulièrement l'hôtel avec son enseigne ainsi que son environnement.

Les Attiny sont tout à fait adaptés à des réalisations ferroviaires, mais j'utilise plutôt l'Attiny 2313 en boîtier DIP à 20 pattes. Il comporte plus d'entrées-sorties et je l'ai déjà utilisé dans 3 projets: la gare et le TCO de mon réseau, une commande de PN à servos et feux clignotants, une commande gare cachée.

Bonne fin de semaine et meilleures salutations.
Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le mars 03, 2017, 08:14:48 pm
Bonsoir Marc-Henri,

TCO ? ça m'intéresse, bien sûr.
Peux-tu faire un fil spécifique pour nous expliquer ça ?  :P

Denis
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le mars 04, 2017, 12:23:36 am
Bravo à tous pour vos réalisations. J'aime particulièrement l'hôtel avec son enseigne ainsi que son environnement.

Les Attiny sont tout à fait adaptés à des réalisations ferroviaires, mais j'utilise plutôt l'Attiny 2313 en boîtier DIP à 20 pattes. Il comporte plus d'entrées-sorties et je l'ai déjà utilisé dans 3 projets: la gare et le TCO de mon réseau, une commande de PN à servos et feux clignotants, une commande gare cachée.

Bonne fin de semaine et meilleures salutations.

A partir de quoi programmes-tu tes ATtiny2313 ? Un module Arduino UNO ou bien un programmateur dédié ?

Sinon, 18 lignes d'E/S ça commence à faire, là où l'ATtiny44 n'en offre que 12 et l'ATtiny45 seulement 6 (bon retirer 1 pour garder le RESET !)
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le mars 04, 2017, 08:25:15 am
J'ai trouvé ceci

http://www.ernstc.dk/arduino/2313.htm
http://www.instructables.com/id/How-to-Program-ATtiny2313-Current-and-Updated/
https://oscarliang.com/program-attiny2313-using-arduino/
Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le mars 04, 2017, 09:45:53 am
Merci Jean-Luc,

Sympas, ces sites.
Le lien du deuxième envoie sur le sommaire et on apprend à faire du pain ! ;D ;D ;D
Mais il suffit de se balader un petit peu pour trouver ce qu'on cherche sur Arduino.

Denis
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le mars 04, 2017, 09:48:46 am
Zut, erreur de copier-coller, c'est corrigé  8)
Titre: Re : Re : Re : Utilisation d'ATTiny
Posté par: Marc-Henri le mars 04, 2017, 11:56:52 am
A partir de quoi programmes-tu tes ATtiny2313 ? Un module Arduino UNO ou bien un programmateur dédié ?

Sinon, 18 lignes d'E/S ça commence à faire, là où l'ATtiny44 n'en offre que 12 et l'ATtiny45 seulement 6 (bon retirer 1 pour garder le RESET !)

Bonjour Christian,

J'utilise mySmartUSB light http://doczz.fr/doc/385084/mysmartusb-light (http://doczz.fr/doc/385084/mysmartusb-light) pour la programmation des Attiny et Atmega. Il se pilote aisément depuis avrdude.

J'ajouterais que je suis sous Ubuntu et que tous les outils sont disponibles dans les dépôts logiciels: AVR-gcc, avrlib, avrdude. Le makefile avec diverses cibles pour compiler et programmer le microcontrôleur est appelé depuis l'éditeur gedit.

Pour la petite histoire, je n'ai jamais touché à un Arduino, mais l'approche reste quasiment la même et je ne me sens pas dépaysé sur Locoduino. ;)

Bonne fin de semaine et meilleures salutations.

Marc-Henri
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le mars 04, 2017, 07:12:38 pm
J'ai trouvé ceci

http://www.ernstc.dk/arduino/2313.htm
http://www.instructables.com/id/How-to-Program-ATtiny2313-Current-and-Updated/
https://oscarliang.com/program-attiny2313-using-arduino/

C'est donc la même chose que pour programmer l'ATtiny45 à partir du module UNO, ce qui ne m'étonne pas puisque la structure des deux µC est à peu près la même.
Titre: Re : Re : Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le mars 04, 2017, 07:21:20 pm
Bonjour Christian,

J'utilise mySmartUSB light http://doczz.fr/doc/385084/mysmartusb-light (http://doczz.fr/doc/385084/mysmartusb-light) pour la programmation des Attiny et Atmega. Il se pilote aisément depuis avrdude.

Marc-Henri

Bonjour Marc-Henri,

J'ai déjà vu ce genre de petits programmateurs USB pour les µC AVR Atmel.
Tout de même, que de progrès en quelques années pour programmer simplement les µC !
Raison pour laquelle je fais de moins en moins d'électronique classique et de plus en plus d'électronique programmable.  ;)
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mars 07, 2017, 07:02:43 pm
Bonsoir,

Si certains sont comme moi qui je cherche des réponses simples (et surtout je ne trouve pas)
Quelles sont les différences entre tous ces ATtiny?

Même tension
Même brochage

Uniquement la taille de la mémoire

ATtiny 13 => 1KB
ATtiny 25 => 2KB
ATtiny 45 => 4KB
ATtiny 85 => 8KB

C'est bon pour la mémoire !!!!!!

Cordialement
Marcel


Titre: Re : Utilisation d'ATTiny
Posté par: Marc-Henri le mars 07, 2017, 08:41:59 pm
Bonsoir Marcel,

Les paramètres qui distinguent les Attiny (comme les Atmega) sont:
Le site du fabricant Atmel liste les 2 familles:
Meilleures salutations.

Marc-Henri
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mars 07, 2017, 09:19:37 pm
Merci pour ces renseignements
Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mars 30, 2017, 01:55:12 pm
Voici un nouvel article sur le microcontrôleur ATtiny45 :
http://locoduino.org/spip.php?article192

Une fois de plus, nous vous proposons un montage qui trouvera sa place sur votre réseau de trains pour un prix très modique.

Bonne lecture.

Christian
Titre: Re : Utilisation d'ATTiny
Posté par: PhB22 le avril 02, 2017, 09:10:14 am
Bonjour à tous,
Petite info : dans le dernier Loco Revue, en première fiche pratique, un court article pour programmer le ATTINY45
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le avril 02, 2017, 10:11:07 am
Normal, la fiche pratique de LR837 ET les articles de Locoduino sont du même auteur : Christian Bézanger  ;D

Il est sur tous les fronts et mérite nos applaudissements  :D :D :D
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le avril 10, 2017, 07:12:39 pm
Bonjour à tous ceux qui aiment se secouer les puces (ATtiny bien sûr !)

Je cherche quelqu'un qui utilise des puces de la série ATtiny24/44/84, enfin surtout 44 et 84 car le 24 n'a pas assez de mémoire pour ce que je veux tenter.
Si vous avez l'expérience et qu'il vous reste une puce que vous pouvez (re)programmer, je vous demanderai de réaliser une expérience pour moi.

Vous pourrez ainsi faire avancer la science...  ;)
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mai 01, 2017, 11:09:20 am
L'événement Trainsmania à Lille a été l'occasion pour l'équipe de LOCODUINO de se réunir (autour d'une bonne table mais aussi pour travailler !!!). Beaucoup de projets vont sortir mais en attendant, je vous propose un nouvel article sur l'ATtiny :

Le microcontrôleur ATtiny45 (6) (http://locoduino.org/spip.php?article193)

Encore un montage pour allumer des LED me direz-vous ? Oui, mais ce sera le dernier et celui-ci vous propose une astuce de montage à connaître pour économiser les ressources de l'ATtiny45.

Le prochain article (dans quatre semaines) parlera du contrôle d'un servomoteur avec... un ATtiny !   :) (Mais si c'est possible !)

Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mai 01, 2017, 06:06:38 pm
Je reviens sur ma demande

comment programmer l'ATtiny avec le programme de "Rudysmodelrailway"

J'ai cherché et trouvé le code, hélas je n'arrive pas à faire fonctionner le dit ATtiny (surement quelque chose que je n'ai pas compris)
J'aimerai savoir où se trouve la ligne de code pour changer le numéro du décodeur

Cordialement
Marcel

#include <DCC_Decoder.h>
#define kDCC_INTERRUPT 0

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Fill in the number of accessories / functions you want to control
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const byte maxaccessories = 1;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct {
  int               address;          // User Configurable. DCC address to respond to
  byte              mode;             // User Configurable. Mode: 1=Continuous, 2=Oneshot, 3=Flasher
  byte              outputPin;        // User Configurable. Arduino pin where accessory is connected to
  byte              outputPin2;       // User Configurable. 2nd pin for AlternatingFlasher (e.g. railway crossing)
  int               ontime;           // User Configurable. Oneshot or Flasher on time in ms
  int               offtime;          // User Configurable. Flasher off time in ms
  byte              dccstate;         // Internal use. DCC state of accessory: 1=on, 0=off
  byte              onoff;            // Internal use. Output state of accessory: 1=on, 0=off
  byte              onoff2;           // Internal use. Output state of AlternatingFlasher 1=on, 0=off
  byte              finished;         // Internal use. Memory that says the Oneshot is finished
  unsigned long     onMilli;          // Internal use.
  unsigned long     offMilli;         // Internal use.
} DCCAccessoryAddress;

DCCAccessoryAddress accessory[maxaccessories];

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Fill in the attributes for every accessory / function
// COPY - PASTE as many times as you have functions. The amount must be same as in line 18 above!
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void ConfigureDecoderFunctions() // The amount of accessories must be same as in line 26 above!
{
  accessory[0].address = 1; // DCC address
  accessory[0].mode = 1; // Continuous: HIGH until DCC switches the address off again
  accessory[0].outputPin = 1; // Arduino pin to which this accessory is connected
/*
  accessory[1].address = 2;
  accessory[1].mode = 2; // Oneshot: HIGH for ontime ms, then LOW and stays LOW.
  accessory[1].outputPin = 1;
  accessory[1].ontime = 1000;
 
  accessory[2].address = 3;
  accessory[2].mode = 3; // Flasher: HIGH for ontime ms, LOW for offtime ms, repeats till DCC off
  accessory[2].outputPin = 0;
  accessory[2].outputPin2 = 1; // Flasher can use 2 outputs, they will flash  on/off alternatively
  accessory[2].ontime = 500;
  accessory[2].offtime = 500;
 
  accessory[3].address = 4; // DCC address
  accessory[3].mode = 4; // Continuous: HIGH until DCC switches the address off again
  accessory[3].outputPin = 3; // Green signal
  accessory[3].outputPin2 = 4; // Red Signal
  accessory[3].onoff2 = 1; // Initially set Red signal to ON
*/
}  // END ConfigureDecoderFunctions

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // DCC accessory packet handler
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
  {
    // Convert NMRA packet address format to human address
    address -= 1;
    address *= 4;
    address += 1;
    address += (data & 0x06) >> 1;

    boolean enable = (data & 0x01) ? 1 : 0;

    for (int i=0; i<maxaccessories; i++)
    {
      if (address == accessory.address)
      {
        if (enable) accessory.dccstate = 1;
        else accessory.dccstate = 0;
      }
    }
  } //END BasicAccDecoderPacket_Handler

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Setup (run once)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
  DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);
  ConfigureDecoderFunctions();
  DCC.SetupDecoder( 0x00, 0x00, kDCC_INTERRUPT );
  pinMode(2,INPUT); // Interrupt 0, use an external pull up resistor on the opto coupler circuit !

  pinMode(0, OUTPUT);
  digitalWrite(0, HIGH);
  pinMode(1, OUTPUT);
  digitalWrite(1, HIGH);
  pinMode(3, OUTPUT);
  digitalWrite(3, HIGH); 
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);
  pinMode(5, OUTPUT);
  digitalWrite(4, HIGH);
} // END setup

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Main loop (run continuous)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
  static int addr = 0;//0

  DCC.loop(); // Loop DCC library
 
  if( ++addr >= maxaccessories ) addr = 0; // Next address to test 0

  if (accessory[addr].dccstate)
  {
    switch (accessory[addr].mode)
    {
    case 1: // Continuous
      accessory[addr].onoff = HIGH;
      break;
    case 2: // Oneshot
      if (!accessory[addr].onoff && !accessory[addr].finished)
      {
        accessory[addr].onoff = HIGH;
        accessory[addr].offMilli = millis() + accessory[addr].ontime;
      }
      if (accessory[addr].onoff && millis() > accessory[addr].offMilli)
      {
        accessory[addr].onoff = LOW;
        accessory[addr].finished = true; //this is reset to flase below in the 'else' statement
      }
      break;
    case 3: // Flasher, is an 'alternating' flasher together with outputPin2
      if (!accessory[addr].onoff && millis() > accessory[addr].onMilli)
      {
        accessory[addr].onoff = 1;
        accessory[addr].onoff2 = 0;
        accessory[addr].offMilli = millis() + accessory[addr].ontime;
      }
      if (accessory[addr].onoff && millis() > accessory[addr].offMilli)
      {
        accessory[addr].onoff = 0;
        accessory[addr].onoff2 = 1;
        accessory[addr].onMilli = millis() + accessory[addr].offtime;
      }
      break;
    case 4: // Signal
      accessory[addr].onoff = 1;
      accessory[addr].onoff2 = 0;
      break;
    }
  }
  else //accessory[addr].dccstate == 0
  {
    accessory[addr].onoff = 0;
    if (accessory[addr].mode == 4) accessory[addr].onoff2 = 1; else accessory[addr].onoff2 = 0;
    if (accessory[addr].mode == 2) accessory[addr].finished = false; // Oneshot finished by DCCstate, not by ontime
  }

  // activate outputpin, based on value of onoff
  if (accessory[addr].onoff) digitalWrite(accessory[addr].outputPin, LOW);
  else digitalWrite(accessory[addr].outputPin, HIGH);
  if (accessory[addr].onoff2) digitalWrite(accessory[addr].outputPin2, LOW);
  else digitalWrite(accessory[addr].outputPin2, HIGH);
 
} //END loop


Titre: Re : Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 04, 2017, 11:19:12 pm
...Je cherche quelqu'un qui utilise des puces de la série ATtiny24/44/84, enfin surtout 44 et 84 car le 24 n'a pas assez de mémoire pour ce que je veux tenter.
Si vous avez l'expérience et qu'il vous reste une puce que vous pouvez (re)programmer, je vous demanderai de réaliser une expérience pour moi....

Bonjour,

Je ne sais pas si cette demande est toujours d'actualité, mais je viens de recevoir mes deux premiers ATtiny 84.
Je n'ai pas d'expérience particulière (j'en suis au stade de reproduire les exemples donnés ici  :) ) mais je veux bien, si je suis guidé, réaliser une expérience, pour "faire avancer la science"  ;D ;D ;D

Cordialement.

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mai 08, 2017, 06:03:59 pm
Bonjour,

Oui, cette demande est toujours d'actualité.
Si vous disposez d'ATtiny84 et si vous avez déjà réussi à les programmer avec un simple module UNO, il y a une expérience à faire.
Ce serait de charger le programme donné en exemple -> Servo -> Sweep et de voir s'il est possible de le téléverser sur un ATtiny84.
Ce programme compile bien pour l'ATtiny84 et utilise 2084 octets et 52 octets de RAM, donc logiquement on doit pouvoir le téléverser.

Ensuite, brancher un servomoteur sur la pin qui va bien (voir dans le programme) et observer si le servo obéit aux ordres de déplacement.
Si oui, cela ouvre un champ de possibilités avec la bibliothèque Servo.

Merci de me tenir au courant si la manip est faisable.

Christian
Titre: Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 08, 2017, 08:43:09 pm
Bonsoir,

Je suis toujours volontaire pour "faire avancer la science", mais je ne remplis pas trop le cahier des charges :
La manip est elle faisable ?

Cordialement.

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mai 10, 2017, 02:51:27 pm
Bonjour Jean-Michel,

Tout d'abord, une question : as-tu déjà programmé un ATtiny84 avec ton module Mega ? (Il me faut quelqu'un qui maîtrise cette procédure)
Si oui, il n'y a pas de différence entre UNO et MEGA puisque les deux jouent simplement le rôle de programmateur.

Le nombre d'octets utilisés par la compilation de Sweep dépend du type de carte (processeur) utilisé ; ce n'est donc pas anormal d'avoir un chiffre pour l'ATtiny84 et un pour la carte Mega. J'ai compilé de mon côté pour une Mega et j'obtiens comme toi.

Le but de la manip est de téléverser le programme Sweep dans un ATtiny84 et de voir ensuite si celui-ci peut commander un servomoteur (attaché à la bonne sortie) pour obtenir ce mouvement de balayage. Si c'est le cas, cela veut dire que la bibliothèque Servo est utilisable avec l'ATtiny84, ce qui serait une aide précieuse pour utiliser des servos.

Christian

Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mai 10, 2017, 03:12:25 pm
INFORMATION IMPORTANTE

Les articles concernant les microcontrôleurs ATtiny45 (actuellement, il y en a 6 et d'autres sont prévus) sont visibles dans l'onglet "Projets ferroviaires de niveau 2".
Je les ai retirés de l'onglet "Les composants électroniques" car cet onglet est situé dans la colonne réservée aux débutants. Or, cela ne me parait pas une bonne idée de chercher à programmer des microcontrôleurs tant qu'on n'a pas acquis de solides bases dans l'utilisation d'Arduino et de son IDE.

Après, chacun fait comme il en a envie, mais ma responsabilité d'auteur est de faire savoir que la programmation de microcontrôleurs est plutôt du domaine des initiés (pas forcément expert) et qu'il peut y avoir des problèmes à résoudre. Toute l'équipe de LOCODUINO est prête à vous aider, mais il est parfois difficile de trouver la cause d'un problème à distance.

Merci de votre compréhension.

Christian
Titre: Re : Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 14, 2017, 01:27:45 am

Le but de la manip est de téléverser le programme Sweep dans un ATtiny84 et de voir ensuite si celui-ci peut commander un servomoteur (attaché à la bonne sortie) pour obtenir ce mouvement de balayage. Si c'est le cas, cela veut dire que la bibliothèque Servo est utilisable avec l'ATtiny84, ce qui serait une aide précieuse pour utiliser des servos.

Bonjour Christian,

Ben... malheureusement, ça ne marche pas  :-\
Aucun mouvement du servo quand le programme "Sweep" est téléversé dans l'ATtiny84, alors que le mouvement de balayage du servo est bien observé quand ce même programme est téléversé dans l'Arduino Mega.
Bien évidement, j'ai adapté le numéro de la sortie en fonction de la carte utilisée :
Sortie 2 pour le module Mega
Sortie 1 (pin 12) de l'ATtiny84

Pour être certain de mon coup quand à la sortie 1 de l'ATtiny84, j'ai testé celle-ci avec le programme basique "Blink" (avec le rythme modifié pour être bien sûr que c'était le mien) et une LED (externe évidement ;D)

A toute fin utile, je précise que, une fois le programme "Sweep" téléversé dans l'ATtiny84, le fait de connecter une LED sur la sortie prévue pour la commande du servo allume celle-ci de manière fixe (en tout cas, visuellement parlant).

Je profite de ce message pour vous dire que, avant de tester le programme "Sweep" et à titre de mise en bouche puisque je débutais en programmation de µC, j'ai programmé un ATtiny85 en m'inspirant du programme "signal_BAL" paru dans le LR de mai 2017 (programme auquel il manque une ou deux lignes il me semble) en lui rajoutant une durée du "Jaune" paramétrable ainsi que l'allumage / extinction des LEDs de façon progressive. Ca fonctionne très bien  :)


Titre: Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 14, 2017, 09:53:45 pm
Bonjour Christian,

Finalement, j'ai trouvé pourquoi cela ne marchait pas : c'est la bibliothèque Servo.h utilisée dans le programme "Sweep" qui n'est pas adaptée.
En effet, cette bibliothèque est basée sur un timer 16-bit alors que les ATtiny utilisent en standard un timer 8-bit (l'ATtiny84 dispose bien d'un timer 16-bit mais son utilisation dans un programme n'est pas simple puisqu'il s'agit plutôt d'un artifice permettant de faire travailler de concert deux timers 8-bit).

Donc, en cherchant un peu, j'ai finit par trouver une bibliothèque basée sur un timer 8-bit et adaptée à l'ATtiny : SoftwareServo.h

En adaptant le programme "Sweep" à cette bibliothèque, ça fonctionne maintenant parfaitement : le servo connecté à l'ATtiny84 effectue bien son mouvement permanent de balayage.

En  adaptant le port de sortie, ça fonctionne aussi bien sans autre adaptation avec un ATtiny85  :)

Cordialement.

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le mai 15, 2017, 09:43:30 am
Bravo jeanmi67 !  ;D

Cela confirme bien que l'ATTiny, sous des airs de matériel pour débutants liés au faible nombre de pattes, recèle des subtilités qui ne sont plus du niveau débutant.

Concernant les servos, cette bibliothèque est-elle affectée du "syndrome de l'essuie-glace" au démarrage ?

Denis
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mai 15, 2017, 09:52:21 am
Bonjour Christian

En te lisant, tu t'exprime:

"Je profite de ce message pour vous dire que, avant de tester le programme "Sweep" et à titre de mise en bouche puisque je débutais en programmation de µC, j'ai programmé un ATtiny85 en m'inspirant du programme "signal_BAL" paru dans le LR de mai 2017 (programme auquel il manque une ou deux lignes il me semble) en lui rajoutant une durée du "Jaune" paramétrable ainsi que l'allumage / extinction des LEDs de façon progressive. Ca fonctionne très bien"

Pourrais-tu STP nous faire profiter des modifs que tu as apporté "inclure le programme sur le post de ce  Forum"

Cordialement
Marcel
Titre: Re : Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 15, 2017, 10:15:02 am

Concernant les servos, cette bibliothèque est-elle affectée du "syndrome de l'essuie-glace" au démarrage ?

Bonjour Denis,

Comme je le disais plus haut, je n'ai pas d'expérience particulière avec les servos, donc je ne connais pas le "syndrome de l'essuie-glace".
Si celui-ci peut-être représenté par un aller-retour complet du servo à sa mise en route, la réponse est non.
Je viens de faire quelques essais, servo toujours "conduit" par l'ATtiny84, et voici mon constat : quelque soit la position de départ du servo, à la mise en route il y a un premier mouvement très fugitif dans le sens des aiguilles d'une montre suivi immédiatement après par le déroulé normal du balayage commençant dans le sens inverse des aiguilles d'une montre, sens initial de déplacement donné par le programme.
Voila, j'espère avoir répondu à ta question. :)

Jean-Michel
Titre: Re : Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 15, 2017, 10:20:07 am

Bonjour Christian
....
Pourrais-tu STP nous faire profiter des modifs que tu as apporté "inclure le programme sur le post de ce  Forum"

Bonjour Marcel,

Je me permets de répondre à la place de Christian  ;D ;D ;D

Je déposerai ici le programme complet dans le courant de la journée  :)

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 15, 2017, 12:02:07 pm
Suite à la demande d'Albert, voici le programme complet et documenté de l'adaptation de celui de Christian paru initialement dans Loco-Revue de mai 2017 (simulation de BAL)

/* Simulation de Bloc Automatique Lumineux
  Base tirée de Loco-Revue n° 837 - Mai 2017 (Christian Bézanger)
    Adaptation *** jmB *** 04/05/2017
    Durée du Jaune paramétrable
    Allumage et extinction des LEDs de façon progressive
    Testé sur ARDUINO MEGA2560 et sur ATtiny85
  Fading repris de l'IDE Arduino : Exemples - 03.Analog - Fading
  http://www.arduino.cc/en/Tutorial/Fading

  Signal à anode commune, allumé par LOW

  ===>>> Version ATtiny85 <<<===
*/

// Déclaration des constantes
//  => Assignation des broches d'entrées et de sorties
//  ===>>> Version ATtiny85 <<<===
const byte ILS_entree = 3; // Pin 2
const byte ILS_sortie = 2; // Pin 7
enum FEU : const byte { VERT = 4, ROUGE = 0, JAUNE = 1 }; // Ordre des LEDs en partant du haut du signal (www.railexpert.fr/images/railexpert/photos-pave-droite/signal.jpg)
//  ===>>> Version ATtiny85 <<<===

//  => Gestion du fading
const byte fadeValue = 10;  // Incrément de fading
const byte fadeDelay = 10;  // Temporisation de fading

// Déclaration et initialisation des variables
unsigned int dureeJaune = 5000; // Durée du jaune : 1000 = 1 seconde
unsigned long debJaune = 0;
unsigned long time0; // Top pour le cyle d'extinction et d'allumage
unsigned long time1; // Top intermediaire
byte FEU = VERT; // Pour mémorisation de l'état du feu : ou VERT, ou ROUGE ou JAUNE

////////////////////////////////////////////////////
// Routine d'allumage et d'extinction progressifs //
////////////////////////////////////////////////////
void signal(const byte quelFeuA, const byte quelFeuE, byte fadingA, byte fadingE) // A=Allumage - E=Extinction
{
  time0 = 0;
  do {
    time1 = millis();
    if (time1 - time0 >= fadeDelay) {
      analogWrite(quelFeuA, fadingA);
      analogWrite(quelFeuE, fadingE);
      time0 = time1;
      fadingA = fadingA - fadeValue;
      fadingE = fadingE + fadeValue;
    }
  } while (fadingE >= fadeValue);
  analogWrite(quelFeuA, 0);   // Fin de boucle : allumage 100%
  analogWrite(quelFeuE, 255); // Fin de boucle : extinction totale
  FEU = quelFeuA;
}

//  Initialisation du module
void setup() {
  // Déclaration des entrées et initialisation (HIGH) => ILS non enclenchés
  pinMode(ILS_entree, INPUT_PULLUP);
  pinMode(ILS_sortie, INPUT_PULLUP);
  // Déclaration des sorties
  pinMode(VERT, OUTPUT);
  pinMode(ROUGE, OUTPUT);
  pinMode(JAUNE, OUTPUT);

  // Initialisation du signal
  digitalWrite(VERT, LOW); // Vert allumé - Pas de fading à la mise sous tension
  digitalWrite(ROUGE, HIGH); // Rouge éteint
  digitalWrite(JAUNE, HIGH); // Jaune éteint
}

//  Boucle principale
void loop() {
  // surveillance ILS entrée
  while (digitalRead(ILS_entree) == HIGH)
  {
    // ILS Entrée non enclenché
    if (FEU == JAUNE)
    {
      if ((millis() - debJaune) > dureeJaune)
      {
        signal(VERT, JAUNE, 255, 0); // Ordre : allumage, extinction
      }
    }
  }

  // ILS Entrée déclenché
  switch (FEU) {
    case VERT:
      signal(ROUGE, VERT, 255, 0); break; // Ordre : allumage, extinction
    case JAUNE:
      signal(ROUGE, JAUNE, 255, 0); break; // Ordre : allumage, extinction
  }

  // Surveillance de l'ILS de sortie
  while (digitalRead(ILS_sortie) == HIGH)
  {
    // ILS Sortie non déclenché, ne rien faire
  }
  // ILS Sortie déclenché
  signal(JAUNE, ROUGE, 255, 0); // Ordre : allumage, extinction
  debJaune = millis();
}

Bonne journée à tous.  :)

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mai 15, 2017, 04:47:36 pm
Super la réactivité

Je vais tester dés que possible

Cordialement
Titre: Re : Utilisation d'ATTiny
Posté par: Thierry le mai 29, 2017, 11:08:27 am
Je m'immisce dans ce sujet parce que j'ai trouvé par hasard un site décrivant un shield maison pour la programmation des Attiny... Comme l'idée semble aussi intéressante qu'économique, voici le lien

http://www.kaibader.de/attiny-isp-arduino-shield/

malgré l'adresse allemande, le site est en anglais...

PS: Inscrit depuis peu sur Pinterest, c'est grâce à ce réseau que je découvre des choses arduinesques plus ou moins sympas... Il suffit de trier.
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le mai 29, 2017, 12:33:10 pm
Bonjour

Bricolage maison, un bout de Véroboard, support pour tous les types, quelques soudures et roule

Cordialement
Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le mai 29, 2017, 07:48:11 pm
Bonjour à tous,

Cela fait longtemps que je ne suis pas venu sur cette page ; je suis confus...  :-[
Je vais donc essayer de répondre à tous;

jeanmi67 : merci pour tes expérimentations. Donc il existe une bibliothèque pour les ATtiny. Peux-tu nous dire où la télécharger ?

DDEFF : effectivement, l'ATtiny demande déjà de bien maitriser différentes notions comme les registres, le type de mémoire, etc. C'est la raison pour laquelle j'ai supprimé ces petites bêtes de la colonne débutant du site LOCODUINO. Je pensais qu'un débutant arriverait à programmer ces puces en suivant mes procédures, mais dès qu'il y a le moindre problème, le pauvre se retrouve confronté à lui-même et s'il ne maitrise pas bien les bases, cela peut vite le faire patauger.

CATPLUS : effectivement, il manque une ou deux lignes dans le programme de la fiche pratique du LR mai 2017. J'en suis désolé et c'est de ma faute ; au départ, elles y étaient mais on m'a demandé de refaire la figure en haute définition et cela a fait sauté deux lignes de programme sans que je m'en aperçoive. J'ai immédiatement publié un correctif sur le site de Loco-Revue, sur le fil concernant ce numéro de mai 2017. D'ailleurs, lorsque je publie dans Loco-Revue, je complète éventuellement sur le forum de Loco-Revue, ne serait-ce que pour mettre un programme téléchargeable. Pensez a y faire un tour au cas où...

On peut paramétrer la durée du feu orange, mais pour ma part, je préfère mesurer la durée du feu rouge et l'affecter à la durée du feu orange. Ainsi, si on admet que les cantons ont la même longueur et que le train garde sa vitesse, chaque canton est parcouru dans le même temps ce qui donne des durées identiques pour rouge et orange.

La programmation d'ATtiny peut se faire grâce à de nombreux petits montages du commerce qu'on insère directement dans la sortie USB de l'ordinateur ou bien en bricolant soi-même un tel montage. Pour ma part, j'utilise une breadboard et six câbles pour raccorder à l'UNO. Mais c'est moins pratique.

Bon voici le programme de la fiche pratique de LR 838 de mai 2017 (Celui-ci est valide pour un ATtiny45/85 et fonctionne aussi pour un UNO avec des sorties différentes de celles employées dans la fiche pratique) :

/**********************************
 * Signal_BAL_ATtiny - 30/11/2016 *
 * ********************************
 * Ce programme simule le fonctionnement d un signal lumineux a trois
 * feux d un B.A.L Block Automatique Lumineux. Il n assure pas
 * l espacement des trains. Lorsque la loco declenche le premier ILS,
 * le signal se met au rouge. Lorsque la loco declenche le deuxieme
 * ILS, le signal se met a l orange pour une duree egale a celle du
 * rouge, puis repasse au vert.
 */

 /*  VARIABLES
  *  --------------------------------------------------------------
  *  debRouge : temps de debut du feu rouge
  *  finRouge : temps de fin du feu rouge
  *  dureeRouge ; duree du feu rouge
  *  debOrange : temps de debut du feu orange
  *  flagOrange : booleen 0 si feu orange eteint, 1 si allume
  */

  /* BRANCHEMENTS
   * --------------------------------------------------------------
   * ILS E (entree) sur 3
   * ILS S (sortie) sur 4
   * feu vert sur 0
   * feu rouge sur 1
   * feu orange sur 2
   */

const byte ILS_entree = 3;
const byte ILS_sortie = 4;
const byte feu_vert = 0;
const byte feu_rouge = 1;
const byte feu_orange = 2;
unsigned long debRouge = 0;
unsigned long finRouge = 0;
unsigned long debOrange = 0;
unsigned long dureeRouge;
boolean flagOrange = 0;

void setup() {
  pinMode(ILS_entree, INPUT_PULLUP);
  pinMode(ILS_sortie, INPUT_PULLUP);
  pinMode(feu_vert, OUTPUT);
  pinMode(feu_rouge, OUTPUT);
  pinMode(feu_orange, OUTPUT);
  // Initialisation du signal a anode commune, allume par LOW
  digitalWrite(feu_vert, LOW);
  digitalWrite(feu_rouge, HIGH);
  digitalWrite(feu_orange, HIGH);
  }

void loop() {
  // Surveillance de l ILS d entree
  while (digitalRead(ILS_entree) == HIGH)
  {
    // ILS E non declenche
    if (flagOrange)
    {
      if ((millis() - debOrange) > dureeRouge)
      {
        digitalWrite(feu_orange, HIGH);
        flagOrange = 0;
        digitalWrite(feu_vert, LOW);
      }
    }
   }
  // ILS E declenche
  digitalWrite(feu_vert, HIGH);
  digitalWrite(feu_orange, HIGH);
  flagOrange = 0;
  digitalWrite(feu_rouge, LOW);
  debRouge = millis();
  // Surveillance de l ILS de sortie
  while (digitalRead(ILS_sortie) == HIGH)
  {
    // ILS S non declenche, ne rien faire
  }
  // ILS S declenche
  finRouge = millis();
  dureeRouge = finRouge - debRouge;
  digitalWrite(feu_rouge, HIGH);
  digitalWrite(feu_orange, LOW);
  flagOrange = 1;
  debOrange = millis();

}
Titre: Re : Re : Utilisation d'ATTiny
Posté par: jeanmi67 le mai 29, 2017, 11:48:39 pm
Bonjour,

jeanmi67 : merci pour tes expérimentations. Donc il existe une bibliothèque pour les ATtiny. Peux-tu nous dire où la télécharger ?

J'ai trouvé cette bibliotèque sur le site de l'Arduino, et plus précisément ici : https://playground.arduino.cc/ComponentLib/Servo (https://playground.arduino.cc/ComponentLib/Servo)


CATPLUS : effectivement, il manque une ou deux lignes dans le programme de la fiche pratique du LR mai 2017.

Je pense que c'est plutôt moi qui avait émis cette hypothèse (message du 14-05-2017, 01:27:45), mais je ne suis pas jaloux ;D, l'important, me semble-t-il, est que chaque pierre apportée par chacun contribue à faire avancer la communauté  :)

Bien cordialement.

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le juin 01, 2017, 11:32:46 pm
Oui, désolé, tu as parfaitement raison !
La phrase de toi, a été reprise d'un post de CATPLUS mais je ne me suis pas rendu compte qu'il te citait.

Donc, rendons à César ce qui est à César... ;)

Maintenant, tout le monde a le programme dans sa totalité. Ouf !
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le juin 02, 2017, 03:53:46 pm
Voici une petite vidéo qui vous montrera l'effet obtenu avec le montage décrit dans la fiche pratique III.42 du N°838 de Loco-Revue (mai 2017) :
https://vimeo.com/219999631

Cette fois, le montage a été réalisé avec un ATtiny45 pour économiser un module UNO, mais il fonctionne de la même manière.
Quant-au programme, il a été publié un peu plus haut dans ce fil.
Titre: Re : Utilisation d'ATTiny
Posté par: jeanmi67 le juin 02, 2017, 05:13:16 pm
Bonjour,

Merci pour cette vidéo  :)

Pour ceux que cela intéresse, la version modifiée de ce programme intégrant l'extinction et l'allumage progressifs des LEDs a également été publiée un peu plus haut dans ce fil (version testé sur un montage réalisé avec un ATtiny85).

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le juin 02, 2017, 07:45:23 pm
Pour faire suite

J'ai fait un montage que vous pourrez voir à FédéRail
Cordialement

Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 02, 2017, 11:02:16 pm
Juste pour mettre la photo d'une réalisation compacte des feux tricolores de Christian Bézanger, avec un ATtiny13. Pas encore en CMS !
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le juin 04, 2017, 07:59:05 am
Pour faire suite

J'ai fait un montage que vous pourrez voir à FédéRail
Cordialement

Marcel

Cette première journée à FédéRail à Rosny sous Bois s'est très bien passée : beaucoup de visiteurs s'arrêtaient pour poser des questions. L'idée de tenir un stand LOCODUINO vient de Dominique. Marcel et moi l'avons soutenu pour cette première journée. Aujourd'hui, le stand sera tenu par Dominique et Hubert. Vous avez donc encore l'occasion de rencontrer une partie de l'équipe qui a apporté du matériel de démonstration pour cette occasion. Un grand merci à la FFMF pour nous avoir invités.

LOCODUINO publie aujourd'hui un nouvel article concernant le microcontrôleur ATtiny45 :
Le microcontrôleur ATtiny45 (7) (http://www.locoduino.org/spip.php?article194)
Cette fois, nous proposons un automatisme de passage à niveau pour ligne à voie unique, réalisé avec un servomoteur.
Une bonne occasion de découvrir comment contrôler un servomoteur par un microcontrôleur.

Mais que cela ne vous empêche pas d'aller visiter FédéRail, l'article, vous pourrez toujours le lire plus tard...  ;)
Fédé-Rail : centre aquatique Camille Muffat de Rosny sous Bois. 18 Mail Jean Pierre Timbaud. A86 sortie 17. N'hésitez pas à utiliser le parking souterrain sous le centre, il n'est pas cher (3,90 euros pour hier de 9h à 18 h 30). La gare de RER n'est pas très loin du centre aquatique pour ceux qui préfèrent le train.
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le juin 04, 2017, 09:06:32 am
Bonjour à tous

Très bonne journée avec Dominique Christian et le passage d'Hubert qui revient ce dimanche avec Dominique.
 
Merci à la FMFF .

Sur la photo de gauche à droite

Dominique, Christian et Hubert pour ma part je prends la photo.

Ce genre d'exposition  est très riche, contacts, discutions. Je pense qu'il faut renouveler cette expérience.

Cordialement
Marcel

Titre: Re : Utilisation d'ATTiny
Posté par: Thierry le juin 04, 2017, 10:13:16 am
Belle photo. Je regrette de ne pas faire partie de la fête, mais je ne doute pas que l'occasion se représente...
Bonne évangélisation !
Titre: Re : Utilisation d'ATTiny
Posté par: DDEFF le juin 04, 2017, 10:16:41 am
Un jour, on aura aussi une photo de Marcel...  ;D
Bon courage à nos missionnaires !

Denis
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le juillet 22, 2017, 12:03:04 pm
J’utilise les Kits de Miller Engineering

http://www.microstru.com 

la programmation du pic comporte 43 illuminations différentes, la sélection se fait avec un bouton poussoir.

Mon idée (comme je suis devenu un peu paresseux) remplacer l’appui du BP par Mr ATtiny85

Il n’y a rien à couper, uniquement souder un fil sur la carte (voir photo)
Installer un optocoupleur type 4N35 entre l’ATtiny et le Kit (voir plan)

Le programme TIMER_4_ATTINY

Il y a 5 boucles (c’est du n’importe quoi….) Je n’ai pas trouvé de solution pour programmer de 1mn à 1 heure (merci aux ayatollahs de la programmation de nous aider) 
La 1ère boucle est de 1 seconde, quand l’ensemble du programme est terminé, on envoie une impulsion et le programme Signs change.
De la 2ème à la 5ème boucles le temps total correspond à un peu plus de 1mn (pourquoi 4 fois la même chose, si l’on programme plus de 30000, le systeme bloque, par contre 4 fois la même chose cela fonctionne………… Bizarre

Amicalement
Marcel

PS Je n'arrive toujours pas à programmer l'ATtiny en décodeur.......
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le juillet 22, 2017, 12:17:08 pm
Bonjour Marcel,

Un int fait 16 bits et est signé. On peut donc coder une valeur allant de -32768 à +32767. ceci explique pourquoi tu ne peux pas dépasser 30000 et des poussières. Si tu le fais, tu as un débordement, la valeur que tu crois positive devient en fait négative : 32767 + 1 = -32768. Tes intervalles deviennent donc négatifs. Par conséquent millis() - time_since_last_reset qui est positif car millis() renvoie un entier non signé sur 32 bits (de 0 à plus de 4 milliards) est toujours faux.

Voir http://www.locoduino.org/spip.php?article11

Sinon, pourquoi ne pas utiliser une ScheduleTable pour générer tes impulsions ? : http://www.locoduino.org/spip.php?article116
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le juillet 22, 2017, 01:02:12 pm
Merci Jean-Luc pour les explications.
C'est clair.

Pourquoi je n'ai pas utilisé "ScheduleTable" parce que je ne l'ai pas lu..... Mea-culpa.

Si j'ai bien tout compris, faut refaire la programmation? mais pas aujourd'hui.

Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le juillet 23, 2017, 12:08:23 pm
Bonjour,
Quand les pros parlent il faut les écouter.
Donc j'ai refait le programme avec la librairie "ScheduleTable" et tout va bien (test de 1, 2, 4, 5, 10, 15, 30, 45 minutes  & 1heure)
Le seul soucis, hélas cette librairie ne fonctionne pas avec un ATtiny.
J'ai fait le même montage avec un Nano.
Cordialement
Marcel

Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le octobre 22, 2017, 03:10:16 pm
Bonjour à tous,

Je viens réveiller ce fil pour vous annoncer que nous avons publié un nouvel article sur l'ATtiny45 ; il est question de PWM, d'entrées analogiques et d'interruption.
Et tout cela le plus simplement du monde grâce à l'IDE d'Arduino.
Cerise sur le gâteau pour votre réseau : un clignoteur universel pour moins de 5 euros où vous pourrez régler la fréquence de clignotement, la durée de l'allumage et la luminosité de la LED.
Vous trouverez cet article ici : http://locoduino.org/spip.php?article195 (http://locoduino.org/spip.php?article195)
Titre: Re : Re : Utilisation d'ATTiny
Posté par: Jean-Luc le octobre 23, 2017, 11:06:29 am
Bonjour CATPLUS

Le seul soucis, hélas cette librairie ne fonctionne pas avec un ATtiny.

Pourrais-tu préciser ? pb de compilation ?
Titre: Re : Utilisation d'ATTiny
Posté par: chris_bzg le octobre 23, 2017, 04:45:31 pm
Tout ce qui fonctionne pour un UNO ne va pas forcément fonctionner pour l'ATtiny. La raison vient du fait que la conception de l'ATtiny, bien que très proche du µC de l'UNO (l'ATmega328P), n'est pas rigoureusement identique. Par exemple, pas de timer 16 bits sur l'ATtiny25/45/85, donc les bibliothèques qui utilisent le timer 16 bits de l'UNO ne fonctionneront pas sur un ATtiny. C'est le cas de la bibliothèque Servo. Peut-être est-ce la même chose pour ScheduleTable ? (je ne me suis pas encore penché dessus et Jean-Luc en sait peut-être plus que moi sur elle).
Cela vaut pourtant la peine d'essayer, mais dans ce cas, il faut si cela ne marche pas, regarder de près le message d'erreur du compilateur pour voir la raison (exemple : un registre n'a pas été reconnu).
Dans le dernier article que je viens de publier, j'ai indiqué qu'on peut utiliser la fonction attachInterrupt avec l'ATtiny, mais il faut utiliser l'ancienne formulation (celle qui n'est plus recommandée) et non la nouvelle avec digitalPinToInterrupt(pin).

Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le octobre 23, 2017, 05:21:08 pm
ScheduleTable n'utilise aucune spécificité matérielle et aucune bibliothèque. Elle n'utilise que millis().

Titre: Nouveaux Montages
Posté par: CATPLUS le novembre 18, 2017, 02:20:23 pm
Je viens de réaliser 2 petits montages:

1 Simulation de flammes dans le foyer d'une machine à Vapeur
2 Allumage de leds pour Rail Crossing

1 Imitation de flammes dans le Foyer «  Machine à Vapeur »

Ce montage utilise 3 leds  « 2 jaunes & 1 rouge »
Toutes les  leds ont une intensité et une vitesse variable. 
L’effet recherché est une impression de flamme dans le foyer de la machine (j’ai mis du papier alu autour des leds)
J’ai trouvé ce montage sur le site

http://model-railroad-hobbyist.com/node/29679

l’auteur utilise un Arduino UNO, j’ai fait des petites modifications pour l’utilisation d’un Attiny85.

Ce montage peut s’intégrer facilement dans du Zéro, éventuellement dans du Ho, mais j’ai un doute dans le N (ne pas sous-estimer les modélismes)
Modification des valeurs de base et des sorties
Ne possédant pas de machine vapeur dans mon parc, si un modéliste fait cette réalisation merci de nous faire des photos.

Cordialement
Marcel




Titre: photos suite
Posté par: CATPLUS le novembre 18, 2017, 02:21:31 pm
Foyer suite
Titre: Nouveaux Montages suite
Posté par: CATPLUS le novembre 18, 2017, 02:30:56 pm
2 Cantilever Rail Crossing

Cantilever Crossing Signals
(http://)
Ho Scale Walthers Cornerstone 933-2303 Cantilever Crossing Signals

https://www.youtube.com/watch?v=8PT_xbVut2E

A l’origine ce montage fonctionne avec un Arduino UNO ou NANO, j’ai modifié quelques valeurs et les sorties pour le faire fonctionner avec un Attiny85.

http://www.spcoast.com/wiki/index.php/GradeCrossing

L’alimentation de ce CROSSING fonctionne sous  12 volts « SANS OUBLIER LA RESISTANCE de 1k »
Nous ne pouvons pas faire fonctionner l’Attiny  avec une tension supérieure à  5volts et le CROSSING en 12volts, j’ai installé une petite interface avec 2 transistors 2N3904 sur les sorties de l’Attiny
Brancher le commun  du CROSSING sur le (+) 12volts et les leds au (-) sur les transistors
Les pins de sortie Arduino / Attiny sont des plus (+)  à brancher sur les bases des transistors.

Dans le fichier Attiny_CROSSING.ino , les instructions modifiées sont notifiées dans le programme.

« Traduction des commentaires de l’auteur »

L’utilisation des broches d'E/S sont les suivantes:
Broche numérique 2: Entrée de détection temporisée: Utiliser avec un circuit de détection actif à collecteur ouvert bas (-) des deux côtés du passage à niveau. Un niveau bas (-) sur cette entrée déclenchera une minuterie de 10 cycles à chaque déclenchement, si vous n'utilisez qu'un seul détecteur, assurez-vous de connecter également cette broche à la broche numérique 3, le détecteur "Road Blocked".
Broche numérique 3: Détection de route bloquée Entrée: "Toujours Flash" Détection, quand cette    entrée est basse (-) le clignotant continuera à fonctionner
Broche 0 numérique : LED de croisement (pin 5 pour NANO)
Broche 1 numérique: "Autre" LED de croisement (pin 6 pour NANO)
Broche 13 numérique : Une option; LED  de débogage; celle-ci est généralement visible sur la carte Arduino

Manque plus que du son, je vais faire le nécessaire.
Cordialement
Marcel
Titre: Photos suite
Posté par: CATPLUS le novembre 18, 2017, 02:31:50 pm
Montage
Cordialement
Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le novembre 19, 2017, 12:00:12 am
De superbes photos, comme toujours !
Bravo !

Amicalement
Dominique
Titre: Re : Utilisation d'ATTiny + ScheduleTable
Posté par: Jean-Luc le février 14, 2018, 04:49:54 pm
Bonjour,

Comme j'ai mis la main sur des ATTiny (45), j'ai vérifié qu'effectivement ScheduleTable ne compilait pas. En effet, le package logiciel de ces petits micros n'intègrent pas les fonctions d'allocation dynamique de mémoire que ScheduleTable utilise (utilisait maintenant). J'ai donc modifié ScheduleTable et c'est Ok, ça compile et ça fonctionne.

Je mettrai à jour l'article sur Locoduino et les exemples en même temps que je pousserai la dernière version sur GitHub.
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 15, 2018, 03:49:13 pm
Bonjour,

J'ai conçu une carte à base d'ATTiny84 (ou plus petit, 44 ou 24) pour détecter l'arrivée des locomotives en bout de remise.

Sur mon réseau la détection de présence se fait par consommation de courant. C'est fiable mais pas très précis car ça dépend de la captation de courant de la locomotive c'est à dire de la distance entre l'avant de la loco et le premier essieu consommateur.

Mes cantons ont une zone de pleine voie et une zone d'arrêt. L'idée est de commuter une charge, une résistance, pour simuler une présence sur la zone d'arrêt en fonction de l'état d'une barrière IR, la zone d'arrêt n'étant pas utilisée pour alimenter la locomotive. Lorsque la loco coupe le faisceau, la présence en zone d'arrêt est activée.

J'aurais pu faire une électronique sans micro-contrôleur mais comme j'ai des voies de remises parallèles, allumer en permanence le faisceau risque de provoquer des détections parasites. Donc les faisceaux ne sont allumés qu'au moment de la mesure et deux faisceaux ne sont jamais allumés en même temps.

Etant donné la simplicité de l'application, j'ai choisi d'utiliser un ATTinyX4 qui permet de gérer 3 voies.

J'ai donc commandé quelques ATTiny 84, J'ai installé ATTinyCore (https://github.com/SpenceKonde/ATTinyCore), je n'ai pas eu de soucis de mise en œuvre.

Ce qui m'a rapidement enquiquiné c'est l'utilisation d'une breadboard pour programmer le micro avec les erreurs de branchement possibles. J'avais un support de test qui trainait dans un tiroir et j'ai réalisé ceci qui me permet de programmer les x4 (14 broches) et les x5 (8 broches).

(http://www.locoduino.org/pic/IMG_1665.jpg)

Ce genre de shield existe déjà bien entendu mais c'est soit avec des supports ordinaires qui sont encore plus enquiquinant que les breadboards :

(https://cdn.instructables.com/FF7/90GR/I2F21G4V/FF790GRI2F21G4V.LARGE.jpg)

soit limités au 168/328 :

(https://www.elektor.fr/media/catalog/product/cache/3/image/9df78eab33525d08d6e5fb8d27136e95/i/s/isp-shield-for-arduino.jpg)

soit avec un unique support de test avec une myriade de switches pour router les signaux en fonction du type de micro (autant dire que les possibilités de se tromper sont infinies :)) :

(http://www.locoduino.org/pic/451.jpg)

Il existe aussi des versions avec des multiplexeurs qui résolvent le problème des switches mais qui complexifient le système.

Du coup hier soir, j'ai dessiné un shield pour Uno permettant de flasher les x4, x5, 2313, 13, 168 et 328 avec 3 support de test et pas de sélection par switch (si ce n'est placer le micro sur le bon support dans le bons sens et au bon endroit). J'y ai mis aussi un interrupteur permettant de mettre le micro que l'on programme hors tension afin de le mettre et de l'enlever sans débrancher le Uno de l'ordi.

(http://www.locoduino.org/pic/ISPShield.png)

Pour 10 exemplaires (contrainte Electrodragon ou Seeedstudio), j'ai évalué le coût, hors port, soit environ 7€ pièce.

Quelqu'un est tenté ?

Locoduiniste| Quantité
Thierry| 1 ou 2
Jean-Luc| 2
Dominique| 2
CATPLUS| 1
bobyAndCo| 1
msport| 1
chris_bzg| 2
Didier44| 1
TOTAL| 11-12

C'est bouclé, on est à 12
Titre: Re : Utilisation d'ATTiny
Posté par: Thierry le février 15, 2018, 04:42:39 pm
J'en prend un ou deux.
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le février 15, 2018, 05:08:52 pm
J'en prends 2
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le février 15, 2018, 07:36:29 pm
Bonjour
Si toujours dispo je suis preneur de 1
Cordialement
Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: bobyAndCo le février 16, 2018, 08:51:46 am
Bonjour Jean-Luc,

Je suis preneur pour un... et merci pour la proposition.

Bien amicalement

Christophe
Titre: Re : Utilisation d'ATTiny
Posté par: msport le février 16, 2018, 11:24:04 am
Bonjour Jean-Luc,

Je suis preneur pour un exemplaire.

Merci

Michel
Titre: Re : Utilisation d'ATTiny
Posté par: jeanmi67 le février 16, 2018, 02:28:56 pm
Bonjour, :)

Merci pour votre proposition, mais ayant déjà réalisé un module "universel" (universel pour mes besoins évidement) à partir d'un support de test à 40 broches, je ne vais malheureusement pas vous passer commande.

Par contre, les photos que vous nous montrez ainsi que le schéma de votre shield pour Uno m'interpellent.

En effet, pour réaliser mon module, je me suis basé sur ce que Christian avait écrit et dessiné sur le site Locoduino concernant la procédure de programmation du microcontrôleur ATtiny45 (http://www.locoduino.org/spip.php?article189 (http://www.locoduino.org/spip.php?article189)).
Dans cet arcticle sur Locoduino, à aucun moment il n'est fait mention de condensateur, et j'ai déjà programmé sans problème plusieurs ATtiny45 comme celà.

Sur votre shield, je vois six condensateurs dont un polarisé.
De plus, en regardant le lien que vous avez donné concernant l'ATTinyCore (https://github.com/SpenceKonde/ATTinyCore (https://github.com/SpenceKonde/ATTinyCore)), je lis :
Citer
To work correctly, these parts should be installed with a 0.1uf capacitor between Vcc and Ground, as close to the chip as possible

Mes questions sont donc les suivantes :
Je ne suis pas du tout électronicien de formation, j'ai fait un peu de programmation dans ma vie, vous m'avez fait découvrir l'électronique programmable et je vous en suis très reconnaissant.
Mon apprentissage se faisant avec vous, c'est donc vous que j'embête avec mes questions ;D et excusez moi par avance si les réponses ont déjà été données par ailleurs.

Bien cordialement.
Jean-Michel

Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 16, 2018, 03:56:28 pm
Bonjour Jean-Michel

Ça n'est pas une démarche commerciale, juste une proposition de mutualisation de frais.

Les capas CMS jaunes sont effectivement les capas de 0,1µF (100nF) préconisés. Il s'agit de capas de découplage de l'alimentation (https://fr.wikipedia.org/wiki/Condensateur_de_découplage). Le chimique (C4) de 10µF sert de réservoir. Ils sont connectés entre le 5V et GND.

Ces capas servent à lisser les alimentations et à encaisser les appels de courant.

Ça peut marcher (à peu près) sans mais c'est mieux avec  ;)
Titre: Re : Utilisation d'ATTiny
Posté par: jeanmi67 le février 16, 2018, 04:11:48 pm
Merci pour votre réponse  :D

Pour la mutualisation de frais, j'avais bien compris votre proposition dans ce sens, mais j'admets que ma formulation sur ce sujet était un peu maladroite  ;)

Jean-Michel
Titre: Re : Utilisation d'ATTiny
Posté par: msport le février 16, 2018, 06:13:36 pm
Le condensateur de découplage est le remède magique à bien des dysfonctionnements inexplicables. On y pense souvent bien tard, après s'être inventé des causes inexistantes !
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 18, 2018, 12:05:52 pm
Bonjour

Voici les schémas de câblage des différents support de test. Pourriez vous les confronter aux différents tuto que l'on trouve sur le web ?

ATMega 168/328

(http://www.locoduino.org/pic/ATTiny/test328.png)

ATTiny 2313, ATTiny 13, ATTiny x5

(http://www.locoduino.org/pic/ATTiny/test2313x5.png)

ATTiny x4

(http://www.locoduino.org/pic/ATTiny/testx4.png)

Et l'Arduino Uno

(http://www.locoduino.org/pic/ATTiny/arduino.png)
Titre: Re : Re : Utilisation d'ATTiny
Posté par: chris_bzg le février 20, 2018, 04:14:54 pm
Pour 10 exemplaires (contrainte Electrodragon ou Seeedstudio), j'ai évalué le coût, hors port, soit environ 7€ pièce.

Quelqu'un est tenté ?

Locoduiniste| Quantité
Thierry| 1 ou 2
Jean-Luc| 2
Dominique| 2
CATPLUS| 1
bobyAndCo| 1
msport| 1

Tu peux me rajouter dans le tableau pour 2 exemplaires.
Titre: Re : Utilisation d'ATTiny
Posté par: Didier44 le février 20, 2018, 06:00:50 pm
Bonjour,

Merci pour cette proposition.
Tu peux me rajouter également dans le tableau pour 1 exemplaire.

Didier
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 20, 2018, 07:38:40 pm
Bonsoir,

C’est donc bouclé. On est à 11 ou 12 exemplaires sachant que chez electrodragon ils en font 12 et éliminent ceux qui sont ratés mais ça ne m’est jamais arrivé et j’ai toujours eu 12 exemplaires.

Les composants sont commandés. Je les reçois demain. J’ai également pris un 328, un 2313 et un 13 afin des tester leur programmation.

Les plus attentifs auront remarqué que le shield fait moins de 60x60. Or La taille possible est de 100x100. Il y a donc de la place pour d’autres design, grosso-modo une carte 100x40 et une 60x40.

Pour ma part, je vais faire une carte, sans doute plus petite que 60x40 avec un 328 en boîtier TQFP32 cadencé à 20MHz, un CH340, un MCP2517 et un 2561 afin de tester une carte compatible Arduino avec du CAN FD.

Il reste donc pas mal de place, si vous avez des idées...
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le mars 21, 2018, 08:05:45 pm
La série de cartes est bouclée.

Comme il y a deux cartes à réaliser, c'est mieux chez Seeedstudio. Par conséquent il n'y aura que 10 exemplaires. J'avais mis 2 pour moi mais une me suffit. Thierry avait dit 1 ou 2, ça sera donc une sauf protestation :)

LocoduinisteQuantité
Thierry1
Jean-Luc1
Dominique2
CATPLUS1
bobyAndCo1
msport1
chris_bzg2
Didier441
TOTAL10


Titre: Re : Utilisation d'ATTiny
Posté par: Thierry le mars 21, 2018, 10:05:22 pm
Non, non. Ça me va.  :)
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le mars 28, 2018, 07:38:58 pm
SlowMotionServo sur ATTiny84  :)

http://locoduino.org/pic/sms/smsattiny84.mp4
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 04, 2018, 11:00:58 pm
Bonsoir,
je reprends le fil qui a vu le lancement des PCB.
Donc après avoir monté le shield programmateur et installé celui-ci sur un UNO, j'ai déversé l'exemple :
// ArduinoISP
// Copyright (c) 2008-2011 Randall Bohn
dans ce UNO, avec succès.
J'ai chargé le B.A.L Block Automatique Lumineux de Christian, choisi Programmateur Arduino as ISP. Choisi ATTiny13 Standalone 1.2Mz.
J'ai mis un ATTiny13 sur le socket du milieu, pin 1 collé coté levier, mis la tension (vu le ON), et lancé la vérification.
Ça c'est arrêté avec :
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Michel\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

Une erreur est survenue lors du transfert du croquis

         Using Port                    : usb
         Using Programmer              : arduinoisp
avrdude: Error: Could not find USBtiny device (0x2341/0x49)

avrdude done.  Thank you.

Est-ce du à l'ATTiny13, un problème de communication avec la carte ou un petit détail ?

Thank you.

Très jolis les effets de lumière, mais je les aurais préférés coté Tiny.
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le juin 05, 2018, 08:48:47 am
Je sais pas

Je viens de flasher un ATTiny 13 et ça marche. As tu gravé la « séquence d'initialisation » aka les fusibles ?

C'est un peu capricieux, graver la séquence d'initialisation n'a pu se faire qu'après avoir débranché et re-branché.

Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 05, 2018, 09:43:24 am
J'ai négligé ce que je prenais pour un avertissement :
Fichier du bootloader spécifié mais absent: C:\Users\Michel\Documents\Arduino\hardware\attiny13\avr\bootloaders\empty

Le bootloader est spécifique ou non ? Je peux récupérer un pour ATMega ?

De mes précédentes expériences, je pensais qu'il n'y avait pas besoin de bootloader. Je vais aussi tester en parallèle avec un 2e Arduino (un vrai 16U2  ;)  ).

Je voulais éviter de rater quelque chose d'évident.
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le juin 05, 2018, 10:44:55 am
Séquence d'initialisation ≠ bootloader

La séquence d'init c'est la programmation des fuses pour la source d'horloge et sa fréquence, le BOD, etc
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 05, 2018, 11:19:04 am
Au moins ça me manque :
Erreur lors de la gravure de la séquence d'initialisation : le paramètre de configuration « bootloader.tool » est manquant.
je vais reprendre le problème.

Mémoire courte : j'avais déjà confondu séquence d'initialisation et bootloader en janvier 2017.
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 05, 2018, 11:52:30 am
Mon package ATtiny13 a du souffrir lors de mises à jour ...

Les ATTiny85 et autres avaient disparus, réinstallation du package de Freeman. Un pas de plus, mais

C:\Users\Michel\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Michel\AppData\Local\Arduino15\packages\diy_attiny\hardware\avr\2018.3.11/avrdude.conf -v -pattiny85 -carduinoisp -e -Ulock:w:0xFF:m -Uefuse:w:0xFE:m -Uhfuse:w:0b11011101:m -Ulfuse:w:0xE2:m

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Michel\AppData\Local\Arduino15\packages\diy_attiny\hardware\avr\2018.3.11/avrdude.conf"

Erreur lors de la gravure de la séquence d'initialisation.
         Using Port                    : usb
         Using Programmer              : arduinoisp
avrdude: Error: Could not find USBtiny device (0x2341/0x49)

avrdude done.  Thank you.

En fait même message qu'en l'absence de composant sur le support, je vais (re)vérifier mes soudures.
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 05, 2018, 05:16:54 pm
En vérifiant les continuités, je constate que je n'ai pas de liaison entre la pin 1 de chaque support et la broche qui va au Reset  de l'Arduino.
J'ai bien continuité entre les pins 1 et les soudures qui semblent correctes, par contre, il me manque une continuité (piste) entre les deux supports petit et moyen. Et comme j'ai soudé les yeux fermés sans vérifier le PCB ... si on peut dire.
Je vais insister sur ces points, la métallisation des trous n'assure peut-être pas correctement le contact.
Edit : J'ai insisté : 10s sans résultat, je vais mettre des straps.
Sinon, ça semble OK pour les cinq autres signaux.
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le juin 05, 2018, 05:25:03 pm
Le dessin des pistes est le suivant :

(http://www.locoduino.org/pic/ISPShield.png)

En bleu ce sont les piste côté composants, en vert, côté « cuivre »

Les support de test étant soudés le piste du reset est masquée.

Note que sur le petit, le reset est sur la pin 4, pas 1.  Les schémas sont plus haut
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 05, 2018, 05:36:20 pm
Bonne remarque, je vais faire attention pour les straps.

Edit : Bon, je vérifierai d'abord à partir du typon la prochaine fois, car c'est Ok. Et je cherchais le reset sur le reset de l'Arduino, comme le donne certains schémas. Je teste d'abord en direct avec l'arduino (clone) avant de mobiliser de l'aide à nouveau ...

Edit2 : Finalement le shield était parfait. Simplement deux arduino CH340G réfractaires à la programmation comme ISP.
J'ai retrouvé celui (CH340G aussi) qui m'avait permis de faire mes premiers essais réussis il y a plus d'un an, et là, gravure sur ATTiny13 de la séquence d'initialisation plus petit programme chenillard sans souci.

Désolé de ne pas avoir commencé par là. Et pas de 16U2 en magasin.


Donc problème résolu.
Titre: Re : Utilisation d'ATTiny CMS
Posté par: msport le juin 09, 2018, 05:07:32 pm
Bonjour,

en complément à ce shield, il existe des adaptateurs pour les boitiers CMS tels que :

https://www.ebay.fr/itm/SOP8-to-DIP8-Wide-body-Seat-Wide-200mil-Programmer-Adapter-Socket/182470081376 pour les 8 pattes

attention les narrow (150 mil) sont trop étroits.

et

https://www.ebay.fr/itm/SOP8-to-DIP8-PLCC32-to-DIP32-Socket-Adapter-Converter-Programmer-IC-Test-Socket/382167093948 pour les 16 pattes

choix  SOP16 to DIP8 300mil

je ne les ai pas encore reçus, donc je ne peux pas encore valider qu'ils conviennent en largeur et en connectique.

Peut-être les avez vous déjà expérimentés ?

Utile si le connecteur ISP n'a pas été prévu et si vous n'avez pas encore soudé le composant.
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le août 27, 2018, 12:37:10 pm
Bonjour
En complément du post de Michel

http://forum.locoduino.org/index.php?topic=601.msg6788#msg6788

Quelques copies d'écran et mon pense bête  pour programmer les Digispark

Marcel
Titre: Re : Utilisation d'ATTiny
Posté par: laurentr le février 12, 2019, 03:50:34 pm
Bonjour

Reste t il dispo un bouclier de prog multi devices?

Je serai preneur d un exemplaire.

Pour ma part j ai réalise un bouclier pour le 328 soit en format DIP28 soit TQFP32 via adpatateur ( soit a 32 broches soit a 28 broches)

Avis au amateurs...
Laurent
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 12, 2019, 05:13:19 pm
Bonjour,

Non, mais je peux fournir les Gerber.

Si d'autres personnes sont intéressées, l'une d'entre elle peut commander et distribuer.
Titre: Re : Utilisation d'ATTiny
Posté par: laurentr le février 12, 2019, 06:34:41 pm
Bonsoir
Je suis preneur je lancerai un lot de pcb avec d autres commandes que je dois lancer aussi très bientôt

D avance merci
Laurent
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 12, 2019, 07:06:25 pm
Voici  :)
Titre: Re : Utilisation d'ATTiny
Posté par: laurentr le février 13, 2019, 08:55:18 am
Merci

Pour R1 à R4 tu mets combien? 1K?

Laurent
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 13, 2019, 09:15:15 am
Bonjour,

Oui 1k c'est très bien

L'interrupteur est celui ci : https://www.tme.eu/fr/details/esp2010/commutateurs-a-glissiere/ece/
Titre: Re : Utilisation d'ATTiny
Posté par: laurentr le février 13, 2019, 09:20:34 am
Hello

Son role est de mettre OFF avant extraction/ et ON avant insertion je presume?
Titre: Re : Utilisation d'ATTiny
Posté par: Jean-Luc le février 13, 2019, 09:22:15 am
C'est ça
Titre: Re : Utilisation d'ATTiny
Posté par: Benoit92 le juin 08, 2019, 12:23:09 am
Bonsoir,
J'ai acheté une carte ATtiny85 (pas Digispark) équipée d'une prise microUSB.
J'ai chargé l'ATtiny 85 dans l'IDE ARDUINO.
Le port reste grisé.
Il doit à priori manquer le driver pour brancher cette carte directement sur le PC.

Je n'arrive pas à trouver un driver USB pour ATtiny, s'il existe !
Merci
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 08, 2019, 10:14:32 am
Bonjour,
j'imagine que même si la carte n'est pas une Digispark (nombreux clones), le driver (qui n'est pas basé sur le même principe que celui des Arduino via l'IDE) doit fonctionner de la même manière : donc à tester comme décrit là :
http://forum.locoduino.org/index.php?topic=601.msg8169#msg8169
Titre: Re : Utilisation d'ATTiny
Posté par: Benoit92 le juin 08, 2019, 01:44:45 pm
Merci.
J'ai suivi la procédure, mais le port est toujours grisé.
De plus, le son correspondant à l'introduction d'une clef USB se déclenche tout le temps
(en même temps que le gestionnaire de périphérique qui fait une RAZ).
Je n'ai qu'un seul port com (USB-SERIAL CH340 (COM6)) qui doit, je pense, servir pour un arduino.
Titre: Re : Utilisation d'ATTiny
Posté par: msport le juin 08, 2019, 02:31:40 pm
Redisons qu'il n'y a pas de port Arduino dans l'IDE pour ces cartes.
Avez vous installé ces cartes via http://digistump.com/package_digistump_index.json (dans Préférences puis Gestionnaire de cartes) ?
Il faut lancer DPinst64.exe directement (et non via les .bat qui plantent) pour un système x64.
Le driver n'apparait que dans les périphériques cachés du gestionnaire de périphériques en tant que "libusb-win32 devices"
Et vous n'avez pas noté qu'il ne faut connecter la "clé USB" qu'après la compilation quand l'IDE vous le demande.
Titre: Re : Utilisation d'ATTiny
Posté par: Benoit92 le juin 09, 2019, 12:56:15 am
Ok, j'ai repris la procédure avec :
Carte débranchée
Programmateur : USBasp
Type de carte : Digispark (Default-16,5 mhz)

puis vérifier/compiler
puis téléverser
Attente du message :
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...


-> Branchement carte ATtiny sur USB

Résultat :
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!


Le résultat est-il correcte d'un point de vue mise en œuvre ATtiny ?

Je n'ai pas encore brancher de leds.
Nota : le port est toujours grisé dans l'IDE
Titre: Re : Re : Utilisation d'ATTiny
Posté par: msport le juin 09, 2019, 10:13:10 am
... correct d'un point de vue mise en œuvre ATtiny ?
oui, en interface USB du topic 601 (et pas en programmation directe comme décrit dans ce fil)

Nota : le port est toujours grisé dans l'IDE
Et le restera dans cette configuration.
Titre: Re : Utilisation d'ATTiny
Posté par: Benoit92 le juin 09, 2019, 02:01:32 pm
Ok, merci.
En fait, j’espérais pouvoir monter facilement un décodeur à base d'ATtiny85 dans une petite locomotive (type 030) à l'échelle 0 (un forumer fcot2002 semble intéressé).
Il est nécessaire d'ajouter à l'ATtiny :
- une interface opto-électronique pour récupérer le signal voie DCC
- une carte Alim -> 7805
- un pont en H
- des leds
- du fil, du fil . . .

Problème : avec la bibliothèque NmraDcc et avec un ATtiny85, il manque 82Bytes !
Il est peut-être possible de simplifier le programme : https://github.com/mrrwa/NmraDcc/tree/master/examples
 -> NmraDccMultiFunctionMotorDecoder - added another example of s simple DCC Multifunction (Locomotive) decoder- last month


Personnellement, je travaille en échelle 1 (Märklin) voir échelle 0.
Je continue mon projet de 2D2 5500 (1 Arduino Nano + 1 Teensy 3.2 + EEprom pour le son) +
- une interface opto-électronique pour récupérer le signal voie DCC
- une carte Alim -> 7805
- un pont en H
- des leds
- un ampli audio
- un haut-parleur
- un paquet de fil
Dans une 030 Märklin Echelle 1, cela rentre déjà au chausse-pied !
Titre: Re : Re : Utilisation d'ATTiny
Posté par: Benoit92 le juin 13, 2019, 12:03:40 am
Ok, j'ai repris la procédure avec :
Carte débranchée
Programmateur : USBasp
Type de carte : Digispark (Default-16,5 mhz)

puis vérifier/compiler
puis téléverser
Attente du message :
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...


-> Branchement carte ATtiny sur USB

Résultat :
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!


Le résultat est-il correcte d'un point de vue mise en œuvre ATtiny ?

Je n'ai pas encore brancher de leds.
Nota : le port est toujours grisé dans l'IDE
Donc,si je comprends bien, pas de port COM donc pas de moniteur série.
Comment faire pour debugger à part utiliser un Arduino pour debugger.
Puis, lorsque le programme est au point, "vérifier et compiler" sur ATtiny, puis téléversersur l'ATtiny.
Titre: Re : Re : Re : Utilisation d'ATTiny
Posté par: Dominique le juin 13, 2019, 04:34:19 pm
Donc,si je comprends bien, pas de port COM donc pas de moniteur série.
Comment faire pour debugger à part utiliser un Arduino pour debugger.
Puis, lorsque le programme est au point, "vérifier et compiler" sur ATtiny, puis téléversersur l'ATtiny.

Les cartes Digistump à base d'ATtiny85 sont équipées d'un port USB qui ne fonctionnent pas comme les autres Arduino.
Le port USB est paramètré comme un USB HID (Human Interface Device, c.à.d comme un clavier ou une souris) et c'est donc normal qu'il n'apparaisse pas dans la liste des ports (série) de l'IDE. Donc le moniteur de l'IDE ne peut pas fonctionner comme d'habitude

J'ai trouvé ceci sur le site de digistump  : http://digistump.com/board/index.php/topic,2375.msg11196.html#msg11196 (http://digistump.com/board/index.php/topic,2375.msg11196.html#msg11196)

#include <DigiUSB.h>
void setup() {
  // put your setup code here, to run once:
  DigiUSB.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
 /* Check USB is still working */
  if(DigiUSB.available()) /* Just hit "Enter" in the digiterm to check USB */
  {
    DigiUSB.read(); /* just to clear the Rx buffer */
    DigiUSB.println(F("DigiUSB is still alive!"));
  }
  DigiUSB.refresh();

  delay(100);
}

Cela se compile bien avec la bibliothèque digiUSB.h.

Maintenant je n'ai pas testé ce code n'ayant pas de carte sous la main, ni de Windows.
Cela nécessite sans doute un émulateur de terminal comme digiterm :
# digiterm
Looking for Digispark running DigiUSB...
Attached to <Digispark:DigiUSB:@5.29>
Type control + c to exit

DigiUSB is still alive!
^C
Vous trouverez certainement une réponse complète sur le site http://digistump.com/board/ (http://digistump.com/board/)
Titre: Re : Utilisation d'ATTiny
Posté par: Dominique le juin 14, 2019, 09:43:53 am
En cherchant un peu, la solution la plus récente est là :
https://digistump.com/wiki/digispark/tutorials/digicdc (https://digistump.com/wiki/digispark/tutorials/digicdc)

Ce n’est pas DigiUSB mais DigiCDC qu’il faut utiliser. Il y a au moins un exemple (DigisparkCDC) disponible dans l’IDE.

You must explicitly include the DigiCDC library - by placing the following at the top of your sketch
#include <DigiCDC.h>
It uses a lot of RAM - half of the Digispark's RAM - so only include it when needed and watch your RAM usage. You can wrap strings in F() (ie. SerialUSB.print(F(“test”)) ) to put the string in flash memory instead of RAM
You use it the same as Serial on an Arduino but with SerialUSB instead (ie. SerialUSB.read() instead of Serial.read() ) - The Pro also has Serial defined - but that refers to the hardware Serial port on Pins 6 and 7.
The begin statement does not need a baudrate - it is a CDC device so it does not have a set baud rate - just use SerialUSB.begin()
You must install the driver for windows - it is part of the driver package found in the Digispark Arduino release.
It is slow - it transfers data very slowly (5ms per character) - because it is a low speed USB device doing the job of a Standard speed device - and doing it all virtually without actual hardware support!
Like all of our V-USB libraries you must use its delay function instead of delay() - so use SerialUSB.delay() when you need a delay in your code.
SerialUSB.delay() or SerialUSB.refresh() must be called every 10ms or less in your code if no other SerialUSB call is made in that code
Titre: Re : Utilisation d'ATTiny
Posté par: CATPLUS le juin 14, 2019, 07:46:34 pm
Bonjour,
Quelques photos, en espérant que cela puisse aider
Titre: Re : Utilisation d'ATTiny
Posté par: Benoit92 le juin 15, 2019, 07:13:45 pm
Merci.
You must install the driver for windows - it is part of the driver package found in the Digispark Arduino release.
Dans le répertoire "Digistump Drivers"
c'est quel driver ?
- Install Drivers
- DPinst64
- Launcher
- micronucleus