Skip to content

PlatformIO Project

Manuel Cerqueira da Silva edited this page Sep 7, 2022 · 4 revisions

Nemo PIO Project

TODO: explain how to use the todo extension TODO: create another README for the physical configurations and connections of the robot

How to contribute to the PIO project with VS Code:

  • First check the main project README.md file.
  • Open nemo/nemo_pio folder in VS Code.
  • Do not modify main.cpp, use main_test.cpp instead for testing.
  • Use platformio.ini for mode configuration (more about .ini file)
  • Use proper documentation (more about documentation)
  • Use code auto-format (enabled in this VS Code project workspace)
  • Use TODO Tree extension properly (more about TODO Tree)

Software structure:

  • Nemo's software is designed is a three layer pyramid structure, so that it maintains consistency over different microcontrollers and functioning modes.
  • First layer (bottom): l1_io_libs -> Controls communication between the microcontroller and the hardware. This layer may change with different microcontrollers.
  • Second layer: l2_function_libs -> Parses and formats IO information. Basic robot actions are defined in this layer, such as walking forward.
  • Third layer: l3_modes_libs -> Different modes use the Nemo Libs differently do to different things. One mode might be an RC car, another mode might be an autonomous mode that doesn't use Bluetooth. Here is the main function.

Futhemore, the software pinout is in the circuit folder in the root directory of the project.

FIXME update this

.ini file

If you want to build or upload a specific mode use release in build type, for testing use test in build type Changing here the configuration implies rebuilding the project, for small changes, like activating or deactivating the debug, go to nemo_libs/nemo_global_macros.h

;##########################################################
[nemo_configuration]
current_mode = rc_nemo
; Available modes: rc_nemo, raf4_0
baud_rate = 115200
build_type = test
; test/release
;##########################################################

Documentation

TODO Tree

Setting up wifi (deprecated):

Put your wifi credentials here: src/udp_client/wifi_credentials_private.h

in terminal: linux: ipconfig -> ipv4 add to setup.h windows: ifconfig -> inet

Software Hardware

Clone this wiki locally