« SE5 2023/2024 P2 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 135 : Ligne 135 :
===== Hardware =====
===== Hardware =====
Basé sur un STM32F103, les PAMI sont dotés de 2 contrôleurs de moteurs DRV8837, Un contrôleur de charge de batterie Li-Po/Li-Ion, un buck boost 2.5V-6V -> 3.3V. Il peut être alimenté par des piles AA ou une batterie.
Basé sur un STM32F103, les PAMI sont dotés de 2 contrôleurs de moteurs DRV8837, Un contrôleur de charge de batterie Li-Po/Li-Ion, un buck boost 2.5V-6V -> 3.3V. Il peut être alimenté par des piles AA ou une batterie.
Un second PCB sert également à venir intégrer des connecteurs d'extension.
==== 🆕 Capteur de distance ====
===== Hardware =====
Basé sur un VL53L3. Vient s'emboîter à la verticale pour permettre au PAMI d'éviter les collisions.

Version du 7 novembre 2023 à 07:37

Définition du projet

Coupe de France de robotique 2024

La coupe de France de Robotique est un évènement ayant lieu à La Roche Sur Yon en mai.

Les équipes doivent concevoir un ou plusieurs robots autonomes qui ont pour objectif de marquer un maximum de points en 100 secondes.

Les robots sont placés sur une table de 2m x 3m, et deux équipes concourent en même temps pour marquer un maximum de points.

Les points sont décrits dans le règlement senior.

Cette année, un seul robot principal peut être proposé (contrairement à deux typiquement). Cependant, dans cette édition, on retrouve les PAMI (Petits Actionneurs Motorisés Indépendants).

Carnet de bord

Semaine 37

  • Rédaction du cahier des charges disponible ici
  • Correction du bus CAN sur des cartes existantes pour valider le bloc de design "Transciever CAN" sur toutes mes cartes :
CAN-Incorrect.png
CAN Transciever corrected.png

Simplification, inversion de TX & RX et suppression des protections contre les sur-tensions. On passe de 50bit/s à 1MBit/s.

  • Conception de la base roulante avant usinage

Semaine 38

  • Usinage d'une partie de la base roulante
  • Modification de la carte contrôleur de moteur BLDC avant la commande pour adopter les modifications sur le transciever CAN
  • Début du travail sur les PAMI : choix technologiques

Semaine 39

  • Conception des PAMI sur KiCAD

Documentation Technique

Robot Principal

Carte mère

Hardware
Alimentation

La carte peut être alimentée par une source de 6 à 30V, donc par des batteries Lithium Polymère (Li-Po) 6 cellules.

Pour ce faire 2 bucks convertissent la tension d'entrée respectivement en 3.3V et 5V.

Par défaut, ces hacheurs sont désactivés (pin ENABLE à l'état bas). L'appui sur le bouton Power active le buck 3.3V. Cela vient alimenter le STM32, qui, si l'état de la batterie est satisfaisant, tire lui aussi la broche enable du BUCK 3.3V & celle du buck 5V. Cela permet une consommation à vide d'environ 3uA, et un rendement d'environ 90% (théorique, non mesuré).

Raspberry Pi
Raspberry-pi-compute-module-4.png

La carte mère est basée sur les Raspberry Pi Compute Module 4. Comparé à un Raspberry Pi classique, ceux-ci embarquent une mémoire EMMC, et permettent l'accès au port PCIe du processeur Broadcomm. Cependant, aucun connecteur/périphérique n'est présent : il n'y a pas de HUB USB, de puces de gestion de l'audio, ...

L’intérêt étant de pouvoir gagner de l'espace sur une carte, et de permettre de remplacer certains composants par un autre (ex : passage de 4 à 7 ports USB, dont 2 sont directement reliés en dur à des double convertisseurs série, et 1 au STM32).

STM32

Un STM32F105RBT6 est également présent sur la carte, pour gérer les entrées sorties en temps réel, d'avoir 9 entrées analogiques, 9 sorties PWM, de la communication CAN, RS485 (pas encore testé), Neopixel (pour un contrôle de LEDs 5V), et la gestion de la batterie (mesure de la tension & contrôle des bucks d'alimentation)

Périphériques
  • La carte compte plusieurs entrées vidéos CSI et sorties DSI, dont une est placée pour pour venir accrocher un écran tactile Waveshare à l'arrière de la carte. 2 ports HDMI sont également disponibles.
  • Un HUB USB 7 ports décuple le port USB en 4 connecteurs USB-A 2.0, 2 convertisseurs USB-Série doubles, et une communication avec le STM32 qui permet sa mise à jour via DFU.
  • 6 ports série natifs au Raspberry pi (4 via usb, 2 natifs Raspberry Pi) + 1 port série RPI <=> STM32 + 2 ports séries disponible sur le STM32.
  • Un port audio numérique (I2C + I2S)
  • Un accéléromètre, gyroscope, et magnétomètre.
  • Un connecteur Ethernet Gigabit
  • Un connecteur PCIe pour connecteur M.2 (SSD NVMe)
Software

Le STM32 est programmé via le STM32CubeIDE.

Le Raspberry Pi fait tourner Ubuntu Server 22.04 , sans les "bloatware" propres à Ubuntu (cloud-init, télémétrie, ...).

Le framework ROS2 est installé et est la base du projet :

A chaque capteur / actionneur / interpréteur est associé un nœud. Ces nœuds sont des programmes Python ou C++. Ces nœuds émettent ou écoutent des données sur des topics (à la MQTT), et communiquent avec leur capteur / actionneur réservé.

Cela permet une modularité : pouvoir remplacer le nœud de décision par un nœud de lecture d'une manette pour pouvoir contrôler le robot à distance plutôt qu'en autonomie. Les nœuds peuvent être isolés et récupérés sur d'autres projets, lancés plusieurs fois si un capteur est présent en plusieurs exemplaires, visualiser les valeurs envoyées via un logiciel tel que RVIZ2

Pour l'affichage sur l'écran, nous utilisons QT5.

Carte de contrôle moteur DC

Hardware

Un STM32F303 vient contrôler jusqu'à 6 moteurs à courant continu, jusqu'à 30V-3A. Chacun des moteurs est commuté par un pont en H, et une résistance de Shunt vient mesurer le courant consommé par chacun des moteurs pour pouvoir asservir ces moteurs en couple/courant.

6 connecteurs d'encodeurs incrémentatifs (encodeurs dits "A-B") sont présents, avec leur adaptation de tension. Ces connecteurs servent également à brancher des capteurs de fin de course lorsque le moteur n'est pas asservi en vitesse.

6 connecteurs SPI & 6 connecteurs I2C sont présents pour pouvoir y ajouter des encodeurs absolus.

La communication entre le STM32 et l'extérieur peut se faire via plusieurs interfaces : 2 ports série, un port CAN et un port mini USB 2.0 qui émule un port série.

Firmware

Le STM32F303 est programmé via le STM32CubeIDE. La communication se fait via un G-Code simplifié qui permet de configurer les moteurs, les encodeurs, la méthode de régulation, et les consignes des boucles de régulation

Carte d'adaptation de tension pour Lidar

Cette carte minimale convertit le 5V des connecteurs série de la carte mère vers le 3.3V requis par certains Lidar

🆕 Carte de contrôle de moteur BLDC

Hardware

Basé sur un STM32F303 et un DRV8323, le contrôleur peut commuter jusqu'à 36V à ~30A pour venir alimenter un moteur synchrone (BLDC).

Il dispose d'un port USB, de 2 ports série et d'un port CAN pour venir changer la consigne.

Un encodeur (incrémental ou positionnel) peut venir être connecté.

🆕 Encodeur absolu magnétique

Hardware

Cette carte est un simple support pour l'encodeur magnétique MT6701, capable de communiquer en I2C ou en incrémental (UVW).

🆕 Clé USB Radio

Hardware

Pour communiquer avec les PAMI et ne pas modifier en profondeur la carte mère, un STM32 vient interfacer un port USB-A et une puce CC1101 pour permettre à un ordinateur la communication 865 MHz.

Tour de supervision

Hardware

On utilise le micro-ordinateur Nano-Pi M4B de chez Friendly-Elec, sponsor chinois de l'édition 2023. C'est un micro-PC suffisamment puissant pour pouvoir faire de l'analyse d'image et de la supervision

Software

Le NanoPi est sous Ubuntu Server 22.04, également avec ROS2.

🆕 PAMI

🆕 Carte mère

Hardware

Basé sur un STM32F103, les PAMI sont dotés de 2 contrôleurs de moteurs DRV8837, Un contrôleur de charge de batterie Li-Po/Li-Ion, un buck boost 2.5V-6V -> 3.3V. Il peut être alimenté par des piles AA ou une batterie.

Un second PCB sert également à venir intégrer des connecteurs d'extension.

🆕 Capteur de distance

Hardware

Basé sur un VL53L3. Vient s'emboîter à la verticale pour permettre au PAMI d'éviter les collisions.