net网站开发框架,便利的龙岗网站设计,网站网格设计,广东三网合一网站建设报价一、适用场景 适用场景#xff1a;移动机器人避障#xff08;左右转/刹停#xff09;、循迹小车#xff08;黑线/白线识别#xff09;、路径纠正#xff08;PID 控制输入#xff09;、自动导航原型、嵌入式传感器融合练习#xff08;多传感器融合与滤波#xff09;、课…一、适用场景适用场景移动机器人避障左右转/刹停、循迹小车黑线/白线识别、路径纠正PID 控制输入、自动导航原型、嵌入式传感器融合练习多传感器融合与滤波、课堂讲解数字/模拟传感器接入与标定。二、器材清单红外避障模块/红外循迹传感器模块×1stm32f103或其它 STM32开发板 ×1若干杜邦线、焊线、面包板 ×若干稳定电源3.3V/5V 按模块标注×1三、工作原理要点避障模块内部包含 IR 发射 LED 接收器光电二极管或光电三极管以及比较器/放大电路。发射 IR遇到近距离障碍物反射回接收器电平变化由比较器输出数字信号DO。多数模块在板上集成了灵敏度电位器和指示 LED。循迹模块每一路包含 IR 发射 LED 与光电二极管/光电三极管发射向地面红外并接收反射。白色或亮色反射强黑色或暗色反射弱。模块常给出 AO模拟强度和数字 DO经比较器阈值后的结果两种输出。阵列3/5/8用于判断车辆在轨迹上的横向偏移。四、接线示意VCC → 5VGND → GND标准库PC0 → DOHAL库PA0 → DO五、示例代码标准库#include stm32f10x.h #include forward_direction.h int main() { em_init(); while(1) { if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) 0 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2) 0) { stop(); }else if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) 0 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2) 1) { goright(); }else if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) 1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2) 0) { goleft(); }else if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) 1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2) 1) { goforward(); } } // return 0; }HAL库#include main.h /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ UART_HandleTypeDef huart1; /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /** * brief The application entry point. * retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) 1) HAL_UART_Transmit(huart1,有黑线或距离物体过远r\n, strlen(有黑线或距离物体过远\r\n), HAL_MAX_DELAY); else HAL_UART_Transmit(huart1,无黑线或距离物体过近\r\n, strlen(无黑线或距离物体过近\r\n), HAL_MAX_DELAY); HAL_Delay(1000); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }六、讲解视频https://www.bilibili.com/video/BV1j5mcBUEVr/?spm_id_from333.1387.upload.video_card.clickvd_sourcef7dfe1b14f260b9cc3a146d2dbfd0719https://www.bilibili.com/video/BV1a1mwBjERe/?spm_id_from333.1387.upload.video_card.clickvd_sourcef7dfe1b14f260b9cc3a146d2dbfd0719https://www.bilibili.com/video/BV1YCmwBmEeS/?spm_id_from333.1387.upload.video_card.clickvd_sourcef7dfe1b14f260b9cc3a146d2dbfd0719