LOCODUINO

Passage à niveau géré par Arduino (2)

Les feux lumineux clignotants

. Par : Christian

Le montage des feux La figure 1 montre un exemple de feu rouge clignotant de passage à niveau en France. On remarque une cible ronde de couleur gris foncé, entourée d’un cercle blanc avec en son centre, une ampoule rouge. Une visière permet de protéger l’ampoule de l’éclairage ambiant afin de renforcer sa visibilité. Lorsque le feu clignote, (…)

Retourner à l'article

Vous répondez à :

Passage à niveau géré par Arduino (2) 21 avril 2022 17:18, par Philippe GUENET

Merci beaucoup Jean-Luc, je vais essayer de trouver le temps de procéder à des tests.
Je ferai une petite remontée ici dès que possible.

Merci à toute l’équipe

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

34 Messages

  • Passage à niveau géré par Arduino (2) 21 avril 2022 08:10, par Philippe GUENET

    Bonjour,
    D’abord, merci pour vos articles qui sont très utiles et bien faits.
    Dans le but de migrer ce montage vers un ATtiny (85 ou 84) pouvez-vous me dire si la bibliothèque "LightDimmer.h" est compatible avec ces puces.
    Pouvez-vous me conseiller une bibliothèque pour gérer les servomoteurs également sur ce type de puces (en remplacement de la bibliotèque "servo.h").
    J’espère que vous pourrez répondre à mon questionnement.
    Bien cordialement.

    Voir en ligne : Passage à niveau géré par Arduino (2)

    Répondre

    • Passage à niveau géré par Arduino (2) 21 avril 2022 09:53, par Christian

      Concernant la bibliothèque LightDimmer, je vais poser la question directement au concepteur et je reviendrai vers vous dès que possible.
      Par contre, dans ce projet de migrer vers un ATtiny, le gros problème sera de commander les servos car ces µC ne peuvent utiliser la bibliothèque Servo d’Arduino. Je l’explique dans cet article :
      https://locoduino.org/spip.php?arti...
      En conséquence, il faudra chercher si une bibliothèque a été conçue pour ces puces ou bien reconstituer un signal capable de s’appliquer à un servo comme je le faisais dans l’article précité.
      Quel est l’intérêt de faire appel à des ATtiny alors qu’on peut utiliser une carte Nano qui ne coûte pas beaucoup plus cher sur le marché asiatique ? En échange de la différence de prix, on se simplifie grandement la vie, mais ce n’est qu’une suggestion.
      A bientôt pour la réponse à la première question.

      Répondre

      • Passage à niveau géré par Arduino (2) 21 avril 2022 11:03, par Jean-Luc

        Le COVID est passé par là (et surtout la récupération de TVA ☺️). Un Nano sur le marché asiatique coûte désormais dans 6€ plus le port alors que par le passé, on en trouvait à 2€50, port gratuit. Alors qu’un ATTiny chez, par exemple, RS est à 2€50 en moyenne.

        Répondre

        • Passage à niveau géré par Arduino (2) 21 avril 2022 11:47, par Philippe GUENET

          Oui Jean-Luc ... sans parler de la place... d’autant qu’avec les frais de port c’est plutôt autour de 10-12 euros qu’on peut avoir un nano ou un mini. Même si les ATtiny ont également augmentés, ca reste plus raisonnable.
          J’ai acheté un tas de ATtiny88 (autour de 1.50 pièce hors frais de transport) mais je n’ai pas encore testé ... il me faudrait des journées de 48 heures ... l’emploi du temps d’un retraité est dingue !! (lol)

          Répondre

      • Passage à niveau géré par Arduino (2) 21 avril 2022 11:48, par Philippe GUENET

        Merci Christian.

        Répondre

    • Passage à niveau géré par Arduino (2) 21 avril 2022 10:55, par Jean-Luc

      Bonjour,
       
      LightDimmer ne réclame que les fonctions de base, pinMode, digitalWrite et millis(), pour fonctionner. Donc ça ne devrait pas poser de problème.
       
      En ce qui concerne la bibliothèque Servo, elle nécessite un timer 16 bits. Les ATTiny 24/44/84 ont un timer 16 bits et la bibliothèque Servo fonctionnera (des exemples sont dans le package de Spence Konde). Les ATTiny 25/45/85 n’ont pas de timer 16 bits et la bibliothèque Servo ne fonctionnait pas ; Toutefois, il semble que ça ait changé puisque les exemples de Servo compilent maintenant avec succès.

      Répondre

      • Passage à niveau géré par Arduino (2) 21 avril 2022 11:52, par Philippe GUENET

        OK ....merci bien Jean-Luc .... le mieux est de tester mais comme je ne maitrise pas trop Arduino ... j’ai toujours peur de faire cramer quelque chose. Mes premiers pas en électronique ont eté fatals à un bon nombre de NE555.

        encore merci pour cette aide très rapide. Bonne journée à tous.

        Répondre

        • Passage à niveau géré par Arduino (2) 21 avril 2022 11:59, par Philippe GUENET

          Je sais qu’il existe une bibliothèque Servo 8 bits mais des retours d’expérience avec celle-ci me seraient utiles.

          Répondre

          • Passage à niveau géré par Arduino (2) 21 avril 2022 13:31, par Jean-Luc

            Servo compile sur ATTiny x5. Il semblerait donc qu’elle ait été adaptée pour utiliser un timer 8 bits quand le 16 bits n’est pas présent. À vérifier.

            Répondre

            • Passage à niveau géré par Arduino (2) 21 avril 2022 17:18, par Philippe GUENET

              Merci beaucoup Jean-Luc, je vais essayer de trouver le temps de procéder à des tests.
              Je ferai une petite remontée ici dès que possible.

              Merci à toute l’équipe

              Répondre

              • Passage à niveau géré par Arduino (2) 22 avril 2022 09:44, par Christian

                Bonjour Philippe,
                Je suis très intéressé des tests que vous pourrez faire car je réfléchis depuis hier à la mise à jour que je vais devoir faire sur l’article ATtiny et servomoteurs. Plus j’aurais de billes et mieux ce sera.
                Dans le domaine d’Arduino, les choses évoluent très vite et c’est pourquoi nous avons défini dans nos normes de rédaction comment faire des mises à jour d’articles ; cela nous permet de proposer à nos lecteurs des informations qui restent valides. Et l’exemple de cet échange montre que chacun peut jouer son rôle. D’ailleurs, cet espace d’échanges à la suite de nos articles est surtout fait pour cela.
                Encore merci d’avoir soulevé ce point avec nous.

                Répondre

                • Passage à niveau géré par Arduino (2) 22 avril 2022 12:48, par Philippe GUENET

                  Avec plaisir. Je vais essayer de regarder cet après-midi ... au pire pendant le week-end. J’ai déjà vérifié que j’avais la bonne bibliothèque (la 1.1.8).
                  à bientôt ici.

                  Répondre

                  • Passage à niveau géré par Arduino (2) 22 avril 2022 15:30, par Philippe GUENET

                    Bon ... pas cool chez moi.
                    _"erreur de compilation pour la carte ATtiny25/45/85".

                    Pour être certain de moi, j’ai totalement désinstallé Arduino et effacé manuellement tous les résidus sur le HD (bien évidement, j’ai sauvegardé tous mes fichiers ino ... mais il faudra que je réinstalle les bibliothèques utilisées)
                    J’ai réinstallé Arduino (1.8.19) qui contient déjà la 1.1.8 de Servo. J’ai réinstallé les cartes.
                    Chargement de l’exemple "sweep" et donc erreur de compilation sur une carte 85 (ca fonctionne semble-t-il pour les 84)

                    je ne sais pas comment joindre des pièces jointes ni comment pouvoir échanger sans encombrer ici.
                    Pour l’instant, je vais continuer de réinstaller les bibliothèques

                    Répondre

                    • Passage à niveau géré par Arduino (2) 23 avril 2022 00:40, par Christian

                      As-tu vérifié que c’est bien la version 1.1.8 ? En effet, j’avais l’IDE 1.8.19 et pourtant ma bibliothèque Servo était la 1.1.7. Donc pour être certain, tu vas dans le gestionnaire de bibliothèques, tu recherches Servo et ensuite, tu pourras voir ton numéro de version et installer la 1.1.8 (au cas où tu n’aurais pas la bonne version).
                      Pour ma part, avec l’IDE 1.8.19 et après avoir installé Servo 1.1.8, l’exemple Sweep a compilé (il faut aussi penser à modifier le numéro de broche car l’ATtiny n’a pas toutes les connexions de la carte Uno).

                      Répondre

                      • Passage à niveau géré par Arduino (2) 23 avril 2022 06:46, par Philippe GUENET

                        Bonjour Christian,
                        Oui c’est bien la 1.1.8 qui est installée. Je viens même de la recharger à partir du site arduino.cc..

                        Oui, j’ai bien changé le pin

                        J’avais oublié de vous dire que la loi de Murphy a spécialement été concue pour moi.

                        J’ai un autre ordi sur lequel j’avais une installation de l’ide. Je vais tester dans l’après-midi car depuis la nouvelle installation de l’IDE arduino j’ai tout un tas de bizareries que je n’avais pas avant (par exemple des erreurs de compilation si mes procédures sont écrites après le loop. Il faut qu’elles soient impérativement avant le setup pour ne plus générer d’erreurs).

                        je reviens vers vous dans la journée.

                        Bon We à tous

                        Répondre

                        • Passage à niveau géré par Arduino (2) 23 avril 2022 06:59, par Philippe GUENET

                          voici le message d’erreur complet

                          Arduino : 1.8.19 (Windows 10), Carte : "ATtiny25/45/85, ATtiny85, Internal 1 MHz"

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp : In function ’void __vector_3()’ :

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:82:44 : error : cannot convert ’volatile uint8_t* aka volatile unsigned char*’ to ’volatile uint16_t* aka volatile unsigned int*’ for argument ’2’ to ’void handle_interrupts(timer16_Sequence_t, volatile uint16_t*, volatile uint16_t*)’

                          handle_interrupts(_timer1, &TCNT1, &OCR1A) ;

                          ^

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp : In function ’void initISR(timer16_Sequence_t)’ :

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:129:5 : error : ’TCCR1B’ was not declared in this scope

                          TCCR1B = _BV(CS11) ; // set prescaler of 8

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:129:5 : note : suggested alternative : ’TCCR0B’

                          TCCR1B = _BV(CS11) ; // set prescaler of 8

                          TCCR0B

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:136:5 : error : ’TIFR1’ was not declared in this scope

                          TIFR1 |= _BV(OCF1A) ; // clear any pending interrupts

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:136:5 : note : suggested alternative : ’TIFR’

                          TIFR1 |= _BV(OCF1A) ; // clear any pending interrupts

                          TIFR

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:137:5 : error : ’TIMSK1’ was not declared in this scope

                          TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:137:5 : note : suggested alternative : ’TIMSK’

                          TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

                          TIMSK

                          exit status 1

                          Erreur de compilation pour la carte ATtiny25/45/85

                          Ce rapport pourrait être plus détaillé avec
                          l’option "Afficher les résultats détaillés de la compilation"
                          activée dans Fichier -> Préférences.

                          Répondre

            • Passage à niveau géré par Arduino (2) 21 avril 2022 19:02, par Christian

              Est-ce que tu pourrais m’en dire plus, car je viens d’essayer l’exemple Sweep sur ATtiny25/45/85 et cela ne compile pas. Bibliothèque Servo version 1.1.7.
              Par contre, je confirme qu’il compile bien pour l’ATtiny24/44/84.
              Ce résultat tendrait à confirmer qu’un timer 16 bits est bien requis.

              Répondre

              • Passage à niveau géré par Arduino (2) 21 avril 2022 19:09, par Christian

                J’ai été trop rapide car effectivement, il existe une version 1.1.8 de la bibliothèque Servo et avec celle-ci, le programme Sweep compile sur ATtiny25/45/85.
                On croit toujours être à jour ... ;-)
                Bon, c’est vrai que cela fait longtemps que je ne me suis pas servi de servomoteur ! J’avance pas à pas ! LOL

                Répondre

  • Passage à niveau géré par Arduino (2) 23 avril 2022 09:46, par Christian

    Réponse au message plus haut (car l’indentation des réponses commence à laisser peu de place).
    A priori, tout se passe comme si la version 1.1.8 de la bibliothèque n’était pas prise en compte. Dans ce cas, la version 1.1.7 opère et elle est prévue pour un timer 16 bits que n’ont pas les ATtiny25/45/85.
    Ce n’est bien sûr qu’une hypothèse de ma part ; il faudrait regarder tout cela dans le détail et aussi faire quelques essais. Hélas, je pars la semaine prochaine et je n’aurai pas le temps de m’y atteler avant mon retour prévu jeudi soir.
    D’ici là, une solution aura sans doute été trouvée...

    Répondre

    • Passage à niveau géré par Arduino (2) 23 avril 2022 12:35, par Philippe GUENET

      Bonjour Christian,

      C’est la raison pour laquelle j’ai tout "viré" et réinstallé (IDE et bibliothèques) ... sans succès.

      De toutes façons, rien ne presse.

      Bon séjour

      Répondre

    • Passage à niveau géré par Arduino (2) 23 avril 2022 12:43, par Philippe GUENET

      bonjour Christian,

      effectivement et c’est la raison pour laquelle j’ai tout "viré" et réinstallé proprement... sans plus de succès.

      Rien ne presse sur ce sujet .... bon séjour .. en attendant je vais faire d’autres tests dont une installation sur un ordinateur sur lequel arduino n’a jamais été installé.

      Bon WE à tous

      Répondre

    • Passage à niveau géré par Arduino (2) 23 avril 2022 13:30, par Jean-Luc

      Bonjour Christian.

      Quand je compile Sweep pour ATTiny 25/45/85, j’ai ceci

      Plusieurs bibliothèque trouvées pour "Servo.h"
      Utilisé : /Users/jlb/Library/Arduino15/packages/ATTinyCore/hardware/avr/1.5.2/libraries/Servo

      Par conséquent, c’est une bibliothèque Servo spécifique qui est prise en comptes pas la 1.1.8 ou une autre version installé avec l’IDE.

      Avez vous le dernier ATTiny Core installé ?

      Répondre

      • Passage à niveau géré par Arduino (2) 23 avril 2022 14:52, par Philippe GUENET

        bonjour Jean-luc,

        comme promis à Christian, je viens d’installer arduino sur une machine vierge de toute installation précédente de ce programme. Donc, même soucis, mais effectivement j’y ai installé toujours le même lien pour ajouter les cartes attiny (https://raw.githubusercontent.com/d...)
        Y en aurait-il un autre ?

        Est-ce bien de ca dont vous parler qaund vous mentionnez attiny core ?

        Répondre

      • Passage à niveau géré par Arduino (2) 23 avril 2022 16:26, par Christian

        Bonjour Jean-Luc,

        J’ai le même message que toi. J’ai installé l’ATtiny Core de Spence Konde comme je viens de le conseiller à Philippe (voir plus bas) et donc cela compile.
        Mais je manque de temps pour essayer le programme avec un ATtiny et un servomoteur.

        Répondre

  • Passage à niveau géré par Arduino (2) 2 mai 2022 17:47, par Fantasio

    Si j’ai bien tout compris, la bibliothèque Servo est (enfin)compatible avec les ATtiny85 si et seulement si :

    • IDE 1.8.19
    • bibliothèque Servo version 1.1.8
    • ATtiny Core de Spence Konde
      Ai je bien résumé ?
      Deux petites questions :
    • ma version de l’IDE est 1.8.10, elle serait donc obsolète et nécessiterait obligatoirement d’être mise à jour ?
    • la bibliothèque SlowMotionServo serait de facto (enfin) compatible avec l’ATtiny85 ?
      Merci pour vos confirmations et/ou corrections et bravo pour ce site !

    Répondre

    • Passage à niveau géré par Arduino (2) 3 mai 2022 10:03, par Christian

      Il y a toujours intérêt à faire des mises à jour des logiciels qu’on utilise (Windows, Mac OS, IDE, libraries, etc.). On accède ainsi à des nouvelles fonctionnalités et de plus, la sécurité du système est renforcée.
      Ainsi, il est recommandé d’utiliser maintenant la distribution de Spence Konde pour les ATtiny car celle de David Mellis n’a pas été mise à jour depuis longtemps. De même, l’IDE en est à sa version 1.8.19 et il est donc préférable de travailler avec cette version plutôt qu’une plus ancienne.
      L’exemple Sweep avec l’IDE 1.8.19 et la version 1.1.8 de Servo ne fonctionnera pas avec la distribution de David Mellis (je viens de le vérifier), mais compilera avec la distribution de Spence Konde. Ceux qui veulent travailler avec des microcontrôleurs ATtiny ont donc intérêt à migrer vers la distribution de Spence Konde comme indiqué dans l’article 2 de la série sur les ATtiny. Ils pourront, entre autre, utiliser un servomoteur sans avoir à se préoccuper de générer le signal de commande.
      Merci pour votre appréciation de notre site ; cela nous encourage à rester sur le pont pour vous faire profiter de ce qu’on découvre, bien souvent grâce à des lecteurs qui font part eux-mêmes de leurs problèmes ou de leurs découvertes.

      Répondre

      • Passage à niveau géré par Arduino (2) 3 mai 2022 10:17, par Fantasio

        Merci Christian pour cette confirmation.
        Je vais donc opérer la mise à jour de l’IDE et remplacer le Core de David Mellis par celui de Spence Konde.
        Bonne continuation à toute l’équipe !

        Répondre

Rubrique Projets

Les derniers articles

Les articles les plus lus