yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ROS Robot Expansion Board📖
1.Expansion board STM32 driver
  • 0. Precautions
  • 1.1 Expansion Board Introduction_V3.0
  • 1.1 Expansion Board Introduction_V1.0
  • 1.2 STM32 Development environment
  • 1.3 Button to control the buzzer to whistle
  • 1.4 FreeRTOS application
  • 1.5 Serial communication
  • 1.6 SBUS model aircraft remote control
  • 1.7 CAN bus communication
  • 1.8 RGB colorful light bar
  • 1.9 Timer interrupt to control PWM servo
  • 1.10 Control serial port servos
  • 1.11 Nine-axis attitude sensor to obtain data
  • 1.12 Control the forward and reverse rotation of the motor
  • 1.13 The timer captures the encoder data
  • 1.14.1 Robot kinematics analysis theory
  • 1.14.2 Mecanum wheel kinematics analysis
  • 1.15 PID control robot movement
  • 1.16 OLED character display
2.Python basic control
  • 2.0 Bind PCB port devices
  • 2.1 Update the firmware of the expansion board
  • 2.2 Turn off the self-starting large program at startup
  • 2.3 Install the Rosmaster driver library
  • 2.4 Buzzer whistle
  • 2.5 Control PWM servo
  • 2.6 RGB colorful light bar special effects display
  • 2.7 Control the forward and reverse rotation of the motor
  • 2.8 Control the movement of the robot
  • 2.9 Control Serial Servo
3.ROS1 Basic Course
  • 1.ROS introduction
  • 2.ROS installation
  • 3.ROS common command tools
  • 4.ROS workspace
  • 5.ROS function package
  • 6.ROS node
  • 7.ROS topic publisher
  • 8.ROS topic subscribers
  • 9.ROS service client
  • 10.ROS service server
  • 11.ROS action client
  • 12.ROS action server
  • 13.ROS custom message reception
  • 14.ROS-launch file
  • 15.ROS-TF transformation
  • 16.ROS parameter service
  • 17.ROS-rviz use
  • 18.ROS-rqt tool usage
  • 19.Topic message recording and playback
  • 20.urdf model introduction
  • 21.gazebo introduction
  • 22.ROS distributed communication
4.ROS1 robot control
  • 0. Bind PCB port devices
  • 1. Package Use the tutorial
  • 2. Package Description
  • 3. Robot keyboard control
  • 4. Robot state estimation
  • 5. Robot imu calibration
  • 6. Robot URDF Model
5.ROS2 Basic Course
  • 1.Introduction to ROS2
  • 2.ROS2 install Humble
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 rqt toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
6.ROS2 robot control
  • 0. Bind PCB port devices
  • 1. Package Use the tutorial
  • 2. Robot information release
  • 3. Robot keyboard control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. URDF model
7.RDK X3 course
  • 1. Update the firmware of the expansion board
  • 2. Turn off the self-starting large program at startup
  • 3. Install the Rosmaster driver library
  • 4. Buzzer whistle
  • 5. Control PWM servo
  • 6. RGB colorful light bar special effects
  • 7. Control motor forward reverse
  • 8. Control robot movement
  • 9. Control Serial Servo
Download
  • Rules_File
  • Hardware Info
  • Code
  • 3D Model File
  • RDK Code
  • ROS2_Basic_VM
Download ZIP

Welcome to ROS Robot Expansion Board repository

1.4 FreeRTOS application

4. FreeRTOS application

4. FreeRTOS application 4.1. Purpose of the experiment 4.2. Configure FreeRTOS information 4.3. Analysis of the experimental flow chart 4.4. core code explanation 4.5. Hardware connection 4.6. Experimental effect

4.1. Purpose of the experiment

Based on the program of "Key Control Buzzer Whistle", the function is imported into the FreeRTOS system to run, to detect the state of KEY1 on the expansion board, and to control the buzzer to whistle. Press the button once, the buzzer will beep (every 200 milliseconds), press the button again, the buzzer will be turned off.

4.2. Configure FreeRTOS information

Since each new project needs configuration information, it is more troublesome. Fortunately, STM32CubeIDE provides the function of importing .ioc files, which can help us save time.

  1. Import the ioc file from the BEEP project and name it FreeRTOS.
  2. Click Middleware->FreertOS, select CMSIS_V1, click Tasks and Queues, there will be one task by default, and then create two new tasks, one of which manages the buzzer and the other manages the buttons.

image-20220309162641173

  1. The buzzer task information is shown in the following figure:

image-20220309163505486

Task Name: The task name.

Priority: Set the priority.

Stack Size: heap space, the size can be modified according to the actual situation.

Entry Function: The task function entity.

Code Generation Option: Code generation configuration, the default is weak to generate task entities, you can choose external not to generate task entities.

Parameter: The task parameter.

Allocation: You can choose Dynamic dynamic allocation or Static static allocation.

Buffer Name: The statically allocated buff name.

Control Block Name: Statically allocated block name.

The key task is the same, just with a different name.

4.3. Analysis of the experimental flow chart

image-20220519094856908

4.4. core code explanation

  1. Create new buzzer driver library bsp_task.h and bsp_task.c files in BSP. Add the following to bsp_task.h:

image-20220309165543608

Among them, the Task_Entity_LED() function manages the LED lights, the Task_Entity_Beep() manages the buzzer, and the Task_Entity_Key() manages the buttons.

image-20220309170805909

image-20220309170833361

image-20220309170852080

  1. Introduce bsp.h into the freertos.c file, find the corresponding entity functions of the three tasks, and call the task functions we manually created.

image-20220309170527769

image-20220309170552390

image-20220309170613454

4.5. Hardware connection

The LED light, key KEY1 and buzzer in FreeRTOS application are all onboard components and do not need to be connected manually.

4.6. Experimental effect

After the program is programmed, the LED light flashes every 200 milliseconds, press the button, the buzzer beeps (every 200 milliseconds), press the button again, the buzzer turns off.

Button to control the buzzer to whistle
Serial communication

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文