Contrôleur de fusion de capteurs

Cette page décrit comment assembler le contrôleur révision 2 pour un banc d'essai de fusion de capteurs. Le test de fusion de capteurs fait partie de la Camera Image Test Suite (Camera ITS) dans la Compatibility Test Suite (CTS). Le contrôleur rev2 est conçu pour faciliter l'assemblage et réduire les coûts. Les avantages supplémentaires sont l'isolation de l'alimentation entre l'électronique et les servos et le contrôle de jusqu'à six servos à partir d'un seul contrôleur.

Présentation du contrôleur de fusion de capteurs de révision 2

Banc d'essai de fusion de capteurs

Le banc de test de fusion de capteurs fournit un mouvement fixe du téléphone pour des tests reproductibles. Le téléphone est tourné devant une cible en damier pour permettre la capture d'image avec le téléphone à différentes positions. Le banc d'essai fait pivoter le téléphone autour du centre de l'axe de la caméra de 90 degrés et inversement en 2 secondes environ. La figure 1 montre deux téléphones se déplaçant dans un banc d'essai de fusion de capteurs.

Mouvement du téléphone dans le banc d'essai

Figure 1. Mouvement du téléphone dans le banc d'essai

Commande de servomoteur

Les servomoteurs analogiques du banc d'essai sont des servomoteurs de position contrôlés à l'aide de la modulation de largeur d'impulsion (PWM). Un exemple typique de contrôle de position est illustré à la figure 2. Le signal de contrôle a une période de 20 ms. Changer la largeur d'impulsion à la largeur minimale déplace le moteur vers la position neutre et changer la largeur d'impulsion à la largeur maximale déplace le moteur de 180 degrés dans le sens des aiguilles d'une montre.

Description de l'asservissement

Figure 2. Description typique de la servocommande

Mise en œuvre du contrôleur de fusion de capteurs

Pour contrôler le mouvement du servomoteur via un hôte, le banc d'essai de fusion de capteurs nécessite une connexion USB. Le contrôleur rev2 du banc d'essai utilise une carte Arduino UNO R3 connectée par USB avec une carte de routage personnalisée (ou shield ) montée sur le dessus. Le blindage à deux couches est conçu avec un outil de conception de PCB en ligne open source et est disponible sur https://easyeda.com/portmannc/servo_controller . Les vues de dessus et de dessous du bouclier de routage personnalisé sont illustrées dans les figures 3 et 4.

Vue de dessus du bouclier de routage personnalisé

Figure 3. Bouclier de routage personnalisé (vue de dessus)

Vue de dessous du bouclier de routage personnalisé

Figure 4. Bouclier de routage personnalisé (vue de dessous)

Le contrôleur de fusion de capteurs rev2 peut contrôler jusqu'à six plates-formes de fusion de capteurs à partir d'un seul hôte. La vue de dessus montre les contours de la sérigraphie pour le montage des six embases de moteur à 3 broches le long de l'axe central. Il y a un connecteur supplémentaire en haut qui n'est pas utilisé pour ce projet. La vue de dessous montre les contours de la sérigraphie pour les connexions d'en-tête à 4 et 8 broches nécessaires pour s'accoupler avec l'UNO, une prise d'alimentation de 5 V et un condensateur de dérivation de 10 uF.

Pour isoler les courants des servos, l'alimentation des servos est fournie par la prise 5 V externe. L'électronique UNO est alimentée séparément via le connecteur USB, et il n'y a pas de partage d'alimentation entre les deux cartes. Notez que la prise d'alimentation externe existante sur l'UNO n'est pas utilisée et est recouverte dans la conception du boîtier pour éviter toute confusion lors de la connexion de l'alimentation au contrôleur.

Assemblage d'un contrôleur de fusion de capteurs rev2

Nomenclature (BOM)

Qté La description PN/Lien
1 Carte de routage de fusion de capteur de 1,6 mm d'épaisseur https://easyeda.com/portmannc/servo_controller
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
1 2,1x5,5 mm, 5 V trou traversant, prise cylindrique à angle droit 101179
1 Condensateurs au tantale 16 V, 10 %, 10 uF TAP106K016CCS
1 Embase Phoenix Contact 1x2, pas de 200 mil (5,08 mm), trou traversant 651-1755736
6 1x3x, pas de 100 mil (2,54 mm), embase mâle traversante 732-5316-ND
1 1x8x, pas de 100 mil (2,54 mm), embase mâle traversante 732-5321-ND
1 1x4x, pas de 100 mil (2,54 mm), embase mâle traversante 732-5317-ND
3 Entretoises femelle-femelle de 11 mm (largeur de 5 mm, filetages M3-0,5) R30-1001102
4 Entretoises mâle-femelle de 6 mm (largeur de 5 mm, filetages M3-0,5) R30-3000602
3 Vis mécaniques à tête cylindrique large M3-0.5 6 mm 36-9191-3-ND
4 Vis mécaniques à tête plate M3-0.5 8 mm XM2510008A20000
2 Vis mécaniques à tête plate M3-0.5 6 mm XM2510006A20000
6 #4, vis à tôle à tête ronde de 1/2 po 90925A110
1 Alimentation 5 V, 15 W homologuée UL, fiche 2,1x5,5 mm (moteurs) 36-9191-3-ND

Autres outils nécessaires

  • Fer à souder, soudure, ventouse
  • Petit tournevis cruciforme
  • Tournevis Torx taille T10

Remplir la carte de routage

Remplissez le haut et le bas du panneau de routage avec les pièces s'adaptant à leurs contours. Pour le bas de la carte, les en-têtes mâles peuvent être alignés en plaçant les en-têtes dans les emplacements corrects de la carte Arduino et en plaçant la carte de routage au-dessus des connecteurs. Les en-têtes 1x8 et 1x4 peuvent ensuite être soudés en place, garantissant un bon alignement entre l'Arduino et la carte de routage. La même chose peut être faite pour la prise d'alimentation, mais une cale est nécessaire pour un assemblage serré car la prise d'alimentation ne repose pas sur l'Arduino après l'assemblage. Après avoir soudé le condensateur de dérivation, le haut de la carte peut être rempli avec les six en-têtes mâles 1x3 pour le contrôle du moteur et l'en-tête 1x2 Phoenix Contact. Notez que l'en-tête doit être orienté de sorte que le bas du connecteur à enclenchement soit vers les moteurs pour donner un maximum d'espace pour le support du moteur.

Lorsque tous les composants sont soudés en place, le système peut être assemblé à l'aide des entretoises et des vis. Il y a quatre entretoises mâle-femelle de 6 mm pour assurer la stabilité mécanique entre l'Arduino et le bas du boîtier en plastique. Cependant, il n'y a que trois entretoises femelle-femelle de 11 mm entre l'Arduino et le blindage personnalisé car un trou sur l'Arduino (celui près de la broche SCL) est inutilisable en raison de sa proximité avec l'en-tête femelle de l'Arduino. Vissez les trois entretoises femelle-femelle sur trois entretoises mâle-femelle pour fixer les entretoises à l'Arduino. Fixez ensuite la protection de la carte de routage aux entretoises avec les trois vis M3. La figure 5 montre une vue en bout conceptualisée du blindage peuplé monté sur l'Arduino. La figure 6 montre une photographie du système peuplé et monté.

Vue de bout conceptualisée du bouclier peuplé monté sur Arduino

Figure 5. Blindage rempli avec embases, prise d'alimentation et entretoises illustrées (vue de bout conceptualisée)

Haut de bouclier peuplé

Figure 6. Blindage rev2.2 peuplé monté sur Arduino (vue de dessus)

Boîtier du contrôleur

Le contrôleur comprend un boîtier personnalisé. Le dessin mécanique est illustré à la figure 7.

Dessin mécanique de l'enceinte

Figure 7. Dessin mécanique de l'enceinte

Le contrôleur assemblé se monte sur le boîtier à l'aide de quatre vis à tête fraisée à travers la plaque inférieure du boîtier. Le boîtier peut être assemblé à l'aide des six vis à tête ronde et des deux vis à tête plate. Les informations pertinentes, telles que l'ordre du numéro de servo et l'alimentation externe 5 V, sont gravées dans le dessus en plastique. La figure 8 montre une photographie du contrôleur à l'intérieur du boîtier assemblé.

Système assemblé dans un boîtier

Figure 8. Système assemblé dans le boîtier

Contrôle logiciel depuis l'hôte

Le micro-code peut être téléchargé sur l'UNO pour attribuer les broches PWM aux signaux du moteur et définir les plages de largeur d'impulsion pour différents angles. Le micro-code pour le servo-contrôle de la rotation des six moteurs HS-755MB est inclus dans Autres ressources . Cette section comprend également un lien vers un programme simple appelé rotator.py , qui fait tourner les servos.

Utilisation du contrôleur rev2

Utilisation de la caméra ITS :

python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion

Avec script de test inclus :

python rotator.py --ch 1 --dir ON --debug

Autres ressources

Téléchargements de dessins mécaniques

Téléchargements de contrôle de logiciels