Bonjour à tous,
Je cherche depuis des mois à concrétiser un projet Arduino mais sans succès ... malgré mes efforts et le temps passé sur le net.
Je me retourne donc vers vous, en espérant que vous pourrez me donner un vrai coup de main ; j'y crois !
(je rappelle que mon niveau de connaissance est proche du néant en la matière; merci pour votre indulgence)
Mon projet Arduino :
1 Mémoriser (via un potentiomètre) une suite de mouvements données à un Servo moteur (compris entre 0 et 180° et d'une durée de 3 ou 4mn tout au plus).
2 Sauvegarder en temps réel cette "chorégraphie" sur une mémoire externe (microSD ou EEPROM).
3 disposer d'un bouton "record" qui permettrait de lancer cet enregistrement.
4 disposer d'un bouton "Play", qui permettrait de rejouer une seule fois l'animation du servomoteur exactement dans le même tempo qu'elle aura été enregistrée.
5 Une fois le sketch téléversé sur la carte, le montage final serait autonome et alimenté par des batteries.
6 Bonus ambitieux : imaginer rajouter par la suite, un ou plusieurs autres servomoteurs.
Il s'agit donc de pouvoir "donner vie" à un petit objet attaché à un Servo moteur.
Comme un automate, il reproduirait des mouvements fluides et précis préalablement enregistrés.
Mon matériel et environnement :
- Arduino uno
- EEPROM 24CL 1025KB
- module carte Micro SD (4Go)
- Windows 10
- Version IDE: 1.8.13
Après avoir testé plusieurs tutos, je me suis concentré sur 3 d'entre eux qui se rapprochent de mon projet :
1 ) Avec carte micro SD:
Présenté par le canadien "Bill" : "Using SD Cards with Arduino - Record Servo Motor Movements"
https://dronebotworkshop.com/sd-card-arduino/
Son explication est particulièrement claire (et donc à ma portée).
Il propose une méthode en deux temps :
Un 1er code permet d'enregistrer les positions du servo sur la micro SD.
Un 2d code permet de lire cette même carte ; le servo moteur joue alors le playback.
Points positifs :
- le Play back est joué une seule fois.
- le bouton reset de l’Arduino joue le rôle du bouton "play" dès que la carte est mise sous tension.
Points négatifs :
- deux sketchs à téléverser, donc chaque nouvel enregistrement nécessite la présence d'un pc.
- plus embêtant, le servo moteur "rejoue" très rapidement les mouvements successifs enregistrés sans tenir compte des temps de pauses et des ralentissements initialement prévus.
Cela anéantit totalement la "chorégraphie" souhaitée...
2 ) Avec EEPROM (méthode 1):
Dans cet autre tuto, "Bill" explique les atouts de l'EEPROM et son fonctionnement.
https://dronebotworkshop.com/eeprom-arduino/
Points positifs :
- un seul sketch pour enregistrer puis lire le contenu de la mémoire.
- les mouvements du servomoteur en playback correspondent parfaitement à ceux de l'enregistrement. La "chorégraphie" est donc bien respectée.
Points négatifs :
- le playback est immédiatement rejoué sans pouvoir contrôler son lancement : manque un bouton "playback".
- impossible pour moi de relancer ce playback lorsque la carte a été débranchée puis remise sous tension.
3 ) Avec EEPROM (méthode 2):
"EEEnthusiast" propose une autre approche :
"Arduino Tutorial #22 - EEPROM & Servo Memory Tutorial - Storing Servo Motion through I2C & Playback"
Points positifs :
- comme précédemment, les mouvements du playback correspondent à ceux enregistrés.
- Présence du bouton "Record".
Points négatifs :
- les mêmes que dans le montage précédent, avec en plus le playback qui rejoué en boucle indéfiniment.
Voilà.... peut être que vous avez des solutions pour moi, et dans ce cas, je vous en suis déjà très reconnaissant ou .... peut-être que mon projet n'est qu'une utopie.
Merci d'avance à tous pour vos contributions.