Skip to the content
4 layers110 × 50 mmProjet robot ESE, the printed circuit board in 3D

Chelsea COMLAN - Alix HAVRET - Loïcia KOEHL - Quentin SIMON

Size
110 × 50 mm
Copper layers
4
Thickness
4.69 mm
Parts
68
Nets
92
Pads
286
Tracks, vias
513, 87
Pours
5
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
28 Sep 2022
Updated
23 Jan 2023

Overview

Projet robot ESE is an open-source printed circuit board by Groupe-Projet-ESE, from the Groupe-Projet-ESE/BeerRobot repository on GitHub. It is a 4-layer board of 110 × 50 mm with 68 parts on 92 nets, routed with 513 tracks and 87 vias.

It is built around the STM32G070RBT6 and ZXBM5210-S. Its parts include 17 capacitors, 13 connectors, 11 resistors, 5 ICs and 3 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

2

README

README.md

BeerRobot

Last update of README : 23/01/2023

alt text

Introduction

Elèves en option ESE (Electronique et Systèmes Embarqués) au sein de l'ENSEA (Ecole Nationale Supérieures de l'Electronique et de ses Applications), réalisant un robot comme projet central de leur option.

Objectifs du projet

Le but du projet est de créer un robot permettant d'attraper des canettes, de relever la couleur de cette dernière, se déplacer avec la canette attrapée et la déposer dans la zone adaptée selon sa couleur. Par ailleurs le robot devra se repérer sur une table afin de ne pas tomber.

Matériels et composants à notre disposition

Microcontroleur : STM32G070RBT6 (Farnell : 3365377)
Quartz 16 MHz : (Farnell : 2853935)
Connecteur SWD/STLink : (Farnell : 3226055)
Driver moteur : ZXBM5210-S (Farnell : 3935372)
Moteurs : DfRobot FIT0520 ou FIT0521
Régulateur 5V : AZ1117CH2-5.0TRG1 (Farnell : 3942512)
Régulateur 3.3V : MIC5317-3.3YM5 (Farnell : 2920683)
Batterie NIMH 7.2V 1.3Ah (RS : 777-0377)
Capteur bordure : Sharp GP2Y0D805Z0F (Generationrobots : A-000000-00046)
Capteur TOF : VL53L0X (Generationrobots : A-000000-03233)
Capteur de couleur : VEML3328 (Farnell : 3517203)
Servomoteur : XL320 (Generationrobots : A-000000-01282)
Connecteurs JST 2.54mm

alt text

Membres du groupe et rôles

Le groupe de projet est constitué de 4 membres, chacun ayant divers responsabilités.

  • Chelsea COMLAN : responsable Hardware
  • Loïcia KOEHL : responsable intégration
  • Quentin SIMON : responsable Software
  • Alix HAVRET : responsable livrables

alt text

Encadrants du projet : Mr Fiack , Mr Tauvel
Intervenants extérieur : Mme Quittel, Mr Jauffrey, Mr Le Bidan

Contenus des dossiers

La démonstration finale se trouve sur la master.

Additional documents

Contient l'ensemble des images necessaire à la rédaction de ce README, le rapport de mi-projet rédigé en novembre ainsi que le diaporama de notre présentation du robot en décembre.

Hardware

Contient le projet Kicad avec l'ensemble des fichiers electronique ainsi que le fichier de routage du PCB.
Le PCB a été produit à l'extérieur de l'ENSEA.

Software

Contient les codes "annexes", c'est à dire les codes des composants testé sur le STM32F746NG.
Le projet CubeIDE a destination de la STM32G0 (notre microcontroleur de projet) se trouve sur la master.

3D

Contient certains fichiers 3D pour la réalisation du robot

Architecture générale du projet

Au debut du projet nous avons eu la liste de l'ensemble des composants auxquels nous avions accès pour la réalisation du robot et afin de remplir ses divers fonctionnalités.
Le schéma architectural au début du projet nous a permit de définir l'ensemble des entrées necessaires dans notre microcontroleur et les divers flux de données qui allaient entrer en jeu.
alt text

Rôles et utilité des divers composants, capteurs

Moteurs FIT501

Deux Moteurs à courant continu, alimenté en xx V, permettant de faire tourner 2 roues. Le moteur a également un encodeur.

Servomoteur XL320

Servomoteur qui permettra de faire bouger la pince necessaire pour saisir les canettes.

Capteur couleur TCS3200

Capteur permettant de detecter la couleur de la canette à l'aide de filtres superposés à des LEDS.

Capteur de bordure

Capteur infra-rouge qui détecte si il y a un object en face de lui.

Capteur TOF

Time Of Flight, renvoie le temps qu'a prit la source lumineuse du capteur pour rebondir sur un object et revenir. Cela nous permet d'avoir notre distance par rapport à un objet. (en mm)

3D du robot

Nous avons prit la décision de modifier le design initial du robot sur onshape.
Ajout d'un roulement en plus à l'avant, modification de l'emplacement de la pince et la forme de celle ci. Une fois le PCB reçu, des modifications ont été effectuées afin de permettre un bon placement de l'ensemble des fils.
Par ailleurs nous avons aménagés divers emplacements pour les différents capteurs : couleurs, bordure et distance.

alt text

Hardware

Schema electrique

A partir du schema architectural réalisé au début du projet, nous avons commencé le schéma électrique du projet sur Kicad.
Ce dernier a été séparé en plusieurs feuilles afin de pouvoir organiser les différentes partie : STM32, alimentation, capteurs, moteurs, servomoteur.

alt text

PCB

09/11/2022 Reception du PCB
Soudeurs : Loïcia et Chelsea
L'ensemble des soudures ont été réalisées à la main, lee 25/11/2022 l'ensemble des composants étaient soudés sur la carte.
Nous avons soudés les connecteurs au fur et à mesure de la réalisation des tests.

alt text

Software

Le code sera utilisé dans diverses tâches (utilisation de FreeRTOS). Chaque état décrit dans le diagramme à états correspondra à une tâche.
Une tâche pourra faire appel à de la donnée, ou en consommer. Dans chaque tâche nous feront appel à divers bouts de code permettant de démarrer un capteur, un moteur, un servo, etc ...

Pour effectuer nos tests sur les capteurs, nous avons implémentés un shell. Chacun des capteurs ont été validé sur la STM32F746NG, et ensuite leur code était intégré à la STM32G0. La shell nous a permit de faire une première démonstration.

Moteurs :

Après les premiers tests, nous avons remarqué que pour une même commande vitesse, les 2 roues ne tournaient pas à la même vitesse, de ce fait le robot n'allait pas droit. Afin de régler ce problème il était nécessaire de mettre en place un asservissement.

Asservissement

Nous avons décidé de faire un correcteur PI (Proportionnel Intégral).

schéma

Pour cela il nous fallait donc récupérer des informations venant du robot et du microcontroleur :

  • Valeur vitesse demandée pour les roues
  • Valeur vitesse réelle des 2 roues (les 2 étant différentes du à la qualité des moteurs)
  • Nombre de tick moteur

Ces infos nous permettaient alors de créer le correcteur PI avec :

  • Coefficient proportionnel Kp
  • Coefficient intégrateur Ki

Une fois avoir réussi à récupérer la valeur de la vitesse en entrée et le nombre de tick nous avons pu commencer à coder l’asservissement.

Pour ce faire il fallait que l’on fasse la différence de valeur entre la valeur actuelle et la valeur précédente de vitesse. Par la suite, nous pouvions calculer l’erreur entre la valeur d’entrée et la vitesse du robot pour voir si il avançait à la vitesse souhaitée.
Une fois toutes la valeurs et calculs mis en place, nous avons pu commencer la recherche des valeurs pour nos coefficients. Il fallait trouver les valeurs avec lesquelles il y avait le moins d’oscillation possible.

Fonctionnement des capteurs

Capteur bordure
Capteur TOF

Le capteur TOF a un driver déja créé, ce qui nous a permit de réutiliser les fonctions déja existantes permettant l'initialisation du capteur, et la récupération des valeurs .L'activation de la pin GPIO nous permet d'acquérir les valeurs en continue tant que le TOF est actif.
Lorsque que l'on veut utiliser 2 TOF, c'est la pin XSHUT qui rentre en jeux. Les 2 TOF étant sur le même I2C, on activera uniquement le TOF du capteur que l'on veut utiliser.

Capteur couleurs

Non fonctionnel.

Objectif de la présentation finale :

La démo implémentée et téléchargée sur la master permet au robot de faire une première phase de démarrage, de se lancer en mode "recherche" canette. Une fois une canette repérée à une certaine distance, le robot continue sa recherche vers la zone où il a capté une canette. Une fois que la canette est captée dans le creue du robot, alors la pince est déclenchée en mode fermeture.

Parts

68
QtyValueFootprintReferences
12SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP201, JP202, JP501, JP502, JP503, JP504, JP505, JP506, JP507, JP508, JP509, JP510
4100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC201, C202, C204, C510
41uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC503, C504, C505, C507
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_Pad_ViaH101, H102, H103, H104
310kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR301, R302, R502
310uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC501, C506, C508
31kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR202, R203, R501
2100uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC509, C511
210pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC205, C206
2NCResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR303, R304
2ZXBM5210-SPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU503, U504
1100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR401
110RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR201
116MHzCrystal:Crystal_SMD_EuroQuartz_MT-4Pin_3.2x2.5mmY201
122uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC502
14.7uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC203
162kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR402
1AZ1117-5.0Package_TO_SOT_SMD:SOT-223-3_TabPin2U501
1Conn_02x07_Odd_EvenConnector_PinHeader_1.27mm:PinHeader_2x07_P1.27mm_Vertical_SMDJ208
1GREENLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD201
1JST_Bordure_1Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ201
1JST_Bordure_2Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ204
1JST_Couleur_1AConnector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ205
1JST_Couleur_1BConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ207
1JST_Couleur_3VConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ206
1JST_SUPPConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ209
1JST_TOF_1Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ202
1JST_TOF_2Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ203
1JST_driver1Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ502
1JST_driver2Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ503
1JST_servomoteurConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ504
1JST_switchConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ501
1LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD501
1LOGOLogo_ENSEA:Vrai_logoG***
1MCP1802x-xx02xOTPackage_TO_SOT_SMD:SOT-23-5U502
1REDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD202
1STM32G070RBT6Package_QFP:LQFP-64_10x10mm_P0.5mmU201
1SW_SPDTswitch_robot:switch_pcb_robotSW501

More from Groupe-Projet-ESE/BeerRobot

1
  • 2 layers32 × 21.5 mmCapteur couleur, the printed circuit board in 3D

    Capteur couleur

    Groupe-Projet-ESE/BeerRobot

    Chelsea COMLAN - Alix HAVRET - Loïcia KOEHL - Quentin SIMON

    18 parts

Similar boards

  • 4 layers112 × 52 mmBeerator, the printed circuit board in 3D

    Beerator

    Artpel1805/Beerator

    Le but du projet est de réaliser intégralement un robot capable de se déplacer, de chercher et d’attraper une canette (de bière ? 😶), relever sa couleur, puis de la déposer dans la zone de couleur correspondante.

    56 parts2
  • 4 layers113.1 × 57 mmProjet, the printed circuit board in 3D

    Projet

    karimabdellaziz/Projet-robot-carte-PCB

    74 parts
  • 4 layers90 × 70 mmKyttiludzinator, the printed circuit board in 3D

    Kyttiludzinator

    Lazorme/Ludz-le-chat

    The Lidar and motor drivers are in drvLIDAR and drvMotor, respectively.

    116 parts
  • 2 layers70 × 45 mmStm32g070rbt6-board, the printed circuit board in 3D

    Stm32g070rbt6-board

    BruceZhq/kicad-design-multi-agent-system

    Auditable KiCad hardware design with LangGraph multi-agent orchestration, Temporal workflows and deterministic evidence gates.

    43 parts2MIT
  • 4 layers90 × 70 mmKicad chat souris, the printed circuit board in 3D

    Kicad chat souris

    LirokWid/ESE_BMMPE_chat_souris

    Ce project a pour but de développer un robot qui joue à chat avec d'autres robots, il embarque un PCB custom avec un STM32G070. Le projet est développé avec freeRTOS.

    130 partsGPL-3.0
  • 2 layers99 × 105 mmSTM32 IOT GATEWAY, the printed circuit board in 3D

    STM32 IOT GATEWAY

    RiddheshVeling/Industrial-Flowmeter-Totalizer-with-Modbus-based-HMI-and-Data-Logging

    EXTC Final year project: Industrial flowmeter totalizer with Modbus-based HMI for real-time monitoring and data logging using STM32 and RS485.

    154 parts
  • 2 layers72.3 × 87.3 mmYork vrf 1, the printed circuit board in 3D

    York vrf 1

    va-cyber-zha/My_PCBs-during-internship

    102 parts
  • 2 layers178.3 × 100.1 mmGP1294-Teens4, the printed circuit board in 3D

    GP1294-Teens4

    mariosgit/VFD

    Drivers for a bunch of VFD displays, like the MN12832, ...

    106 parts27MIT

Questions

How big is the Projet robot ESE PCB?

It measures 110 × 50 mm and has 4 copper layers, 4.69 mm thick.

What parts does the Projet robot ESE use?

68 parts, built around the STM32G070RBT6 and ZXBM5210-S. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Projet robot ESE KiCad files?

From the Groupe-Projet-ESE/BeerRobot repository on GitHub, at the commit this page was made from: the board is Hardware/Projet_robot_ESE/Projet_robot_ESE.kicad_pcb and its schematic Hardware/Capteur_couleur/Capteur_couleur.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Projet robot ESE design in my own project?

Its repository states no licence, so its author keeps all rights: ask Groupe-Projet-ESE before reusing the design.