Utiliser l'arpstepper avec un interrupteur de fin de course

Questions sur le matériel (Alimentations, Leds, drivers ...)
Questions about hardware (Power supply, Leds, drivers ...)
Répondre
thomas.bizien
Messages : 10
Enregistré le : lun. 19 déc. 2022 19:17

Utiliser l'arpstepper avec un interrupteur de fin de course

Message par thomas.bizien »

Bon Noël,

Et surtout merci d'avoir inventé l'arpschuino ! Je suis tombé sur cette carte au hasard d'une recherche google et son existence me fait gagner énormément de temps et rend mes petits bricolages beaucoup plus pro.
J'utilise l'arpschuino32 pour un projet qui nécessite de contrôler deux petits steppers et de retransmettre en DMX un signal artnet.
C'est un projet un peu bête et très amateur, l'idée est notamment de recouvrir de miroirs une lampe ikea PS2014 et de la motoriser pour en faire un genre de boule disco de science fiction. Cette boule disco s'intègre avec quelques lumières, une machine à fumée, du petit mapping etc et le tout est contrôlé par une vielle mixette MIDI via le logiciel TouchDesigner. Ça semble un peu compliqué comme ça mais je maitrise à peu près TD et ça me permet d'utiliser essentiellement du matos qui traîne chez moi. Tout ça tournera sur un petit festival qu'on organise entre copains.
J'ai un tout petit peu d'expérience avec la programmation d'arduino mais je suis loin d'être développeur.
J'ai besoin d'utiliser un interrupteur de fin de course pour un des moteurs et je bloque sur la façon d'intégrer ça au code.
Je pense que je pourrais écrire un programme simple pour contrôler les steppers en prenant en compte la butée mais il faudrait remplacer totalement le code de l'arpschuino et je perdrais alors la transmission d'infos DMX, la configuration par page web, etc.
La solution de facilité serait d'utiliser deux arpschuinos : Un pour contrôler les steppers et un deuxième pour servir de relais DMX mais je me dis qu'il est peut-être possible de faire plus efficace et élégant.
Je pense que je n'ai pas le niveau pour m'y retrouver tout à fait dans le code source de l'arpschuino32, je ne vois notamment pas trop dans quelle partie il faudrait rajouter la boucle if qui ferait que le moteur stoppe en butée. Si quelqu'un a des pistes à partager ça m'intéresse !
J'imagine qu'il doit être possible d'obtenir un résultat similaire en utilisant l'EEPROM de l'ESP32 pour mémoriser la position du moteur entre deux démarrages mais cette solution me semble un peu moins sûre et je suis au moins aussi largué sur la façon de la mettre en œuvre.

D'avance, merci pour tout coup de pouce !
Jacques
Messages : 278
Enregistré le : dim. 31 oct. 2021 19:37

Re: Utiliser l'arpstepper avec un interrupteur de fin de course

Message par Jacques »

Bonjour Thomas et merci pour ton enthousiasme !
J'ai une bonne nouvelle pour toi : il est possible d'ajouter du code arduino sans perdre la partie serveur, config etc...
Dans l'onglet port, là ou il y a les différents modes de chaque ports (pwm, on/off, servo...), il y a un mode "custom".
Et dans le code source, il y a un fichier nommé "custom_port.ccp". C'est dans ce fichier que tu devras écrire ton code arduino, bien sur il ne faut pas toucher aux autres fichiers.
Pour le port A par exemple :
Avant les fonctions tu inclus tes librarys, déclare tes variables globales et crée tes objets.
void setupA() est l'équivalent de void setup() avec la nécéssité d'indiquer le nombre de circuits utilisés : portA.setNbDmxChannels(4);
void at_each_loop_A() est l'équivalent de void loop()
void action_A(const std::vector<uint8_t> & DMXslice) est executé à chaque réception d'une trame DMX/Artnet. Dans cette boucle tu vas récupérer les valeurs des, par exemple, 4 circuits avec DMXslice[0], DMXslice[1], DMXslice[3], DMXslice[3].
Pour écrire le code tu peut t'inspirer du code stepper de l'arpschuino² que tu trouveras dans les exemples du core arpschuino ou dans notre tuto stepper :
http://arpschuino.fr/tuto_stepper.php#7
Ensuite il faudra uploader le code avec VScode+platformIO.
Et enfin, il faudra mettre le port concerné en mode "custom" et le code que tu as écrit s’exécutera.
Si tu rencontre des difficultés, on sera là pour t'orienter ;)
Jacques
Messages : 278
Enregistré le : dim. 31 oct. 2021 19:37

Re: Utiliser l'arpstepper avec un interrupteur de fin de course

Message par Jacques »

En fait la question aurait peut-être été mieux en section code. Je laisse Eric, l'administrateur du forum, voire si il est judicieux de déplacer le topic.
On nous a déjà posé des questions sur les fins de course :
ici (en anglais mais traduit par Eric):
viewtopic.php?t=48
Et avec l'arpschuino² ici (en anglais) :
viewtopic.php?t=20
et ici :
viewtopic.php?t=17
thomas.bizien
Messages : 10
Enregistré le : lun. 19 déc. 2022 19:17

Re: Utiliser l'arpstepper avec un interrupteur de fin de course

Message par thomas.bizien »

D'accord, merci beaucoup pour ta réponse rapide et complète !
En effet, ma question aurait sans doute été mieux rangée dans la section code, même si c'est toujours un peu transverse avec ce genre de carte...
Et désolé, je ne sais pas comment j'ai fait pour rater les posts que tu partages là, ça m'aurait peut être évité de devoir reposter à peu près la même question.
Je ne vais pas avoir le temps de m'y pencher tout de suite mais je pense que j'ai tous les éléments en main pour que ça tourne ! Donc encore merci !
Répondre