mirror of
https://git.etud.insa-toulouse.fr/boujon/voilier-team-1.git
synced 2025-06-08 07:50:49 +02:00
Updated readme with battery and remote
This commit is contained in:
parent
ee1bc88962
commit
8793ad9d28
1 changed files with 23 additions and 8 deletions
31
README.md
31
README.md
|
@ -203,9 +203,9 @@ ___
|
|||
|
||||
La télécommande permet deux choses via l'IHM :
|
||||
- Transmettre la vitesse de rotation demandé et le sens pour le voilier
|
||||
- Afficher une transmission série d'informations importantes comme la tension de la batterie, si le voilier a chavirer et toutes les 3 secondes les données de l'accéléromètre
|
||||
- Afficher le niveau de batterie actuel ainsi que le temps en heures et minutes
|
||||
|
||||
*Cette implémentation utiliser le driver Uart fait durant le projet*
|
||||
*Cette implémentation utilise le driver UART qui a été tout d'abord réalisé par Guilhem et modifié par la suite par Yohan pour corriger d'eventuels bugs et produire un driver adapté au besoin.*
|
||||
|
||||
___
|
||||
|
||||
|
@ -248,7 +248,7 @@ MyUART_Init(&uartCool);
|
|||
MyUART_Init_Periph(remote);
|
||||
```
|
||||
|
||||
La fonction initRemote initialise l'UART qui va être utilisé afin de communiquer avec la télécommande du projet voilier. Elle initialiser donc les broches, puis les registres et enfin déclare la fonction remote comme la nouvelle *Interrupt request handler* de ce timer.
|
||||
La fonction initRemote initialise l'UART qui va être utilisé afin de communiquer avec la télécommande du projet voilier. Elle initialiser donc les broches, puis les registres et enfin déclare la fonction remote comme la nouvelle *Interrupt request handler* de ce timer. A noter que la variable **uartCool** est globale et elle sera externalisée pour être utilisée par la suite sur plusieurs autres implémentations.
|
||||
|
||||
**void testRemote(void)**
|
||||
```c
|
||||
|
@ -259,7 +259,19 @@ MyUART_Send(&uartCool,'u');
|
|||
MyUART_Send(&uartCool,'t');
|
||||
```
|
||||
|
||||
La fonction testRemote teste basiquement si la télécommande fonctionne en lui envoyant une chaîne de caractère.
|
||||
La fonction testRemote est inutilisé mais nous a permis de savoir pendant un temps si l'UART était bien fonctionnel. Aujourd'hui une nouvelle fonction permettant l'envoi d'une chaîne de caractère a été réalisé. A la demande du projet, la taille est demandée comme argument de fonction :
|
||||
**int MyUART_SendArray(MyUART_Struct_Typedef *UART, uint8_t * data, int dataLength)**
|
||||
```c
|
||||
int i;
|
||||
for(i=0; i<dataLength; i++)
|
||||
{
|
||||
UART->UART->DR = data[i];
|
||||
while (!(UART->UART->SR & USART_SR_TXE));
|
||||
}
|
||||
return 0;
|
||||
```
|
||||
|
||||
Ici, pour une chaîne donnée, on envoie chacune des données de la même manière que MyUART_Send, mais plus complet. Une fonction prenant comme argument un **const char \*** aurait pu lui aussi être utilisé.
|
||||
|
||||
#### Test de l'implémentation
|
||||
|
||||
|
@ -475,7 +487,10 @@ MyUART_SendArray(&uartCool, (uint8_t *)testChar, 24);
|
|||
MyUART_Send(&uartCool, '\n');
|
||||
```
|
||||
|
||||
ss
|
||||
Cette dernière affiche le niveau de la batterie ainsi que les heures et les minutes de la manière suivante :
|
||||
```
|
||||
[19:11] [_#########] 088%
|
||||
```
|
||||
|
||||
**void getGauge(char gauge[], float percent)**
|
||||
```c
|
||||
|
@ -492,7 +507,7 @@ for(i=(10-percent)+1; i<11; i++)
|
|||
gauge[12]='\0';
|
||||
```
|
||||
|
||||
ss
|
||||
Cette fonction permet, en fonction d'un pourcentage de batterie donnée, de remplir la chaîne de caractère gauge avec des dièse correspondant au niveau de la batterie (max : 10)
|
||||
|
||||
**void initBattery(void)**
|
||||
```c
|
||||
|
@ -503,7 +518,7 @@ MyGPIO_Struct_TypeDef gpioBattery = {GPIOC,0,In_Analog};
|
|||
MyGPIO_Init(&gpioBattery);
|
||||
```
|
||||
|
||||
ss
|
||||
initialisation de la batterie, avec les gpio associées à l'ADC, ainsi que les règlages pour l'ADC.
|
||||
|
||||
**char isClose(uint32_t data, uint32_t compare, int precision)**
|
||||
```c
|
||||
|
@ -514,7 +529,7 @@ if(data < precision)
|
|||
return !((data >= compare+precision) || (data <= compare-precision));
|
||||
```
|
||||
|
||||
ss
|
||||
Fonction pour tester si l'adc détecte une forte augmentation ou diminution de l'adc. data correspond à la donnée actuelle, et compare à la donnée précédente. La precision correspond à un pas permettant de vérifier cette dite augmentation. Par exemple si la tension chute de 50 unités et que la précision est de 40, alors la fonction renverra 0. Sinon 1.
|
||||
|
||||
#### Test de l'implémentation
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue