Passage à niveau géré par Arduino (2)
Les feux lumineux clignotants
. Par : Christian
Vous répondez à :
Voir plus bas.
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)
-
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.-
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.
-
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)
-
-
Merci Christian.
-
-
Bonjour,
LightDimmer ne réclame que les fonctions de base,pinMode
,digitalWrite
etmillis()
, pour fonctionner. Donc ça ne devrait pas poser de problème.
En ce qui concerne la bibliothèqueServo
, elle nécessite un timer 16 bits. Les ATTiny 24/44/84 ont un timer 16 bits et la bibliothèqueServo
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èqueServo
ne fonctionnait pas ; Toutefois, il semble que ça ait changé puisque les exemples deServo
compilent maintenant avec succès.-
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.
-
Je sais qu’il existe une bibliothèque Servo 8 bits mais des retours d’expérience avec celle-ci me seraient utiles.
-
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.
-
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
-
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.-
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.-
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-
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).-
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
-
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.
-
-
-
-
-
-
-
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.-
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
-
-
-
-
-
-
-
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...-
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
-
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
-
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é ?
-
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 ?
-
Ce package est obsolète : il faut installer celui de Spence Konde, comme expliqué dans la mise à jour faite sur cet article :
https://locoduino.org/spip.php?arti...-
Merci beaucoup Christian ... opération faite et compilation OK.
Demain je teste avec un servo et un 85
Bonne soirée à tous et encore un grand merci
-
Bonjour Christian, bonjour Jean-luc.
Pardonnez le retard apporté à faire mes tests ... quelle vie que celle de retraité !!!!
YESSSSSSSSS !!! ca fonctionne parfaitement.
Avec le matériel dont je dispose, la configuration est
- Servo sur PB1
- Carte ATtiny 85 (no bootloader)
- fréquence 1MHz (interne) ... avec mes puces, ca ne fonctionne pas en 8 MHzJe vais donc poursuivre cette voie dès que j’aurais du temps car je dois finir ma gestion des moteurs d’aiguillages.
un grand merci à vous deux et à tout le monde.
sans doute à bientôt car je ne suis pas doué ... mdr
bonne fin de journée
-
Nickel ! Bravo ! Merci du retour.
-
Oui, merci pour votre retour.
Je vais pour ma part pouvoir faire une mise à jour de l’article 189.
Bonne continuation.-
La mise à jour est faite ! (même si elle concerne l’article 194 et non 189 comme indiqué ci-dessus).
Voir en ligne : Le microcontrôleur ATtiny45 (7)
-
-
-
-
-
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.
-
-
-
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 !
-
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.-
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 !
-