User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Tue Jul 02, 2013 10:23 pm

Rhaaa !!! Je teste ça demain, vu que mon gyro est alimenté par un BEC, mes moteurs vont bipper et je vais faire chier ceux qui dorment !
Mais le

Code: Select all

i2cset -y 1 0x6b 0x28 x080 #On demande au gyro de renvoyer les valeurs 
j'ai pas besoin de le faire ? si ? d'ailleurs la ligne me parait fausse.

En attendant, j'exécute ma punition !

J'avais déjà vu cette vidéo mais elle me fait toujours autant rire ! :lol:

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Tue Jul 02, 2013 10:29 pm

oupsss j'ai edité entre 2 , les changement de page j'aime vraiment pas ca (donc voir page precedente)
une fois que tu auras X , Y et Z (en raw) pour transformer en angle (sur 360°) :
For the gyro, we need to work out how fast it is rotating in degrees per second(dps). This is easily done by multiplying the raw value by the sensitivity level that was used when enabling the gyro. G_GAIN = 0.07, which is based off a sensitivity level of 2000 dps.
donc tu multiplis chacun des 3 par 0.07
pour pas que les moteurs beep suffit de pas alimenter la carte adafruit il me semble (ou peu etre de rien lui envoyer ? , voir de debrancher les prise pwm qui vont aux esc) enfin ca tu testeras demain , je suis pas sur du tout

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Tue Jul 02, 2013 10:52 pm

Okay, je l'avais vu sur le code Adafruit l'initialisation comme ça mais j'avais pas compris le pourquoi du comment ^^

Bon, là j'ai toute les armes pour mettre le gyro en place avec la lib I²C que tu m'avais trouvé :D
Je me vois bien coder ça ! :D

Code: Select all

unsigned int x,y,z; 
unsigned int high, low;

I2C* Gyro = new I2C(1,0x6b); 

//On active le gyromagic ! 
Gyro->write_byte(0x20,0x0f);
Gyro->write_byte(0x23,0x30);

while(true){
	low = Gyro->read_byte(0x28); 
	high = Gyro->read_byte(0x29); 	
	x = high*256 + low; 

	low = Gyro->read_byte(0x2A); 
	high = Gyro->read_byte(0x2B); 	
	y = high*256 + low; 

	low = Gyro->read_byte(0x2C); 
	high = Gyro->read_byte(0x2D); 	
	z = high*256 + low; 		
	cout << " -------- " << endl;
	cout << " x : " << x*0.07 << endl ;
	cout << " y : " << y*0.07 << endl ;
	cout << " z : " << z*0.07 << endl ;
}
Demain je me penche sur les Accel / Compass et Alti (en faite ça va être simple de le lire maintenant que j'ai compris :lol: )

Edit : Nop', mes moteurs beep dès que je branche le jus, même si le PWM est pas branchés ils beeps ces connards ! xD
Du coup un programme se lance au démarrage et met tout les moteurs a 0 pour qu'ils arrêtent de beeper, mais le démarrage dure 50 secondes :/
J'ai pas trop bien compris l'histoire de dps, mais il est tard, demain boulot à 8h je vais être frais :lol:
Last edited by PHPower on Tue Jul 02, 2013 10:58 pm, edited 1 time in total.

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Tue Jul 02, 2013 10:57 pm

oui comme ca ca devrait marcher , ca affichera pas un angle mais les valeurs raw , c'est mieux pour travailler avec les valeurs sans arrondir en angle par contre a l'ecran ca fait plus "user friendly" comme ils disent d'afficher en angle :
cout << " -------- " << endl;
cout << " x : " << x * 0.07 << endl ;
cout << " y : " << y * 0.07 << endl ;
cout << " z : " << z * 0.07 << endl ;

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Tue Jul 02, 2013 10:59 pm

Oui j'ai édit entre temps ! :lol:
Va falloir qu'on arrête d'éditer nos posts, ça va devenir incompréhensible !

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Tue Jul 02, 2013 11:26 pm

pour les dps c'est le nombre de Degrés Par Seconde mesurés donc 2000 c'est le mieux pour ce composant

pour l'angle j'ai un doute du coup peu etre qu'il faut une constante "temps" pour l'afficher (tu nous diras ca demain)

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Wed Jul 03, 2013 9:29 am

Bon bah mon code me sort des valeurs vraiment space :

X = 4587.54
Y = 3.31
Z = 4585.56

Le problème c'est qu'en bougeant le gyro, ces valeurs ne changent pas :(

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Wed Jul 03, 2013 6:41 pm

aie , peux tu faire un "i2cdump -y 1 0x6b" a l'allumage
puis la meme chose apres avoir lancé le code qui marche (apres que le 0x6b est init)
puis pareil avec le code qui marche pas a peu pres a plat
puis pareil avec le code qui marche pas pas du tout a plat stp ?

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Wed Jul 03, 2013 7:17 pm

Je te fait ça dans 30/40 minute le temps de charger les pipiles :)

Edit :

Apres allumage :

Image

Apres code qui marche (init) :

ImageImage

Apres code qui marche pas à l'endroit :

ImageImage

Apres code qui marche pas avec drone de travers dans tous les axes :

ImageImage

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Wed Jul 03, 2013 9:10 pm

bizarre on dirait que ca marche (déjà la configuration donc de 0x20 a 0x25 est la meme : 0F 00 00 30 00 00 avec le code qui marche et celui qui marche pas)
avec le code qui marche pas quand il est a plat 0x28 a 0x2D on des faibles valeurs (sauf 0x2C et 0x2D , l'axe des Z) et quand il est de travers 0x28 a 0x2D ont de fortes valeurs (sauf 0x2B qui est a 0 donc l'axe des est Y a plat) donc on dirait que ca marche avec le code qui marche pas

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Wed Jul 03, 2013 9:55 pm

Je viens de vérifié, mais c'était un hasard ...

En raw :

x = 65000
y = 10
z = 66000

Quand je le fait pivoter, les valeurs bougent et se stabilisent au même valeurs qu'au départ.

L'acceleromètre n'as pas l'air de fonctionner avec mon code non plus :(

Pour ce soir, plus de batterie, je continu demain

Edit : vidéo expliquant le problème : http://www.youtube.com/watch?v=QFk0f6xb ... e=youtu.be

Avant de faire tomber mon telephone sur le clavier le drone est parallèle au sol
Après inclinaison sur la droite
Après inclinaison vers l'arrière

Je comprend pas les valeurs :cry:

dorixcraft
Posts: 12
Joined: Wed Jun 26, 2013 3:55 pm

Re: Projet PiX (Drone, Quadricopter)

Thu Jul 04, 2013 12:50 pm

Peut être qu'il faut détecter les variations des valeurs.

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Thu Jul 04, 2013 6:22 pm

Salut , sur les 16 bits (2 octets) de chaque axe il y'a un bit qui dit dans quel sens ca penche donc que 15 pour l'angle (enfin pour le "rate") , ce bit est soit le 1er du msb soit le dernier du lsb seulon la configuration du registre 0x23 (c'est le bit BLE Big/little endian data selection. Default value 0.(0: Data LSb @ lower address; 1: Data MSb @ lower address)) du gyro donc faut faire sauter ce bit pour les calculs, surtout si c'est le 1er du msb , en le masquant avec un 0 ou en décalant d'un bit vers la droite ou vers la gauche seulon si c'est celui du msb ou du lsb ca doit etre a cause de ca que ca passe de presque 0 a + de 90 , suffit que le sens change légèrement pour foirer le calcul , par contre ce qui m'etonne c'est qu'en mettant 0x30 dans 0x23 le bit BLE est a 0 donc le sens est sur le lsb des axes ce qui doit pas foirer tant que ca le calcul

le plus simple pour le moment c'est d'essayer avec le compas , au moins lui c'est sur que y'a pas de variable "temps" qui entre en compte : http://blog.memsme.com/raspberry-pi-lsm303dlhc-2/

ou pour voir graphiquement : https://github.com/DavidEGrayson/minimu9-ahrs/wiki , attention c'est en i2c0 d'origine
ca donne ca : http://www.youtube.com/watch?v=8daR-wtQIx0

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 8:07 am

Okay, je vais regarder de ce coté là.

J'avais pas vu l'histoire du bit qui dit dans quel sens ça penche. Je m'y met staprem.

Sinon j'ai vu quelque chose d'intéressant : http://www.kickstarter.com/projects/kwa ... i-fairywre
Il y a une vrai horloge rajoutée sur cette board, je ne sais pas comment ça fonctionne mais ça peut être franchement intéressant.

Edit : Selon ma configuration, le gyro est en LSb (kesako ?)
Edit 2 : Je répond à ma question LSb : Least Significant Bit (Bit de poid faible) http://fr.wikipedia.org/wiki/Bit_de_poids_faible
Edit 3 : Je viens de tester en refaisant la formule de la doc :

Code: Select all

void readGyr(I2C* Gyr,int *g){

  uint8_t f,s;
  f = Gyr->read_byte( 0x28 );
  s = Gyr->read_byte( 0x29 );    
  *g = (uint16_t) ( ( ( s << 8 ) | ( f  >> 1 ) ) ) ;

  f = Gyr->read_byte( 0x2a );
  s = Gyr->read_byte( 0x2b );    
  *(g+1) = (uint16_t) ( ( ( s << 8 ) | ( f  >> 1 ) ) ) ;

  f = Gyr->read_byte( 0x2c );
  s = Gyr->read_byte( 0x2d );    
  *(g+2) = (uint16_t) ( ( ( s << 8 ) | ( f  >> 1 ) ) ) ;

  cout << " 0 : " << (*g+0)*G_GAIN << "\t" ;
  cout << " 1 : " << (*g+1)*G_GAIN << "\t" ;
  cout << " 2 : " << (*g+2)*G_GAIN << endl ;  
}
Résultat, ça ne marche toujours pas

l'AMI Yves
Posts: 128
Joined: Thu Jun 13, 2013 1:43 pm

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 2:01 pm

Dites, les gars, je serais très intéressé par votre configuration logicielle, mais le lien http://pix.dcylabs.com/ me dit "Forbidden": c'est dommage !

J'ai cru comprendre que vous développiez sur PC, puis que vous transfériez des "paquets" sur le Pi : c'est ça qui m"intéresse.

A+

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 2:09 pm

C'est bon, j'ai réactivé le lien, mais tu ne trouvera pas d'infos intéréssantes dessus.
Je pense que ce serait plus instructif de lire ce topic :)

@ToOnS : Je pète un cable, je prend la lib de DavidEGrayson et je l'adapte à ma lib I2C :)

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 6:04 pm

Salut pour la vraie horloge y'a moins cher , regarde le ds3232 , juste une pile bouton (la meme que dans les pc , je sais plus comment elle s'appelle , une grosse pile bouton) et un bus i2c et c'est moins lourd :mrgreen: , apres ca sert pas a faire du real time dans les 2 cas , juste a avoir l'heure.
Last edited by ToOnS on Fri Jul 05, 2013 6:09 pm, edited 1 time in total.

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 6:07 pm

Ok, donc useless en faite xD

l'AMI Yves
Posts: 128
Joined: Thu Jun 13, 2013 1:43 pm

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 8:22 pm

@PHPower Je ne comprends pas ta réponse : il n'y a peut-être rien d'intéressant pour moi sur le lien (deux .tar.gz que je n'ai as encore ouverts), mais de toutes façons, j'ai lu les quatre pages du topic, je n'ai rien vu qui réponde à ce que j'espère : qu'est-ce que vous avez installé sur le PC, quelles bibliothèques etc... pour développer le sources sur le PC, compiler pour le RPI et y télécharger les paquets.

Où est-ce que j'ai sauté une marche ?

AMIcalement.

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 8:37 pm

En faite je crois que tu as raison, c'est pas écrit dans le topic (je croyais l'avoir mis, je ferais une màj :) )

Sinon pour récapituler :

Coté PC :

OS Linux (mais ça marche probablement sur windows aussi)
Librairies : Qt / SFML

Coté Pi :

Avoir une clé Wifi (ça fonctionne en RJ45 aussi, mais un drone avec un fil ça le fait moyen )
Avoir RaspBian (ça doit aussi marcher avec d'autres distrib)
Installer hostapd (pour faire un Point d'Accès Wifi)
Installer dnsmasq (pour délivrée une adresse IP au client wifi)
Installer l'I²C pour pouvoir communiquer avec les moteurs et gyro (que ça marche pas encore :'( )

Je crois que c'est tout, si j'ai oublié quelque choses ou si t'as d'autres question n'hésite pas :)

ToOnS
Posts: 492
Joined: Sat Mar 23, 2013 10:29 am

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 8:42 pm

sinon oui tu as sauté une marche , tout est compilé sur le rpi (enfin pour ce qui doit tourner sur le RPI , c'est tellement plus simple comme ca) , y'a moyen de faire du cross compiling pour compiler avec un PC mais pourquoi se prendre la tete avec ca ? (c'est surtout utile pour les tres tres gros projet pour compiler a la vitesse du pc) ici pas la peine , sur un rpi ca doit se compiler en 1s
le PC ici il sert juste d'ecran (et un peu de telecommande) mais pas a compiler

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Fri Jul 05, 2013 10:31 pm

Owiii owiii je joui ! (quand je lirais ça demain je me dirais "what da hell !?")
J'arrive à lire mes données Gyro / Accel / Magneto en raw en passant par les libs de minimu9-ahrs que j'ai adapté à ma lib I²C

Les valeurs Gyro et Accel sont différentes pour l'axes des Z mais je pense que c'est normal (avec le code de Mark Williams j'ai les même résultats)

Me reste plus qu'a intégrer le filtre de Kalman pour avoir les valeurs idéal et a faire la régulation (je le voit déjà voler :D)

Edit : Ça y est ! Kalman est intégré, je vais le régler encore un peu (jai 3/4 unités de différences pour une position fixe) histoire d'avoir des données lissées. Il faut que je comprenne à quoi correspondent la data en RAW pour pouvoir les utiliser correctement

trunk87
Posts: 7
Joined: Wed Jul 03, 2013 8:40 pm

Re: Projet PiX (Drone, Quadricopter)

Mon Jul 08, 2013 10:45 am

Salut PHPower,
ton projet est très intéressant. Pourrai tu mettre la liste de tt les composants ke tu utilises stp? J'ai tt trouver de se que tu a mis comme composant mais pour le gyro et autres composants ke ta acheté après je sais pas.

Cordialement

User avatar
PHPower
Posts: 84
Joined: Tue Jan 01, 2013 7:48 pm
Location: PACA
Contact: Website

Re: Projet PiX (Drone, Quadricopter)

Mon Jul 08, 2013 2:39 pm

Pour le gyroscope c'est un AltIMU qui est fait par Pololu : http://www.pololu.com/catalog/product/1269

Pour le commander je te recommande la boutique Rhaaa à Grenoble (ils n'en ont pas en stock, il faut les contacter, tu paieras le même prix que chez pololu mais tu auras ta livraison en une semaine environ.

trunk87
Posts: 7
Joined: Wed Jul 03, 2013 8:40 pm

Re: Projet PiX (Drone, Quadricopter)

Mon Jul 08, 2013 6:18 pm

Merci beaucoup. Il ne l'avait plus en stock avant 1 mois mais je l'ai trouvé chez un autre distributeur. Je pense tout recevoir avant la fin de semaine. J'ai hâte de mis mettre, je suit ton avancement dans ton projet depuis quelques temps, je cherchais depuis un moment un projet intéressant à réaliser avec mon Raspberry et grâce à toi j'ai trouvé le projet qui va m'occuper un bon petit moment.

Return to “Français”