diff --git a/LIDAR.cpp b/LIDAR.cpp deleted file mode 100644 index 2e7476a3fa29bedd8fde557112ff418ddffc2bf1..0000000000000000000000000000000000000000 --- a/LIDAR.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "./rplidar_sdk-master/sdk/include/sl_lidar.h" -#include "./rplidar_sdk-master/sdk/include/sl_lidar_driver.h" -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <string.h> -#include <unistd.h> - -using namespace sl; - -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; -} diff --git a/encoder b/encoder index 0acc8488daac86295ef30f4b9fcd2a7eb6fb8f55..e138fa44e4e6eda295aae3572dadc630fcaeee30 100755 Binary files a/encoder and b/encoder differ diff --git a/encoder.cpp b/encoder.cpp index c8db2d133ea6c784b69447543c2422916bcdfa16..4b30a6c39a48dc7699694bf7884d0225e0372341 100644 --- a/encoder.cpp +++ b/encoder.cpp @@ -14,9 +14,11 @@ const int SPI_CHANNEL=1; unsigned char rawData[BYTE_len]; unsigned char rawData_delayed[BYTE_len]; float count; +float clock_count; float count_delayed; float speed; -int freq=50000; +int freq=500000; +int res = 2048; int main(int argc, char const *argv[]) { @@ -32,8 +34,10 @@ int main(int argc, char const *argv[]) //memset(rawData,0x01,BYTE_len); //rawData[0]=0x0F; - rawData[3]=0xFF; - rawData[0]=0x11; + rawData[3]=0x00; + rawData[2]=0x00; + rawData[1]=0x00; + rawData[0]=0x00; int fd = wiringPiSPISetup(SPI_CHANNEL, 500000); //for (int i=0; i<4; i++){ @@ -42,19 +46,39 @@ int main(int argc, char const *argv[]) while(1) { int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len); - printf("\n%02X %02X %02X %02X", rawData[0], rawData[1], rawData[2], rawData[3]); + printf("\n%d %d %d %d", 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)); + count=(rawData[0]*pow(16, 2))+(rawData[1]*pow(16, 0)); + clock_count=(rawData[2]*pow(16, 2))+(rawData[3]*pow(16, 0)); - //speed=100*(count-count_delayed); + speed=clock_count*(2*3.1415/res)*(count-count_delayed); //printf("\r%lf", count); //fflush(stdout); count_delayed=count; //printf("\n"); - sleep(0.5); + //sleep(0.5); } return 0; -} \ No newline at end of file +} + +/* +while(1) { + int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len); + printf("\n%d %d %d %d", 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)); + + speed=freq*(2*3.1415/res)*(count-count_delayed); + //printf("\r%lf", count); + //fflush(stdout); + count_delayed=count; + //printf("\n"); + //sleep(0.5); + } + + */ + \ No newline at end of file diff --git a/lidar b/lidar new file mode 100755 index 0000000000000000000000000000000000000000..ea924f6bf2731f93cfe0a0c177158a3659f4cdac Binary files /dev/null and b/lidar differ diff --git a/rplidar_sdk-master/app/ultra_simple/main.cpp b/rplidar_sdk-master/app/ultra_simple/main.cpp index 3f5463ace49b4749e29cba509fcd019811d1eaf1..f3c142fa9b087af35745945aa093c8941403aea2 100644 --- a/rplidar_sdk-master/app/ultra_simple/main.cpp +++ b/rplidar_sdk-master/app/ultra_simple/main.cpp @@ -293,13 +293,17 @@ int main(int argc, const char * argv[]) { break; } + drv->stop(); + delay(200); + + drv->setMotorSpeed(0); goto on_finished; } - drv->stop(); - delay(200); - drv->setMotorSpeed(0); - + + + + // done! on_finished: diff --git a/rplidar_sdk-master/mak_common.inc b/rplidar_sdk-master/mak_common.inc index 0b63e8db4a95a6980b2f278790ca9adf8130c162..87188d2819a5451bc37e664f6a9f2efdf9ef24c9 100644 --- a/rplidar_sdk-master/mak_common.inc +++ b/rplidar_sdk-master/mak_common.inc @@ -72,6 +72,7 @@ $(APP_TARGET): $(OBJ) $(EXTRA_OBJ) $(SDK_TARGET) @$(MKDIR) `dirname $@` @echo " LD $@" $(CMD_HIDE)$(CC) $(ALL_CXXFLAGS) -o $@ $^ $(LDFLAGS) + mv $(BUILD_ROOT)/output/$(BUILD_TARGET_PLATFORM)/$(OUTPUT_BUILD_PREFIX)/lidar $(BUILD_ROOT)/.. # @@ -81,6 +82,7 @@ $(TARGET_OBJ_ROOT)/%.o: %.cpp @echo " CXX $<" $(CMD_HIDE)$(CXX) -c $(ALL_CXXFLAGS) $< -o $@ + # Compile: create object files from C source files. $(TARGET_OBJ_ROOT)/%.o: %.c @$(MKDIR) `dirname $@` @@ -91,5 +93,4 @@ $(TARGET_OBJ_ROOT)/%.o: %.c $(TARGET_OBJ_ROOT)/%.o: %.S @$(MKDIR) `dirname $@` @echo " AS $<" - $(CMD_HIDE)$(CC) -c $(ALL_ASFLAGS) $< -o $@ - + $(CMD_HIDE)$(CC) -c $(ALL_ASFLAGS) $< -o $@ \ No newline at end of file diff --git a/rplidar_sdk-master/sdk/include/rplidar.h b/rplidar_sdk-master/sdk/include/rplidar.h index 2f7de3d70a84bcd0ba118d5a646cb0751cdfee27..a6dd538baae2bfe50f50195eb4ce45cd948eec70 100644 --- a/rplidar_sdk-master/sdk/include/rplidar.h +++ b/rplidar_sdk-master/sdk/include/rplidar.h @@ -35,7 +35,7 @@ #pragma once #include <vector> -#include "hal/types.h" +#include "../src/hal/types.h" #include "rplidar_protocol.h" #include "rplidar_cmd.h"