基于STM32和树莓派的视觉小车开发记录

前言

        最近小学期接触了STM32,要求开发一个简单的超声波+红外避障+红外循迹的小车。笔者正好手头有一个闲置的树莓派4B和usb摄像头,就想着要不要搞一个简单的上位机,跑跑视觉识别看。

硬件介绍

        先上张图:(请忽略这粗犷的接线,小车不是自己的不敢大改)

 可以看到底层硬件就是淘宝随处可见的小车套件,核心板是STM32F103rct,其他的这里就不赘述

树莓派部分考虑到安全性没有直接从电池引电,而是使用了一个树莓派专用的电源(3.7v 300mAh),测试下了也还能用。

数据传输部分使用USB转TTL模块,摄像头使用了一个usb免驱摄像头,效果也还行,跑简单的识别算法够了。

软件部分

设计思路

        基本的思路就是STM32负责小车的底盘驱动和实现其他传感器的信号处理,树莓派负责处理图像,并给下位机传输运动指令。上、下位机通过UART通信。

底层实现

        底层程序主要是实现PWM调速和USART口的数据收发。关于PWM调速的部分网上的资料也比较全了,这里也就不再赘述,主要贴一下关于数据收发的部分吧。当然因为收发的数据比较简单(通常就是一个字母代表小车的运动),所以这部分程序实际上也比简单。

#ifndef __BLE_COM_H
#define __BLE_COM_H
#include "stm32f10x.h"
 
#define USART2_GPIO_TX_PIN					 GPIO_Pin_2
#define USART2_GPIO_TX_PORT					 GPIOA
#define USART2_GPIO_TX_CLK					 RCC_APB2Periph_GPIOA
 
#define USART2_GPIO_RX_PIN					 GPIO_Pin_3
#define USART2_GPIO_RX_PORT					 GPIOA
#define USART2_GPIO_RX_CLK					 RCC_APB2Periph_GPIOA

#define USART1_GPIO_TX_PIN					 GPIO_Pin_9
#define USART1_GPIO_TX_PORT					 GPIOA
#define USART1_GPIO_TX_CLK					 RCC_APB2Periph_GPIOA
 
#define USART1_GPIO_RX_PIN					 GPIO_Pin_10
#define USART1_GPIO_RX_PORT					 GPIOA
#define USA
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值