Aquila Reloaded – Chapitre 11 : Réalisation du premier prototype sur plaque expérimentale

Hello World !

Petit addendum avant de commencer cet article, cela fait au moins 6 mois est classé dans les brouillons du blog. J’aurai aimé ajouter des photos de mon travail de prototypage, mais pas moyen de les retrouver… 🙁

Les tests unitaires sur Aquila Reloaded sont terminés, comme vous avez pu le voir au cours du chapitre précédent.

Il est temps de passer aux choses sérieuses : créer un circuit imprimé ! Mais avant toute chose, il va falloir vérifier la faisabilité technique de mes fonctions et commencer à avancer sur le développement du code.

Pinout de l’Arduino Nano

Alors autant le dire tout de suite, faire rentrer toutes les fonctions que je souhaite mettre en place sur un Arduino Nano, c’est tricky vu le faible nombre de broches d’entrées/sorties à disposition.

J’ai proposé une première approche que voici :

PinFonctionConnecté àBrocheCommentaire
D0RXReception DMX-Prévoir cavalier pour isolation
D1TXEmission DMX-Prévoir cavalier pour isolation
D2DigitalMoteur Pan1Compatible Interruption
D3PWM (timer 2)Power LED 13Compatible Interruption
D4DigitalMoteur Pan-
D5PWM (timer 0)Moteur Pan2
D6PWM (timer 0)Moteur Pan4
D7DigitalMoteur Color1 + 3
D8DigitalMoteur Color2 + 4
D9PWM (timer 1)Moteur Tilt1
D10PWM (timer 1)Moteur Tilt3
D11PWM (timer 2)Moteur Tilt2
D12DigitalMoteur Tilt4
D13Digital + LED (timer 0)LED Témoin-
A0AnalogiqueMicrophone analogique ou numérique-
A1AnalogiqueMoteur Gobo1 + 3
A2AnalogiqueMoteur Gobo2 + 4
A3AnalogiqueDIP Switch1 + 2
A4AnalogiqueDIP Switch3 + 4
A5AnalogiqueDIP Switch5 + 6
A6AnalogiqueDIP Switch7 + 8Analogique uniquement
A7AnalogiqueDIP Switch9 + 10Analogique uniquement

Toutes les broches sont utilisées, on est obligé d’utiliser quelques astuces pour économiser le nombre de broches :

  • Adressage des moteurs PAP « Gobo » et « Color » avec l’astuce de câblage expliquée au chapitre 2 , ce qui ne consomme que 2 broches au lieu de 4. On perd en précision mais ce n’est pas trop grave.
  • Une broche compatible Analogique et Numérique pour capter le signal audio (mais n’est pas compatible Interrupt)
  • Systèmes de pont de résistances pour câbler 2 interrupteurs sur une broche analogique : les interrupteurs font varier la résistance, et donc la tension lue par l’Arduino.

Je suis obligé de faire l’impasse sur les CTN, sur le contrôle PWM / monitoring des ventilateurs, et sur des témoins LED supplémentaires.

Arduino Mega : oui mais pas la version standard !

« Mais pourquoi tu ne prends pas un Arduino Mega ?! » Réponse simple : il est gros… trop gros par rapport au circuit imprimé de l’Aquila. il prendrait plus de la moitié de la surface à lui tout seul.

Je pourrais construire mon circuit sous forme d’un « shield » Arduino Mega, mais cela risque de faire trop épais pour rentrer dans l’habitacle… pas facile…

J’ai donc cherché un modèle d’Arduino Méga miniature, et j’ai jeté mon dévolu sur ce modèle : il n’a pas un brochage standard, mais est bien plus petit ! Et il est prévu pour de l’électronique embarquée. Bingo !

Vous pouvez le trouver sur Aliexpress pour moins de 8€.

Sélection des broches : attention aux fonctions supportées !

Comme nous l’avons vu dans les chapitres précédents, chaque fonctionnalité de notre Aquila Reloaded nécessite des broches spécifiques. Il va donc falloir faire une sélection.

Compatibilité numérique pour les moteurs PAP

Sur un Arduino Mega, toutes les broches sont compatibles Numériques, y compris les Analogiques, on a l’embarras du choix !

Compatibilité « INPUT_PULLUP » pour les DIP Switchs

Facile, sur un Arduino Mega, toutes les broches, y compris les analogiques, sont compatibles PULLUP ! On peut câbler notre DIP Switch sur n’importe quelle broche.

Compatibilité PWM pour les LED de puissance

L’Arduino Mega dispose de 12 broches compatibles PWM (dont la LED Interne). Elles sont réparties sur 5 timers.

  • timer0 : broches 4 et 13
  • timer1 : broches 11 et 12
  • timer2 : broches 9 et 10
  • timer3 : broches 2, 3 et 5
  • timer4 : broches 6, 7 et 8

A savoir cependant que les broches 4 et 13 étant sur le timer0, on va éviter de les utiliser pour les LED. Pourquoi ? Car changer la fréquence PWM de timer0 impacte également les fonctions internes de l’Arduino (delay ou millis par exemple).

Compatibilité PWM pour le contrôle de la vitesse des ventilateurs

Idem que pour les LED de puissance, on va éviter d’utiliser timer0. On évitera aussi d’utiliser des broches ayant le même timer que les LED, pour pouvoir changer la fréquence PWM indépendamment.

Compatibilité Interrupt pour le monitoring de la vitesse des ventilateurs et pour le capteur de bass

L’Arduino Mega dispose de 6 broches « Interrupt » : 2, 3, 18, 19, 20 et 21.

On va éviter d’utiliser les broches 18 et 19, car ce sont des broches compatibles avec la librairie DMXSerial.

Compatibilité analogique pour le monitoring de température

A vrai dire, pourquoi je parle de ça… c’est forcément compatible ! 😉

Réalisation des tests

Pour tester mon circuit en « grandeur nature » sur une plaque expérimentale, il va falloir créer un déport. Du coup j’ai récupéré un vieux câble d’imprimante en port parallèle. La densité de fils disponible rend possible la connexion des 4 moteurs pas à pas. J’ai soudé des connecteurs DIL Male aux extrémités des fils, et j’ai inséré le câble dans le châssis de l’Aquila au travers de l’emplacement des DIP Switchs.

Idem, j’ai passé un câble pour l’alimentation des moteurs et de la LED de puissance.

Malheureusement, je ne retrouve pas les photos de mon travail… Je ne peux que vous laisser imaginer… 🙁

Next step, mettre tout ça sur circuit imprimé 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *