====== Projet écholocation ======
* Lyna Saoucha
* Hela Menzli
* Alexandre Janin
**Ce projet vise a recréer l’écholocation utilisée par les chauve-souris (ainsi que certains cétacés) pour se repérer dans leur environnement.**
[GitHub du projet](https://github.com/alexandrejanin/echolocation)
**Le 7 Mars 2019:**
* Présentation du projet : concept, idée et conception primaire de l prothèse.
Lors de cette séance, nous avons présenté une première idée de notre projet.
* Initiation à Processing, un environnement de développement libre specialisé dans l'interface graphique.
**Le 14 Mars 2019:**
* Conception d'une prmeière prothèse
{{:wiki:projets:img_7114.jpg?400|}}
* Réalisation d'une première maquette papier
{{:wiki:projets:img_7116.jpg?400|}} {{:wiki:projets:img_7117.jpg?400|}}
* Ecriture du notre premier code sur Processing qui visualise le phénomène de l’écholocation (aspect visuel). Nous avons crée un "jeu" où une balle rebondit sur un rectangle invisible et avec le rebondi, on doit retrouver où le rectangle se situe.
**Le 21 Mars 2019:**
Initiation à Arduino:
* Prise en main d'Arduino à l'aide d'une série d'exercice proposé par les encadreurs (lien)
* Différent test des capteurs:
- Photoresistor → Lumière → capteurLDR
- Force Sensitive Resistor → Force (pression) → capteurFSR
- Flex sensor → Flexion → capteurFLEX
- Pulse sensor → Pouls → capteurPOULS
- Ultrasonic Range Finder → Distance → capteurSONAR
- Humidity sensor → Humidité → humidity et temperature
* Changement du code fourni, travail sur le code Sonar (ce qui nous intéresse pour notre projet)
{{youtube>neZnnhtC6JU?medium}}
**Le 4 Avril 2019:**
* Rappel sur la manipulation de l'Arduino et sa liaison à Processing.
* Début de l'écriture de notre propre code où on travaille avec le capteur Sonar (modele Ultrasonic Range Finder - LV-MaxSonar-EZ1 SEN-00639 RoHS) qu'on associera avec un buzzer
* Code Arduino qui permet de changer la fréquence du buzzer à l'aide d'un potentiomètre
* Code arduino pour contrôler l’intensité de la led en fonction du sonar:
#include
SensorShield board;
int sonarPin = 10; // sonar pin
int ledPin = 11; // led pin
int minDist = 10; // distance min du capteur
int maxDist = 100; // distance max du capteur
void setup() {
// initialises and start Serial with 9600 baudrate
board.init();
// add sonar functions as sensors to sensorShield
board.addSensor("capteurSONAR", cmValue);
// LED display
pinMode(ledPin, OUTPUT);
}
int cmValue() {
pinMode(sonarPin, INPUT);
float pulse = pulseIn(sonarPin, HIGH);
float inches = pulse / 147; // 147 uS per inch
float cm = inches * 2.54; // 2,54 cm per inch
return (int) cm;
}
int cmToLum(int cm){
// on limite la distance aux bornes definies plus haut avec constrain()
int constrainedCm = constrain(cm, minDist, maxDist);
// on associe la distance a la luminosite avec map()
return map(constrainedCm, minDist, maxDist, 255, 0);
}
void loop() {
// read the value, if there are changes update it and send it through serial
board.update();
// distance du capteur en cm
int dist = cmValue();
// luminosite de la led qui correspond
int lum = cmToLum(dist);
analogWrite(ledPin, lum);
}
* Simulation:
{{youtube>yMzfqTukoCE?medium}}
**Le 11 Avril 2019:**
* Retour sur la conception de la forme de la prothese
* Montage avec le sonar (gauche) et un vibreur (droite):
{{:wiki:projets:montage_sonar_vibreur.png?400|}}
* Code:
#define sonarPin 10
#define vibrPin 6
#define distMin 15
#define distMax 200
#define delayMin 0
#define delayMax 2000
int currentDelay = 0;
int lastTime = 0;
void setup() {
Serial.begin(9600);
pinMode(vibrPin, OUTPUT);
}
// Distance du sonar en cm
int sonarCm() {
pinMode(sonarPin, INPUT);
float pulse = pulseIn(sonarPin, HIGH);
float inches = pulse / 147; // 147 uS per inch
float cm = inches * 2.54; // 2,54 cm per inch
return (int) cm;
}
void loop() {
int cm = sonarCm();
Serial.print("distance: ");
Serial.print(cm);
Serial.print("\n");
int constrainedCm = constrain(cm, distMin, distMax);
int del = map(constrainedCm, distMin, distMax, delayMin, delayMax);
int currentTime = millis();
currentDelay += currentTime - lastTime;
lastTime = currentTime;
analogWrite(vibrPin, 0);
if (currentDelay >= del){
analogWrite(vibrPin, 153);
currentDelay = 0;
}
}
**Le 18 Avril 2019:**
moodboard d'inspiration:
{{:wiki:projets:moodboard.png?1000|}}
Passage au fablab et travail sur la finition de la maquette aprés avoir choisir les points d'inspiration de départ.
{{:wiki:projets:whatsapp_image_2019-05-08_at_23.37.32.jpeg?400|}}
* Les dernières modifications, tous les mises a jour sont sur le répertoire github mentionné au tout début de cette page wiki, ou tout est organisé par thème, type de données et date de mise à jour.