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

ma branche

parent 7c0da2d2
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
#include "./rplidar_sdk/sdk/sdk/include/rplidar.h" #include "./rplidar_sdk-master/sdk/include/sl_lidar.h"
#include "./rplidar_sdk/sdk/sdk/include/rplidar_driver.h" #include "./rplidar_sdk-master/sdk/include/sl_lidar_driver.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
using namespace sl;
int main(int argc, char const *argv[]) int main(int argc, char const *argv[])
{ {
// Create communication instance channel
IChannel *channel;
channel = *createSerialPortChannel("/dev/ttyUSB0", 115200);
// LiDAR Driver instance
ILidarDriver *lidar = *createLidarDriver();
auto res = lidar->connect(channel);
if (SL_IS_OK(res)) {
// Infos sur le LiDAR
sl_lidar_response_device_info_t deviceInfo;
res = lidar->getDeviceInfo(deviceInfo);
if (SL_IS_OK(res)) {
printf("Model: %d, Firmware Version: %d.%d, Hardware Version: %d\n",
deviceInfo.model,
deviceInfo.firmware_version >> 8, deviceInfo.firmware_version & 0xffu,
deviceInfo.hardware_version);
} else {
fprintf(stderr, "Failed to get device information from LIDAR %08x\r\n", res);
}
} else {
fprintf(stderr, "Failed to connect to LIDAR %08x\r\n", res);
}
lidar->setMotorSpeed(0);
std::vector<LidarScanMode> scanmode;
lidar->getAllSupportedScanModes(scanmode);
// Delete the instances
delete lidar;
delete channel;
return 0; return 0;
} }
...@@ -3,53 +3,58 @@ ...@@ -3,53 +3,58 @@
#include <unistd.h> #include <unistd.h>
#include <iostream> #include <iostream>
#include <string.h> #include <string.h>
#include <math.h>
#include <wiringPi.h> #include <wiringPi.h>
#include <wiringPiSPI.h> #include <wiringPiSPI.h>
using namespace std; using namespace std;
unsigned char rawData[4]; const int BYTE_len=4;
const int len = 32; const int SPI_CHANNEL=1;
unsigned char rawData[BYTE_len];
unsigned char rawData_delayed[BYTE_len];
float count;
float count_delayed;
float speed;
int freq=50000;
int main(int argc, char const *argv[]) int main(int argc, char const *argv[])
{ {
rawData_delayed[0]=0x00;
rawData_delayed[1]=0x00;
rawData_delayed[2]=0x00;
rawData_delayed[3]=0x00;
if (wiringPiSetup() == -1) { if (wiringPiSetup() == -1) {
printf("WiringPiSetup failed\n"); printf("WiringPiSetup failed\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
//memset(rawData,0x33,8); //memset(rawData,0x01,BYTE_len);
rawData[0]=0x0F; //rawData[0]=0x0F;
rawData[7]=0x0F; rawData[3]=0xFF;
int fd = wiringPiSPISetup(0, 500000); rawData[0]=0x11;
int fd = wiringPiSPISetup(SPI_CHANNEL, 500000);
//for (int i=0; i<8; i++){ //for (int i=0; i<4; i++){
// printf("%d", rawData[i]); //printf("%02X \n", rawData[i]);
//} //}
while(1) { while(1) {
int result = wiringPiSPIDataRW(0, rawData, len); int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len);
//printf("speed\n"); printf("\n%02X %02X %02X %02X", rawData[0], rawData[1], rawData[2], rawData[3]);
//fflush(stdout);
printf("\r%02X %02X %02X %02X", rawData[0], rawData[1], rawData[2], rawData[3]); //printf("\n");
fflush(stdout); count=(rawData[0]*pow(16, 4))+(rawData[1]*pow(16, 2))+(rawData[2]*pow(16, 0));
//speed=100*(count-count_delayed);
delay(500); //printf("\r%lf", count);
//fflush(stdout);
count_delayed=count;
//printf("\n");
sleep(0.5);
} }
return 0; return 0;
/*
pinMode(ENC_PIN_1A, INPUT);
pinMode(ENC_PIN_1B, INPUT);
pinMode(ENC_PIN_2A, INPUT);
pinMode(ENC_PIN_2B, INPUT);
*/
} }
\ No newline at end of file
...@@ -31,7 +31,7 @@ int main(int argc, char const *argv[]) ...@@ -31,7 +31,7 @@ int main(int argc, char const *argv[])
printf("There we go !\n"); printf("There we go !\n");
delay(2000); delay(10000);
printf("And we stop\n"); printf("And we stop\n");
......
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