OverKill

Aussitôt, oscillo

Allez, on continu sur notre lancé.

Ce moi ci, nous avons eu deux discutions pertinentes. Vous avez vu, je censure nos propos.
Est-ce que l’accéléromètre est suffisant ou non faut-il un gyroscope ? et Comment faire pour le calcul de basse altitude en ultrason ne soit pas trop gourmand en temps.
D’abord, la plaque à ultrason est un HC-SR04 dont le datasheet prétend qu’il peut mesurer une distance de 4m. Ensuite, pour fonctionner, il faut lui envoyer une impulsion haute de 10µs et la carte répond un signal PWM dont il nous faut diviser la valeur par 58 pour obtenir la distance en cm.
C’est bien beau tout ça mais si on demande à l’arduino de gérer cette partie, il va devoir envoyer une impulsion puis attendre une réponse qui va mettre quelque chose comme 50ms à revenir. Pas Glop du tout. Mais si l’étage de capture était totalement autonome ?
Commençons par rendre la prise de valeur automatique, il suffit de générer un signal rectangulaire et le tour est joué. Le datasheet défini le signal optimum comme étant 10µs à haut et 60ms à bas, soit un signal de 16Hz. Mon premier réflexe a été de monter sur le papier un oscillateur rectangulaire stabilisé par un quartz et là c’est le drame.
Avec un quartz à 1MHz, on se retrouve avec un besoin de 62 500 bascule jk. Alors, on revient à nos premiers oscillateurs avec des simples condensateurs et transistors. Si on regarde le schéma suivant, c’est un bête oscillateur rectangulaire où l’état haut est T1 = 0.7 * R1 * C1 = 10µs et l’état bas est T2 = 0.7 * R2 * C2 = 60ms.

oscillateur

Ce qui nous donne R1 a environ 174kΩ pour un C1 de 82pF. Pourquoi ces valeurs ? Bah vous avez le calcul. Pourquoi je n’ai pas choisi de nombres ronds ? Au moins un sur deux ? Et bien parce que 82pF est une valeur standard de composant, c’est pas moi qui les conçoit donc voila pourquoi. Maintenant passons au deuxième calcul, ça nous donne 182kΩ pour 470nF.
Ces valeurs me plaisent bien sur le papier mais quid de la réalité. Déjà des potentiomètres de 200KΩ, j’ai. Des condensateurs de 82pF, j’ai mais je n’ai pas de condensateur de 470nF, bah je demanderai à mon collègue de me trouver ça. Faut bien qu’il bosse un peu.
Mais ça va être coton, vu que 470nF, c’est une grosse valeur, une très grosse valeur et de mémoire, c’est utilisé pour des très grosses tensions, genre 250V.
Argg, pauvre de moi, il a trouvé la solution. Utiliser le condensateur céramique le plus gros que l’on ai, soit un 100nF, ce qui implique une résistance de 857KΩ, qui rentre dans la plage de variation du plus gros potentiomètre 1MΩ.
Maintenant, passons à comment traduire un signal PWM en valeur lisible instantanément par un arduino. Première idée, un simple filtre passe bas où fc = 1/(2*pi*RC) = 16Hz

Accéléromètre et/ou Gyroscope

Accéléromètre gère la translation en fonction d’axes. Le Gyroscope gère l’inclinaison en fonction d’axes. L’accéléromètre a une fonction 0G permettant de détecter une chute libre. Le gyroscope est commandé par protocole I2C. Bon stop, I2C, ça coute rien de le rajouter, allez hop, un gyroscope de plus dans le monstre.
J’appelle donc mon fournisseur de composant préféré pour lui demander s’il a des gyroscopes électroniques du même type que l’accéléromètre qu’il m’a vendu la dernière fois. J’ai pas fini ma phrase qu’il m’annonce fièrement qu’il vient de m’en envoyer. Heu merci mais quoi ? Réponse une semaine plus tard, j’ai deux MPU-6050 gratuits. Comment il fait pour se faire des sous ? Déjà que le MMA7361 m’a couté moins d’1€ frais de port compris et les 1 000 condensateurs pour 5€.
Donc pour les capteurs, on aura deux étages non I2C et tout le reste en I2C.

  • Étage ultrason en analogique.
  • Étage accéléromètre en numérique avec une interruption sur la patte 0G.
  • Étage I2C contenant le baromètre BMP180, le gyroscope MPU-6050 et le magnétomètre HMC5883L.

Non ! c’est trop facile, c’est le gyroscope MPU-6050 qui sera maître I2C du magnétomètre HMC5883L. Voila qui devrait rajouter un peu de piment à l’I2C.
Qu’en pensez-vous ?

PS: au petit spammeur qui s’amuse à mettre des commentaires en pagaille sur ce blog. Premièrement, les commentaires ont toujours été modérés donc ils n’avaient aucune chance de passer et surtout, j’ai activé le bot de filtre donc j’ai encore moins de boulot maintenant. A bon entendeur, salut!

Hey ! Moins d’un an entre deux billets, ça se fête.

Le projet se dessine de plus en plus. On reste sur 8 rotors mais on se doit de respecter la réglementation française et les règles de la DGAC. Le problème, c’est que c’est tout sauf clair. L’arrêté du 11 avril 2012 NOR: DEVA1206042A défini les règles pour les drones pilotés sans personne à bord. Mais quid, des drones autonomes ?

Avant plus d’informations, nous avons défini le scénario de vol du drone et les éléments qui nous semblent indispensables pour respecter la réglementation.

  • Le drone volera en zone non urbaine à vu, soit le scénario S1 de la DGAC.
  • Il devrait gérer son altitude pour ne pas dépasser les 150m (si on atteint les 10m, on sera content) et devra donc avoir un baromètre
  • Il devra pouvoir être commandé à distance pour forcer un atterrissage d’urgence (1 canal de communication)

Le matériel a notre disposition est plutôt pléthore en ce qui concerne la partie électronique mais pour ce qui est de la partie mécanique, je ne dois avoir qu’un ou deux servo-motors, utiles pour la pince mais c’est tout. Dans mon foutoir, nous avons sélectionné (la valeur entre parenthèse est le nombre en stock).

  • 1 Raspberry PI B (3) ou 1 Raspberry PI2 (1)
  • 1 Arduino Mega 2560 (1)
  • GPS pour Raspberry PI : L80 de microstack (1)
  • Accéléromètre pour Raspberry PI : microstack (1)
  • Accéléromètre pour Arduino : ADXL335 (1) ou MMA7361 (4)
  • Baromètre : BMP180 (2)
  • Magnétomètre : HMC5883L (3)
  • Capteur ultrason : je ne sais pas le modèle mais ils ont une portée de 45cm (4+)

Je n’ai aucun ESC, moteur brushless de 900KV, émetteur/récepteur de modélisme. Comme d’habitude, la partie mécanique (enfin, là elle est simple) est délaissée jusqu’à devenir gênante. J’ai bien des idées pour le chassie mais je crains de voir trop complexe pour moi. On se refait pas.

un an déjà

Bon d’accord, j’abuse carrément avec ce blog. Allez, je vais faire un effort pour l’avenir.

Déjà, on annonce une bonne nouvelle, le robot trieur de carte est enterré. La partie mécanique de sélection d’une carte dépasse mes compétences de très loin.

Vu le matériel amassé, un collègue me met au défit de construire un drone autonome, donc non piloté. Et dragon oblige, il faut qu’il puisse larguer une bombe (à eau, faut pas abuser) à une coordonnée donnée. Maintenant, reste à réfléchir à la chose.

D’abord les contraintes :

  • autonome : puce GPS de localisation, gyroscope électronique, accéléromètre
  • bombe : doit pouvoir lever une charge de 500g
  • robuste : bah oui, je suis un bourrin donc il faut des pare-choc et un train atterrissage
  • base de contrôle : Raspberry Pi, voir si la rasbian est suffisante ou passer sur une distribution orientée temps réel

Ensuite, les options souhaitées :

  • Caméra
  • Calcul d’altitude par ultra-son

Voila, vous avez autant d’informations que moi, mais j’ai l’avantage, j’y ai déjà réfléchi. J’ai donc commencer à potasser le sujet via un TPE mais Bernouilli, c’est pas ma tasse de thé. Je suis donc passé à la pratique/théorie pour les nuls sur des sites comme La Légion des Quadri et mondrone.net. Le problème, c’est que ce genre de site se base sur des composants très spécifiques comme les cartes de vol (FC) et les contrôleur de vitesse électronique (electronic speed control / ESC).  Hors, je ne sais pas si ou peu coupler un Raspberry Pi avec un FC ou utiliser le Raspberryr Pi en tant que FC. Pour les ESC, je pense qu’ils sont indispensables mais je trouve trop peu de documentation dessus. Bon, sinon, j’ai trouvé ce site pour le calcul des rendements des moteurs.

On arrive donc, aux questions. Bah oui, vous n’allez pas croire que je me lance dans un projet avec déjà toutes les réponses. Où serait le risque de se foirer ? Non pas là, j’ai déjà vérifié.

  • Combien d’hélices ? j’étais parti sur 4, mais plus le temps passe, plus je me dis qu’un double jeu d’hélice peut être marrant. 1 jeu pour l’altitude et 1 jeu pour la propulsion, mais là ça monte à 7 ou 8 avec des grosses contraintes physique pour 7
  • Quelle masse au machin ? Faut que ça porte 500g donc ça doit avoir de la puissance, mais puissance implique consommation et donc grosse batterie, impliquant baisse de puissance utile. Vive le cercle vicieux

Les seuls réponses que j’ai pour le moment, c’est que le chassie va être du fait maison au vu de la soute de largage. Je pensais partir sur de l’aluminium par contre, je ne suis pas outillé pour le travailler (scie, perceuse, etc…)

La suite au prochain billet