Button function

1. Experimental purpose

Read the button status on the microROS control board and print the free memory capacity of the ESP32S3 chipset.

 

2. Hardware connection

As shown in the figure below, the buttons are onboard components, so there is no need to connect other external devices. You only need to connect the type-C data cable to the computer and the microROS control board for the firmware burning function.

image-20240110114106385

The microROS control board has two boot buttons and a custom function button. The boot button and the reset button can allow the ESP32 to enter the burning mode manually. After the boot is completed, the boot button can also be used as a custom function button.

 

3. Core code analysis

The virtual machine path corresponding to the program source code is:

Initialize the KEY peripherals, where KEY_GPIO_BOOT0 corresponds to GPIO0 of the hardware circuit, KEY_GPIO_USER1 corresponds to GPIO42 of the hardware circuit, and the GPIO mode is set to pull-up input mode.

Since the functional logic of the boot button Key0 and the custom button Key1 are the same, here we take the button Key1 as an example to analyze the key pressing process.

Determine whether key1 is pressed. If it is pressed, it returns KEY_STATE_PRESS. If it is released, it returns KEY_STATE_RELEASE.

Non-blocking reading of the status of key1 (software anti-shake) needs to be called every 10 milliseconds, and KEY_STATE_PRESS is returned every time the key is pressed.

Call the Key_Init function in app_main to initialize the keys, and read the status of Key0 and Key1 in the loop (every 10 milliseconds). When the keys are pressed, a key press prompt is printed, and the current free memory capacity is printed.

 

4. Compile and download the burning firmware

Use a Type-C data cable to connect the virtual machine/computer and the microROS control board. If the system pops up, choose to connect to the virtual machine.

Activate the ESP-IDF development environment. Note that every time you open a new terminal, you need to activate the ESP-IDF development environment before compiling the firmware.

Enter the project directory

Compile, burn, and open the serial port simulator

If you need to exit the serial port simulator, press Ctrl+].

 

5. Experimental results

The serial port simulator prints the "hello yahboom" welcome message. When we press the boot button Key0, the serial port simulator prints "KEY 0 PRESS" and displays the current internal free memory capacity. When we press the custom key Key1, the serial port simulator will print "KEY 1 PRESS" and display the current free memory capacity.

image-20240110122213053