feat: 更新第九章

This commit is contained in:
fishros
2025-02-22 20:45:21 +08:00
parent 497be290f4
commit 2738b34dc1
225 changed files with 42292 additions and 10 deletions

View File

@@ -0,0 +1 @@
.pio

View File

@@ -0,0 +1,519 @@
//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
"configurations": [
{
"name": "PlatformIO",
"includePath": [
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/include",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/src",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/lib/PidController",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/lib/Kinematics",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/libdeps/fishbot/Esp32PcntEncoder",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/libdeps/fishbot/Esp32McpwmMotor",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_server/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/freemodbus/common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_diagnostics/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rtc_store/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_insights/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp_secure_cert_mgr/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/gpio_button/button/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dotprod/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/mem/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/hann/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/nuttall/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/flat_top/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/iir/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fir/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/add/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sub/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mul/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/addc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mulc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sqrt/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/add/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/addc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mulc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/sub/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fft/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dct/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/conv/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/test/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/dio_qspi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/variants/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
""
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/include",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/src",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/lib/PidController",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/lib/Kinematics",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/libdeps/fishbot/Esp32PcntEncoder",
"/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/libdeps/fishbot/Esp32McpwmMotor",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_server/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/freemodbus/common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_diagnostics/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rtc_store/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_insights/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp_secure_cert_mgr/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/gpio_button/button/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dotprod/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/mem/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/hann/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/nuttall/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/flat_top/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/iir/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fir/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/add/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sub/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mul/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/addc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mulc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sqrt/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/add/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/addc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mulc/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/sub/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fft/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dct/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/conv/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/common/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/test/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/dio_qspi/include",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/variants/esp32",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
"/home/fishros/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
""
]
},
"defines": [
"PLATFORMIO=60116",
"ARDUINO_ESP32_DEV",
"HAVE_CONFIG_H",
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
"UNITY_INCLUDE_CONFIG_H",
"WITH_POSIX",
"_GNU_SOURCE",
"IDF_VER=\"v4.4.7-dirty\"",
"ESP_PLATFORM",
"_POSIX_READER_WRITER_LOCKS",
"ARDUINO_ARCH_ESP32",
"ESP32",
"F_CPU=240000000L",
"ARDUINO=10812",
"ARDUINO_VARIANT=\"esp32\"",
"ARDUINO_BOARD=\"Espressif ESP32 Dev Module\"",
"ARDUINO_PARTITION_default",
""
],
"cStandard": "gnu99",
"cppStandard": "gnu++11",
"compilerPath": "/home/fishros/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc",
"compilerArgs": [
"-mlongcalls",
""
]
}
],
"version": 4
}

View File

@@ -0,0 +1,10 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

View File

@@ -0,0 +1,44 @@
// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY
//
// PlatformIO Debugging Solution
//
// Documentation: https://docs.platformio.org/en/latest/plus/debugging.html
// Configuration: https://docs.platformio.org/en/latest/projectconf/sections/env/options/debug/index.html
{
"version": "0.2.0",
"configurations": [
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug",
"executable": "/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/build/fishbot/firmware.elf",
"projectEnvName": "fishbot",
"toolchainBinDir": "/home/fishros/.platformio/packages/toolchain-xtensa-esp32/bin",
"internalConsoleOptions": "openOnSessionStart",
"preLaunchTask": {
"type": "PlatformIO",
"task": "Pre-Debug"
}
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (skip Pre-Debug)",
"executable": "/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/build/fishbot/firmware.elf",
"projectEnvName": "fishbot",
"toolchainBinDir": "/home/fishros/.platformio/packages/toolchain-xtensa-esp32/bin",
"internalConsoleOptions": "openOnSessionStart"
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (without uploading)",
"executable": "/home/fishros/chapt9/fishbot_motion_control_9.3.4/.pio/build/fishbot/firmware.elf",
"projectEnvName": "fishbot",
"toolchainBinDir": "/home/fishros/.platformio/packages/toolchain-xtensa-esp32/bin",
"internalConsoleOptions": "openOnSessionStart",
"loadMode": "manual"
}
]
}

View File

@@ -0,0 +1,5 @@
{
"files.associations": {
"cmath": "cpp"
}
}

View File

@@ -0,0 +1,4 @@
一圈 1930 个脉冲数
轮子的直径是 65mm
轮子转一圈是 65*PI
那么一个脉冲数,相当于走了多远距离 65*PI/1930 0.105805 mm

View File

@@ -0,0 +1,39 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

View File

@@ -0,0 +1,89 @@
#include "Kinematics.h"
// 设置轮子的间距
void Kinematics::set_wheel_distance(float distance)
{
wheel_distance = distance;
}
void Kinematics::set_motor_param(uint8_t id, float per_pluse_distance)
{
motor_param[id].per_pulse_distance = per_pluse_distance;
}
// 运动学正解,将左右轮的速度转换成线速度和角速度
void Kinematics::kinematics_forward(float left_speed, float right_speed, float *out_linear_speed, float *out_angular_speed)
{
*out_linear_speed = (left_speed + right_speed) / 2;
*out_angular_speed = (right_speed - left_speed) / wheel_distance;
}
// 运动学逆解,将线速度和角速度转换成左右轮的速度
void Kinematics::kinematics_inverse(float linear_speed, float angular_speed, float *out_left_speed, float *out_right_speed)
{
*out_left_speed = linear_speed - angular_speed * wheel_distance / 2;
*out_right_speed = linear_speed + angular_speed * wheel_distance / 2;
}
// 输入:左右轮脉冲数,当前时间,输出更新电机速度和编码器数据
void Kinematics::update_motor_speed(uint64_t current_time, int32_t left_tick, int32_t right_tick)
{
int16_t dt = current_time - last_update_time; // ms
delta_ticks[0] = left_tick - motor_param[0].last_encoder_ticks;
delta_ticks[1] = right_tick - motor_param[1].last_encoder_ticks;
motor_param[0].motor_speed = (delta_ticks[0] * 105.805) / dt;
motor_param[1].motor_speed = (delta_ticks[1] * 105.805) / dt;
// 为了下次还可以正常的计算速度
motor_param[0].last_encoder_ticks = left_tick;
motor_param[1].last_encoder_ticks = right_tick;
last_update_time = current_time;
update_odom(dt);
}
// 获取电机速度,返回值是速度
int16_t Kinematics::get_motor_speed(uint8_t id)
{
if (id < 0 || id > 1)
{
return -1;
}
return motor_param[id].motor_speed;
}
odom_t& Kinematics::get_odom()
{
return odom;
}
void Kinematics::TransAngleInPI(float angle,float& out_angle)
{
if(angle>PI)
{
out_angle -= 2*PI;
}else if (angle<-PI)
{
out_angle += 2*PI;
}
}
void Kinematics::update_odom(uint16_t dt)
{
float dt_s = float(dt)/1000.0; // ms -> s
// 获取实时的角速度和线速度呢?我们拿左右轮实时的速度,进行运动学正解
this->kinematics_forward(motor_param[0].motor_speed,motor_param[1].motor_speed,&odom.linear_speed,&odom.angular_speed);
// 计算里程计信息
odom.linear_speed = odom.linear_speed/1000.0; // 转换成米每秒
// 角度积分
odom.angle += odom.angular_speed*dt_s;
TransAngleInPI(odom.angle,odom.angle);
// 计算机器人行走的距离(沿自身前进方向的)
float delta_distance = odom.linear_speed * dt_s;
// 分解到X轴和Y轴
odom.x += delta_distance * std::cos(odom.angle);
odom.y += delta_distance * std::sin(odom.angle);
}

View File

@@ -0,0 +1,57 @@
#ifndef __KINEMATICS_H__
#define __KINEMATICS_H__
#include "Arduino.h"
typedef struct
{
float per_pulse_distance; // 每个脉冲的前进的距离
int16_t motor_speed; // 单位用mm/s
int64_t last_encoder_ticks; // 上一次点击的编码器读数
} motor_param_t;
typedef struct {
float x;
float y;
float angle;
float linear_speed;
float angular_speed;
}odom_t;
/**
* 1. 运动学正逆解(两个轮子的实时速度->当前实时的角速度和线速度 / 当前目标的角速度和线速度->两个轮子的目标速度)
*
*/
class Kinematics
{
private:
/* data */
motor_param_t motor_param[2];
int16_t delta_ticks[2] = {0, 0}; // 用于存储上一次读取的编码器数值
uint64_t last_update_time = 0; // 用于存储上一次更新电机速度的时间,计算速度的时候使用
float wheel_distance = 0.0; // 两个轮子之间的距离
odom_t odom; // 用于存储里程计信息
public:
Kinematics(/* args */) = default;
~Kinematics() = default;
odom_t& get_odom();
void update_odom(uint16_t dt);
void TransAngleInPI(float angle,float& out_angle);
void set_wheel_distance(float distance); // 设置轮子的间距
void set_motor_param(uint8_t id,float per_pluse_distance);
// 运动学正解,将左右轮的速度转换成线速度和角速度
void kinematics_forward(float left_speed,float right_speed,float* out_linear_speed,float* out_angular_speed);
// 运动学逆解,将线速度和角速度转换成左右轮的速度
void kinematics_inverse(float linear_speed,float angular_speed,float* out_left_speed,float* out_right_speed);
// 更新点击速度和编码器数据
void update_motor_speed(uint64_t current_time,int32_t left_tick,int32_t right_tick);
// 获取电机速度,返回值是速度
int16_t get_motor_speed(uint8_t id);
};
#endif // __KINEMATICS_H__

View File

@@ -0,0 +1,64 @@
#include "Arduino.h"
#include "PidController.h"
// 构造函数传入三个PID参数
PidController::PidController(float kp, float ki, float kd)
{
kp_ = kp;
ki_ = ki;
kd_ = kd;
}
float PidController::update(float current)
{
error_ = target_ - current; // 计算error
error_sum_ += error_; // 计算error_sum,同时限制积分上下限
if (error_sum_ > intergral_up_)
error_sum_ = intergral_up_;
if (error_sum_ < -1 * intergral_up_)
error_sum_ = -1 * intergral_up_;
derror_ = prev_error_ - error_; // 计算误差变化率
prev_error_ = error_; // 方便下次计算使用
float output = kp_ * error_ + ki_ * error_sum_ + kd_ * derror_;
if (output > out_max_)
output = out_max_;
if (output < out_min_)
output = out_min_;
return output;
}
void PidController::update_target(float target)
{
target_ = target;
}
void PidController::update_pid(float kp, float ki, float kd)
{
kp_ = kp;
ki_ = ki;
kd_ = kd;
}
void PidController::reset()
{
error_sum_ = 0;
prev_error_ = 0;
error_ = 0;
derror_ = 0;
kp_ = 0;
ki_ = 0;
kd_ = 0;
intergral_up_ = 2500;
out_min_ = 0;
out_max_ = 0;
}
void PidController::out_limit(float min, float max)
{
out_min_ = min;
out_max_ = max;
}

View File

@@ -0,0 +1,33 @@
#ifndef __PID_CONTROLLER_H__
#define __PID_CONTROLLER_H__
class PidController
{
public:
PidController() = default;
PidController(float kp, float ki, float kd);
private:
// PID 参数,可以调节的
float target_;
float out_min_;
float out_max_;
float kp_;
float ki_;
float kd_;
float intergral_up_ = 2500; // 积分上限
// pid 中间过程值
float error_;
float error_sum_;
float derror_;
float prev_error_;
public:
float update(float current); // 提供当前值返回下次输出值也就是PID的结果
void update_target(float target); // 更新目标值
void update_pid(float kp, float ki, float kd); // 更新PID参数
void reset(); // 重置PID
void out_limit(float min, float max); // 设置输出限制
};
#endif // __PID_CONTROLLER_H__

View File

@@ -0,0 +1,46 @@
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into executable file.
The source code of each library should be placed in an own separate directory
("lib/your_library_name/[here are source files]").
For example, see a structure of the following two libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
and a contents of `src/main.c`:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
PlatformIO Library Dependency Finder will find automatically dependent
libraries scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html

View File

@@ -0,0 +1,16 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:fishbot]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
http://github.fishros.org/https://github.com/fishros/Esp32McpwmMotor.git
http://github.fishros.org/https://github.com/fishros/Esp32PcntEncoder.git

View File

@@ -0,0 +1,52 @@
#include <Arduino.h>
#include <Esp32PcntEncoder.h>
#include <Esp32McpwmMotor.h>
#include <PidController.h>
#include <Kinematics.h>
Esp32PcntEncoder encoders[2]; // 创建一个数组用于存储两个编码器
Esp32McpwmMotor motor; // 创建一个名为motor的对象用于控制电机
PidController pid_controller[2];
Kinematics kinematics;
float target_linear_speed = 20.0; // 单位 毫米每秒
float target_angular_speed = 0.1; // 单位 弧度每秒
float out_left_speed = 0.0; // 输出的左右轮速度,不是反馈的左右轮速度
float out_right_speed = 0.0;
// v=wr r = v/w
void setup()
{
// 初始化串口
Serial.begin(115200); // 初始化串口通信设置通信速率为115200
// 初始化电机驱动器
motor.attachMotor(0, 22, 23); // 将电机0连接到引脚22和引脚23
motor.attachMotor(1, 12, 13); // 将电机1连接到引脚12和引脚13
// 初始化编码器
encoders[0].init(0, 32, 33); // 初始化第一个编码器使用GPIO 32和33连接
encoders[1].init(1, 26, 25); // 初始化第二个编码器使用GPIO 26和25连接
// 初始化PID控制器的参数
pid_controller[0].update_pid(0.625, 0.125, 0.0);
pid_controller[1].update_pid(0.625, 0.125, 0.0);
pid_controller[0].out_limit(-100, 100);
pid_controller[1].out_limit(-100, 100);
// 初始化运动学参数
kinematics.set_wheel_distance(175); // mm
kinematics.set_motor_param(0, 0.105805);
kinematics.set_motor_param(1, 0.105805);
// 测试下运动学逆解
kinematics.kinematics_inverse(target_linear_speed, target_angular_speed, &out_left_speed, &out_right_speed);
Serial.printf("OUT:left_speed=%f,right_speed=%f\n", out_left_speed, out_right_speed);
pid_controller[0].update_target(out_left_speed);
pid_controller[1].update_target(out_right_speed);
}
void loop()
{
delay(10); // 等待10毫秒
// 调用PID获取动态输出值
kinematics.update_motor_speed(millis(), encoders[0].getTicks(), encoders[1].getTicks());
motor.updateMotorSpeed(0, pid_controller[0].update(
kinematics.get_motor_speed(0)));
motor.updateMotorSpeed(1, pid_controller[1].update(kinematics.get_motor_speed(1)));
// Serial.printf("speed1=%d,speed2=%d\n",kinematics.get_motor_speed(0),kinematics.get_motor_speed(1));
}

View File

@@ -0,0 +1,11 @@
This directory is intended for PlatformIO Test Runner and project tests.
Unit Testing is a software testing method by which individual units of
source code, sets of one or more MCU program modules together with associated
control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early
in the development cycle.
More information about PlatformIO Unit Testing:
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html