mirror of
https://github.com/RobotechLille/cdf2018-principal
synced 2024-11-23 16:46:04 +01:00
Misc
This commit is contained in:
parent
1ef117c0ad
commit
48b2901da4
|
@ -5,7 +5,7 @@ CC=gcc
|
||||||
# Bibliothèques
|
# Bibliothèques
|
||||||
LIBS=
|
LIBS=
|
||||||
## Drapeaux pour le linker
|
## Drapeaux pour le linker
|
||||||
LDFLAGS_CUSTOM += -lpthread -lwiringPi
|
LDFLAGS_CUSTOM += -lpthread -lwiringPi -lm
|
||||||
## Drapeaux pour le compilateur
|
## Drapeaux pour le compilateur
|
||||||
CFLAGS_CUSTOM += -g
|
CFLAGS_CUSTOM += -g
|
||||||
## Générateurs de drapeaux pour les bibliothèques
|
## Générateurs de drapeaux pour les bibliothèques
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
#define FPGA_PORTNAME "/dev/ttyUSB0"
|
#define FPGA_PORTNAME "/dev/ttyUSB0"
|
||||||
#define CF_BAUDRATE B115200
|
#define CF_BAUDRATE B115200
|
||||||
// #define PRINTRAWDATA
|
#define PRINTRAWDATA
|
||||||
|
|
||||||
int fpga;
|
int fpga;
|
||||||
pthread_mutex_t sSendCF;
|
pthread_mutex_t sSendCF;
|
||||||
|
|
|
@ -26,7 +26,7 @@ int nextId()
|
||||||
|
|
||||||
if (d) {
|
if (d) {
|
||||||
while ((dir = readdir(d)) != NULL) {
|
while ((dir = readdir(d)) != NULL) {
|
||||||
ret = sscanf(dir->d_name, "%d", &id);
|
ret = sscanf(dir->d_name, "%06d", &id);
|
||||||
if (ret == 1 && id > maxId) {
|
if (ret == 1 && id > maxId) {
|
||||||
maxId = id;
|
maxId = id;
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ void configureDebug()
|
||||||
|
|
||||||
// Génération du nom de fichier
|
// Génération du nom de fichier
|
||||||
char path[256];
|
char path[256];
|
||||||
sprintf(path, "log/%d.csv", nextId());
|
sprintf(path, "log/%06d.csv", nextId());
|
||||||
|
|
||||||
// Open file
|
// Open file
|
||||||
debugFd = fopen(path, "w");
|
debugFd = fopen(path, "w");
|
||||||
|
|
|
@ -34,12 +34,11 @@ int setMoteurTension(float lVolt, float rVolt)
|
||||||
|
|
||||||
msg.in = 0x00;
|
msg.in = 0x00;
|
||||||
|
|
||||||
|
// TODO Protections
|
||||||
|
|
||||||
// Gauche
|
// Gauche
|
||||||
bool lFor = lVolt < 0;
|
bool lFor = lVolt < 0;
|
||||||
lVolt = fabs(lVolt);
|
lVolt = fabs(lVolt);
|
||||||
if (lVolt > MOT_MAX_V) {
|
|
||||||
lVolt = MOT_MAX_V;
|
|
||||||
}
|
|
||||||
msg.in |= 1 << (lFor ? IN1 : IN2);
|
msg.in |= 1 << (lFor ? IN1 : IN2);
|
||||||
msg.ena = tensionToPWM(lVolt);
|
msg.ena = tensionToPWM(lVolt);
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "position.h"
|
#include "position.h"
|
||||||
|
#include "dimensions.h"
|
||||||
|
|
||||||
// Globales
|
// Globales
|
||||||
struct position actuel;
|
struct position connu;
|
||||||
struct F2CI_CODERs deltaCoders;
|
struct F2CI_CODERs deltaCoders;
|
||||||
pthread_mutex_t posPolling;
|
pthread_mutex_t posPolling;
|
||||||
pthread_t tPosition;
|
pthread_t tPosition;
|
||||||
|
@ -42,6 +44,15 @@ void* TaskPosition(void* pData)
|
||||||
nbCalcPos++;
|
nbCalcPos++;
|
||||||
lCodTot += deltaCoders.dL;
|
lCodTot += deltaCoders.dL;
|
||||||
rCodTot += deltaCoders.dR;
|
rCodTot += deltaCoders.dR;
|
||||||
|
|
||||||
|
float deltaO = atan2(deltaCoders.dR - deltaCoders.dL, DISTANCE_BETWEEN_WHEELS);
|
||||||
|
float deltaD = (deltaCoders.dL + deltaCoders.dR) / 2;
|
||||||
|
|
||||||
|
connu.o += deltaO;
|
||||||
|
float deltaX = deltaD * cos(connu.o);
|
||||||
|
float deltaY = deltaD * sin(connu.o);
|
||||||
|
connu.x += deltaX;
|
||||||
|
connu.y += deltaY;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -58,6 +69,12 @@ void configurePosition()
|
||||||
registerRxHandler(F2CI_CODER, onF2CI_CODER);
|
registerRxHandler(F2CI_CODER, onF2CI_CODER);
|
||||||
registerDebugVar("lCodTot", ld, &lCodTot);
|
registerDebugVar("lCodTot", ld, &lCodTot);
|
||||||
registerDebugVar("rCodTot", ld, &rCodTot);
|
registerDebugVar("rCodTot", ld, &rCodTot);
|
||||||
|
connu.x = 0;
|
||||||
|
connu.y = 0;
|
||||||
|
connu.o = 0;
|
||||||
|
registerDebugVar("xConnu", f, &connu.x);
|
||||||
|
registerDebugVar("yConnu", f, &connu.y);
|
||||||
|
registerDebugVar("oConnu", f, &connu.o);
|
||||||
registerDebugVar("nbCalcPos", d, &nbCalcPos);
|
registerDebugVar("nbCalcPos", d, &nbCalcPos);
|
||||||
pthread_create(&tPosition, NULL, TaskPosition, NULL);
|
pthread_create(&tPosition, NULL, TaskPosition, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
#include "movement.h"
|
#include "movement.h"
|
||||||
#include "buttons.h"
|
#include "buttons.h"
|
||||||
|
|
||||||
|
#define PATATE 3.3/2
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -29,22 +31,22 @@ int main(int argc, char* argv[])
|
||||||
for (;;) {
|
for (;;) {
|
||||||
clearLCD();
|
clearLCD();
|
||||||
printToLCD(LCD_LINE_1, "Forward");
|
printToLCD(LCD_LINE_1, "Forward");
|
||||||
changerMoteurs(3.3, 3.3);
|
changerMoteurs(PATATE, PATATE);
|
||||||
pressedButton(BUT_BLOCK);
|
pressedButton(BUT_BLOCK);
|
||||||
|
|
||||||
clearLCD();
|
clearLCD();
|
||||||
printToLCD(LCD_LINE_1, "Right");
|
printToLCD(LCD_LINE_1, "Right");
|
||||||
changerMoteurs(-3.3, 3.3);
|
changerMoteurs(-PATATE, PATATE);
|
||||||
pressedButton(BUT_BLOCK);
|
pressedButton(BUT_BLOCK);
|
||||||
|
|
||||||
clearLCD();
|
clearLCD();
|
||||||
printToLCD(LCD_LINE_1, "Left");
|
printToLCD(LCD_LINE_1, "Left");
|
||||||
changerMoteurs(-3.3, -3.3);
|
changerMoteurs(-PATATE, -PATATE);
|
||||||
pressedButton(BUT_BLOCK);
|
pressedButton(BUT_BLOCK);
|
||||||
|
|
||||||
clearLCD();
|
clearLCD();
|
||||||
printToLCD(LCD_LINE_1, "Backward");
|
printToLCD(LCD_LINE_1, "Backward");
|
||||||
changerMoteurs(3.3, -3.3);
|
changerMoteurs(PATATE, -PATATE);
|
||||||
pressedButton(BUT_BLOCK);
|
pressedButton(BUT_BLOCK);
|
||||||
|
|
||||||
clearLCD();
|
clearLCD();
|
||||||
|
|
62
chef/src/testUpDown.c
Normal file
62
chef/src/testUpDown.c
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/* Teste si une broche est connecté à une autre */
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <wiringPi.h>
|
||||||
|
#include <wiringPiI2C.h>
|
||||||
|
|
||||||
|
#include "lcd.h"
|
||||||
|
#include "CF.h"
|
||||||
|
#include "movement.h"
|
||||||
|
#include "buttons.h"
|
||||||
|
|
||||||
|
#define UP_TIME 1000
|
||||||
|
#define HIGH_TIME 3000
|
||||||
|
#define DOWN_TIME 1000
|
||||||
|
#define LOW_TIME 2000
|
||||||
|
#define MAXI 3.3
|
||||||
|
#define INTERVAL 10
|
||||||
|
|
||||||
|
void changerMoteursWrapper(float l, float r) {
|
||||||
|
/* clearLCD(); */
|
||||||
|
printfToLCD(LCD_LINE_1, "L: %f", l);
|
||||||
|
printfToLCD(LCD_LINE_2, "R: %f", r);
|
||||||
|
changerMoteurs(l, r);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
(void)argc;
|
||||||
|
(void)argv;
|
||||||
|
|
||||||
|
wiringPiSetup();
|
||||||
|
|
||||||
|
initI2C();
|
||||||
|
initLCD();
|
||||||
|
configureCF();
|
||||||
|
configureButtons();
|
||||||
|
configureMovement();
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
for (int i = 0; i < UP_TIME; i += INTERVAL) {
|
||||||
|
float p = (float)i / (float)UP_TIME;
|
||||||
|
changerMoteursWrapper(p * MOT_MAX_V, p * MOT_MAX_V);
|
||||||
|
delay(INTERVAL);
|
||||||
|
}
|
||||||
|
changerMoteursWrapper(MOT_MAX_V, MOT_MAX_V);
|
||||||
|
delay(HIGH_TIME);
|
||||||
|
|
||||||
|
for (int i = 0; i < DOWN_TIME; i += INTERVAL) {
|
||||||
|
float p = (float)i / (float)DOWN_TIME;
|
||||||
|
p = 1 - p;
|
||||||
|
changerMoteursWrapper(p * MOT_MAX_V, p * MOT_MAX_V);
|
||||||
|
delay(INTERVAL);
|
||||||
|
}
|
||||||
|
changerMoteursWrapper(0, 0);
|
||||||
|
delay(LOW_TIME);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
2
log/.gitignore
vendored
Normal file
2
log/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
*
|
||||||
|
!.gitignore
|
|
@ -125,6 +125,10 @@ restart:
|
||||||
ssh -F sshconf principal true
|
ssh -F sshconf principal true
|
||||||
ssh -F sshconf principal /etc/init.d/S50chef restart
|
ssh -F sshconf principal /etc/init.d/S50chef restart
|
||||||
|
|
||||||
|
getlogs:
|
||||||
|
ssh -F sshconf principal true
|
||||||
|
rsync --rsh 'ssh -F sshconf' --archive principal:/opt/chef/log/* ../log/
|
||||||
|
|
||||||
gdbcommands:
|
gdbcommands:
|
||||||
echo "set sysroot $(TARGET_DIR)" > "$@"
|
echo "set sysroot $(TARGET_DIR)" > "$@"
|
||||||
echo "exec-file $(TARGET_DIR)$(EXECDIR)$(EXECPATH)" >> "$@"
|
echo "exec-file $(TARGET_DIR)$(EXECDIR)$(EXECPATH)" >> "$@"
|
||||||
|
|
|
@ -7,6 +7,7 @@ start() {
|
||||||
printf "Starting Wi-Fi connection: "
|
printf "Starting Wi-Fi connection: "
|
||||||
# modprobe brcmfmac
|
# modprobe brcmfmac
|
||||||
modprobe r8188eu
|
modprobe r8188eu
|
||||||
|
modprobe 8192cu
|
||||||
ifup wlan0
|
ifup wlan0
|
||||||
echo "OK"
|
echo "OK"
|
||||||
}
|
}
|
||||||
|
@ -14,8 +15,6 @@ start() {
|
||||||
stop() {
|
stop() {
|
||||||
printf "Stopping Wi-Fi connection: "
|
printf "Stopping Wi-Fi connection: "
|
||||||
ifdown wlan0
|
ifdown wlan0
|
||||||
# rmmod brcmfmac
|
|
||||||
rmmod r8188eu
|
|
||||||
echo "OK"
|
echo "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue