IMA4 2018/2019 P31 : Différence entre versions
(→Semaine 11) |
(→Semaine 11) |
||
Ligne 357 : | Ligne 357 : | ||
Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de : | Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de : | ||
− | + | Antenne_RFHV.JPG | |
http://www.ti.com/lit/an/swra117d/swra117d.pdf | http://www.ti.com/lit/an/swra117d/swra117d.pdf | ||
Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266. | Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266. |
Version du 9 avril 2019 à 10:13
Sommaire
- 1 Présentation générale
- 2 Analyse du projet
- 3 Préparation du projet
- 4 Réalisation du Projet
- 5 Documents Rendus
Présentation générale
Description
L'objectif de notre projet est de pouvoir cartographier l'intensité du signal WiFi dans un bâtiment (Polytech Lille par exemple). Pour cela nous réaliserons un robot pouvant se déplacer dans le bâtiment tout en mesurant la puissance du signal WiFi là où il passe.
Premièrement, le robot doit se déplacer en autonomie et donc transporter avec lui une batterie pour l'alimentation.
Le robot devant se déplacer dans tout le bâtiment, donc éventuellement monter des escaliers, il semble adapté de concevoir un robot de type hexapode. Le déplacement du robot sera effectué avec 18 servomoteurs assurant le mouvement de ses six "pattes". Pour encadrer le déplacement, des capteurs de distance seront implantés à des points stratégiques du robot. La gestion des servomoteurs et des capteurs sera faite à partir d'une carte Arduino Uno.
Lors du déplacement du robot, il faudra mesurer la puissance du signal WiFi et la faire correspondre à la position actuelle. Dans un premier temps il faudra donc mettre en place un système de mesure du signal WiFi. Ensuite il faudra connaître la position du robot pour la coupler avec la puissance du signal WiFi correspondante afin de créer la carte.
Toutes les informations seront stockées en interne sur l'Arduino puis traitées après la fin des mesures afin de produire la cartographie de la puissance du signal WiFi dans le bâtiment. La carte sera du type "Heat Map" afin d'avoir un visuel facile à lire et pouvoir aisément déterminer la répartition du signal WiFi.
Objectifs
Nous sommes conscients que la description du projet faites ci dessus (correspondant également au scénario d'usage plus bas) est assez ambitieuse. Nous avons donc décomposé le projets en divers objectifs distincts. Nous commencerons par réaliser les objectifs de façon indépendantes puis, avec le temps qu'il nous restera, nous essayerons de les assembler afin de correspondre le plus possible à la description faite du projet.
Conception du robot
Pour commencer le projet nous devons réfléchir à la conception mécanique du robot. Pour cela nous nous baserons sur des modèles de robot hexapodes déjà existants. Il semble judicieux d'avoir la structure du robot ainsi que les "pattes" réalisées en impression 3D. En effet le PLA utilisé pour l'impression 3D est très léger et peu coûteux. Il s'agira donc dans un premier temps avant de commencer le projet de se former tous les deux à l'utilisation de l'imprimante 3D au Fabricarium. Il faudra ensuite modéliser notre robot hexapode avant de l'imprimer et de l'assembler.
Déplacement et détection d'obstacles
Une fois la structure du robot conçue, il faudra y implanter l'Arduino, les capteurs, actionneurs ainsi que la batterie. Pour pouvoir commander simplement un grand nombre de servomoteurs, nous utiliserons un bouclier PWM qui nous permettra de gérer 16 servomoteurs. Les deux derniers seront gérés par les ports PWM classiques de l'Arduino. Ensuite viendra la programmation du déplacement du robot avec notamment la commande des servomoteurs. Finalement, et pas des moindres, viendra la détection d'obstacles (et escaliers) ainsi que le franchissement ou l'esquive de ces derniers.
Mesure RSSI
La prochaine étape sera le traitement du signal WiFi. Le module ESP8266 va récupérer le RSSI (Received Signal Strength Indication) qui est la mesure de la puissance d'un signal WiFi. Pour utiliser l'ESP8266, nous devront créer un circuit imprimé que nous feront sous forme de bouclier pour l'Arduino. L'ESP8266 nécessite en effet une antenne pour fonctionner et nous la tracerons sur le PCB. L'ESP8266 sera ensuite contrôlé par notre Arduino pour effectuer les mesures du RSSI.
Positionnement
Il faut ensuite mettre en place un système afin de déterminer la position du robot. La méthode qui nous semble la plus adaptée est l'utilisation de marqueurs positionnés à des endroits stratégiques. En lisant les différents marqueurs, le robot serait alors capable de connaître sa position dans le bâtiment. Pour mettre en place cette méthode, on pourrait par exemple utiliser des QR codes comme marqueurs et embarquer une Raspberry Pi avec une caméra sur le robot afin de lire les QR codes. En connaissant la position du robot nous pourront alors coupler cette donnée avec la mesure de RSSI correspondante afin de réaliser la cartographie et nous pourront également décider du déplacement suivant du robot.
Cartographie
Finalement, la dernière étape sera de traiter l'ensemble des données collectées pour déterminer la cartographie de la puissance du signal WiFi.
Analyse du projet
Positionnement par rapport à l'existant
Internet est devenu un élément essentiel de notre vie. A la fois un outil de travail, de recherche et de loisir, il est essentiel pour beaucoup d'entreprises, d'écoles, comme de particuliers de disposer d'un bon signal wifi dans l'ensemble de leurs locaux. C'est alors qu'intervient notre projet.
La force d'un signal wifi (RSSI) est facilement obtenable à l'aide d'applications sur smartphone ou ordinateur. Certaines proposent même de fournir une carte du RSSI une fois l'espace entièrement balayé. Mais ces applications nécessitent tout de même à leur utilisateur d'explorer lui même l’entièreté de l'espace que le wifi est sensé couvrir, ce qui devient très vite fastidieux pour des surfaces comme celles de Polytech Lille.
Le principe d'un robot qui se déplacerait, en autonomie, à la place de l'utilisateur, pour cartographier le bâtiment n'est aujourd'hui qu'à l'état de projet universitaire. Un tel robot proposerait une solution moins contraignante que les applications déjà existantes.
Notre projet se base donc sur la mise en commun de deux notions existant déjà séparément : D'un côté les applications de cartographie de RSSI et d'autre part les robots hexapodes se déplaçant en autonomie. Nous allons donc présenter un concurrent de chacune des deux branches.
Analyse du premier concurrent
HeatMapper est un logiciel (disponible uniquement sous Windows) de l'entreprise Ekahau spécialisée dans la conception de réseau sans fil. Leur logiciel permet d'importer un plan de l'espace que l'on veut analyser, ensuite il suffit de se déplacer avec un ordinateur dans l'espace en question et le logiciel fournis la couverture wifi superposée sur le plan importé sous la forme d'une Heat Map.
Le logiciel est disponible gratuitement mais une version plus complète peut être achetée. Il propose d'autres fonctionnalités comme vous pouvez le voir sur la figure ci contre. Le point le plus intéressant est le fait que le logiciel ne nécessite pas forcément un balayage complet de la surface à traiter mais il est capable de calculer la répartition du signal dans toute la surface à partir de mesures limitées. Le logiciel peut alors tracer le chemin pris l'utilisateur pour la cartographie. Une autre fonctionnalité du logiciel est la possibilité d'ajouter sur la carte, par exemple, l'emplacement des machines à café, lieux où la bonne réception du signal WiFi est capitale.
Comme expliqué précédemment, la concurrence proposant une cartographie comme HeatMapper ne le propose pas de façon automatisée. C'est à l'utilisateur de se déplacer dans la zone à analyser. C'est ici que notre projet intervient.
Analyse du second concurrent
Le MX-Phoenix est un robot hexapode inventer par Kåre Halvorsen. L'exosquelette du robot est fait par impression 3d. Le robot est composé de six pattes, chaque patte est composée de deux pièces articulées par trois servomoteurs.
Il s'agit d'un robot très perfectionné sur le déplacement, par exemple sur des terrains rocailleux. Il est également capable de monter et descendre des escaliers.
Nous nous inspireront de ce type de robot pour créer le notre, principalement pour le mode de déplacement, la façon de bouger les pattes, pour avancer et monter des escaliers. Pour la structure même du robot, nous n'auront pas le temps ni les moyens de concevoir un robot aussi esthétique et sophistiqué, nous nous inspirerons donc d'autres formes de robot hexapodes plus simples pour la "carcasse" du robot.
Scénario d'usage du produit ou du concept envisagé
Une entreprise (ou autre administration) voudrait optimiser son réseau wifi dans ses locaux car certains employés se plaignent de ne pas avoir de signal ou que le signal est très élevé dans des espaces inutiles car peut fréquentés ou sans nécessité d'une connexion internet.
L'entreprise fait alors appel à nos services.
A l'aide d'un plan numérique que nous a fourni l'entreprise nous plaçons des marqueurs dans le bâtiment afin que le robot puisse se repérer. Lors d'une journée où les employés ne sont pas présents (afin d'éviter qu'ils ne marchent sur le robot par inattention), nous laissons le robot parcourir le bâtiment en autonomie. Une fois le parcours du robot terminé, nous récoltons les données qu'il a prélevé afin de fournir une carte, étages par étages, de la couverture wifi à notre client.
Réponse à la question difficile
Suite à la présentation des prémices de notre projet, l'encadrant ayant assisté à la présentation (M. Dequidt) nous a posé plusieurs question et nous avons retenu une remarque en particulier :
Les capteurs de détection pour obstacles ne sont pas bien définis. La distinction obstacle/escalier n'est pas clarifiée.
Il est en effet évident que la gestion des obstacles est un des enjeux majeurs de notre projet, le robot devant se déplacer en autonomie dans un bâtiment.
Une première solution serait de poser des marqueurs sur les obstacles et/ou escaliers de la même façon qu'on en place dans le bâtiment pour que le robot se localise. Ainsi si il se trouve face à un escalier, par exemple, il trouvera un marqueur qui lui indiquera qu'il est bien face à un escalier et non un obstacle.
Une autre solution qui sera celle mise en pratique dans un premier temps est que face à tout obstacle, le robot entrera en phase de reconnaissance. Il essayera de contourner l'obstacle, de prendre des mesures avec ses capteurs sous différents angles afin de déterminer si il s'agit d'un obstacle contournable, d'une voie sans issue ou d'un escalier et il agira en conséquence. Pour cela on utilisera quatre capteurs de distance. Un visera en face du robot de manière horizontale. Le second visera en face du robot mais avec un angle. Les deux derniers mesurerons de chaque côté du robot.
Enfin la dernière solution, et la plus optimale mais aussi la plus longue à mettre en place, est que le robot sache où il se situe dans le bâtiment. Pour cela, pendant la phase de cartographie le robot se repère à l'aide de marqueurs que nous avons placé stratégiquement dans le bâtiment puis par la suite il s'aide de la carte RSSI créée pour se repérer. Le robot est donc sensé savoir où il est (plus au moins précisément) et donc savoir si il est face à un escalier (élément prévu) ou face à un obstacle.
Préparation du projet
Cahier des charges
- Déplacement
- Le robot doit savoir se déplacement en autonomie : marche droite, virage, monter et descendre les escaliers.
- Le robot doit savoir s'adapter à son environnement : détection et contournement d'obstacles, détection d'escalier.
- Le robot soit savoir se repérer : lecture de donnée permettant au robot de se situer par rapport à une "carte" pré-enregistrée.
- Lecture
- Le robot doit pouvoir lire le signal RSSI du wifi de l'école.
- Le robot doit pouvoir se repérer dans le bâtiment.
- Le robot doit pouvoir associer et stocker ces deux données.
Choix techniques : matériel et logiciel
- 1 Arduino UNO (https://www.gotronic.fr/art-carte-arduino-uno-12420.htm)
- 18 servomoteurs Tower Pro SG90 (https://www.gotronic.fr/art-servomoteur-sg90-19377.htm)
- 4 capteur de distance ultrason (https://www.gotronic.fr/art-module-a-detection-us-hc-sr04a-27740.htm)
- 1 Module WiFi Arduino ESP8266 (https://www.gotronic.fr/art-module-wifi-serie-esp8266-113990084-23666.htm)
- Piles pour l'alimentation du robot
Liste des tâches à effectuer
Les tâches que nous devons effectuer vont se diviser en quatres parties :
- Réalisation du robot :
- Modélisation 3D des pattes et du chassis.
- Impression du robot, ajout des servos moteurs, capteurs et câblage.
- Programmation des déplacements :
- Prise en main du shield PWM
- Programmation de la marche (ligne droite, virages, ...).
- Programmation des manœuvres d'évitement d'obstacles.
- Programmation de la montée d'escaliers.
- Programmation de la mesure du RSSI:
- Création d'un PCB pour l'ESP8266
- Programmation de l'ESP8266 avec l'Arduino.
- Traitement et stockage des informations.
- Pour aller plus loin (si possible) :
- Detection de marqueurs à l'aide d'une rasberry.
- Adaptation du déplacement selon la position
- Cartographie de la puissance du signal WiFi
Calendrier prévisionnel
Réalisation du Projet
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 9h | 1h | ||||||||||
Modélisation, impression, montage | 8h | 10h | 2h | 3h | ||||||||
Programmation déplacement | 2h | |||||||||||
Programmation WiFi | 2h |
Prologue
Afin de faciliter le travail sur le projet, une archive GIT a été créée sur la plateforme de l'école. Vous pouvez trouver cette archive publique à l'adresse suivante : https://archives.plil.fr/rfoucaul/Projet_IMA4_P31.git
Semaine 1
Pour le commencement du projet nous avons décidé de nous focaliser sur la modélisation puis l'impression et le montage du robot afin d'avoir un robot fonctionnel avant de pouvoir s'attaquer à la programmation. Nous décidons donc de passer toutes nos heures de projets ainsi que nos heures libres à ces tâches afin d'avoir le robot le plus rapidement possible et de ne pas trop perdre de temps sur la conception qui n'est pas le cœur du projet. La structure de la patte étant assez complexe, nous devons à chaque fois imprimer un prototype afin de pouvoir l'essayer en situation réelle avec les moteurs et découvrir les éventuels défauts que nous corrigeons par la suite.
La suite donne un descriptif plus détaillé, jour après jour, du travail entrepris.
Lundi après-midi (1h)
Nous avons profité d'un créneau de temps libre pour finir le prélude au projet en précisant la liste du matériel ainsi que la liste des tâches à effectuer. Ainsi la partie "Prélude" est terminée et nous pouvons commencer à travailler sur le projet lors de la séance de mercredi.
Mercredi après-midi (4h)
Nous avons commencé par récupérer une partie du matériel (des servomoteurs) et nous nous sommes rensignés sur leur caractéristiques techniques. Nos servomoteurs sont du type Tower Pro SG90 et ont un couple de 1,2 kg/cm sous une tension de 4,8 V.
Il y aura trois servomoteurs pour chacune des six pattes et le robot aura à monter des escaliers (de hauteur environ 15 cm).
Sachant cela, nous avons parcouru intenet afin d'observer les différents modèles de robot hexapodes existants déjà et se rapprochant de notre projet. Nous nous sommes arrêtés sur un modèle vu sur Thingiverse : https://www.thingiverse.com/thing:2204279 (voir aussi https://www.instructables.com/id/DIY-Spider-RobotQuad-robot-Quadruped) Nous nous inspirerons de ce modèle pour la structure des pattes car elle semble correspondre à notre besoin. Nous modéleriseront nous même cependant le chassis du robot.
Nous avons donc décidé d'aller au Fabricarium samedi matin afin d'être formés pour l'utilisation de l'imprimante 3D et si possible de déjà modifier le prototype de patte puis de l'imprimer.
Samedi matin (4h)
Nous avons réalisé la formation pour l'utilisation des imprimantes 3D Dagoma et pour mettre en pratique cette formation nous avons imprimé un premier modèle de la patte que nous avons choisi. Une fois les différents éléments de la patte imprimés, nous avons essayé de les assembler cependant nous nous somme rendus compte que la conception de la patte ne correspond pas exactement au modèle de moteur que nous utilisons. Il y a en effet un écart non négligeable de 3 mm qui rend la patte non adaptée à nos moteurs, nous allons donc modifier les pièces. Pour modifier les pièces existantes et modéliser les autres nous décidons d'utiliser le logiciel Fusion 360 car il est gratuit, complet et prévu pour l’impression 3D. Nous modifions donc les pièces et en créons une nouvelle, qui à terme permettra de relier les pattes au châssis.
Semaine 2
Pour cette deuxième semaine, nous continuons le travail sur la conception du robot. Nous avons l'espoir que le modèle de patte soit prêt en fin de semaine et de pouvoir passer à la conception du châssis puis au montage du robot la semaine prochaine.
Lundi après-midi (16h-20h)
Travail au Fabricarium. Nous faisons du prototypage jusqu'à obtenir les pièces idéales. Le tibia et le coxa sont satisfaisant. Nous lançon l'impression des 6 tibias pendant la nuit.
Mardi (2h)
Travail au Fabricarium. Nous terminons le prototypage des femur. Nous lançons l'impression des 6 coxas l'après-midi puis repassons à 19h30 pour lancer l'impression des 6 femurs. En parallèle nous travaillons sur le modèle du châssis.
Mercredi après-midi (14h-18h)
Durant la séance du mercredi nous avons monté toutes les pattes possibles avec le matériel à notre disposition. Il nous manque 6 servomoteurs, les pièces de plastique se fixent aux axes des servomoteurs et les vis associées. Nous finissons de travailler sur le modèle du châssis, il est maintenant prêt à être imprimé.
Semaine 3
Mercredi après-midi (14h-18h)
Nous avons réservé les créneaux au Fabricarium afin de pouvoir imprimer le châssis du robot.
Pendant l'impression nous commençons la prise en main de la programmation des servos moteurs et le début de programmation de mouvement d'une patte.
L'impression étant bonne, nous avons maintenant imprimé tous les éléments de la structure du robot. Nous attendons d'avoir les servos moteurs et derniers petits éléments manquants pour pouvoir monter le robot puis commencer réellement la partie programmation.
Semaine 4
Mercredi après-midi (14h-18h)
Nous avons maintenant à notre disposition le châssis, les six pattes ainsi que les servos moteurs qui nous manquaient.
Il nous manque toujours les "bras" (petites pièces en plastique) reliant les servos moteurs au châssis qui ne nous ont pas été fournis avec les moteurs.
Nous décidons donc de les imprimer afin de gagner du temps et de pouvoir monter le robot dans la journée.
insérer photo robot monté
Semaine 5
Mercredi après-midi (14h-18h)
La commande de matériel étant arrivée, nous récupérons ce qu'il nous manquait cependant suite à une erreur, le shield PWM n'a pas été commandé. Nous en commandons donc un nouveau immédiatement et en attendant que celui arrive, nous ne pouvons continuer la programmation du déplacement.
Nous commençons donc à appréhender le fonctionnement du module WiFi ESP8266.
Nous reprendrons la programmation du déplacement à la réception du shield PWM.
Semaine 6
Mercredi après-midi (14h-18h)
Cette semaine nous nous intéressons aux capteurs de distance ultrason, leur fonctionnement est assez simple, ils disposent de 4 pins : un entrée 5 V, un GND et deux pins envoyant les données de distance. L'important pour ces capteurs c'est leur placement sur le robot. Leur but est d'offrir un robot un champs de vision assez complet pour qu'il puisse se déplacer en autonomie sans heurter d’obstacle (et dans le meilleur des cas en détectant les escaliers). Le bon positionnement et le bon maintient des capteurs est stratégique c'est pourquoi nous allons modéliser de nouvelle pièces qui se fixent sur l’hexapode et dans lesquelles s'encastrent les capteurs. Nous commençons à modéliser ces pièces. Il est aussi essentiel de savoir comment relier ces capteurs à l'arduino. Un pcb devra être conçu pour la partie carte wifi, nous pensons prévoir des connecteurs pour nos capteurs sur ce pcb.
insérer photo capteurs ultrason
Semaine 7
Mercredi après-midi (14h-18h)
Nous commençons à travailler sur la carte wifi qui sera intégrée à notre robot. Nous avons reçu le composant ESP8266 qui va nous permettre de capter le flux RSSI et de la transmettre à notre arduino mais il nécessite d'être intégré à un circuit plus complet. Nous décidons donc de concevoir un sheild personnalisé qui se posera au dessus de notre shield PWM. En plus du montage ESP8266, le shield comprendra une masse commune et une alimentation commune pour les 4 capteurs à ultrasons qui équipent notre robot. Pour réaliser ce shield nous utilisons le logiciel Fritzing. Nous commençons le shematic de notre carte. Il nous parait plus efficace de poser notre shield wifi au dessus du shield PWM, pour que l'antenne wifi ne soit pas en "sandwich" entre l'arduino et le shield PWM et pour faciliter les connections avec les capteurs à ultrason. Pour autant mettre notre shield wifi au dessus nécessite de luis donner une forme particulière (avec un trou au milieu) pour laisser passer les câbles des servomoteurs connectés au shield PWM. Cette forme n'étant pas standard faudra donc créer un calque PCB personnalisé pour Fritzing.
Dimanche (2h)
Nous avons réalisé sur Inscape (logiciel de modélisation 2D) le calque de notre shield personnalisé
Semaine 8
Mercredi après-midi (14h-18h)
Cette semaine, à l'aide du schematic et de la forme de pcb précédemment réalisés, nous avons routé le shield wifi. Le composant ESP8266 nécessite, pour capter le flux RSSI, une antenne qui n'est pas fournie avec le composant mais que peut être réalisée directement sur la plaque de pcb. Cependant que que cette antenne soit vraiment efficace il faut respecter des mesures et un modèle bien précis et isoler cette partie du pcb de tout le reste, il faut aussi faire attention, puisqu'il s'agit d'un shield, à ce que l'antenne ne soit pas au dessus d'une alimentation ou tout autre composant pouvant interférer avec elle. La carte sera normalement imprimée, soudé et tester la semaine prochaine.
Semaine 9
Mercredi après-midi (14h-18h)
Nous avons enfin reçu notre shield PWM malgré différents problèmes lors de la commande. Cette semaine nous décidons donc de s'occuper de la partie matérielle PWM qui nous permettra ensuite de commencer la programmation du déplacement. Nous avons commencé par se renseigner sur l'utilisation du shield. En effet celui ci possède un espace prévu pour ajouter une capacité de découplage. Nous avons décidé d'après notre utilisation du shield (la commande de 16 servomoteurs) d'y installer une capacité de ??? farad. Nous avons donc soudé cette capacité ainsi que tous les headers nécessaires au shield. Pour ce qui concerne l'alimentation du shield, les composants sont alimentés directement par la sortie 5V de l'arduino. Pour l'alimentation des servomoteurs il est par contre nécessaire d'utiliser une source extérieure. Nous avons décidé d'utiliser un bloc de 4 piles rechargeables LR6 1,2V. Ceci nous permet d'alimenter les servomoteurs et pour le moment l'arduino est alimentée en USB pour nos essais. Par la suite, il nous sera nécessaire de penser à nouveau notre système d'alimentation afin d'alimenter également l'arduino de façon autonome. Nous avons également soudé un interrupteur qui nous permet d'activer ou non l'alimentation des moteurs par les piles, ce qui s'avère bien pratique pour nos essais. Notre shield PWM est donc prêt à être utilisé, la semaine prochaine nous passerons à la programmation concrète des servomoteurs.
insérer photo shield PWM
Semaine 10
Mercredi après-midi (14h-18h)
Cette semaine nous attaquons enfin la programmation des servomoteurs. Nous commençons par contrôler les moteurs. Pour la suite afin de faciliter le code, nous souhaitons mettre en place des fonctions de déplacement "universelles", applicables à n'importe laquelle des pattes. Pour cela il faut donc "calibrer" les moteurs par rapport au châssis afin qu'il aient tous la même amplitude de rotation. Nous décidons de créer une position de base, dite "CALIBRATE" qui correspond à avoir les pièces à 90° par rapport à ce à quoi elles sont attachées.
insérer photo d'une patte en position CALIBRATE
Il y a donc trois positions de calibrage, une pour chaque type de patte (tibia, fémur et coxa). Une fois tous les moteurs calibrés sur le robot pour correspondre aux trois positions de base, on peut alors faire pivoter les moteurs. On a donc des valeurs "MIN" et "MAX" correspond à l'amplitude de rotation vers la gauche et vers la droite. On a comme précédemment trois variables "MIN" et trois variables "MAX", les amplitudes étant différentes pour chaque type de pièce. Nous avons donc après ce calibrage pu concevoir un programme qui donné un numéro de patte et les positions voulues, actionne les moteurs de la patte afin de la mettre en position. Par ailleurs, le shield PWM ne possédant que 16 emplacements et notre robot utilisant 18 servomoteurs, nous utilisons également deux ports PWM classiques de l'arduino. La fonction prend donc en compte cette distinction. En fin de séance nous avons été capable de mettre tous les moteurs de notre robot en position calibrage en même temps. Le robot peut alors tenir debout sur ses pattes. Cependant si le robot est posé et que nous lançons le programme, il n'est pas capable de se lever lui même. Cela peut être dû à une alimentation des moteurs insuffisante ou à une puissance insuffisante des moteurs par rapport au calibre de notre robot.
insérer photo robot debout calibrate
Semaine 11
Mercredi après-midi (14h-18h)
Nous continuons pendant la semaine de travailler sur la programmation du déplacement mais nous décidons de nous concentrer pendant la séance du mercredi à la réalisation de notre shield WiFi. Depuis la semaine 8 pendant laquelle nous avions réalisé un premier prototype de shield sur Fritzing, nous nous sommes renseignés d'avantage sur l'antenne nécessaire à l'ESP8266. En effet nous pouvons en tracer une sur le PCB mais pour cela il semble plus adapté d'utiliser Altium Designer. Nous avons donc commencé par reprendre le modèle réalisé sur Fritzing et le concevoir sur Altium. Concernant l'antenne, nous nous somme inspiré de :
Antenne_RFHV.JPG http://www.ti.com/lit/an/swra117d/swra117d.pdf Nous avons commencé par créer un composant Antenne que nous avons ensuite ajouté sur notre shield. Nous avons également récupéré une librairie sur internet contenant notre composant ESP8266.
http://hackerspace.pbworks.com/w/page/88183850/ESP8266
https://potentiallabs.com/cart/buy-esp-03-online-india
https://www.arduino.cc/en/Reference/WiFiRSSI
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf