Contrôleur de vol ATMega328 / MPU6050

Hey^^
J’ai récemment finalisé mon contrôleur de vol basé sur une carte UNO rev3. Le truc marche pas trop mal, mais c’est un peu le bordel (des câbles qui trainent un peu partout, des soudures un peu douteuses :p) et il prend beaucoup de place. J’ai donc décidé de créer mon propre PCB, pour apprendre un peu comment ça fonctionne, et pour résoudre les problèmes cités plus haut.

Comme je n’ai jamais travaillé directement avec des microcontrôleurs, je ne vais pas me risquer à produire mon PCB avant d’être sûr (ou Presque) qu’il va fonctionner. Je m’en remets donc à vous, pour m’aider dans ce projet : j’ai déjà réalisé un premier schéma (que je mets en pièce jointe) , et j’ai plusieurs questions :

  • Ai-je besoin d’un condensateur de découplage entre VCC et GND ?
  • Existe-t-il une règle pour savoir comment placer les condensateurs de découplage, ainsi que pour trouver leur capacité ?
  • Comme l’ATMega328 supporte un crystal de 20MHz, est-ce qu’il est possible de flasher un bootloader Arduino qui supporte les 20MHz ?

Merci d’avance pour votre aide,
++

Bonjour,

Le MPU6050 fonctionne en 3.3V. Or, je ne vois qu'un seul Vcc sur ton schéma. C'est du 3.3 V ? Si oui, fonctionner en 20 MHz sur l' ATMega328 n'est pas recommandé, il serait préférable de fonctionner en 8 MHz.

Vous ne vous laissez pas une petite porte ouverte vers une future évolution ? Personnellement je relierais au connecteur quelques entrées/sorties du microcontrôleur.

Pour les condensateurs, un chimique comme vous en avez un sur la carte UNO et au pied de chaque circuit intégré, un capacité type céramique de 10 nF.

Cordialement.

Pierre

3Sigma: Bonjour,

Le MPU6050 fonctionne en 3.3V. Or, je ne vois qu'un seul Vcc sur ton schéma. C'est du 3.3 V ? Si oui, fonctionner en 20 MHz sur l' ATMega328 n'est pas recommandé, il serait préférable de fonctionner en 8 MHz.

En effet, j'ai mal lu la datasheet, merci beaucoup ! Je vais rajouter un régulateur de tension 3.3 V pour alimenter le MPU6050. Cela veux aussi dire que je dois connecter le pin AREF de l'ATMega328 sur du 3v3 pour que la communication I²C fonctionne correctement ?

ChPr: Vous ne vous laissez pas une petite porte ouverte vers une future évolution ? Personnellement je relierais au connecteur quelques entrées/sorties du microcontrôleur.

Pour les condensateurs, un chimique comme vous en avez un sur la carte UNO et au pied de chaque circuit intégré, un capacité type céramique de 10 nF.

Cordialement.

Pierre

Merci beaucoup pour les condensateurs, j'en tiendrais compte ! Pour ce qui est de l'évolution, ce schema n'est vraiment qu'un premier jet, je compte par la suite rajouter une connection à un récepteur radio et deux trois autres bricoles

Quentin92s: Cela veux aussi dire que je dois connecter le pin AREF de l'ATMega328 sur du 3v3 pour que la communication I²C fonctionne correctement ?

Pas du tout. Mais tu dois ajouter un convertisseur de niveau de tension sur SDA et SCL.

3Sigma: Pas du tout. Mais tu dois ajouter un convertisseur de niveau de tension sur SDA et SCL.

En toute rigueur, oui si les entrées/sorties de l'ATMega328 sont rappelées au +5V, sinon, il suffit de les rappeler au +3.3 V.

J'ai aussi réalisé un contrôleur de vol pour mon multicoptère à l'aide d'un Pro-Mini (en 5 V et 16 Mhz) et d'un MPU6050 compris dans un circuit GY-521. Ce dernier comporte des résistances de rappel de 4.7 k au + 3.3V pour les signaux SDA et SCL. Je n'utilise pas de convertisseur de niveau pour ces signaux. Je n'ai jamais eu de problème de ce côté là.

Cordialement.

Pierre

ChPr:
En toute rigueur, oui si les entrées/sorties de l’ATMega328 sont rappelées au +5V, sinon, il suffit de les rappeler au +3.3 V.

J’ai aussi réalisé un contrôleur de vol pour mon multicoptère à l’aide d’un Pro-Mini (en 5 V et 16 Mhz) et d’un MPU6050 compris dans un circuit GY-521. Ce dernier comporte des résistances de rappel de 4.7 k au + 3.3V pour les signaux SDA et SCL. Je n’utilise pas de convertisseur de niveau pour ces signaux. Je n’ai jamais eu de problème de ce côté là.

Cordialement.

Pierre

Merci beaucoup a toi ! C’est vrai que c’est beaucoup plus simple sans le convertisseur de niveau logique. J’ai réalisé un second schema en tenant compte de mes erreurs, qu’en pensez-vous ?

Pierre

ChPr: .. Je n'utilise pas de convertisseur de niveau pour ces signaux. Je n'ai jamais eu de problème de ce côté là. ..

J'espère que vous avez aussi validé cela de votre côté.

Dans votre nouveau schéma, vous avez mis deux fois des résistances de 4.7 k sur SDA et SCL. Une seule fois suffit.

Par contre, vous n'avez pas inclus de liaisons au connecteur d'entrées/sorties de l'ATMEGA328. Pensez-y en avance avant d'être surpris !

Cordialement.

Pierre

ChPr: J'espère que vous avez aussi validé cela de votre côté.

Dans votre nouveau schéma, vous avez mis deux fois des résistances de 4.7 k sur SDA et SCL. Une seule fois suffit.

En effet, je devais pas être bien reveillé...

ChPr: Par contre, vous n'avez pas inclus de liaisons au connecteur d'entrées/sorties de l'ATMEGA328. Pensez-y en avance avant d'être surpris !

C'est à dire ? Je ne les utilise pas pour le moment (à l'exception des quatres qui contrôlent mes esc), je n'ai pas besoin de les connecter, si ?

Quentin92s: ...C'est à dire ? Je ne les utilise pas pour le moment (à l'exception des quatres qui contrôlent mes esc), je n'ai pas besoin de les connecter, si ?

Vous avez amené au connecteur ce dont vous avez besoin aujourd'hui : c'est bien. Mais comme vous n'amenez aucune autre entrée/sortie de l'ATMEGA328 à votre connecteur, vous vous fermez d'éventuelles possibilités futures.

Par exemple, dans mon système, j'ai ajouté un capteur ultra-son HC-SR04 pour stabiliser la hauteur de vol (quand je suis entre 0.2 et 2 mètres), cela nécessite deux entrées/sorties supplémentaires.

Vous pouvez vouloir allumer une LED, ...

Cordialement.

Pierre

Etant donné que le but de ce projet est de remplacer mon contrôleur de vol gros et bordélique par un seul pcb, je ne compte pas laisser d'autres I/O accessibles, dans le cas ou j'ai besoin de rajouter d'autres capteur dans le futur (sûrement un magnétomètre, un barometre), je réimprimerais mon pcb. En tout cas merci beaucoup pour l'aide !

PS: C'est un peu hors sujet, mais pourquoi utiliser un capteur ultrason quand on peut avoir accès à des baromètre précis à +-10cm ?

Quentin92s: ... PS: C'est un peu hors sujet, mais pourquoi utiliser un capteur ultrason quand on peut avoir accès à des baromètre précis à +-10cm ?

parce que :

  • j'avais un HC-SR04 sous la main,
  • c'est stable à quelques cm près dans la gamme 0.2 à 2 mètres,
  • j'ai aussi un baromètre BMP180 avec lequel j'avais fait des tests et j'avais trouvé que sa stabilité court terme n'était pas fameuse : près de 50 cm. Il faudra que je refasse des essais. Mais c'est vrai que pour des altitudes supérieures à deux mètres, ça devrait bien faire l'affaire. Cordialement.

Pierre

Ci-joint une courbe de stabilité en air calme du BMP180 sur une quinzaine de secondes. (valeurs brutes et filtrées (passe-bas 2éme ordre avec une constante de temps de 1 s.

On note des variations (filtrées !) de 0.6 mètre !

Cordialement.

Pierre

le problème du barométric près du sol, c'est qu'il est perturbé par l'effet de sol, la surpression crée par les hélices, mettez la main sous le drone, vous sentirez le vent, pour comprendre.....

d'ou le capteur sonar ou lidar

sinon pour le mega+le 6050, y a un board tout fait chez Sunfounder

https://www.sunfounder.com/sunfounder-6d-box-mwc-multiwii-drone-quadcopter-diy-starter-kit-for-arduino-with-2-4ghz-rc-6-axis-gyro.html

on le trouve egalement souvent moins cher sur amazon.

Je l'ai monté sur un Syma X5C, pour les experiences "vol", c'est + robuste

duemilaventi: sinon pour le mega+le 6050, y a un board tout fait chez Sunfounder

https://www.sunfounder.com/sunfounder-6d-box-mwc-multiwii-drone-quadcopter-diy-starter-kit-for-arduino-with-2-4ghz-rc-6-axis-gyro.html

on le trouve egalement souvent moins cher sur amazon.

Je l'ai monté sur un Syma X5C, pour les experiences "vol", c'est + robuste

Merci pour l'info, mais ça ne m'intéresse pas du tout, le but étant de le faire moi même. En plus on peut trouver des board Multiwii pour moins d'une vingtaine d'euro.