Synchronisation rotation helice (moteur sur maquette) et son avec picaxe

HOOKIE

Member
Peut on avec Picaxe réaliser un ensemble dans une maquette d'avion permettant de synchroniser le son d'un moteur électrique(le son provenant d'une source audio) au démarrage avec la rotation de l'hélice et ce pendant 2 minutes.(tension applicable au moteur variable de 0V à 0,9V consommation max 10 ma).Pour une meilleure compréhension voir mon site, je me procurais cette platine au US mais le fabriquant a cessé d'en produire.je souhaiterais réaliser les mêmes séquences.
Salutations et remerciements

http://grpassionavion.free.fr/page6.html
 

Technoman

Senior Member
Bonjour,

Pour reproduire un son sur une période aussi longue, je vois deux solutions envisageables :

- une carte AXE401 avec un shield (carte périphérique) recevant une carte mémoire de type SD pour Arduino
- un contrôleur de carte micro-SD couplée à une carte avec un Picaxe (voir http://www.robotshop.com/module-microsd-microdrive-4d-systems-2.html), peut-être pas disponible en France.

La question reste celle du logiciel de pilotage. Quelque l'a-t-il déjà réalisé?

Cordialement.

Technoman
 

BESQUEUT

Senior Member
Je ne suis pas sur d'avoir bien compris :
- le son provient d'une source audio existante, c'est bien ça ?
- comment peut-on piloter cette source ? (simple interrupteur ? tension constante ? variable ? autre ?)
- il faut que le son soit connecté au démarrage du moteur, et arrêté au bout de 2 minutes ?
- que faut-il faire si le moteur est coupé avant les 2 minutes ?
- la tension aux bornes du moteur est variable. Le son est-il constant ou doit-il être modulé en fonction de la vitesse de rotation ?
- si oui, quelle est la forme du signal attendu ?
 

HOOKIE

Member
Bonsoir,
Merci pour les 2 réponses,comme sur mon site précédemment la vidéo montre un avion Corsair et au bout de 1 minute veuillez observer la mise en route de l'avion c'est ce que je souhaite reproduire j'ai quelques idées les vôtres seront les bienvenues
Salutations
 

PieM

Senior Member
Bonsoir,
Merci pour les 2 réponses,comme sur mon site précédemment la vidéo montre un avion Corsair et au bout de 1 minute veuillez observer la mise en route de l'avion c'est ce que je souhaite reproduire j'ai quelques idées les vôtres seront les bienvenues
Salutations
Bonjour,
:confused:
Merci de répondre aux questions qui vous sont posées !
Tout pendant que vous n'avez pas répondu aux questions de Besqueut, on en sera toujours aux devinettes ...

Exposez déjà vos idées, ça éclaircira peut être les choses !

Sinon, une solution est de prendre un magnétophone et de le mettre en marche en même temps que votre moteur, avec une minuterie...
 

BESQUEUT

Senior Member
les vôtres seront les bienvenues
C'est un concours d'idées ?
Personnellement, je pense que le Picaxe est trop lent pour générer directement un son autre que très simple.
Mais on peut faire des choses très sympa en combinant un Picaxe avec un circuit linéaire, par exemple un 556 ou XR2206 (difficile à trouver maintenant) ou un max038.
L'idée serait de générer une tension variable avec le Picaxe (avec une durée répondant au cahier des charges) laquelle tension serait utilisée pour piloter un générateur de fonction à fréquence variable. (Mais as-t-on besoin du Picaxe dans ce cas : peut-être suffit-il d'amplifier la tension du moteur pour piloter le générateur de fonction ?)
Il faudrait alors expérimenter pour trouver la forme de signal qui se rapproche le plus du bruit souhaité. Si tout doit tenir dans la maquette, c'est surement un challenge ! (rien que le HP pose un vrai problème !)
Sinon : solution grand luxe avec un Vmusic et une clé USB ou l'équivalent en SD: ne reste qu'à trouver un enregistrement de la bête...(ce qui n'est autre qu'une variante actualisée du magnéto proposé par PieM) Pour être précis, il faut plusieurs enregistrements à des vitesses différentes si on veut "synchroniser" le son avec la vitesse de rotation du moteur.
 
Last edited:

HOOKIE

Member
Bonjour,
Merci pour votre réponse,pensant que la vidéo du site illustre bien au bout de 1 minute ce que je souhaite réaliser en quelque sorte le son enregistré sur piste d'aerodrome ou récupéré sur internet asservit une vitesse de rotation de l'hélice,la tension suit le son.La platine que j'achetai aux USA est composé d'un circuit imprimé de 4 X3 cm d'un HP et d'un contact reed pour la mise en route et d'un bloc de 3 piles de 1,5 v pour 40 eur rendu en France mais il a cessé de fabriquer et son site a été fermé.Pourquoi je pense à Picaxe car le coeur était composé d'un Pic 16 LF 818 .De la platine sortent 2 fils qui passent par les roues de l'avion et alimentent par une tension variable comprise entre 0 V et 0,9V le moteur électrique,pour assurer un niveau de rotation réaliste max 4500 T/min.(Sur la vidéo on doit apercevoir les picots qui traversent les 2 roues.)
Je ferai parvenir des photos de montage d'un article que j'ai fait paraitre dans une revue spécialisée
Salutations
 

HOOKIE

Member
Bonjour,
Comme dit précédemment,quelques photos pour montrer la miniaturisation de la platine équipée d'un Pic 16LF 818 d'une mémoire 25 X 20 et d'un convertisseur 93 AD c'est une carte ancienne alimentée par 2 pilesP1040211 (FILEminimizer).JPGP1040212 (FILEminimizer).JPG
 

PieM

Senior Member
Bonjour,

Le circuit que vous montrez gère effectivement à la fois la tension moteur et le son. Ce son d'un moteur est polyphonique, et ne peut effectivement pas être généré par un picaxe.
L'enregistrement du son réel donc peut être fait en analogique (bande magnétique) ou numérique sur VMusic, comme déjà dit, carte SD sur module SOMO-14D, ou un circuit spécialisé comme le ISD25120. Ce choix est à définir en fonction de vos compétences et de votre budget.
Comme ce son est une séquence enregistrée, il n'est pas besoin "d'asservir" la tension moteur au son , ce qui serait complexe car il faudrait faire varier une tension en fonction d'une fréquence. C'est possible, mais ce n'est pas le job d'un picaxe.

Par contre avec le picaxe vous pouvez générer une suite de séquences en PWM (pour la variation de tension) qui va suivre à peu près les variations du son enregistré. ça c'est facile!
 

HOOKIE

Member
Bonjour,
Et merci pour votre réponse,certes mon budget n'est pas extensible mais bien souvent la passion l'emporte.J'ai déjà ISD 1932(64 sec.) de chez Nuvoton trés mauvaise qualité ISD 25120 je ne situe pas ma préférence irait vers le controleur de carte micro SD.je voudrais générer des séquences en PWM (pour la variation de tension) pas évident pour moi quel Picaxe choisir?(18) les procédures et programmations c'est pou moir le plus grand flou ,merci de m'aider au mieux j'ai démarré Picaxe début mars!!
salutations et remerciements
 

PieM

Senior Member
Bonjour,
Et merci pour votre réponse,certes mon budget n'est pas extensible mais bien souvent la passion l'emporte.J'ai déjà ISD 1932(64 sec.) de chez Nuvoton trés mauvaise qualité ISD 25120 je ne situe pas ma préférence irait vers le controleur de carte micro SD.je voudrais générer des séquences en PWM (pour la variation de tension) pas évident pour moi quel Picaxe choisir?(18) les procédures et programmations c'est pou moir le plus grand flou ,merci de m'aider au mieux j'ai démarré Picaxe début mars!!
salutations et remerciements
Si vous utilisez un ISD 1932 pour 64s d'enregistrement, c'est que vous avez une fréquence d'échantillonnage deux fois plus faible, donc il est normal que la qualité ne soit pas au rendez-vous ...

Concernant le Picaxe, n'importe quel modèle conviendrait. Il faudrait tout de même savoir ce qu'il aurait à faire en plus du PWM !
 

HOOKIE

Member
Bonjour,
Merci à l'Hérault (BESQUET et PieM) pour vos réponses j'y vois un peu plus clair j'ai commandé 2 SO MD14 chez Lextronic.Maintenant le Picaxe a une tâche en PWM et ,est utilisé avec 2 sorties high pour commander des leds sur un diorama.
Salutations
 

HOOKIE

Member
Bonjour,
Toujours avec mon hélice d'avion dont la doit être synchronisée avec le son en guise de tension variable on ne peut pas reproduire ou créer le similaire de l'enveloppe audio qui donnerait une tension variable adaptable et certes avec une résolution moins grande,qu'en pensez vous ,avec Picaxe combien de pas de tension (ou variation de tension) puis je faire dans une séquence de 2 minutes.
Question osée mais qui a le mérite d'être posée.
Salutations
 

PieM

Senior Member
Bonjour,
Toujours avec mon hélice d'avion dont la doit être synchronisée avec le son en guise de tension variable on ne peut pas reproduire ou créer le similaire de l'enveloppe audio qui donnerait une tension variable adaptable et certes avec une résolution moins grande,qu'en pensez vous ,avec Picaxe combien de pas de tension (ou variation de tension) puis je faire dans une séquence de 2 minutes.
Question osée mais qui a le mérite d'être posée.
Salutations
Bonjour,

Quand vous parlez d'enveloppe audio, il faut savoir de quelle enveloppe il s'agit.
Si vous voulez que la vitesse soit une fonction de l'amplitude du signal, cela peut se faire avec un petit circuit annexe, micro + ampli dont la sortie sera sur une entrée ana du Picaxe.
Mais cela ne sera pas du tout réaliste! Comme je vous disais dans un autre post, c'est la fréquence du signal qui est une fonction de la vitesse. Et c'est un montage électronique un peu plus complexe!
D'ailleurs votre bande son sur votre site montre que le niveau est pratiquement constant sauf lors de l'arrêt où il augmente !

Mais je ne comprends pas trop le problème, puisque votre enregistrement audio est fixe, il est facile de programmer des séquences de variation de vitesse qui vont suivre le son , et ce à votre convenance. Donc sur une échelle de temps, il vous faut définir quelles sont les vitesses à atteindre à quel timing, donc l'enveloppe, et après le programme pourra se faire.

On pourrait même faire un système par apprentissage, mais je crois qu'il faut rester simple !
 

HOOKIE

Member
Bonjour,
Message en réponse à PieM que je remercie.J'ai fait un graphe comprenant la partie audio ou j'ai rajouté les temps et vitesses estimées mais correctes(je pourrai comparer demain avec des vitesses réelles d'un véritable avion et pour ma maquette animée j'ai commandé un tachymètre que j'aurai semaine prochaine on n'hésite pas à la dépense trés faible il faut le dire 33eur.)S
Pour mieux comprendre le fonctionnement en PWM un programme simpleen basic ou mode graphique m'aiderait à mieux interpréter pour la suite.
Avec mes remerciements
SalutationsVARIAT.VIT.P 47 (FILEminimizer).jpg
 

PieM

Senior Member
J'ai fait un graphe comprenant la partie audio ou j'ai rajouté les temps et vitesses estimées mais correctes

View attachment 10937
Bonjour,

pour être plus précis, l'enveloppe va être déterminée par les états (temps et vitesse) lors des changements:
par exemple, vous dites que A va de 0 à 500 puis B est à 2500. passe t-on brutalement de 500 à 2500 ?

si on définit chaque séquence par l'état en début et l'état en fin, ça serait plus facile car la programmation serait simplifiée:

la période A va de A0 à B0 et ainsi de suite; pour A0 on va définir le temps (0 en l'occurrence) et la vitesse ( un peu plus de 0 pour assurer le démarrage du moteur)
pour B0, on va définir le temps (6 en l'occurrence) et la vitesse ( 500) donc A0 (0, 100) B0 (6, 500)
et ainsi de suite.
Cela permet d'avoir soit des accélérations / décélérations, ou des régimes constant comme D0 (19 , 2500) à E0 (28, 2500).
 

HOOKIE

Member
Bonjour,
En effet dans la zone" A" la vitesse est variable en accélération(mise en route du moteur)effectivement supérieur à 0 ,les autres zones constantes,et la dernière zone"G",la vitesse est variable en décélération pour atteindre 0 (arrêt moteur)

Merci encore et vous maîtrisez bien le sujet
salutations
 

HOOKIE

Member
Bonjour,
Autant pour moi,vous avez écrit juste,il n'y a pas seulement les secteurs A et G dont la vitesse croit ou décroit,en revanche,comme vous l'avez précisé D0 à E0 est constant
avec mes excuses
Salutations
 

Jacques ROBERT

Senior Member
Bonsoir,j'arrive un peu en retard sur cette discussion.Je fais du modèle réduit de bateau naviguant et le nec +ultra pour le bruitage c'est de faire suivre le bruit du moteur avec la vitesse du bateau donc fonction de la tension aux bornes du moteur.Celle-ci peut être matérialisée par un pont de diodes placé aux bornes du moteur et permet de récupérer une tension continue proportionnelle à la vitesse du moteur.Le +dur reste à faire:un générateur de bruit imitant celui d'un moteur d'avion et dont la fréquence peut varier grâce à la
variation de tension obtenue précédemment.Pour nos bateaux nous avons un montage électronique qui imite le bruit du diesel et le réalisme est frappant,le bateau à l'arrêt:le bruit est celui d'un moteur au ralenti ,puis au démarrage la fréquence augmente proportionnellement à la vitesse.Ce montage est à créer je ne pense pas qu'il existe tout fait ou même en KIT.
Si vous avez un électronicien sous la main,mettez le à contribution.Amicales salutations.
 

PieM

Senior Member
Bonsoir,
Dans le cas présent on est dans une séquence immuable, puisqu'il s'agit d'une maquette fixe.
La vitesse ne varie pas en fonction d'une radiocommande.
D'autre part un générateur de bruit type moteur diesel se trouve assez facilement. Celui d'un moteur en étoile 18 cylindres, c'est autre chose !
L'approche consistant à faire varier la vitesse du moteur en fonction d'un son enregistré sera plus simple...
Je ferai un bout de programme pour l'ami HOOKIE dès que j'ai un peu de temps ..
 

PieM

Senior Member
Bonjour,

Un bout de programme devant résoudre votre problème. Je l'ai assez détaillé pour qu'il soit compréhensible. (j'espère ...:))
Dans le principe, les séquences sont écrites en mémoire EEPROM sous la forme :
Vitesse initiale, Vitesse finale, Durée de la séquence pour chaque séquence.
En mémoire, nous aurons donc : (Vini, Vfin, dt, Vini, Vfin, dt, Vini, Vfin, dt, Vini, Vfin, dt, ....)

les valeurs vitesse ne peuvent être supérieure à 255 (byte); donc arbitrairement les consignes sont un sous multiple des valeurs de votre chronogramme.
Ici, division par 100.

Ensuite, le programme définit si c'est une phase d'accélération, de décélération, ou à vitesse constante.
C'est le rôle du sous programme Testacc , qui renvoie sur le bon sous programme pour traiter la séquence.

Afin de s'adapter au caractéristiques du moteur, la valeur de consigne donnée au PWM est affectée d'un coefficient, qui est une constante (coef) définie en début de programme. Ainsi l'adaptation se fait en ne modifiant que cette valeur. sans avoir à modifier des lignes de programme.

La variation de vitesse est obtenue en calculant une accélération, Ecart de vitesse /durée en s. La vitesse est donc incrémentée ou décrémentée chaque seconde. Comme les calculs se font sur des entiers, la valeur finale peut ne pas correspondre exactement à la consigne.

En fin de programme, une pause de 60s est mise en place, et le programme reboucle .

Ne pas oublier de mettre un transistor NPN en interface pour le moteur, avec une diode de roue libre en // du moteur, même si le picaxe est capable de délivrer plus de 10mA !
Nota: je n'ai pas testé ce programme ! Donc faire vos remarques ...



Code:
'===========================================================================
'Prog: Simulavion01
'Commande de vitesses moteur par séquences, en PWM 
'PieM - 120411
'===========================================================================

#picaxe 14M2
setfreq M4

'Entrées ------------------------------------------------------------------------------------------------------------------------

'Sorties ------------------------------------------------------------------------------------------------------------------------
symbol Moteur = B.2

'Variables ----------------------------------------------------------------------------------------------------------------------

symbol Vini = b1		'Vitesse initiale dans la séquence
symbol Vcou = b2		'Vitesse courante de commande du PWM
symbol Vfin = b3		'Vitesse finale dans la séquence

symbol dt = b10		'dt : durée séquence en secondes
symbol dv = b11  		'dv : ecart de vitesse
symbol acc= b13		'acc: acceleration 
symbol seq= b14		'seq: adresse de sequence en cours

'Contantes ------------------------------------------------------------------------------------------------------------------------

symbol coef = 6		'coef de mise à l'echelle des valeurs de vitesse
				'à faire varier en fonction du moteur et du résultat souhaité

'Initialisation ------------------------------------------------------------------------------------------------------------------------
		
'Chargement des données par séquence: [vitesse initiale], [vitesse finale],[durée]

EEprom 0,(1,5,6,25,25,9,35,35,4,25,25,9,40,40,10,20,20,12,8,0,8)

'Les vitesses sont données en équivalence centaines de tours : (25= 2500)
'mais sont mises à l'echelle de la commande PWM.par coef.

'============================================================================
principal:

for seq = 0 to 18  step 3	'adressage de la mémoire, de 3 en 3
 	read seq,Vini,Vfin,dt	'lecture des donnée de la séquence à l'adresse seq
 	Vini = Vini* coef		'mise à l'echelle des valeurs
 	Vfin = Vfin* coef		'mise à l'echelle des valeurs
 	Vcou = Vini			'Initialisation Vitesses courante = V initiale				
	gosub Testacc
next

	pwmout Moteur,OFF			'Arrêt du moteur
	pause 60000				'Attente 60s
goto principal			'rebouclage du programme

'============================================================================
Testacc:  'test si accélération, décélération ou vitesse constante.

if Vfin = Vini then gosub constant
if Vfin > Vini then gosub accel
if Vini > Vfin then gosub decel
return

'============================================================================
accel:
	dv = Vfin-Vini  				'ecart de vitesse
	acc = dv/dt					'accélération résultante
	pwmout pwmdiv16, Moteur, 124, Vini 	'commande moteur à sa vitesse initiale
for b5 = 1 to dt
	Vcou = Vcou+acc		' toutes les secondes la vitesse courante est augmentée de acc
	pwmduty Moteur,Vcou	'Commande nouvelle vitesse moteur 
	pause 1000 			'pause 1 seconde
next
return

'============================================================================
decel:
	dv = Vini-Vfin				'ecart de vitesse
	acc = dv/dt					'accélération résultante
	pwmout pwmdiv16, B.2, 124, Vini	'commande moteur à sa vitesse initiale
for b5 = 1 to dt
	Vcou = Vcou-acc  		' toutes les secondes la vitesse courante est réduite de acc
	pwmduty Moteur,Vcou 	'Commande nouvelle vitesse moteur 
	pause 1000 			'pause 1 seconde
next
return
	
'========================================================================	
constant:

	pwmout pwmdiv16, B.2, 124, Vini	'commande moteur à sa vitesse initiale
	w10 = dt *1000				'calcul de la pause en ms
	pause w10
return

'********************************fin prog***************************************
 

HOOKIE

Member
Bonjour,
De retour,je reprend mes activités passionnelles,mais avant tout sachez que je suis natif de Montpellier ayant habité longtemps66 Rte du Pont Juvénal et aussi 5Place Carnot.Les présentations étant faites,je vais faire au plus vite avec vos données,dans l'attente de liv.de composants etSomod 14 en guise de stockage son.
Merci pour votre soutien et au plaisir de vous répondre rapidement.
 
Top