mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-23 19:25:09 +08:00
为什么要演奏春日影
This commit is contained in:
@@ -31,136 +31,162 @@ uint8_t g = 0;
|
||||
uint8_t b = 0;
|
||||
|
||||
/*---------------------FUNCTIONS---------------------*/
|
||||
|
||||
void robotSelfCheck(void)
|
||||
{
|
||||
WS2812_Ctrl(255, 0, 0);
|
||||
HAL_Delay(300);
|
||||
|
||||
WS2812_Ctrl(0, 0, 255);
|
||||
HAL_Delay(300);
|
||||
|
||||
WS2812_Ctrl(0, 255, 0);
|
||||
HAL_Delay(300);
|
||||
|
||||
WS2812_Ctrl(0, 255, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief WS2812 LED control task
|
||||
* @param argument
|
||||
*/
|
||||
void ws2812Task(void *argument) {
|
||||
(void) argument;
|
||||
while (1) {
|
||||
switch (RobotMode) {
|
||||
case NORMAL_MODE:
|
||||
BlinkGreen();
|
||||
break;
|
||||
case SYS_ERROR_OCCURRED:
|
||||
BlinkRed();
|
||||
break;
|
||||
case REMOTE_NOT_CONNECTED:
|
||||
BlinkYellow();
|
||||
break;
|
||||
case REMOTE_CONNECTED:
|
||||
BlinkBlue();
|
||||
break;
|
||||
case AUTO_SHOOTING_MODE:
|
||||
BlinkCyan();
|
||||
break;
|
||||
case IMU_CALIBERATION_MODE:
|
||||
BlinkPurple();
|
||||
break;
|
||||
default:
|
||||
BlinkYellow();
|
||||
}
|
||||
osDelay(10); // 每个任务最后都要写在while里,要不然会导致任务切换失败
|
||||
void ws2812Task(void *argument)
|
||||
{
|
||||
(void) argument;
|
||||
while (1)
|
||||
{
|
||||
switch (RobotMode)
|
||||
{
|
||||
case NORMAL_MODE:
|
||||
BlinkGreen();
|
||||
break;
|
||||
case SYS_ERROR_OCCURRED:
|
||||
BlinkRed();
|
||||
break;
|
||||
case REMOTE_NOT_CONNECTED:
|
||||
BlinkYellow();
|
||||
break;
|
||||
case REMOTE_CONNECTED:
|
||||
BlinkBlue();
|
||||
break;
|
||||
case AUTO_SHOOTING_MODE:
|
||||
BlinkCyan();
|
||||
break;
|
||||
case IMU_CALIBERATION_MODE:
|
||||
BlinkPurple();
|
||||
break;
|
||||
default:
|
||||
BlinkYellow();
|
||||
}
|
||||
osDelay(10); // 每个任务最后都要写在while里,要不然会导致任务切换失败
|
||||
}
|
||||
}
|
||||
|
||||
void BlinkYellow(void) {
|
||||
r = 255; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 0; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为黄色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkYellow(void)
|
||||
{
|
||||
r = 255; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 0; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为黄色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void BlinkRed(void) {
|
||||
r = 255; // 红色分量
|
||||
g = 0; // 绿色分量
|
||||
b = 0; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为红色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkRed(void)
|
||||
{
|
||||
r = 255; // 红色分量
|
||||
g = 0; // 绿色分量
|
||||
b = 0; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为红色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void BlinkGreen(void) {
|
||||
r = 0; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 0; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为绿色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkGreen(void)
|
||||
{
|
||||
r = 0; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 0; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为绿色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void BlinkBlue(void) {
|
||||
r = 0; // 红色分量
|
||||
g = 0; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为蓝色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkBlue(void)
|
||||
{
|
||||
r = 0; // 红色分量
|
||||
g = 0; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为蓝色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void BlinkWhite(void) {
|
||||
r = 255; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为白色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkWhite(void)
|
||||
{
|
||||
r = 255; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为白色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void BlinkCyan(void) {
|
||||
r = 0; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为青色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkCyan(void)
|
||||
{
|
||||
r = 0; // 红色分量
|
||||
g = 255; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为青色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void BlinkPurple(void) {
|
||||
r = 255; // 红色分量
|
||||
g = 0; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为紫色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
void BlinkPurple(void)
|
||||
{
|
||||
r = 255; // 红色分量
|
||||
g = 0; // 绿色分量
|
||||
b = 255; // 蓝色分量
|
||||
WS2812_Ctrl(r, g, b); // 设置为紫色
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
WS2812_Ctrl(0, 0, 0); // 关闭LED灯
|
||||
delay_ticks(500); // 延时500毫秒
|
||||
}
|
||||
|
||||
void PWMControwLed(void) {
|
||||
//
|
||||
void PWMControwLed(void)
|
||||
{
|
||||
//
|
||||
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// r++;
|
||||
// g += 5;
|
||||
// b += 10;
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// r++;
|
||||
// g += 5;
|
||||
// b += 10;
|
||||
|
||||
// r=0;g=255;b=0;//绿色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500); // 使用延时函数代替osDelay,避免任务切换失败
|
||||
// r=0;g=255;b=0;//绿色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500); // 使用延时函数代替osDelay,避免任务切换失败
|
||||
|
||||
// r=0;g=0;b=255;//蓝色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500);
|
||||
// r=0;g=0;b=255;//蓝色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500);
|
||||
|
||||
// r=0;g=255;b=255;//青色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500);
|
||||
// r=0;g=255;b=255;//青色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500);
|
||||
|
||||
// r=255;g=0;b=255;//紫色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500);
|
||||
// r=255;g=0;b=255;//紫色
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(500);
|
||||
|
||||
// r=255;g=255;b=255;
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(1000);
|
||||
// osDelay(1);
|
||||
// osDelay(100);
|
||||
// r=255;g=255;b=255;
|
||||
// WS2812_Ctrl(r, g, b);
|
||||
// delay_ticks(1000);
|
||||
// osDelay(1);
|
||||
// osDelay(100);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
/*---------------------FUNCTIONS---------------------*/
|
||||
void ws2812Task(void *argument);
|
||||
|
||||
void robotSelfCheck(void);
|
||||
|
||||
void BlinkYellow(void);
|
||||
|
||||
void BlinkRed(void);
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
/**
|
||||
* @file buzzer.c
|
||||
* @brief 蜂鸣器控制
|
||||
* @author TuxMonkey
|
||||
* @version v1.0-bsp
|
||||
* @date 2025-11-15
|
||||
*
|
||||
* @copyright Copyright (c) 2025 DLMU-C.ONE
|
||||
*
|
||||
* @par 修改日志:
|
||||
* <table>
|
||||
* <tr><th>Date <th>Version <th>Author <th>Description
|
||||
* <tr><td>25-11.15 <td>v1.0-bsp <td>TuxMonkey <td>蜂鸣器部分
|
||||
* </table>
|
||||
*/
|
||||
|
||||
/*---------------------INCLUDES---------------------*/
|
||||
#include "buzzer.h"
|
||||
#include "cmsis_os.h"
|
||||
@@ -263,17 +279,40 @@ void systemstart_song(void)
|
||||
// delay_ticks(1000);
|
||||
|
||||
//DJI
|
||||
// buzzer_note(80,0.5);//高音do
|
||||
// delay_ticks(450);
|
||||
// buzzer_note(90,0.5);//高音re
|
||||
// delay_ticks(450);
|
||||
// buzzer_note(120,0.5);//高音sol
|
||||
// delay_ticks(550);
|
||||
SongLaoda();
|
||||
// buzzer_note(80, 0.5); //高音do
|
||||
// HAL_Delay(450);
|
||||
// buzzer_note(90, 0.5); //高音re
|
||||
// HAL_Delay(450);
|
||||
// buzzer_note(120, 0.5); //高音sol
|
||||
// HAL_Delay(550);
|
||||
|
||||
SongSpring(); //为什么要演奏春日影!!!
|
||||
|
||||
// SongLaoda();
|
||||
|
||||
buzzer_off();
|
||||
}
|
||||
|
||||
void SongSpring(void) //春日影!!!
|
||||
{
|
||||
buzzer_note(165, 0.5); //mi
|
||||
HAL_Delay(280);
|
||||
buzzer_note(150, 0.5); //re
|
||||
HAL_Delay(280);
|
||||
buzzer_note(135, 0.5); //do
|
||||
HAL_Delay(280);
|
||||
buzzer_note(150, 0.5); //re
|
||||
HAL_Delay(280);
|
||||
buzzer_note(165, 0.5); //mi
|
||||
HAL_Delay(280);
|
||||
buzzer_note(170, 0.5); //fa
|
||||
HAL_Delay(200);
|
||||
buzzer_note(165, 0.5); //mi
|
||||
HAL_Delay(200);
|
||||
buzzer_note(150, 0.5); //re
|
||||
HAL_Delay(300);
|
||||
}
|
||||
|
||||
void SongLaoda(void)
|
||||
{
|
||||
// 播放歌曲牢大
|
||||
|
||||
@@ -40,20 +40,29 @@ extern const uint8_t sound_autoaiming[];
|
||||
void systemstart_song(void);
|
||||
|
||||
//
|
||||
void buzzerTask(void const * argument);
|
||||
void buzzerTask(void const *argument);
|
||||
|
||||
void SongLaoda(void);
|
||||
|
||||
void SongSpring(void);
|
||||
|
||||
//
|
||||
extern void SetBuzzerOff(void);
|
||||
|
||||
extern void SetBuzzerFrequence(uint16_t freq);
|
||||
|
||||
|
||||
extern void buzzer_on(uint16_t psc, uint16_t pwm);
|
||||
|
||||
extern void buzzer_off(void);
|
||||
extern void buzzer_note(uint16_t note,float volume);
|
||||
|
||||
extern void buzzer_note(uint16_t note, float volume);
|
||||
|
||||
//
|
||||
extern int8_t SetBuzzerState(uint8_t state);
|
||||
|
||||
extern void PlayingSong(const uint16_t *song, uint16_t len);
|
||||
|
||||
extern void PlayingSound(const uint8_t *sound, uint16_t len);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user