Télécommande voiture RC + caméra

dje8269

Senior Member
Ok, probléme résolu, non sans mal . la télécommande fonctionne OUF !!!!! je pense avoir besoin de vos lumiéres experimentées, pour ameliorer le code......

Disons que pour le moment je viens de tester toutes les fonctions , les BP, et les potars analogiques , Ca fonctionne pas trop mal, mais y'as quand même des bugs a regler .
 

jojojo

Senior Member
Ouaip !

La mienne roule plutôt bien aussi, là ! ;) (Hein, Jeremy ?)

- 5 voies proportionnelles (dont une réservée contrôle moteur)
- 8 voies tout ou rien utilisables indépendemment (256 codages)
- Moins de 106 lignes de code, pour le tout.

J'en suis à l'implantation caméra et TX vidéo.
(Mais, comme j'ai cru comprendre que ce topic intêrressait peu ... #24, #30, #35, #37, etc ...)
 
Last edited:

dje8269

Senior Member
Hier soir je l'ai faite tournée pour le fun, sur un support pour le moment . mais elle as tournée je suis plutôt content . par contre ca bug grave le readadc car il prend pas en compte tout de suite mes changements , voir même pas du tout , obligé de débranché pour arrêter les roues , quand le potar était pourtant a zéro (j'ai pourtant mis une grosse marge de sécu).

J'ai ramené le matos a la maison pour bosser sur mon code ce weekend . affaire à suivre
 

dje8269

Senior Member
Pour tous ceux qui me prenne pour un doux reveurs ! a bon entendeur !!!!

Vous savez sans rêves on arrive a rien, si vous faites des choses que vous êtes sur de réussir, ou est le progrès ? bref , j'avance à mon rythme certes , avec mes coneries certes , mais j'avance , aprés si vous voulez pas que je partage ne lisez plus mes post,mais je continuerais car certains aiment bien mes aventures......

A titre d'infos :
face.jpg
cote.jpg
 

PieM

Senior Member
Ah mais tu as la voiture aussi ! J'ai pas tout suivi là ... C'est tout neuf !
par contre ca bug grave le readadc car il prend pas en compte tout de suite mes changements , voir même pas du tout , obligé de débranché pour arrêter les roues , quand le potar était pourtant a zéro (j'ai pourtant mis une grosse marge de sécu).
ça serait mieux avec les programmes ! Car normalement un readadc demande moins de 200 µs à 4 MHz. Il faut utiliser une fréquence assez élévée pour les acquisition, sachant que de toute façon le picaxe se calera à 4 Mhz pour le Rfout.
En réception il y a quoi ? Sur un système comme ça à base de picaxe il faut émettre que si il y a un changement d'une consigne, recevoir sur un Picaxe dédié, en liaison en tâche de fond avec celui (X2) qui pilote moteurs, servos et autres bricoles. Lui aussi ne met à jour ses consignes que s'il a reçu un changement.
Mais il faut travailler un peu l'I2C , l’écriture en scratchpad, le flag hi2cflag. Donc de la lecture avant de se lancer!
Quant au moteurs, s'il ne s'arrête pas il y a peut être d'autres raisons ...
Mais sans rien connaître ni du schéma, ni du matériel, ni des programmes, je ne m'avance pas davantage.

Petite remarque : sur #40, je vois que les tests sont faits sur table avec émetteur et récepteur à 20 cm l'un de l'autre.
Il faut toujours respecter une distance mini de 1m voire 2m entre les deux sous peine de saturation du récepteur, ce qui ne donne pas de bons résultats !!
 
Last edited:

dje8269

Senior Member
Il faut toujours respecter une distance mini de 1m voire 2m entre les deux sous peine de saturation du récepteur, ce qui ne donne pas de bons résultats !!
Oui ca devait "aussi" venir d'ici, j'y avais penser, j'ai donc enlever l'antenne coté récepteur .lol .

Mais il faut travailler un peu l'I2C , l’écriture en scratchpad, le flag hi2cflag
Tiens du chinois !!! mdr :cool:
 

PieM

Senior Member
Tiens du chinois !!! mdr
Non c'est du Picaxe.
Certains se sont donnés la peine de faire une traduction du manuel.
Si les gens ne veulent pas se donner la peine de lire, c'est leur problème.
 

Jacques ROBERT

Senior Member
Eh!jojojo,suite à #42.
Mais si il y en a que ça interresse:8 voies tout ou rien sur une voie prop,a-t-on utilisé le meme principe?
Pour moi c'est codage à l'émission par pont de R et 4 inter (on)off(on) donc une durée de créneau par voie et décodage à la réception par mesure du créneau avec Pulsin.
La chiffrage du programme se réalise avec un 08M2 et un LCD AXE033 qui fait la mesure et l'affiche,y a plus qu'à lire et reporter les valeurs dans le programme.
Et vous?
 

jojojo

Senior Member
Nan, y fait pas comme ça, le jojo.

Je profite (lâchement) de l'instruction RFOUT.
Transmission de 8 octets, de façon sécurisée, en moins de 37mS.

Les cinq premiers sont consacrés aux cinq voies analogiques, le sixième code les huit tout ou rien possibles, et il y en a deux de rab.
Allez, comme ça semble interresser quelqu'un, les schémas :
RX platine 1:
RX_Plat1.jpg
RX platine 2:
 

Attachments

Last edited:

jojojo

Senior Member
Et le TX, encore en chantier (reste les réglages débattement max/min des servos a implanter).
schematx.jpg

La totalité du code fait moins de 150 lignes.(Pour les trois Pic)
IMG034.jpg
 
Last edited:

jojojo

Senior Member
Et un peu de code :

Emetteur:

Code:
'****************************************************************************
'*			Codeur proportionnel-digital RFOUT				    *
'*			pour radiocommande 5 voies et huit ToR			    *		    *
'*			PICAXE 40X2								    *
'*		             								    *								
'*			G.TREELS   02/2014						    *
'****************************************************************************
#picaxe 40X2
let dirsA=%10010000

Symbol TX=C.1
Symbol Buzz=C.0

'Symbol Voie1=A.0

Do

Low Buzz
b5=PinsB		'les tor


Readadc A.0,b0	'Voie1	
Readadc A.1,b1	'Voie2
Readadc A.2,b2	'Voie3
Readadc A.3,b3	'Voie4
Readadc A.5,b4	'Voie5



RFOUT TX,(b0,b1,b2,b3,b4, b5, $FF, $FF)

ReadAdc A.6,b6	'UBatt
If b6<218 Then		'batt à 11 V
	High Buzz
End If



Loop
Récepteur, platine principale :
Code:
'****************************************************************************
'*			Décodeur proportionnel-digital RFIN				    *
'*			pour radiocommande 5 voies et 8 ToR              	    *
'*			PICAXE 14M2								    *
'*			G.TREELS   02/2014						    *
'****************************************************************************


#picaxe 14M2
Setfreq m32
Symbol RX=C.3
Symbol Sens=C.4
Symbol VersTor=C.2	'Vers les ToR,deuxième 14M2 et ULN
Symbol LedSecu=C.1
Symbol Buzz=C.0

pwmout pwmdiv64, B.4, 124, 0	'init PWM, à 0

Do

ReadAdc B.5,b20
If b20>51 Then	'ADC secu I moteur
	Exit		'R source=1 ohm, un ampère max
End If

Setfreq m4
RFin RX, b0,b1,b2,b3,b4,b5,b6,b7	'b5 ,6 et 7, pour du ToR, si on veut	
Setfreq m32
					'juste b5, ici
'Les quatres voies
w4=b0*44/10		'mise échelle, 0à 255 donne 640 à 1760
w4=w4+640		'pour 800 à 2200µs, avec pulses à 1.25µs (32 mhz)


w5=b1*44/10	
w5=w5+640	'id


w6=b2*44/10	
w6=w6+640	'id


w7=b3*44/10	
w7=w7+640	'id

'Commande moteur, PWM ET relais av ar
w8=b4			'par cohérence pour la suite ...
Select Case w8
	Case 126 To 130
	w8=0		'manche au neutre
	Case >130
	w8=b4-130	'mise à l'échelle, pour 0 à 625 (pwm), avec 131 à 255 (b4)
	w8=w8*5
	Low Sens	'avant
	Else
	w9=5*w8	'le même à l'envers, pour 625 à 0, avec 0 à 125
	w8=625-w9
	High Sens	'arriere
End Select

'Les commandes

Pulsout B.0,w4	'Voie1
Pulsout B.1,w5	'Voie2
Pulsout B.2,w6	'Voie3
Pulsout B.3,w7	'Voie4
PWMDUTY B.4,w8	'Voie5 Mot
Serout VersTor, N38400_32,(b5)	'Vers le déco tor
Pause 10
							



Loop
'Je_meure:
pwmout B.4, Off	
Low B.4		'Au cas oû le pwm finirait sur un état haut (?)	
Serout VersTor, N38400_32,(0))	'Eteint tous les tor (énergie)
Pause 500						
Do
High LedSecu
Pause 100		'Cligno Sécu mot.
Low LedSecu
Pause 200
Loop
Récepteur, platine décodage huit ToR, et puissance :

Code:
'Conversion Série // pour la commande des tor
'via l'ULN
#picaxe 14M2
Setfreq m32

Symbol Donnees=C.3
DirsB=%111111	'Pas vraiment utile
DirsC=%000011	'mais, bon ...
Do
Serin Donnees, N38400_32,b0

b1=b0 And %00111111	'Masque B.0 à B.5
b2=b0 And %11000000	'Masque C.0 et C.1
For b27=1 to 6		'Rotation 6 fois (shift va pas, sur les M2)
b2=b2/2
Next b27

OutPinsB=b1
OutPinsC=b2


Loop
Voilou, rien de bien complexe.

Damned ! Même pas un seul goto, dans tout ça ! :rolleyes:
 

PieM

Senior Member
Pour gagner encore quelques lignes ...

Code:
'Conversion Série // pour la commande des tor
'via l'ULN
#picaxe 14M2
Setfreq m32

Symbol Donnees=C.3
DirsB=%111111	'Pas vraiment utile  [COLOR="#FF0000"]SI nécessaire ![/COLOR]
DirsC=%000011	
Do
  Serin Donnees, N38400_32,b0
  OutPinsB=b0
  OutPinsC=b0/64
Loop
Par contre je suis dubitatif sur le fonctionnement du récepteur avec 1 RFIN, 1 serout, 1 pwm et des cde servo sur la même bête !
 

jojojo

Senior Member
Ca marche, sous réserve d'utiliser Pulsout, pour les commandes de servos. PAS les commandes servo et servopos. La, ça merdouille féroce.
 

Jacques ROBERT

Senior Member
Bravo jojojo ça marche,mais tout de meme compliqué;je suis parti d'un émetteur existant et n'ai fait qu'adapter un canal proportionnel pour obtenir 8 voies ToR;à signaler que chaque voie est indépendante.Je suis étonné que vous utilisiez encore un relais pour l'inversion de marche du moteur,un bon "H" avec 4 MOS,ça fait + technique!
Merci pour tous les détails (schémas,programmes)que vous donnez.
 

jojojo

Senior Member
Je suis étonné que vous utilisiez encore un relais pour l'inversion de marche du moteur,un bon "H" avec 4 MOS,ça fait + technique!

Oui, on me dit souvent ça.
Quatre Mosfet, huit diodes, les deux circuits de commande (si l'on veut éviter les risques), la capa ballast, etc, etc... Ben ... Bien plus encombrant, sur le PCB, qu'un relais, un MosFet et deux diodes.

Reste la solution des ponts "tous faits". Comptez 24&#8364; pour un malheureux LMD18254, qui passe tout juste 3A.
Un relais Finder 2 X 8 A coute 3,2&#8364;, et un IRLR120 (7A sans forcer) dans les 1&#8364;. Soit moins de 5&#8364;, avec les bricoles.
Y a pas photo.
La solution "à relais" a un autre avantage: Elle est lente (20ms en moyenne de temps de réaction, du relais). C'est un avantage, ici.(en cas d'inversion brutale du sens de rotation).
 

PieM

Senior Member
Jojojo, toi qui aime économiser des lignes:

Code:
If w1>1760 Then	'
	w1=1760	'1760 =>2.2ms
End if		'
w1=w1*5/4

Pulsout B.1,w1
If w2<640 Then
	w2=640
End if
If w2>1760 Then
	w2=1760
End if
w2=w2*5/4

Pulsout B.2,w2
If w3<640 Then
	w3=640
End if
If w3>1760 Then
	w3=1760
End if
w3=w3*5/4

Pulsout B.3,w3
If w4<640 Then
	w4=640
End if
If w4>1760 Then
	w4=1760
End if
w4=w4*5/4

Pulsout B.4,w4

Loop
ça peut s'écrire:
w1 = w1 max 1760 *5/4
Pulsout B.1,w1
w2 = w2 max 1760 min 640 * 5/4
Pulsout B.2,w2
w3 = w3 max 1760 min 640 * 5/4
Pulsout B.3,w3
w4 = w4 max 1760 min 640 * 5/4
Pulsout B.4,w4


Je pense qu'il y a une erreur sur ton pwmout de #55
la valeur maxi de duty ne peut dépasser 500 avec une période de 124 sous peine d'un fonctionnement erratique.
 

dje8269

Senior Member
Bonjour à tous,

En ce dimanche pluvieux , je fais mes test pour essayer de comprendre ;

J'avais quelques questions :

En émission est il utile d'envoyer plusieurs fois la même commande RFin (avec un for...next) ? ou non en sachant qu'elle se remet a jour à chaque fois ?Je pense connaitre la réponse mais bon je préfère posé la question .

Pour le bug de réactivité le fait de passer a 32Mhz la différence est énorme !! la ça marche impec !!! .
Le fait d'utiliser RFOut met automatiquement la freq a 4Mhz , donc il suffit de remettre a 32Mhz juste après un envoi non ?

Concernant le PWMout .

Pouvez vous en quelques lignes m'éclaircir sur la fréquence et le rapport cyclique( je sais que le RC est le temps d'état haut sur une période, et que le nombre de période dans un temps donné fait la fréquence) .
Mais Lesquels faut il privilégier ? je m'explique .

Si je mets le RC a 100% avec une fréquence faible est ce que ce serait pareil , que de mettre un RC de 50% avec un fréquence 2 fois plus rapide que précédemment ?
 

jojojo

Senior Member
ça peut s'écrire:
w1 = w1 max 1760 *5/4
Pulsout B.1,w1
w2 = w2 max 1760 min 640 * 5/4
Pulsout B.2,w2
w3 = w3 max 1760 min 640 * 5/4
Pulsout B.3,w3
w4 = w4 max 1760 min 640 * 5/4
Pulsout B.4,w4


Je pense qu'il y a une erreur sur ton pwmout de #55
la valeur maxi de duty ne peut dépasser 500 avec une période de 124 sous peine d'un fonctionnement erratique.


Vrai.
Suis pas (encore) familiarisé avec max.
Pour le pwm, je pige pas, là.
Ca fonctionne très bien, l'accélération est agréable, et sans à coup, dans un sens comme dans l'autre ... Vais creuser, si tu le dis.
 

jojojo

Senior Member
En émission est il utile d'envoyer plusieurs fois la même commande RFin (avec un for...next) ?
Non.
De toute façon, c'est répété +/- toute les 37ms (si tu laisse ton tx en route, bien sûr)
Donc il suffit de remettre a 32Mhz juste après un envoi non ?
Oui.

Pour le PWM, la fréquence à utiliser ne dépend QUE des caractéristique du moteur que tu vas commander (le mien tourne bien, entre 400 et 1000 Hz, un peu moins "sifflant" à 1000Hz)

Si je mets le RC a 100% avec une fréquence faible est ce que ce serait pareil , que de mettre un RC de 50% avec un fréquence 2 fois plus rapide que précédemment ?

Nan, ça, c'est une bêtise. A l'instinct (ça évite le calcul intégral), tu te dis que plus longtemps le moteur est alimenté, plus il tourne.
Plus la partie haute, du signal pwm est grande, par rapport à la partie basse, plus le moteur tourne.
La fréquence n'a rien a voir dans l'affaire.
 

PieM

Senior Member
Ca fonctionne très bien, l'accélération est agréable, et sans à coup, dans un sens comme dans l'autre ... Vais creuser, si tu le dis.
Oui mais à 500 tu es déjà à 100% du duty, donc de 500 à 625 tu es au delà et ça te limite la plage utile du potard à 80% . En plus il y a un risque à utiliser une valeur donnant plus de 100%.
 

PieM

Senior Member
Le fait d'utiliser RFOut met automatiquement la freq a 4Mhz , donc il suffit de remettre a 32Mhz juste après un envoi non ?
C'est inutile. Si la fréquence est mise à 32 MHz en début de programme, elle reste à 32 MHz; c'est la commande RFout ou RFin qui elle fonctionne automatiquement sur la fréquence de 4MHz .
C'est comme readtemp et d'autres...
 

dje8269

Senior Member
C'est inutile. Si la fréquence est mise à 32 MHz en début de programme, elle reste à 32 MHz
Meci bien pour ce détail fort utile .

Voici mon code ( toujours en test) pour le TX .

Je cherche à faire quelque chose mais je n'y arrive pas, ou alors il existe certaienement une fonction que j'ai loupée .
Je voudrais que quand on appui sur un bp ( pas les readadc) cela émet un petit Bip duree 100ms ( bip = sortie BUZ), mais seulement quand il y as un changement, car certains BP sesront couplés avec un interrupteur, par exemple pour les phares , un appui sur le BP fais un appel de phare, mais il y as aussi un interrpteur en // si on veut allumer les phares en permanence . il ne faut pas que ca buz quand les phares sont allumés mais seulement quand on change l'etat d'un BP.

Je sais pas si c'est trop clair.



Code:
#PICAXE 20M2

dirC.0 = 1		'declare C.0 comme sortie
dirB.4 = 1		'declare B.4 comme sortie
dirB.7 = 1		'declare B.7 comme sortie
dirB.3 = 0		'declare B.3 comme entrée
dirB.5 = 0		'declare B.3 comme entrée
dirB.6 = 0		'declare B.3 comme entrée
dirB.1 = 0		'declare B.3 comme entrée
dirC.6= 0		'declare B.3 comme entrée

symbol BUZ=C.0
symbol TX = B.4
symbol DONNEE = B.7
symbol Klax	= pinC.6
symbol Phare= pinB.5
symbol Gyro= pinB.6
symbol sirene= pinB.1
symbol chgt= pinB.3

b5 = 0
b6 = 0
b7 = 0


setfreq m32

do

readadc C.3,b1		'Av/ar voiture
readadc C.2,b2		'Dr/ga voiture
readadc B.0,b3		'Ha/ba caméra
readadc B.2,b4		'Dr/Ga caméra

bit0 = Klax
bit1 = Phare
bit2 = sirene
bit3 = gyro
bit4 =chgt



high TX			'allume le TX	
	
	rfout DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7)
	
setfreq m32	
	
low TX		'eteint le TX
pause 50	 	'sensibilité	

loop
 

PieM

Senior Member
Comprends pas trop ...
le buzzer est monté sur quoi ?
Si c'est un appel de phare, un coup de klaxon, l'allumage des phares ce sont des commandes différentes qui sont décodée sur le récepteur en analysant b0 (bit0, bit1 etc...) .

attention aussi à faire un programme concis à l'émetteur, car la réactivité va en dépendre. L'arrêt de l&#8217;émetteur et sa remise en route après 6 ms n'a pas beaucoup de sens ...
Et coté récepteur il faut penser que rfin est une instruction bloquante. donc elle reste en attente de recevoir les 8 bytes et ne fait rien d'autre. Et pendant ce temps toutes les fonctions en arrière plan dépendant du temps comme les pwm, passent à 4MHz .
 

dje8269

Senior Member
le buzzer est monté sur quoi ?
Le buzzer est monté sur l'émetteur en broche C.0

Je garde l'exemple des phares qui est le plus parlant .

J'ai donc un BP et un interrupteur à glissière monté en // sur la même entrée du picaxe , ainsi je peut faire un appel de phare en appuyant sur le BP , ou allumer les phares en permanence en basculant l'interrupteur à glissière. Donc c'est la même commande , mais sur le BP le flag se met a 1 temporairement sur l'inter il se met a 1 en permanence .

Je souhaite que quand j'appuie sur le BP donc mise a 1 du flag cela fasse un BIP sur mon émetteur(sortie C.0) . Mais quand je mets l'interrupteur a 1 il fasse aussi un bip pour dire que la commande est bien reçue aussi.

Pour le moment je recopie la variable b0 ( commande de mes flags) sur la variable b8 , et je compare mais ça ne fonctionne pas . :mad:

j'espère avoir été plus explicite .

attention aussi à faire un programme concis à l'émetteur, car la réactivité va en dépendre
Oui je sais PieM, j'essaie , mais je tatonne ,soyez indulgent !!!!

L'arrêt de l&#8217;émetteur et sa remise en route après 6 ms n'a pas beaucoup de sens ...
Il s'arrete 50ms car je fais une pause apres l'exticntion . En fait je sais pas trop comment faire et si je peut emettre en permanence ou non avec ce type d'emetteur aurel 400mW, alors j'ai fais comme ca , car mon emetteur est commandé par un transistor . je peut bien sur modifier .

Et coté récepteur il faut penser que rfin est une instruction bloquante. donc elle reste en attente de recevoir les 8 bytes et ne fait rien d'autre. Et pendant ce temps toutes les fonctions en arrière plan dépendant du temps comme les pwm, passent à 4MHz .
Je pense que coté reception il y as beaucoup d'amelioration a apporté .
 

PieM

Senior Member
'ai donc un BP et un interrupteur à glissière monté en // sur la même entrée du picaxe , ainsi je peut faire un appel de phare en appuyant sur le BP , ou allumer les phares en permanence en basculant l'interrupteur à glissière. Donc c'est la même commande , mais sur le BP le flag se met a 1 temporairement sur l'inter il se met a 1 en permanence .
Non ! ce n'est pas la même commande ! il faut que les infos soient traitées sur le récepteur.
Quant aux bips avec des pauses sur l'émetteur, ce n'est pas une bonne idée! Rien ne doit ralentir l'émission.
Et
Il s'arrete 50ms car je fais une pause apres l'exticntion .
ce n'est pas 50 ms à 32 MHz. ça fait 6.25 ms !
 
Last edited:

dje8269

Senior Member
Non ! ce n'est pas la même commande ! il faut que les infos soient traitée sur le récepteur.
Je ne comprends pas ! sorry .
A la réception que le flag soit a 1 pendant 1 seconde ou pendant 1 minute pour lui c'est pareil, il met une sortie à 1 qui fait allumé les lumières non?, pkoi faire deux commandes differentes alors que l'instruction est la même?

Quant aux bips avec des pauses sur l'émetteur, ce n'est pas une bonne idée!
Tu as raison , je m'en suis rendus compte, quand je le mettais ; Il faudrait que je fasse un autre programme en parallèle non ? ou il n'y as pas de solution ? une petite piste ?

ce n'est pas 50 ms à 32 MHz. ça fait 6.25 ms !
Effectivement, encore raison , n'ayant pas l'habitude de changer de fréquence , ca ne m'as pas traversé l'esprit ! Je me disais aussi qu'avec 50ms de pause ca restait très réactif .
 

PieM

Senior Member
Encore une fois, il ne faut pas gérer des tempos ou des durées au niveau de l'émetteur!

Si la commande ne se fait que pendant le temps d'appui sur le BP, c'est une chose. si elle doit durer un certain temps indépendamment , c'est autre chose.
 

dje8269

Senior Member
si elle doit durer un certain temps indépendamment , c'est autre chose.
je me situe la dedans, la durée du bip doit être toujours la même par exemple 100ms, des qu'un changement d'état est détecté, quelque soit la durée du changement d'état . sans utilisé de pause ,car je comprends tout a fait que ça gêne pour une bonne réactivité en émission , je peux allumé le BUZ en début de la boucle et l'eteindre en fin de boucle , ca feras pas 100ms mais c'est pas grave ! .
Je regarde pour le multitache sinon !
 

PieM

Senior Member
Je t'ai dit "Encore une fois, il ne faut pas gérer des tempos ou des durées au niveau de l'émetteur!"
Après tu fais comme tu veux ...
 

dje8269

Senior Member
Rohhh , ne t'énerve pas !!! dis moi seulement qu'il n'y as aucune solutions . Moi j'essaie juste de chercher une solution, des fois farfelues certes , mais j'essaie . Après ce qui est impossible est impossible je le conçois , et si un expert comme toi me dis c'est pas possible ben OK !!
 

dje8269

Senior Member
Par exemple je viens d'essayer ce code , qui fonctionne très bien voir trop bien .

Comme tu me l'as conseillé je n'ai pas utilisé de pause ni de tempo . En fait le problème c'est qu'il emet 2 bips un quand j'appuie sur le BP et un autre quand je le relâche .
Y aurait il une solution par exemple je pensais regarder du coté de la fonction "button" que je connais pas , a savoir si c'est une piste ou non ?
Ou alors peut etre en hard avec un condo pour "temporisé" l'émission du BUZ

Désolé si je vous saoul :

Code:
#PICAXE 20M2

dirC.0 = 1		'declare C.0 comme sortie
dirB.4 = 1		'declare B.4 comme sortie
dirB.7 = 1		'declare B.7 comme sortie
dirB.3 = 0		'declare B.3 comme entrée
dirB.5 = 0		'declare B.3 comme entrée
dirB.6 = 0		'declare B.3 comme entrée
émet.1 = 0		'declare B.3 comme entrée
dirC.6= 0		'declare B.3 comme entrée

symbol BUZ=C.0
symbol TX = B.4
symbol DONNEE = B.7
symbol Klax	= pinC.6
symbol Phare= pinB.5
symbol Gyro= pinB.6
symbol sirene= pinB.1
symbol chgt= pinB.3

b5 = 0		'Non utilisé
b6 = 0		'Non utilisé
b7 = 0		'Non utilisé


setfreq m32		'Mets la freq à 32Mhz pour tout le programme, RFout se met a 4 mzh puis repasse à 32Mhz

high TX			'allume le TX	

do

readadc C.3,b1		'Av/ar voiture
readadc C.2,b2		'Dr/ga voiture
readadc B.0,b3		'Ha/ba caméra
readadc B.2,b4		'Dr/Ga caméra

bit0 = Klax
bit1 = Phare
bit2 = sirene
bit3 = gyro
bit4 =chgt

low BUZ
if b8<>b0 then
high BUZ
end if
b8=b0
	
	rfout DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7)
	

loop
 

dje8269

Senior Member
en vidéo .
Pour la vidéo j'ai mis le TX a coté du RX, pour bien visualiser la réception de l'info sur le récepteur , et l'appui sur les BP sur l'émetteur ; j'emet en permanence donc la réactivité est parfaite .
Les 5 leds ( a droite) en réception correspondrons à mes TORs .

Finalement les 2 bips sont pas si mal !!

Pour jojojo ( :eek:) : http://www.dailymotion.com/video/x1cayzc_buz_tech

Pour les autres :
Mettre le son hein ....
[video=dailymotion;x1cayzc]http://www.dailymotion.com/video/x1cayzc_buz_tech[/video]
 
Last edited:

jojojo

Senior Member
Bon, j'ai pas tout relu, mais un truc qu'a dit Piem est FONDAMENTAL :
La durée d'un cycle complet d'émission (Soit le temps entre la fi d'un RFOUT, et le retour à son début.

Les servos de télécommande sont fait pour "patienter" 20 ms entre deux ordres.
On peut aller jusque 60 ms MAXI avant que ça ne "frétille". Au dela, c'est la cata.

Sachant qu'une trame RFOUT dure environ 36.5 ms, il reste 23.5 ms pour TOUT LE RESTE !

Dans ce genre de programme, c'est le PREMIER TRUC DONT IL FAUT TENIR COMPTE.

Donc, PAS de pause, PAS d'instructions qui bouffent du temps, que de l'efficacité.
 

dje8269

Senior Member
Merci Georges pour ces précisions très clair . Donc je ne ferais pas de test pour savoir si on ne touche pas la télécommande pendant 30 secondes (tout à zero pour les analogiques et pas de changement d'etat pour les TOR) ;cela éteint émetteur, et fais sonner le buzzer en gros !!!! Ok y'auras cas faire attention et pi c'est tout !.

Ou peut on trouver le temps des instructions ? car pour faire une comparaison j'aurais besoin de stocker mes 4 valeurs analogiques dans des variables, puis de comparer ca ne doit pas être très long si ? Pensez vous que c'est jouable ?
Moi je dis ca je dis rien .......
 

jojojo

Senior Member
Donc je ne ferais pas de test pour savoir si on ne touche pas la télécommande pendant 30 secondes

Si, tu peux le faire.
Ca ne prendra que le temps d'une addition, d'un checksum et d'un test du timer, c'est tout (je dirais dans les 300µs max, à la louche.

Ou peut on trouver le temps des instructions

Un excellent document est dispo ici :
http://www.picaxeforum.co.uk/attachment.php?attachmentid=7624&d=1301053997

Je sais, c'est en anglais, mais tu peux déjà aller page 12.
Ce truc est une mine d'info's.
 
Top