commit e76f016f51d266192e050ded685f78c43e13b3ac Author: Ulysse Cura Date: Sun May 25 20:40:43 2025 +0200 first commit diff --git a/Code Telecommande/.gitignore b/Code Telecommande/.gitignore new file mode 100644 index 0000000..d163863 --- /dev/null +++ b/Code Telecommande/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/Code Telecommande/.vscode/c_cpp_properties.json b/Code Telecommande/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..643d42c --- /dev/null +++ b/Code Telecommande/.vscode/c_cpp_properties.json @@ -0,0 +1,33 @@ +{ + "env": { + "myDefaultIncludePath": [ + "${workspaceFolder}/src/include/", + "${env:PICO_SDK_PATH}/src/**/include/", + "${env:PICO_SDK_PATH}/lib/**/include/", + "${workspaceFolder}/build/generated/pico_base/" + ], + "myCompilerPath": "/usr/bin/arm-none-eabi-gcc" + }, + + "configurations": [ + { + "name": "Linux", + "intelliSenseMode": "linux-gcc-arm", + "includePath": [ + "${myDefaultIncludePath}" + ], + "compilerPath": "/usr/bin/arm-none-eabi-gcc", + "cStandard": "c11", + "cppStandard": "c++17", + "browse": { + "path": [ + "${workspaceFolder}" + ], + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "" + }, + "configurationProvider": "ms-vscode.cmake-tools" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/Code Telecommande/.vscode/tasks.json b/Code Telecommande/.vscode/tasks.json new file mode 100644 index 0000000..1255bf5 --- /dev/null +++ b/Code Telecommande/.vscode/tasks.json @@ -0,0 +1,25 @@ +{ + "tasks": [ + { + "type": "shell", + "command": "cd build; cmake -DPICO_BOARD=pico_w ..; make", + "label": "CMake in build/", + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": false + } + }, + { + "type": "shell", + "command": "cd build; cmake -DPICO_BOARD=pico_w ..; make Flash", + "label": "CMake & Make & Flash", + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/Code Telecommande/CMakeLists.txt b/Code Telecommande/CMakeLists.txt new file mode 100644 index 0000000..4d5b3ae --- /dev/null +++ b/Code Telecommande/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.13) + +include(pico_sdk_import.cmake) + +project(controller C CXX ASM) +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR}) + +# Définir explicitement la carte comme Pico W +set(PICO_BOARD pico_w) +if(NOT DEFINED PICO_BOARD) + add_definitions(-DPICO_BOARD=${PICO_BOARD}) +endif() + +pico_sdk_init() + +add_executable(controller + src/main.c + src/wifi_operator.c + src/udp_server.c +) + +target_include_directories(controller PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/src + ${CMAKE_CURRENT_LIST_DIR}/src/include +) + +target_link_libraries(controller + hardware_adc + hardware_uart + pico_stdlib + pico_cyw43_arch_lwip_poll +) + +pico_enable_stdio_usb(controller 1) +pico_enable_stdio_uart(controller 1) + +pico_add_extra_outputs(controller) + +add_custom_target(Flash + DEPENDS controller + COMMAND sudo picotool load -f ${PROJECT_BINARY_DIR}/controller.uf2 +) diff --git a/Code Telecommande/Readme.md b/Code Telecommande/Readme.md new file mode 100644 index 0000000..e7d6a53 --- /dev/null +++ b/Code Telecommande/Readme.md @@ -0,0 +1,9 @@ +Télécommande du robot Junior de Riombotique +======================================= + +* Lit les valeurs tout ou rien des boutons +* Lit les valeurs analogiques des joystick +* Ajoute un peu de logique pour enchainer les actions avec la pince +* Envoie les données par liaison UDP en étant un AP et serveur. + +Travail réalisé par l'équipe Junior du club Robotique de Riom diff --git a/Code Telecommande/pico_sdk_import.cmake b/Code Telecommande/pico_sdk_import.cmake new file mode 100644 index 0000000..28efe9e --- /dev/null +++ b/Code Telecommande/pico_sdk_import.cmake @@ -0,0 +1,62 @@ +# This is a copy of /external/pico_sdk_import.cmake + +# This can be dropped into an external project to help locate this SDK +# It should be include()ed prior to project() + +if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) + set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) + message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") +endif () + +if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) + set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) + message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") +endif () + +if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) + set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) + message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") +endif () + +set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK") +set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable") +set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") + +if (NOT PICO_SDK_PATH) + if (PICO_SDK_FETCH_FROM_GIT) + include(FetchContent) + set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) + if (PICO_SDK_FETCH_FROM_GIT_PATH) + get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") + endif () + FetchContent_Declare( + pico_sdk + GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk + GIT_TAG master + ) + if (NOT pico_sdk) + message("Downloading Raspberry Pi Pico SDK") + FetchContent_Populate(pico_sdk) + set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) + endif () + set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) + else () + message(FATAL_ERROR + "SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." + ) + endif () +endif () + +get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") +if (NOT EXISTS ${PICO_SDK_PATH}) + message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") +endif () + +set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) +if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) + message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK") +endif () + +set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE) + +include(${PICO_SDK_INIT_CMAKE_FILE})