Difference between revisions of "Projets:Lab:2013:Rocket-Plopper"
m |
m (→Développemnt projet) |
||
Line 41: | Line 41: | ||
*'''Conception d'un tuyère à ouverture variable.''' | *'''Conception d'un tuyère à ouverture variable.''' | ||
− | == | + | ==Développement projet== |
===Test du module BMP085 avec Arduino Nano=== | ===Test du module BMP085 avec Arduino Nano=== | ||
Branchement facile sur le port I2C : 4 cables : | Branchement facile sur le port I2C : 4 cables : | ||
Line 50: | Line 50: | ||
[[File:nano-et-BMP085.png|300px|thumb|right|Nano et BMP085]] | [[File:nano-et-BMP085.png|300px|thumb|right|Nano et BMP085]] | ||
+ | |||
Pour le test j'ai utilisé le code présent sur cette page : [http://www.geeetech.com/wiki/index.php/BMP085_Barometric_Pressure_Sensor_Breakout GeeeTech BMP085] | Pour le test j'ai utilisé le code présent sur cette page : [http://www.geeetech.com/wiki/index.php/BMP085_Barometric_Pressure_Sensor_Breakout GeeeTech BMP085] | ||
− | [[File:terminal-BMP085-1.png|300px|thumb| | + | [[File:terminal-BMP085-1.png|300px|thumb|none]] |
+ | |||
On peut lire sur le terminal la température au 10ème de °C et la pression en Pascal. | On peut lire sur le terminal la température au 10ème de °C et la pression en Pascal. | ||
Du fait de la précision de la mesure, la valeur en Pa est très variable, mais si on s'attarde sur les 10 aines de Pa on peut voir une différence notable entre le sol, la hauteur du bureau et au dessus de la tête. | Du fait de la précision de la mesure, la valeur en Pa est très variable, mais si on s'attarde sur les 10 aines de Pa on peut voir une différence notable entre le sol, la hauteur du bureau et au dessus de la tête. | ||
La précision à 50cm est validée. Il faudra par contre travailler par moyenne d'une série de mesures pour lisser les petites variations. | La précision à 50cm est validée. Il faudra par contre travailler par moyenne d'une série de mesures pour lisser les petites variations. | ||
− | + | ===Code pour une version MSP430 :=== | |
− | + | ||
− | === | + | |
<pre>// Rocket-Plopper | <pre>// Rocket-Plopper | ||
// Initiated by Limesle for ElectroLab | // Initiated by Limesle for ElectroLab |
Revision as of 21:38, 27 November 2013
Contents
Projet : Rocket-Plopper
Conception et réalisation d'un module permettant le déclenchement d'un parachute ainsi que la prise de mesure en vol et leur restitution à terre.
Discussions
But des mesures :
- Optimiser la charge en eau et la pression du réservoir : accélération, temps de propulsion, altitude atteinte
- Optimiser le parachute avec mesure du taux de chute à chaque essai
Discussions en cours
- Choix du capteur analogique : Baromètre Vs Accéléromètre
- Choix du µContrôleur : préférence de Limesle pour le MSP430 en autonome sans le launchpad (Poids, conso etc ...)
- Choix d'un boitier étanche(du coup plus facile avec un accéléromètre)
Type de communication :
Proof of concept avec une liaison série/USB avec PC Liaison par un module en
- bluetooth
- Pilou Je propose le JY-MCU(voir sur ebay) peut se trouver à 5€ fdpin(ça fait un Rfcomm qui peux causer avec un android/pc)
- Portée limité à 10 mètres mais facile à mettre en place.
- Pilou Je propose le JY-MCU(voir sur ebay) peut se trouver à 5€ fdpin(ça fait un Rfcomm qui peux causer avec un android/pc)
- 433Mhz
- MiWi de Microchip à 868MHz
- ou autre 2.4ghz
pour éviter de manipuler la fusée
BOM
- BMP058 : https://www.sparkfun.com/datasheets/Components/General/BST-BMP085-DS000-05.pdf
- Boitier étanche : http://fr.farnell.com/hammond/1551fgy/boitier-abs-gris-50x35x15mm/dp/1877305
- Module BT : voir plus haut propale Pilou
Réalisation du PCB
Sur une base MSP430G2553 avec BMP085 et micromoteur.
Image à venir
Élargissement
- Réalisation d'un kit à vendre sur le shop
- Codage pour avoir un kit qui valide le record et permet un concours sur le web (Évite la riche ?)
- Codage d'une application Androïd Electrolabellisée pour le recueil des mesures et la participation au concours
- Ajout d'un deuxième étage
- Conception d'un tuyère à ouverture variable.
Développement projet
Test du module BMP085 avec Arduino Nano
Branchement facile sur le port I2C : 4 cables :
- VCC(Orange sur 3.3v)
- GND(Bleu)
- SDA(Vert en A4)
- SCL (Jaune sur A5)
Pour le test j'ai utilisé le code présent sur cette page : GeeeTech BMP085
On peut lire sur le terminal la température au 10ème de °C et la pression en Pascal. Du fait de la précision de la mesure, la valeur en Pa est très variable, mais si on s'attarde sur les 10 aines de Pa on peut voir une différence notable entre le sol, la hauteur du bureau et au dessus de la tête. La précision à 50cm est validée. Il faudra par contre travailler par moyenne d'une série de mesures pour lisser les petites variations.
Code pour une version MSP430 :
// Rocket-Plopper // Initiated by Limesle for ElectroLab // a French HackerSpace at Nanterre near Paris #define led 0 #define ledModeOut P1DIR |= (1<<led) #define ledOn P1OUT |= (1<<led) #define ledOff P1OUT &=~ (1<<led) #define baroSensorPin A5 #define parachutePin 2 #define parachuteLaunch P1OUT |= (1<<parachutePin) #define parachuteStop P1OUT &=~ (1<<parachutePin) int baroSensorValue = 0; int ouverture = 0; int i=0; int altitudeSol =0; int altitude =0; int altitudeMoy =0; int altitudeMax =0; int incomingByte = 0; void setup() { ledModeOut; } void loop() { i=3; altitude=0; ledOn; while (i>0) { // On réalise 3 mesures rapprochées dont on fait la moyenne pour éviter tout phénomène ératique baroSensorValue = analogRead(baroSensorPin); delay(100); altitude += baroSensorValue; // Formule à valider i--; } altitudeMoy = altitude/3; // calcul de la moyenne if (altitudeSol ==0){ altitudeSol = altitudeMoy; // Prise la première mesure } if (altitudeMoy > altitudeMax | ouverture==0){ // on continue donc à monter, mais à vérifier : comment cette valeur fluctue ? altitudeMax = altitudeMoy; } else { parachuteLaunch; // On lance le parachute delay(200); // temps nécessaire pour libérer le parachute parachuteStop; // On arrête le moteur ouverture=1; // Le parachute est maintenant ouvert Serial.begin(9600); // On ouvre le port série } if (Serial.available() > 0) { incomingByte = Serial.read(); if (incomingByte == 115){ // si on reçoit la lettre s dans le port série, le MSP430 répond : Serial.print("La fusée est montée à : "); Serial.print(altitudeMax - altitudeSol); Serial.println("m"); } } }