Projet IMA3 P7, 2015/2016, TD1 : Différence entre versions
(→Partie informatique) |
(→Partie informatique) |
||
Ligne 46 : | Ligne 46 : | ||
Nous avons programmé une carte Arduino pour un servomoteur. | Nous avons programmé une carte Arduino pour un servomoteur. | ||
A l'aide du programme, nous essayons de récuperer les données concernant l'angle de rotation qu'il effectue, dans l'optique de trouver une concordance entre l'angle de rotation et la tension maximale aux bornes du panneau photovoltaique. | A l'aide du programme, nous essayons de récuperer les données concernant l'angle de rotation qu'il effectue, dans l'optique de trouver une concordance entre l'angle de rotation et la tension maximale aux bornes du panneau photovoltaique. | ||
+ | |||
+ | Programme Arduino : | ||
+ | |||
+ | #include <Servo.h> | ||
+ | int pos =0; | ||
+ | |||
+ | void setup(void) | ||
+ | { | ||
+ | myservo.attach(9); | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | void loop(void) | ||
+ | { | ||
+ | for (pos = 0;pos <= 180; pos +=1) | ||
+ | { | ||
+ | myservo.write(pos); | ||
+ | Serial.print(" position = "); | ||
+ | Serial.print(pos); | ||
+ | delay(15); | ||
+ | } | ||
+ | for (pos = 180; pos >= 0; pos -= 1) | ||
+ | { | ||
+ | myservo.write(pos); | ||
+ | Serial.print(" position = " ); | ||
+ | Serial.print(pos); | ||
+ | delay(15); | ||
+ | } | ||
+ | } | ||
== Séance 2 == | == Séance 2 == |
Version du 25 février 2016 à 16:44
Projet IMA3-SC 2015/2016 : Détecteur de luminosité rotatif
Cahier des charges
Contexte
Lors de l'installation de panneaux photo-voltaïques, il est important de rentabiliser au plus vite l'investissement. Trouver la direction ou la luminosité est la plus prononcée permettrait de réaliser ceci.
Objectif du projet
Le but est d'équiper un appareil commandé par un moteur à l'aide d'informations transmise par des photo-transistor afin de capter la direction où la luminosité est maximale.
Description du projet
Un bras fixe sera entraîné par un moteur où sera fixé 3 photo-transistors connecté à un FPGA contrôlant le moteur, ainsi nous devrons réaliser une interface Web qui nous permettra de choisir si l'on veut que le déplacement du bras soit automatique ou géré par commande numérique.
Une application Web doit être réalisée sur un système embarqué de type Raspberry Pi pour contrôler le bras et afficher la valeur de la luminosité que les capteurs reçoivent.
Matériel
- 3 photo-transistors
- Un moteur
- Un bras fixe
- Une NanoBoard
- Une carte Raspberry Pi
Étapes du projet
- Réaliser le bras fixe et fixer les photo-transistors
- Réaliser l'application Web codée en HTML5 et CSS et pour la partie dynamique, le Javascript et le PHP
- Programmer la carte Raspberry Pi
Séance 1
Partie électronique
Durant cette première séance de projet, nous avons pu prendre connaissance de tous les composants que nous allons utiliser par la suite. Cependant, notre projet initial a été changé. Nous n'allons plus utiliser de photo transistor mais un panneau solaire où nous allons détecter la maximum de tension grâce à une rotation totale initiale lors du lancement du programme. Cette position sera sauvegardé et la deuxième phase sera de retourner à cette position et de suivre un déplacement ( comme si l'on voulait suivre le déplacement du soleil, il est donc connu à l'avance ) lorsque la tension baisse.
Nous avons donc commencé à étudier sur le servomoteur. Nous avons regardé la datasheet pour comprendre comment câbler le servomoteur. Lors de la fin de la séance, nous avons travaillé sur le panneau photo-voltaïque et plus exactement sur la tension qu'il délivre selon la luminosité qu'il reçoit.
Partie informatique
Nous avons programmé une carte Arduino pour un servomoteur. A l'aide du programme, nous essayons de récuperer les données concernant l'angle de rotation qu'il effectue, dans l'optique de trouver une concordance entre l'angle de rotation et la tension maximale aux bornes du panneau photovoltaique.
Programme Arduino :
#include <Servo.h> int pos =0; void setup(void) { myservo.attach(9); Serial.begin(9600); } void loop(void) { for (pos = 0;pos <= 180; pos +=1) { myservo.write(pos); Serial.print(" position = "); Serial.print(pos); delay(15); } for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); Serial.print(" position = " ); Serial.print(pos); delay(15); } }