Skip to content
Extraits de code Groupes Projets
Valider 54245c73 rédigé par Diego de Bernard de Fauconval's avatar Diego de Bernard de Fauconval
Parcourir les fichiers

ça faisait longtemps autant uploader de temps en temps

parent b28b809f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
.PHONY : clean #all
.PHONY : clean dieg#all
# ++ = g++
......@@ -12,6 +12,12 @@
# commande de lancement
dieg:
rm -rf dieg
g++ dieg.cpp -o dieg -lwiringPi
sudo ./dieg
switch : compile_switch
sudo ./switch
......@@ -41,7 +47,7 @@ compile_switch :
g++ -o switch switch.cpp -lwiringPi
compile_motor :
gcc -o motor motor.c -lwiringPi
g++ -o motor motor.cpp -lwiringPi
compile_LED :
g++ -o i2c I2C.cpp -lwiringPi
......
Fichier ajouté
#include <wiringPi.h>
#include <wiringPiSPI.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <conio.h>
const int PWM_PIN_RIGHT = 23;
const int M1DIR_RIGHT = 21;
const int PWM_PIN_LEFT = 26;
const int M2DIR_LEFT = 22;
int main(int argc, char const *argv[])
{
if (wiringPiSetup() == -1) {
printf("WiringPiSetup failed\n");
exit(EXIT_FAILURE);
}
pinMode(PWM_PIN_RIGHT, PWM_OUTPUT);
pinMode(PWM_PIN_LEFT, PWM_OUTPUT);
pinMode(M1DIR_RIGHT, OUTPUT);
pinMode(M2DIR_LEFT, OUTPUT);
digitalWrite(M1DIR_RIGHT, 1);
int fd;
fd = wiringPiSPISetup(1, 1000000);
unsigned char buffer [4];
buffer[0] = 0x00;
buffer[1] = 0x00;
buffer[2] = 0x00;
buffer[3] = 0x00;
wiringPiSPIDataRW(1, buffer, 4);
sleep(1);
buffer[0] = 0x00;
buffer[1] = 0x00;
buffer[2] = 0x00;
buffer[3] = 0x01;
wiringPiSPIDataRW(1, buffer, 4);
pwmWrite(PWM_PIN_RIGHT, 560);
while (1)
{
if (kbhit()) goto end;
buffer[0] = 0x00;
buffer[1] = 0x00;
buffer[2] = 0x00;
buffer[3] = 0x01;
wiringPiSPIDataRW(1,buffer, 4);
printf("%x %x %x %x\n", buffer[0],buffer[1],buffer[2],buffer[3]);
sleep(1);
}
end:
pwmWrite(PWM_PIN_RIGHT, 0);
return 0;
}
Aucun aperçu pour ce type de fichier
......@@ -19,7 +19,8 @@ float clock_count;
float count_delayed;
float speed;
int freq=500000;
int res = 2048;
int res = 64;
int i =0;
int main(int argc, char const *argv[])
{
......@@ -34,8 +35,7 @@ int main(int argc, char const *argv[])
}
//memset(rawData,0x01,BYTE_len);
//rawData[0]=0x0F;
rawData[3]=0x01;
rawData[3]=0x00;
rawData[2]=0x00;
rawData[1]=0x00;
rawData[0]=0x00;
......@@ -44,28 +44,33 @@ int main(int argc, char const *argv[])
//for (int i=0; i<4; i++){
//printf("%02X \n", rawData[i]);
//}
//FILE *file = fopen("encoder.txt", "w");
FILE *file = fopen("encoder.txt", "w");
while(1) {
int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len);
//printf("\r%02X %02X %02X %02X", rawData[0], rawData[1], rawData[2], rawData[3]);
//printf("\n%02X %02X %02X %02X", rawData[0], rawData[1], rawData[2], rawData[3]);
//fflush(stdout);
//printf("\n");
count=((rawData[0]*pow(16, 4))+(rawData[1]*pow(16, 2))+(rawData[2]*pow(16, 0)))/4;
printf("\n%d %d %d %d %d", rawData[0], rawData[1], rawData[2], rawData[3], rawData[4]);
//fprintf(file, "\n%d %d %d %d", rawData[0], rawData[1], rawData[2], rawData[3]);
count=(rawData[0]*pow(16, 4))+(rawData[1]*pow(16, 2))+(rawData[2]*pow(16, 0));
//printf("\r%lf", count);
//printf("\n%d %d %d %d", rawData[0], rawData[1], rawData[2], rawData[3]);
//fflush(stdout);
//fflush(stdout);
//clock_count=(rawData[2]*pow(16, 2))+(rawData[3]*pow(16, 0));
//speed=clock_count*(2*3.1415/res)*(count);
//printf("\n%lf", count);
//fflush(stdout);
//count_delayed=count;
speed=(60/(2*3.1415))*(2*3.1415/res)*50000000/(count-count_delayed);
printf("\r%lf", speed);
fflush(stdout);
count_delayed=count;
//printf("\n");
sleep(0.5);
//sleep(1);
i+=1;
if (speed!=INFINITY){
fprintf(file, "\n%lf,%d",speed, i);}
if (kbhit()) break;
}
//fclose(file);
fclose(file);
return 0;
}
......
Ce diff est replié.
i2c 0 → 100755
Fichier ajouté
Aucun aperçu pour ce type de fichier
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <conio.h>
#include <unistd.h>
#include <wiringPi.h>
......@@ -9,7 +11,8 @@ const int M1DIR_RIGHT = 21;
const int PWM_PIN_LEFT = 26;
const int M2DIR_LEFT = 22;
int wheelSpeed = 600;
// PWM pour vitesse minimale
int wheelSpeed = 550;
int main(int argc, char const *argv[])
{
......@@ -21,20 +24,22 @@ int main(int argc, char const *argv[])
pinMode(PWM_PIN_LEFT, PWM_OUTPUT);
pinMode(M1DIR_RIGHT, OUTPUT);
pinMode(M2DIR_LEFT, OUTPUT);
printf("pin ready !\n");
printf("pin ready\n");
digitalWrite(M1DIR_RIGHT, 1);
digitalWrite(M2DIR_LEFT, 0);
pwmWrite(PWM_PIN_RIGHT, wheelSpeed);
pwmWrite(PWM_PIN_LEFT, wheelSpeed);
printf("There we go !\n");
delay(10000);
pwmWrite(PWM_PIN_RIGHT, 0);
// pwmWrite(PWM_PIN_LEFT, wheelSpeed);
printf("And we stop\n");
for (int i = 566; i < 600; i+=5) { //DEBUT=566 FIN=?
printf("motor @pwm = %i\n", i);
pwmWrite(PWM_PIN_RIGHT, i);
if (kbhit()) goto end;
sleep(2);
}
end:
pwmWrite(PWM_PIN_RIGHT, 0);
pwmWrite(PWM_PIN_LEFT, 0);
......
spi 0 → 100755
Fichier ajouté
Fichier ajouté
Fichier ajouté
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter