Est ce que ca serait plus "pro" d'acheter ca ? Avec le Rx bien evidement : lien vers Tx
Aurais je de meilleur resultat ?
Aurais je de meilleur resultat ?
Je ne sais pas, faudrait essayer mais 900 MHz c'est plus prêt de 1200 que 433 et donc plus difficile à filtrer si nécessaire.Est ce que ca serait plus "pro" d'acheter ca ? Avec le Rx bien evidement : lien vers Tx
Aurais je de meilleur resultat ?
Là, on réfléchi deux secondes, ça évite de confusionner l'emission et la réception.Oui , d'apres les pros de FPV , avec mes 433Mhz, je tombe sur l'harmonique 3 en 1.2Ghz . c'est ca qui brouille le signal
C'est quoi et c'est où ce compteur d'erreur qui compte quoi?Je m'explique , j'ai mis un sertxd derrière mon compteur d'erreur . et a ma grande surprise il compte en permanence , ce qui signifie qu'il loupe des flag de liaisons
C'est pas faux, on voit bien que le sertxd fais ralentir l'ensemble.Parce que si tu ajoutes des trucs avec un sertxd en plus pour mesurer quelque chose qui est lié à des retards , ce n'est pas très cohérent !
#PICAXE 28X2
'#################################################################################
'########################## Programme 28X2 Slave #############################
'#################################################################################
' B_ pour Broche, c'est le nom ou est branché le composant
' E_ pour Etat, c'est la valeur de la broche
' V_ pour Variable, ou est enregistré l'Etat de la broche
' bit0=Klax ; bit1=Phare ; bit2=sirene ; bit3=Gyro ; bit4=chgt; bit5=camera ; bit6=debutant ; bit7=jusqu'à
'######################## Configuration ########################
'b0 à b7 pour les communications
Symbol V_TOR = b0
Symbol V_moteur = b1
Symbol V_direction = b3
Symbol V_Pan = b5
Symbol V_Tilt = b7
symbol V_compteur_com = b8
Symbol V_Secu = b9
réinitialisé V_compteur_secu = b10
Symbol V_moteur_max = w12
Symbol V_Klaxon = bit0
Symbol V_Phares = bit1
Symbol V_sirene = bit2
Symbol V_Gyro = bit3
Symbol V_Chgt = bit4
Symbol V_camera = bit5
Symbol V_debutant = bit6
Symbol V_Opt = bit7
Symbol B_gyro1 = A.0
Symbol B_gyro2 = A.1
Symbol B_moteur = B.0
Symbol B_Direction = B.1
Symbol B_Pan = B.2
Symbol B_Tilt = B.3
Symbol B_Sirene = B.5
Symbol B_camera = pinC.2
Symbol B_Phares = c.5
Symbol B_sens = C.6
Symbol B_Secu = C.7
réception = %0101 'declare les broches A.0 et A.2 en sortie
dirsB = %00001111 'declare les broches B.0, B.1, B.2, et B.3 en sortie
dirsC = %01000000 'declare La broche C.7 en entrée
'######################## Initialisation ########################
setfreq m8
hi2csetup i2cslave, %10100000 ' Met le 28X2 en Esclave
servo B_Direction,150 ' Servo direction en broche B.1, position neutre a 150
servo B_Pan,150 ' Servo Pan en broche B.2, position neutre a 150
servo B_Tilt,150 ' Servo Tilt en broche B.3, position neutre a 150
pwmout pwmdiv16, B_moteur, 125, 0 ' rapport cyclique a 0
dacsetup %10100000 ' Configure le dac avec Vcc en reference
tmr3setup %00000011 ' Configure le timer3 pour les telerupteurs
put 1,126 ' Ecrit dans le scratchpad la valeur du point milieu pour le moteur
put 3,125 ' Ecrit dans le scratchpad la valeur du point milieu de la direction
put 5,129 ' Ecrit dans le scratchpad la valeur du point milieu du Pan de la caméra
put 7,129 ' Ecrit dans le scratchpad la valeur du point milieu du tilt de la caméra
Low B_sens ' Met le relais à l'état bas ( par default marche avant)
V_compteur_com = 0 ' RAZ du compteur d'erreur communication
V_compteur_secu = 0 ' RAZ du compteur de securité moteur
'####################################################################################################
' Programme Principal
'####################################################################################################
main:
do
get 0,b0,b1,b2,b3,b4,b5,b6,b7 ' Lecture du scratchpad
'-----------------------------------
'##### perte de communication #####
if hi2cflag = 0 then 'Si flag=0, donc perte de com
V_compteur_com = V_compteur_com + 1 max 25'Compteur d'erreurs de flag
[SIZE=3][COLOR="#FF0000"] sertxd ("V_compteur_com=",#V_compteur_com,13,10)[/COLOR] [/SIZE] if V_compteur_com > 40 then ' en augmentant le chiffre , on augmente le delai de reaction
gosub Escape ' Si plus de 40 erreurs à la suite, on arrete la machine
end if
else
hi2cflag = 0 're-armement du flag
V_compteur_com = 0 'RAZ du compteur
end if
'------------------------------
'##### Commande des TOR #####
if V_TOR = 0 then ' Si pas de bouton appuyé , daclevel = 0
daclevel 0
end if
if V_Klaxon = 1 then ' Correspond au klaxon , bouton sur le joystick
daclevel 3
end if
if V_Phares = 1 then ' Correspond aux phares bouton de droite
if timer3 > 20 then 'Fonction télérupteur . Compteur avec le timer3
toggle B_Phares 'le BP est préssé ET le temps est superieur au compteur alors on inverse l'interrupteur
timer3 = 0 'On ré-arme le compteur en le mettant a 0
end if
end if
if V_sirene = 1 then ' Correspond au lancement de sirene , bouton du bas
daclevel 15
end if
if V_Gyro = 1 then ' Correspond aux gyrophares bouton de gauche
if timer3 > 20 then ' Fonction télérupteur . Compteur avec le timer3
toggle B_gyro1
toggle B_gyro2
timer3 = 0
end if
end if
if V_Chgt = 1 then ' Correspond au changement de sirene , bouton du haut
daclevel 9
end if
B_camera = V_camera ' Correspond au declenchement caméra inter glissiere de gauche
if V_debutant = 1 then ' Correspond au mode de butant inter glissiére de droite
V_moteur_max = 200 ' si enclenché on limite la valeur max du pwm a 200 au lieu de 500
else
V_moteur_max = 500
end if
'--------------------------------
'##### Commande du moteur #####
' Point milieu 126
Select Case V_moteur
Case < 101 'Marche arriere
high B_sens
V_moteur = 100 - V_moteur ' Mise a l'echelle
w13 = V_moteur*37/10+130 max V_moteur_max
Case > 128 'Marche avant
low B_sens
V_moteur = V_moteur - 129 ' Mise a réinitialisé
w13 = V_moteur*3+130 max V_moteur_max ' 130 commence à faire avancer la voiture.
else
w13 = 0 ' Sinon point milieu , donc a l'arret
end select
pwmduty B_moteur, w13 ' envoi du pwm sur le moteur
'--------------------------------
'##### Sécurité du moteur #####
readadc B_Secu, V_Secu ' Lecture de la broche securité
if V_Secu > 90 then ' Pour eviter les coupures intempestives sur un simple choc on compte avant de couper le moteur
V_compteur_secu = V_compteur_secu + 1 max 30
if V_compteur_secu > 20 then ' Si le moteur est au dessus de 90 pendant 20 cycles
pwmduty B_moteur,0 ' On coupe le moteur
pause 3000 ' On fais une pause
V_compteur_secu = 0 ' On RAZ le compteur
end if
else
V_compteur_secu=0
end if
'--------------------------------------
'##### Commande de la direction #####
' Tourne à gauche (V_direction > 125) / position du servo de 150 à 95-105(fourchette max)
' Tourne à droite (V_direction < 125) / position du servo de 150 à 190-193(fourchette max)
' Point milieu du joystick 125
V_direction = V_direction* 9 / 25 ' Mise à l'echelle
V_direction = 192 - V_direction
servopos B_Direction,V_direction ' Positionnement du servo
'------------------------------------
'##### Commande Pan de la camera #####
' Tourne a gauche de 150 à 235, a droite de 150 à 65
' Point milieu du joystick 129
V_Pan = V_Pan * 7 / 10 ' Mise a l'echelle
V_Pan = 238- V_Pan min 65
servopos B_Pan,V_Pan ' Positionnement du servo
'--------------------------------------
'##### Commande Tilt de la camera #####
' Vers le haut de 150 à 70 (max 69), vers le bas de 150 à 170 (max 172)
' Point milieu du joystick 129
V_Tilt = V_Tilt * 10 / 16 ' Mise a l'echelle
V_Tilt = V_Tilt+70 max 170
servopos B_Tilt,V_Tilt ' Positionnement du servo
Loop
'####################################################################################################
' Programme Subsidiaire
'####################################################################################################
'######## Perte de communication ##########
Escape:
do while hi2cflag = 0 ' Tant que le scratchpad n'as rien recu on eteint le moteur
pwmduty B_moteur,0
loop
V_compteur_com = 0 ' En sortant de la boucle, c'est que la communication est revenue
hi2cflag = 0 ' On remet le compteur a 0 et on ré-arme le flag
return
Par avance merciPour le moment le nouveau proto c'est ça . On remarque que j'ai délégué TOUT ce qui utilise du timer au 08M2 . ainsi le 28X2 peut mouliné a fond . Du coup il se retrouve avec beaucoup moins d'I/O qu'au début. dans le but de gagner de la place, Est ce que je peux envisagé de le remplacer par un 20X2 ?
Pourrais je le mettre en esclave, gérer 3 servos en même temps que du pwm , plus une sotie DAC ( je crois qu'il n'en possède pas) ? ou alors une autre liaison genre un deuxiéme esclave mais il ne faut pas que ca ralentisse !
Heu... là je crois qu'il faut arrêter la course en avant !!!!Est ce que je peux envisagé de le remplacer par un 20X2 ?
Pourrais je le mettre en esclave, gérer 3 servos en même temps que du pwm , plus une sotie DAC ( je crois qu'il n'en possède pas) ? ou alors une autre liaison genre un deuxiéme esclave mais il ne faut pas que ca ralentisse !
Pour ca:pourquoi remplacer par un 20X2, un 28X2 qui existe!
Le 28X2 qui au début devais tout gérer , ce retrouve trés allégé de taches au fil du temps ; Donc plus besoin d'un si "gros" µC .J'ai pas tellement d'autre raisons.Pour le moment le nouveau proto c'est ça . On remarque que j'ai délégué TOUT ce qui utilise du timer au 08M2 . ainsi le 28X2 peut mouliné a fond . Du coup il se retrouve avec beaucoup moins d'I/O qu'au début. dans le but de gagner de la place, Est ce que je peux envisagé de le remplacer par un 20X2 ?
ben si jamais le 20X2 peut remplacer le 28X2, et comme je n'ai pas réussis a trouvé si le 20X2 avait une broche DAC . Il faut pourtant que le 08M2 ( celui qui gère les taches en relation avec les timers) reçoivent des ordres ; cela se faisait par la broche DAC ( et ses 32Niveaux) du 28X2, mais si je passe en 20X2 sans DAC, je dois trouver une autre solution . d'où le deuxième esclave ou autres , c'était juste une suggestion. sinon j'aurais besoin de que de 4 sorties pour envoyer les ordres, donc pas besoin de liaison le 20X2 auras largement assez de sortie pour communiquez avec le 08M2Un deuxieme esclave en plus ? mais pour quoi faire ??!
Non j'essaie d'apporter quelques ajustements rien de plus . Aprés je cherche pas les ennuis, mais la simplification.Si c'est pour empiler en permanence les problèmes sans les résoudre
tu peux pas faire ça si prêt du but !!!je laisse la main.
Effectivement je suis pas allé voir sur cette version anglaise ! vu mon niveau ! . donc merci pas de DAC sur le 20X2 .(pas de DAC ; c'est sur la doc: Ici entre autres )
Non j'ai pas dis ca !!! je garde le 08M2 pour les fonction timer .et tu ajoutes un autre Picaxe pour compenser le manque.
J'essaye, mais j'attends mes nouveaux modules ; effectivement c'est ma priorité avant d'allé plus loin ;Et commence à régler tes problèmes de radio.
Alors regarde le manuel2; il a été traduit en français ! Et sur le manuel1 il y a le brochage des Picaxes !Effectivement je suis pas allé voir sur cette version anglaise
Bonne résolution.effectivement c'est ma priorité avant d'allé plus loin
C'est clairement fait pour et sans doute pertinent.puis je l'utiliser pour effectuer ma détection de perte de communication ??? Comme je vais essayé de faire des tests , je voulais savoir si je devais aussi testé ceci , et savoir ce que cela engendrerai niveau soft et hard .
C'est même obligatoire vu l'impédance de sortie de 50kJe recommande chaudement l'implantation d'un AOP en suiveur, si l'on envisage l'attaque d'un ADC.
Aie j'avais pas vu ca !!! L'entre des data sur le RX doit se faire en 2.5V ? J'espere ne rien avoir abimer !Attention que le niveau maxi de l'entrée data est de 2.5V . Donc diviseur de tension si le picaxe du TX est en 5V.
TXD is normally driven directly by logic levels but will also accept analogue drive, e.g. 2-tone signalling.
In this case it is recommended that TXD (pin 7) should be DC-biased to 2.5V with the modulation ACcoupled
and limited to a maximum of 5V peak-to-peak. The instantaneous modulation voltage must not
swing below 0V or above 5V at any time if waveform distortion and excessive FM deviation is to be
avoided – use a resistive potential divider and/or level shifter to accomplish this if necessary. The
varactor modulator in the transmitter introduces some 2nd harmonic distortion, which may be reduced
if necessary by predistortion of the analogue waveform.
#PICAXE 20M2
'#################################################################################
'########################## Programme Emetteur #############################
'#################################################################################
'########################## configuration ################################
' B_ pour Broche, c'est le nom ou est branché le composant
' E_ pour Etat, c'est la valeur de la broche
' V_ pour variable, ou est enregistrée l'Etat de la broche
'b0 à b7 pour les infos envoyés
'b8 avertissement des piles
'b9 calcul des joysticks
symbol B_DONNEE = B.0
symbol B_Led = C.0
symbol B_Pile = C.1
symbol B_EN = C.7
symbol E_debutant = pinB.1
symbol E_chgt = précise.2
symbol E_sirene = pinB.3
symbol E_Phare = pinB.6
symbol E_Gyro = pinB.7
symbol E_Opt = précise.4
symbol E_Klax = pinC.5
symbol E_camera = pinC.6
dirsB = %00000001 'declare B.0 en sortie
dirsC = %10000001 'declare C.0 et C.7 en sortie
'########################## Initialisation ################################
setfreq m32 'Mets la freq à 32Mhz, RFout se met a 4 mzh puis repasse à 32Mhz
b9 = 0 ' RAZ du compteur joysticks
'#################################################################################
'########################## Programme Principal ############################
'#################################################################################
do
readadc C.3,b1 'Av/ar voiture
readadc C.2,b3 'Dr/ga voiture
readadc B.2,b5 'pan de la caméra
readadc B.5,b7 'Tilt de la caméra
readadc B_pile, b8 'Avertissement piles usagées
if b8 < 200 then
high B_Led ' Correspond a 12 V au lieu de 14.4V
end if
w13 = b1+b3+b5+b7 ' Calcul de la position des joysticks
if w13>508 and w13<510 then ' point milieu 126+125+129+129 = 509
inc b9 'incremente le compteur
if b9>100 then 'si superieur a 100 on eteint
low B_EN
end if
else
high B_EN
b9 = 0
end if
bit0 = E_Klax
bit1 = E_Phare
bit2 = E_sirene
bit3 = E_Gyro
bit4 = E_chgt
bit5 = E_camera
bit6 = E_debutant
bit7 = E_Opt
rfout B_DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7) 'envoi des données par RF
loop
effectivement cela merite explication ; Au debut je voulais mettre la led directement . Mais après réflexion, et vue que j'avais un peu de place , je me suis dis que si jamais je voulais mettre autre chose qu'une led je ferais mieux de mettre un petit transistor . par exemple j'avais pensé a un buzzer ! .Pourquoi, le BC547 en C0 ?
Il n'y a pas de RFin sur un 08M2.si on as mis un 14M2 en Rfin c'est pour pouvoir le mettre en maitre... mais un 08M2 possède aussi des sorties hi2c
ok ! donc en fait ca va pas me servir a grand chose ! un peu comme sur les téléphones portables ? comme y'auras personne sur la voiture pour voir si je capte bien ......Le RSSI t'indique la qualité de la réception
Ok comme ça c'est réglé.Il n'y a pas de RFin sur un 08M2.
Discutable, car en cas de réception brouillée, le rfin restera en attente, alors que le signal RSSI lui sera OK.l'utilisation de RSSI, sur un ADC serait BEAUCOUP plus judicieuse !
Pas de souci, mais pour quelle utilisation du coup ? En association avec le hi2c flag ?l'utilisation de RSSI, sur un ADC serait BEAUCOUP plus judicieuse !
Peu probable. Le RSSI, normalement est en fin de chaine (après la dernière FI). Les brouillages affectent surtout l'amont de la chaine (étage HF, premier mixer et première FI).Discutable, car en cas de réception brouillée, le rfin restera en attente, alors que le signal RSSI lui sera OK.
Comme tu le sents. Simplement, tout comme un SMmètre (c'en est un, d'ailleurs), tu disposes en permanence d'une tension continue proportinnelle au niveau HF reçu.Pas de souci, mais pour quelle utilisation du coup ? En association avec le hi2c flag ?
Oui , si ca fonctionne c'est fort ! . Aucun alors je rajoute un AOP sur le futur typon. ( en suiveur de tension), qui rentre sur une broche "ADC" .Beaucoup plus logique, non ?
Heu... si on neutralise le RFin par le RSSI qu'est ce va mettre la voiture en stand by ? Car c'est le but non ?Tu n'autorises donc l'instruction Rfin QUE si tu as du signal.
Beaucoup plus logique, non ?