基于GD32系列主控的模块化智能小车

2024-02-20 16:30

本文主要是介绍基于GD32系列主控的模块化智能小车,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介:利用模块化的思路,三段式智能小车,分别为底盘PCB,循迹避障PCB和电源板PCB。后期可以根据需求更换扩展。灵活方便。采用梁山派为主控的智能小车,功能涵盖了的循迹、避障、蓝牙遥控和ADC电压检测等。

一、硬件设计

使用基于GD32F470ZGT6为主控的智能小车,硬件结构采取三段式的模块化结构,分为循迹避障板、电源板和底盘板。循迹避障板负责检测运行路线和前方障碍物。电源板模拟电动汽车为智能小车提供动力能源。底盘板就是我们的核心基座,上面包含核心板的扩展接口,蓝牙和wifi的扩展接口以及基本的按键和OLED显示。说了这么多其实核心就是想白嫖立创,废话不多说,直接上图。

 板与板之间的固定采用插针的固定方式,模拟了类似钢筋混凝土的结构,并通过前后轮的电机固定螺丝辅助固定,保证了牢固性。

  1. 电源电路

    采用了SS1040B的大电流肖特基二极管,最大电流可达10A,为后续小盆友设计功率更大的小车提供拓展,封装兼容SS34可以直接焊接。按键采用了常用的6脚按键,按起来不用那么用力。。

 2.电机驱动电路

该电路核心驱动为RZ7899,第一回使用,最大的方便除了它的大电流还有就是它的简单的外围电路,如果使用其他DRV8701什么的还得做电流检测的电阻好多麻烦的电路。这个芯片就很简单输入与主控直连,输出与电机直连,节省的时间可以直接去搞代码了。

3.ADC检测电路和蜂鸣器电路

ADC采用电阻采样实时检测电源电压,当电源电压低于阈值时,主控通过蜂鸣器电路进行鸣叫报警。本例的蜂鸣器电路采用了常见的NPN三极管S8050作为驱动蜂鸣器的芯片。

4.循迹和避障电路

红外循迹电路是以 ITR9909传感器为核心,使用LM393比较器进行检测输入状态,这里跟官方提供的一样,利用传感器和比较放大器393配合输出高低电平,主控通过状态变化来判断是否检测到黑线。

二、软件程序

循迹模式子程序

void Tracing_Black(void)
{//直行if(Track1==RESET&&Track2==RESET&&Track4==RESET&&Track5==RESET){Car_Forward(75);}	//停止if(Track1==SET&&Track2==SET&&Track4==SET&&Track5==SET){Car_Stop(0);}	//一般左转if(Track1==RESET&&Track2==SET&&Track4==RESET&&Track5==RESET){delay_1ms(50);//直角左拐if(Track1==SET&&Track2==SET&&Track4==RESET&&Track5==RESET){Car_Forward(75);delay_1ms(900);Car_Left(75);delay_1ms(1600);Car_Stop(0);}else{Car_Left(50);	}}if(Track1==SET&&Track2==RESET&&Track4==RESET&&Track5==RESET){Car_Left(75);}//一般右转if(Track1==RESET&&Track2==RESET&&Track4==SET&&Track5==RESET){delay_1ms(50);//直角右拐if(Track1==RESET&&Track2==RESET&&Track4==SET&&Track5==SET){Car_Forward(75);delay_1ms(900);Car_Right(75);delay_1ms(1600);Car_Stop(0);}else{Car_Right(50);}}if(Track1==RESET&&Track2==RESET&&Track4==RESET&&Track5==SET){Car_Right(75);}
}

 三、焊接调试成品

焊接调试过程比较简单,还是我之前提到的RZ7899大大简化了驱动电路,使得无论是PCB布线还是焊接调试都提供了极大的方便。三段式PCB的固定方式由于之前孔位都经过测量,对接的也很顺利。有困难的同学也可以直接用插针和插座的固定方式,那样做起来可能会更有立体感。

项目开源地址:【立创开发板】三段式模块化智能小车 - 嘉立创EDA开源硬件平台

 

 

这篇关于基于GD32系列主控的模块化智能小车的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728822

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个