Projet

Général

Profil

Rotabators

Batteur musical électromécanique piloté en réseau wifi.

Parts

Composants Quantité datasheet Fichiers de Fab Fichiers de CAO Prix Image
Corps-pile 1 23-03-07_2706-Rotabators-001-Corps-V2-piles003.stl
Hélice-Hammer 1 23-06-13_2706-Rotabator-Hélice001.stl
Corps-moteur 1 23-03-07_2706-Rotabators-001-Corps-V2-piles003.stl
Capot-piles 2 23-03-07_2706-Rotabators-001-Capot-piles.stl
CAD 1 23-06-14_2706-Rotabator.FCStd
ESP32 DevKit Lipo 1
accéléromètre ADXL345 1
ventouses 2 à 3
Batteries 18650 4
moteur pas à pas 1 Nema-17 No

Code informatique

Accéléromètre MPU9250

https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf

Communication Max-MSP / esp32

Communication par protocole osc

exemple de lib pour esp32:


test 01: 23-02-24, code: https://github.com/madskjeldgaard/esp32-receive-osc-simple, Communication OK en wifi par le réseau local entre Max-MSP et l'esp32

Driver moteur

Elements utilisés: -Alim 24V
-Arduino UNO
-Driver DRV8825
-Ventilateur 24V type blower
-Condensateur 100µF
-Moteur pas à pas 12V

On a effectué le câblage ci-dessous:

DRV8825 Connexions
Enable GND
M0,M1,M2 Pas cablés
Reset 5V
Sleep 5V
Step Digital 3 Arduino Uno
Dir Digital 2 Arduino Uno
GND GND
Fault 5V
2A,1A,1B,2B Moteur pas à pas
GND MOT GND
VMOT Alim externe

Lien du dépot git :

Pour ce qui est de l'alimentation nous avons pour l'instant une alimentation 24V mais nous l'avons pris par dépit les autres que nous avons essayé n'étant pas assez stable vu que nous devions utiliser des pins intermédiaires. Par la suite nous allons donc revenir sur l'alimentation qui a été imprimé en 3D pour le projet une fois que la version sera stable.

Nous avons rencontré des problèmes avec les moteurs pas à pas vu que ceux-ci n'était pas clair avec quelle câble rejoignait lequel nous avons donc eu plusieurs courts circuits qui ont eu pour effet de faire chauffer énormément la plaquette ou était placé le driver, pour éviter les surchauffes nous avons donc choisit de câbler le pin fault du driver et d'installer un ventilateur.

Vmax moteur = 260µs par pas

Accéléromètre et Arduino UNO

Le but de l'accéléromètre pour notre projet est de mesurer la vitesse de rotation du moteur pas à pas. Pour cela nous avons utilisé un MPU-9250 (https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf).
On a donc effectué le câblage ci-dessous:
MPU9250 Arduino UNO
GND GND
VCC 5V
SCL A5
SDA A4

On devra recevoir des valeurs relatives. On a ajouter 1,25 à la valeur AccelZ pour avoir les valeurs aux normes (-11 -> -9).
Pour cela on a utilisé une librairies "MPU9250.h" (lien de téléchargement de la lib en .zip http://robojax.com/learn/arduino/robojax-MPU9250-master.zip)
et un code qu'on a trouvé sur le net (http://robojax.com/learn/arduino/?vid=robojax-MPU9250) puis on a juste pris la partie qui nous intéresser qui est l'accéléromètre. Les valeurs qu'on recevait en moyenne étaient de AccelX:0.03 , AccelY:-0.10 , AccelZ:-9,89 .

Solénoïde et Arduino UNO

Pour utiliser le solénoïde nous allons avoir besoin d'utiliser un transistor une diode et une résistance de 220ohms, ici nous allons utiliser un tip120 car il peut gérer des tensions jusqu'à 60V, il faut maintenant que nous choisissions une alimentation mais attention celle-ci doit être adapté a vôtre solénoïde, le nôtre a besoin de 12V(JF-0530B).
Câblage:

Code:
https://git.cohabit.fr/boutrie.eytan/Rotabator/src/branch/Solenoide/Rotabator.ino

Communication ESP et moteur pas à pas

Nous avons réutiliser des morceaux de codes fournis via la librairie OSCMessage et dans l'exemple de ce dépot(https://github.com/madskjeldgaard/esp32-receive-osc-simple), après avoir fais fonctionner la LED de nôtre carte pour vérifier la communication il ne nous restait plus qu'à réadapter le code avec le moteur pas à pas.
Le code du maître va simplement envoyé un paquet UDP a la fréquences que l'on souhaite, la librairie que nous utilisons permet de transmettre des entiers des flotants ainsi que du texte, nous avons néanmoins seulement besoin d'envoyé des entiers, nous envoyons des 0 puis des 1.
Le code de l'esclave va avoir un peu plus de travail puisqu'il va devoir recevoir les paquets et les reécrire dans un objet de la classe OSCMessage pour que l'on puisse lire le contenu du paquet, il ne nous reste plus qu'a lire le premier bit du paquet pour savoir si il s'agit d'un 0 ou d'un 1 et écrire le pin step en fonction de ça.

Code Esclave:
https://git.cohabit.fr/boutrie.eytan/Rotabator/src/branch/Esclave
Code Maître:
https://git.cohabit.fr/boutrie.eytan/Rotabator/src/branch/Maître

Potentiomètre avec le moteur pas à pas

Nous avons utilisé un code sur le net pour effectuer la partie manuel de la rotation du moteur pas à pas. Celle-ci permet à que plus la valeur du potentiomètre est élevée plus le moteur accélère et plus elle est basse plus le moteur deccelère. Voici le cablâge qu'on a utilisé pour cette partie :

Code Potentiometre + stepper motor:
https://git.cohabit.fr/boutrie.eytan/Rotabator/src/branch/Potentiometer_+_stepperMotor