IMA3/IMA4 2018/2020 P17

De Wiki de Projets IMA
Révision datée du 18 mars 2020 à 17:34 par Jhua (discussion | contributions) (Semaine 4)


Présentation générale

Ce projet est mené en collaboration avec Marion Binninger, ergothérapeute à APF (Association Paralysés de France) Environnement et encadré par Alexandre Boé , Xavier Redon , Thomas Vantroys. Selon l'organisation mondiale de la santé (OMS) environ 1.25 millions de personnes meurent chaque année des suites d'accidents de la route . Dans le cas particulier des enfants ce problème est à prendre avec beaucoup de sérieux étant donnée la circulation de plus en plus dense dans le monde . Notre projet a pour but de mettre un accent sur les difficultés attentionnelles des enfants,qui sont un frein à leurs déplacements et à l'autonomie et de trouver une solution .

Description

Ce projet a pour but d'aider un jeune ayant d'importantes difficultés attentionnelles et des réactions impulsives à se déplacer en ville . Étant donné plusieurs cas réels, due à l'inattention des enfants en traversants la rue ,on a pensé à étudier différentes solutions à base de capteurs (luminosité, son, voire caméra) pour remonter une alarme lors de l'approche d'une rue.

Objectifs

Le principal déficit d'attention à corriger est la traversée de rues et pour cela nous avons pour objectifs de :

  • choisir des capteurs appropriés à la détection de l'approche des voitures .
  • définir les conditions de réaction des capteurs (intensité des sons , distance....).
  • analyser la réponse des capteurs et la comparer aux consignes que nous auront définies .
  • Selon le résultat de la comparaison , une alerte doit être déclenchée si nécessaire pour attirer l'attention de la personne concernée .

Analyse du projet

Positionnement par rapport à l'existant

Analyse du premier concurrent

Notre premier concurrent serait l'accompagnant de l'enfant tel que les parents,la nounou.

Avantages :

  • avoir une personne consciente comme accompagnant est certainement plus sécurisé et donne aux parents plus de garantie sur l'état de leur enfant .
  • avoir une personne qui s'adapte aux différentes situations qui se présentent et trouve des solutions adéquates .
  • éviter une grosse dépense pour notre produit .

Inconvénients :

  • limite l’indépendance de l'enfant et donc son autonomie dans la rue .
  • éviter que l'enfant soit éternellement assisté ce qui provoquerait à la longue des problèmes en confiance en soi .
  • le tuteur doit être toujours disponible ce qui n'est pas toujours facile .

Analyse du second concurrent

Notre second concurrent serait Direct Line, une société d’assurance qui a collaboré avec le cabinet d’architecture Umbrellium pour créer un nouveau «Smart Crossing», baptisé Starling Crossing, conçu pour aider à maintenir la sécurité des piétons. En effet, encore sous une forme de prototype , ce nouveau <smart crossing> n'est pas encore appliqué dans notre vie quotidienne. Avantages:

  • Il est apte à satisfaire tous les cas possibles sur le trafique.
  • Il n'est pas restreint à un type de personnes.
  • Il est disponible à tout moment, car il est appliqué sur la route.
  • C'est l'Etat qui sponsorise l'application de ce produit.

Inconvénients:

  • Le Coût de l'application du produit est excessivement cher.
  • Il utilisent énormément de capteurs, de cameras ... , qu'une panne peut endommager le fonctionnement du système.

Scénario d'usage du produit ou du concept envisagé

Jeudescartes.jpg
Jeudescartes1.jpg
BD.jpg

Je m'appelle Nino, je suis un petit garçon plein de vie, j'aime m'amuser avec mes amis. Mes parents me laisse aller à l'école tout seul, comme un grand garçon, j'aime beaucoup car je rencontre mes amis en chemin. Mais.. depuis mon accident, je ne suis plus aussi indépendant, mes parents m'ont pris une nounou qui me dépose tous les matins à l'école car depuis mon accident j'ai des troubles attentionnels, je perds très vite ma concentration et donc mes parents ont vraiment peur de me laisser traversé la route tout seul. Cependant, depuis peu ils m'ont achetés un "..." et son utilisation est tellement facile, il me permet de reprendre ma concentration surtout lorsque je traverse la route, il m'alerte losqu'une voiture se rapproche de moi. Ainsi, mes parents n'ont plus peur de me laisser partir à l'école seul comme un grand, je suis si content, mon accident m'avait enlevé mon indépendance et aujourd'hui, je me sens comme les autres enfants.


Questions difficiles

  • quelles types de capteurs doit-on utiliser pour réaliser ce projet ? (répondu en partie préparation de projet)
  • comment choisir le type d'alimentation pour maintenir le fonctionnement du dispositif toute la journée sans devoir utiliser bes batteries lourdes ?
  • Comment faire pour assembler les composants dans une carte électronique assez petite pour ne pas être encombrant?

Réponses aux Questions difficiles

  • Le dispositif étant destiné à un usage quotidien et pour pallier au problème d'autonomie, nous pouvons utiliser une batterie rechargeable qui tiendra en autonomie pendant toute l'utilisation par l'enfant.
  • Pour réduire l'encombrement du dispositif, nous voulons dessiner un schéma PCB sur le logiciel Altium.

Bibliographie et webographie

Préparation du projet

  • <<Que choisir entre LIDAR ,RADAR et ultrasons ? Quel est le plus adéquat pour notre projet ?>>
    • Que souhaite-on mesurer? la distance entre l'enfant et les voitures.
    • Quelle condition environnementale? Un environnement urbain.
    • Quelle distance entre l'émetteur et la cible? Environ plus de 50m.
  • ULTRASON:

La mesure par ultrason est basé sur les ondes sonores, ils sont insensibles aux couleurs, à la brillance et à la transparence. Cependant, son utilisation est adéquat pour une surveillance de volume et pour les distances courtes moins de 8m.

  • LIDAR:

La mesure par lidar est basé sur la détection et l'estimation de la distance par la lumière. il s'agit d'une technologie de mesure à distance fondée sur l'analyse des propriétés d'un faisceau de lumière renvoyé vers son émetteur. Cette technique est parfaite lorsqu'on souhaite une indication de position précise, elle est idéale pour les petits objets et à une distance allant jusqu'à 200m. L'utilisation de la technologie LiDAR 2D ou 3D est adéquate lorsqu’une indication de position précise ou une classification d’objet sera requise, ou bien lorsqu’une grande zone de numération sera impérative (Champs de vue horizontal jusqu’à 360°, Champs de vue vertical jusqu’à 15°). Par contre, il est vivement déconseillé d’utiliser cette méthode sur de l’eau, ou dans un environnement difficile (fortes chutes de neige, pluie, brouillard, poussière…).

  • RADAR:

Le fonctionnement du RaDAR est proche de la technologie par ultrasons, il permet de calculer la distance, le mouvement et l’angle. Le radar va devoir mesurer à plusieurs reprises. Les données vont être comparées et vérifiées, et si les résultats sont identiques alors l’objet sera reconnu. C’est ce que l’on appelle le suivi (ou tracking). La technologie RaDAR sera préconisée pour la détection d’objet volumineux car il y aura une plus grande surface de réflexion (RCS) et sera donc plus facile à détecter. L’objet à détecter sera de préférence métallique (le métal étant un réflecteur parfait pour cette technique de mesure). Le RaDAR est capable de mesurer de grands volumes jusqu’à plusieurs dizaines (voir centaines) de mètres, mêmes dans des conditions météorologiques extrêmes (pluie, neige , etc).

  • <<Quels capteurs sont adéquats pour notre projet?>>:
    • HB100 microwave : détecte la distance et calcule la vitesse de tout les objets qui se trouvent dans un rayon de 16m avec un angle de 72° horizentalement.
    • Capteur infrarouge C7288 ou Amg8833: detécte la présence des personnes et/ou d'animaux à une distance maximale de 7m.
    • utilisation : le capteur amg8833 détecte la présence
  • Conclusion:

D'après l'analyse de ces trois types de captations, il en découle que le radar est le plus adéquat à notre projet. En effet, nous aurons besoin d'une grande surface de réflexion, et notre cible principale sera les voitures.



Cahier des charges du groupe

Pour répondre aux besoins de l'enfant souffrant de troubles attentionnels ,on propose:

  • Pour le calcul de la vitesse des voitures, on utilisera un capteur .
  • Pour alerter l'enfant du danger (voitures, vélos...) on utilisera une vibration ou une alarme .
  • Pour assurer l'énergie qui sera consommée par notre produit, on utilisera une batterie qui doit être légère.
  • Pour implanter l'algorithme, on utilisera un arduino.

Cahier des charges des équipes

Equipe 1

Hua Jing et Mahmoudi Sanae :

  • Ecriture de code .
  • Branchement de dispositif: Arduino , capteur ultason , vibreur.
  • Tester des programmes .
  • Améliorer le fonctionnement du programme .

Equipe 2

Raouto Emilie

  • Recherche des informations sur le dispositif et répondre aux questions suivantes  :quel est le meilleur capteur à utiliser, quel types d'alimentation il faut utiliser ,
  • Remplissage de WIKI .
  • Préparations des questions à poser lors de la visite de l'enfant ;
  • rejoindre l'équipe 1 pour améliorer le code .

Choix techniques : matériel et logiciel

Pour réaliser notre projet, on veut tester notre idée avec un capteur ultrason, un vibeur et un Arduino. On utilise les composants électroniques suivants:

Composant Image

Capteur ultrasons HC-SR04

Hcsr04.jpg

Vibreur

Vibreur233.jpg

Arduino MEGA 2560

Carte arduino25.jpg

Equipe 1 & Equipe 2

CAPTEUR HC-SR04

Le capteur HC-SR04 est un capteur à ultrason low cost. Ce capteur fonctionne avec une tension d'alimentation de 5 volts, dispose d'un angle de mesure de 15° environ et permet de faire des mesures de distance entre 2 centimètres et 4 mètres avec une précision de 3mm (en théorie, dans la pratique ce n'est pas tout à fait exact).

Pour l'information de ce capteur on a trouvé plusieur sites comme https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/ https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/

Le MONTAGE

Montage233.jpg

L'alimentation 5V de la carte Arduino va sur la broche VCC du capteur. La broche GND de la carte Arduino va sur la broche GND du capteur. La broche D2 de la carte Arduino va sur la broche TRIGGER du capteur. La broche D3 de la carte Arduino va sur la broche ECHO du capteur. La broche D9 de la carte Arduino est connectée à un vibreur .

Liste des tâches à effectuer

Equipe 1

  • 1.Connaĩtre le datasheet de capteur ultrson qu'on a choisi.
  • 2.Connecter des branches de capteur ultrason, vibreur et Arduino
  • 3.Tester le vibreur
  • 4.Tester le capteur avec le code exemple pour mesurer le distance
  • 5.Ajouter le code de calculer la vitesse selon distance
  • 6.Installer le condition de activer le vibreur
  • 7.Améliorer le programme pour fonctionner bien

Equipe 2

  • 1.Chercher des informations des différents capteurs sur Internet
  • 2.Comparer les capacités entre des capteurs
  • 3.Trouver le capteur qui satisfait meilleur notre projet
  • 4.Chercher des informations pour répondre les quesions difficiles
  • 5.Remplir le reste de Wiki
  • 6.Préparer des qustions pour enfant
  • 7.Améliorer le code dont Equipe 1 a fait

Calendrier prévisionnel

Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.

Equipe 1

Equipe 2

Réalisation du Projet

Projet S6

Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.

Semaine 4

  • Lecture de sujet
  • Chercher plus d'information sur l'état des enfants qui souffrent des troubles attentionnels pour trouver la bonne solution qui va satisfaire les besoins de l'enfant
  • Poser le maximum de questions pour bien comprendre le sujet .
  • Débuter le scénario d'usage.
  • Recherche de différentes solutions pour notre problème.

Semaine 5

Lors de cette séance, nous avons eu l'opportunité de rencontrer une intervenante extérieure pour mieux comprendre le sujet et améliorer le scénario d'usage. Etant donné que notre dispositif sera utilisé par un enfant handicapé , cette séance nous a surtout permis de se mettre dans la peau de l'utilisateur pour mieux assimiler ses besoins, comprendre les attentes éventuelles et ainsi réfléchir à une solution adéquate.

La séance a commencé par un petit pitch pour que l'intervenante ait une idée assez globale de notre projet. Après ce pitch nous avons eu quelques remarques instructives pour nous améliorer. Puis nous avons dû donner une perception du projet en utilisant de nouvelles méthodes efficaces et inhabituelles telles que des cartes et des legos.

A partir des informations collectées suite à cette réflexion, nous avons pu imaginer un usager type , c'est l'étape de la 'collecte'. Avec les cartes qui étaient à notre disposition nous avons créer un scénario d'usage en s'appuyant sur l'image d'un usager type (voir image).

Au terme de cette séance, nous avons améliorer notre scénario d'usage, nos idées sur le projet étaient un peu plus claires, et enfin nous avons pu lister plusieurs questions à poser à l'enfant lors d'une éventuelle rencontre.

Semaine 6

  • Recherche de types de captation entre(LIDAR,RADAR et Ultrasons ) et caractéristiques de chacun d'eux et par conséquent nous avons choisi d'utiliser le RADAR car ses caractéristiques correspondaient à nos attentes .
  • Élaborer le cahier de charge .

Semaine 7

Durant cette séance on a débuter l'écriture de notre code (langage pour Arduino) parmi les principales fonctions dans notre code :

  • Fonction pour mesurer la distance entre le capteur ultrason et les objet qui l'entoure .
  • Fonction pour le calcul de la vitesse en se basant sur deux distances mesurées successivement avec un delay de 200 ms .
  • Fonction qui permettra d'activer la vibration dans le cas où on a dépassé la limite de la vitesse (la voiture se rapproche de l'enfant ) .
  • Branchement entre arduino, capteur et keyboard .

Semaine 8

Continuer le code et le tester . Ajout de la vibreur dans notre Montage .

Semaine 9

  • Connection de la vibration sur l'arduino (broche ~9).
  • Structuration du programme en sous-programmes.
  • Adaptation du programme pour prendre en compte la vibration ,si la vitesse est supérieure à 20cm/s.

Semaine 10

Améliorer le code et s'assurer que ça fonctionne bien. corriger tous ce qui manquait sur le Wiki.

const byte TRIGGER_PIN = 2; // Broche TRIGGER 
const byte ECHO_PIN = 3; // Broche ECHO
const byte vibration = 10; //Beoche vibreur
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s   Constantes pour le timeout  
const float SOUND_SPEED = 340.0 / 1000;   //Vitesse du son dans l'air en mm/us
long distance0 = 0; 
int cpt =0;  
void setup() {
/* Initialise le port série */
Serial.begin(115200);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
pinMode(vibration, OUTPUT);
digitalWrite(vibration,LOW);
} 
float test_dis()  //mesurer la distance et calculer la vitesse
{
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
/* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
long measure = pulseIn(ECHO_PIN,HIGH, MEASURE_TIMEOUT);
 delay(1000);
/* 3. Calcul la distance à partir du temps mesuré */
float distance_mm = measure / 2.0 * SOUND_SPEED;
return distance_mm;
}
void loop() {
if(cpt > 1 )  
{
  digitalWrite(vibration,HIGH);  //si il y a deux 0.5s on trouve la vitesse > 5.0 on active vibration
  cpt = 0;
  delay(1000);
}
if(cpt==0)
{
  digitalWrite(vibration,LOW);
}
float dis0=test_dis();      //mesurer la distance ancient en mm
Serial.print(F(" Distance0: "));
Serial.print(dis0/10);
delay(100);     //attendre 0.5s pour mesurer le 2ème distance
float dis1=test_dis();   //mesurer la distance nouvelle en mm
Serial.print("cm  Distance1: ");
Serial.print(dis1/10);
Serial.print("cm ");
float vitesse_cm_s=( (dis0 - dis1 ) / 10.0) * 10 ;  
if(vitesse_cm_s > 5.0)
  cpt=cpt+1;    //chaque fois la vitesse est > 5.0 cm/s cpt s'incrmente 1 
else
  cpt = 0;
Serial.print(F(" Cpt: "));
Serial.print(cpt);
Serial.print(F(" Vistesse: "));
Serial.print(vitesse_cm_s);
Serial.println(F(" cm/s"));
/* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
delay(100);// en ms
}

Semaine 11

  • Fabrication du boitier:
Boitier233.jpg

Nous avons pris rendez-vous au fabricarium, on a fait une formation d'une heure pour apprendre à utiliser la découpe laser. A l'issue de cette formation, nous avons pris des mesures adéquates pour fabriquer le boitier qui abritera les éléments de notre dispositif. De ce fait, nous avons fait en sorte que le boitier soit le plus petit possible pour permettre qu'il soit facilement transportable.

Semaine 12

  • Rencontre avec Souleyman:

Nous nous sommes rendu à l'Institut d'Education Motrice de Lille, une école spécialisée Jules Ferry, afin de rencontrer Souleyman. Dans une première approche, nous nous sommes présentés afin de faire plus ample connaissance avec lui. Nous avons pu en savoir plus sur son handicap et aussi échanger avec sa tutrice. Suite à cet échange, on a pu éclaircir nos idées sur ses besoins et nous avons découvert que son bras gauche est moins actif, nous avons dû modifier la structure du dispositif. Ensuite, nous avons tester le prototype de notre produit et avoir les remarques de la tutrice. Et pour finir, grâce à celle-ci, nous avons eu d'autres recommandations dans le but de répondre parfaitement aux besoins de l'enfant parmi lesquelles:

  • Une alerte sonore/vocale
  • Un téléphone comme gps
  • Informer l'enfant qu'il peut traverser(car il reste longtemps dans la vérification).

Cette rencontre a vraiment été bénéfique pour nous, dans l'optique où nous avons pu mieux comprendre les besoins de Souleyman et améliorer le dispositif pour le semestre suivant.

Documents Rendus

Fichier:Rapport final P17.pdf

Projet S7

Semaine 1

La Fusion

Suite au différents changements dans le groupe, il y a eu une fusion entre le groupe p18 et le nôtre en vue de la proximité de nos sujets respectifs. Dans les deux projets, il y a plusieurs modules communs, donc pour un travail efficace nous travaillons ensemble en se répartissant les tâches.

Module P17&P18 P18

Capteurs

Distance

Relief, profondeur

Actionneurs

Minis moteurs vibrants

Moteurs DC pour la main

Energie

Batterie

Autonomie d'une/deux heures

Batterie dans un sac à dos

PCB gérant les actionneurs et

les parties sonores

Gestion enregistrements sonores

Moteurs vibrants

Moteurs pour la main

Liaison série vers les données des capteurs

Répartition des Tâches

  • Equipe 1: Actionneurs(vibreur avec puissance variable, son) -> Laurine et Clara
  • Equipe 2: Capteurs(distance, profondeur) -> Emilie, Nour et Caroline
  • Equipe 3: Cartes(FPGA ou microcontrôleur) -> Jing et Ming

Cependant, nous avons des tâches spécifique à notre groupe telles que: l'énergie à utiliser et la solution pour pouvoir capter les feux de circulation. A la fin du S7, notre objectif est d'avoir la liste du matériels afin de réaliser le dispositif final.

Composants choisis

  • Un capteur de distance-> RPLiDAR A1M8-360 Degree LaserScanner Kit - 12M RangeRoHS
  • UneRaspberry pi 3 ou 4
  • Une batterie
  • Un webcam: Elle sera combiné avec la raspberry pi pour un traitement d'images

Semaine 2

Après la fusion en semestre 6, on a séparé en 3 groupes pour faire un list de composants possibles pour notre produit final et ensuite on choisira des composants qui suffisent meilleur nos besoins dans 2 ou 3 semaines pour on peut commencer faire de travaux suivants.

Pendant cette séance, avec le suggestion du prof, monsieur Alexandre Boé, nous avons trouvé un premier list des différent matériaux possibles pour notre poejet, pour cela on cherche des différent produit sur Internet et compare leur performance:

Equipe 1 :

  • Vibreurs : La question est: Quel est le meilleur moyen pour faire varier l'intensité des vibrations dans le but de créer une communication entre le prototype et l'enfant (P17) surtout pour les urgences.
  • Choix des moteurs pour la main, plus efficaces que ceux du prototype.
  • Partie son : module MP3 pour sélectionner et lire enregistrements sur une carte microSD. Éventuel besoin d'un adaptateur jack/USB pour les écouteurs.

Equipe 2 :

  • Recherche pour le choix entre deux capteurs le D415 et le D435, pour savoir s'ils seraient adéquats pour les différents besoins

Equipe 3 :

  • Recherche des informations ou datasheet de FPGA, micro-processeur comme ATMEGA328 ou un produit qui déjà existe comme un Arduino ou une Raspberry.
  • Comparer leurs performances selon notre besoins et nous avons faire une première préférence: une raspberry 3 est parfaitement suffisant de notre projet mais on n'est pas sûr. Et notre deuxième préférence est un micro-processeur comme ATMEGA328. On va demander les profs avec ces quesions pendant la prochaine séance.

Semaine 3

Avant cette séance on a déjà un primier list de matériaux qui nous semblent possible pour notre projet, donc pendant cette séance nous avons tout d'abord enrichi notre list pour nos matériaux peuvent suffire les besoins en différents environnement. Ensuite nous voulons démander des consigne du prof monsieur Alexandre Boé pour vérifier si nos matériaux sont possible, est-ce qu'on est dans la bonne direction, cependant malheureusement on n'a pas le temps à la fin de la séance.

Equipe 1 :

  • Mettre en place différents stades de vibrations en fonction de la dangerosité d'un obstacle. Pour cela nous allons faire vibrer les moteurs par intermittence. Nous avons défini trois stades de danger. En premier, pour donner une indication, des vibrations séparées par un délai important. Dans le cas d'un obstacle ou d'un changement de relief plus important, le délai sera raccourci. Enfin, en cas de grand danger, les moteurs vibreraient en continu.
  • Partie son :

Choix du module MP3 DFR0299 pour stocker et exploiter les enregistrements d'indications sonores. Module mp3.jpg

Pour connecter les écouteurs, on placerait un port jack directement sur le PCB.

Équipe 2 :

  • Besoin d'une Raspberry Pi 4 pour pouvoir traiter les images en utilisant une webcam (P17).

Équipe 3 :

  • Vérifier si avec une Raspberry Pi 3 on peut contrôller un capteur de distance et un webcam pour scanner l'environnement de la Rue et envoyer les commandes pour avtiver un son et une vibration, surtout sa compléxité et son coût d'énergie, aussi son coût d'argent.
  • Vérifier les même qustions pour des micro-processeur et FPGA.

Groupe :

  • Discuter avec lesquels matériaux sont mieux pour notre cas, comme on sait qu'un enfant (le garçon Souleyman dans notre situation) qui a des limites, par emxemple, ce n'est pas réaliste de porter un produit lourd etc. Nous avons aussi discuté sur papier pour faire une liaison entre différentes parites.

Semaine 4

Donc pendant cette séance nous avons tout d'abord démandé la faisabilité de notre produit final par des composants dans notre deuxième list au prof Alexandre Boé, avec des consignes il nous a montré, aussi il nous a montré un prototype d'un produit pour nous comprendre miexu des idées. Donc nous avons décidé de utiliser une raspberry pi 3 pour contrôller le webcam et aussi notre capteur de distance qui est un lidar parmi les choix possible.

Cepandant, nous avons mal compris ce que monsieur Alexandre Boé disait: il nous présentait des avantages et des inconvénients de la raspberry et du micro-processeur, mais on pensait que faut mieux faire une liaison de la raspberry et le micro-processeur et c'est pourquoi on va faire un PCB dans la suite. (C'est le commentaire ajouté après la soutenance)

Après nos recherches sur les capteurs D415 et D435 nous avons conclus qu'ils n'étaient pas adéquat pour nos besoins. Comme dans notre situation faut mieux le capteur de distance peut envoyer la distance de l'environnement, c'est-à-dire un ^capteur qui peut scanner l'environnement de 360 degrés .Donc nous avons définitivement pris comme capteur le Rplidar.

  • Un capteur de distance-> RPLiDAR A1M8-360 Degree LaserScanner Kit - 12M RangeRoHS

Ras1.png

    • Ce capteur est beaucoup utilisé pour éviter des obstacles et pour la sécurité.Ce RPLIDAR A1M8 permet la mesure de distances de 0,15 à 12 m sur 360° grâce à un moteur autorisant une rotation complète. Cette rotation permet par exemple la cartographie de pièces, la modélisation d'un objet ou tout simplement l'évaluation d'une distance ce qui nous intéresse dans notre cas. Il peut communiquer via une liaison UART avec un microcontrôleur mais également avec un PC via une liaison micro-USB. La mesure de distance est basée sur une triangulation émise par le laser et autorise une acquisition rapide des mesures (8000 mesures par secondes). La fréquence d'échantillonnage est adaptée automatiquement en fonction de la vitesse de rotation du capteur Lidar par rapport à sa base.
  • Caractéristiques importants de RPlidar A1M8
    • Interface moteur: PWM
    • Distance de mesure: 0,15 à 12 m
    • Angle de mesure: 360 ° Ras2.png
    • Fréquence de mesure: 8000 mesures/sec
    • Poids: 170 g
  • Remarques
    • Ce module peut être utilisé en intérieur et en extérieur mais est non résistant à l'eau.
    • L'appareil ne peut pas effectuer de mesure si il est directement exposé aux rayons du soleil.
    • L'appareil n'est pas trop lourd par rapport à sa précision de détection.
    • L'appareil peut détecter tous les degrés de l'envrionnement.
  • Raspberry pi : : Nous utilisons ce composant pour faire du traitement d'image dans le but de distinguer la couleur d'un feu de signalisation en utilisant une caméra webcam et aussi pour envoyer des commandes au lidar et recevoir des réponses.

Semaine 5

Comme au premier temps, on pense que il faut faire un PCB pour connecter une raspberry

Nous avons dédié cette séance à la réalisation du pcb sur le logiciel Altium.

Semaine 6

Webcam

Semaine 7

Documents Rendus

Projet S8

Semaine 1

Semaine 2

Webcam

Pour la partie webcam,le but de cette partie est d'identifier le feu rouge, de rappeler à l'enfant de se concentrer sous forme de vibration lorsque le feu rouge est allumée.Donc,je pense que ma tâche peut être divisée en trois parties: 1. Écrivez un programme pour identifier des couleurs et des formes spécifiques. 2. Complétez la procédure ci-dessus afin que lorsqu'une forme d'une couleur spécifiée est reconnue, le vibreur se déclenche pour alerter l'enfant. 3. Optimisation. (En testant les procédures terminées, en découvrant les limites des procédures pour optimiser notre installation)

Webcam1.png

À s7, nous avons finalement décidé de programmer sur la base de RaspberryPi.Après avoir consulté les informations, j'ai trouvé une excellente bibliothèque de vision pour identifier les images --- openCV.

openCV

Le nom complet d'OpenCV est Open Source Computer Vision Library, qui est une bibliothèque de vision par ordinateur multiplateforme qui peut être utilisée pour développer des programmes de traitement d'image, de vision par ordinateur et de reconnaissance de formes en temps réel.Du coup,je pense que ce logiciel peut m'aider beaucoup.


Semaine 3

Installation du openCV

Après avoir décidé d'utiliser la bibliothèque openCV, le premier travail a été de l'installer sur le Raspberry Pi.Voici les principales étapes de mon installation:

1.Nous avons d'abord configuré le système d'exploitation Raspbian pour le Raspberry Pi.

2.J'ai entré la commande suivante sur la ligne de commande. Cette commande signifie ouvrir le fichier des modules avec l'éditeur nano:

 sudo nano /etc/modules
 J'ai ajouté une ligne à la fin de ce fichier:
 bcm2835-v4l2

3.J'entre la commande:

 vcgencmd get_camera

4.Les résultats suivants ont été obtenus:

 Camere1.png
 Cela prouve que la caméra est correctement connectée.

Jusqu'à présent, le travail de préparation était terminé et j'ai commencé à installer OpenCV sur Raspberry Pi sous Python2.

5.

 sudo apt-get install libopencv-dev
 sudo apt-get install python-opencv

6.J'ai ensuite testé OpenCV sur Python2. Je tape python2 sur la ligne de commande et appuyez sur Entrée:

 import cv2
 Ensuite, je suis entré:
cv2 .__ version__
 Les résultats suivants sont apparus, prouvant que l'installation a réussi:
  Opencv1.png

Ensuite, j'ai installé OpenCV sur Raspberry Pi exécutant Python3.

1.Tout d'abord, j'ai ouvert l'interface de ligne de commande et entré la commande suivante pour installer la bibliothèque de calcul scientifique Python numpy:

  sudo pip3 install numpy

2.J'ai ensuite installé les bibliothèques requises par OpenCV:

 sudo apt-get install build-essential git cmake pkg-config -y
 sudo apt-get install libjpeg8-dev -y
 sudo apt-get install libtiff5-dev -y
 sudo apt-get install libjasper-dev -y
 sudo apt-get install libpng12-dev -y
 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
 sudo apt-get install libgtk2.0-dev -y
 sudo apt-get install libatlas-base-dev gfortran -y

3.J'ai ensuite commencé à télécharger OpenCV:

 cd
 wget https://github.com/Itseez/opencv/archive/3.4.0.zip
 wget https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip
  Alors, j'ai déballé ces deux archives:
 cd /home/pi/Downloads
 unzip opencv-3.4.0.zip
 unzip opencv_contrib-3.4.0.zip

4.Ensuite, j'ai défini les paramètres de compilation:

 cd /home/pi/Downloads/opencv-3.4.0
 mkdir build
 cd build

5.Ensuite, j'ai défini les paramètres CMAKE:

 [[cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.5/site-packages/numpy/core/include ..]]
 La figure suivante montre que cmake s'avère efficace:
 Cmake.png

6.La dernière et la plus importante étape: compiler(Cela a pris beaucoup de temps.)

 cd /home/pi/Downloads/opencv-3.4.0/build
 make
 sudo make insall

7.Après l'avoir installé, tapez python3 dans la ligne de commande et appuyez sur Entrée:

 import cv2
 cv2.__version__
 Le résultat montré dans la figure ci-dessous montre qu'OpenCV a été installé avec succès dans l'environnement Python3.
 Popencv3.png

Semaine 4

Choix du langage d'assemblage

Du code réalisable basé sur Raspberry Pi, C ++ nous est plus familier. Et nous utiliserons beaucoup le C ++ dans les études ultérieures. Après avoir consulté nos coéquipiers, nous avons décidé d'utiliser le langage C ++ pour la programmation.


Allume la webcam.

Afin de détecter la position de le feu rouge en temps réel, je dois d'abord allumer le webcam du Raspberry Pi.

VideoCapture cap(0);


VideoCapture cap(0);


[[{]]

[[cout << "Cannot open the cam" << endl; ]]

return -1;

[[ }]]

Documents Rendus