智能车入门——简单驱动常用模块 <新手从零做车>

这篇具有很好参考价值的文章主要介绍了智能车入门——简单驱动常用模块 <新手从零做车>。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


掌握C语言之后,接着就是去 驱动一些常用模块


 逐飞已经出了简单的视频,你需要看懂他在干什么。

基本上所有模块的使用过程都是 先初始化,然后调用相关函数,循环执行。

【逐飞科技】STC8G2K 核心板与智能车常用模块搭配使用视频教程_哔哩哔哩_bilibili


看完视频,就可以打开逐飞的库,里面有一些例程,首先把红色的这些例程要看懂,尝试执行一遍,然后自己写代码,执行出逐飞视频里的效果。


智能车入门——简单驱动常用模块 <新手从零做车>
逐飞开源库例程
文件夹名称 中文命名称 简介
1-LED Blink Demo LED闪灯 P5.2作为LED的输入,当P5.2为低电平时,LED亮
2-GPIO Input Demo GPIO输入例程 将P04连接GND,可以看到LED 灭掉
3-EXTI Demo 外部中断 边沿触发INT0_P32中断LED 就会被点亮
4-PIT Timer Interrupt Demo 周期中断例程 1秒钟LED翻转一次
5-ADC Demo ADC输入例程 使用在线调试可以查看ADC数值
6-PWM Demo PWM例程 脉宽调制
7-Decode Demo 编码器解码 使用带方向的编码器,解码
8-UART Demo 串口例程 串口输出0X1E
9-Printf Demo printf例程 printf重定向,输入字符串
10-Specifies_Variable_Or_Code_Location_Demo 变量存放区域例程 里面讲解了RAM和FLAH的大小和分布
11-EEPROM Demo EEPROM例程 EEPROM读写操作
Libraries STC8H8K64U库 STC8H8K64U开源库


下面我简单讲一下每个模块的作用,有一个简单的了解,具体深层次的内容,在CSDN上搜就行了。


高低电平 0/1 

在LED和GPIO例程里,给LED=0,LED=1,实际就是对应引脚进行了高低电平的转换

引脚(例程是P52)与GND 之间的电势差就从0变为3.3v(或5v)导致LED亮灭。



智能车入门——I/O、PWM


PWM

pwm脉宽调制,实际上就是一个比例问题,

假设最大占空比DUTYmax=10000,如果给占空比duty=5000,

则引脚与GND的电势差=(5000÷10000)×5V=2.5v ,这里是简单举个例子

在CSDN上搜PWM,看大佬们的博客,能让你们彻底理解,

这两个博客讲的都挺好,你简单看一下,知道PWM怎么回事,然后会用就行

STM32——PWM知识详解_笛卡尔的叹息的博客-CSDN博客_stm32pwm

PWM原理 PWM频率与占空比详解_Z小旋的博客-CSDN博客_pwm


 ADC

ADC就是数模转化,A模拟量,D数字量,

例程中,就是通过adc_once(ADC_P11, ADC_10BIT)这个函数,   

进行ADC采集,把电压这个模拟量,变为直观的数字量,

简单来说就是把电压变成一个数,方便你去进行数据处理。

这在电磁和充电组别应用及其明显。

看一下这篇文章方便理解

什么是 ADC - 模数转换器 - 知乎


编码器

编码器解码 顾名思义 就是将编码器的状态解算出一个数

和ADC差不多,都很好理解。

在智能车中,编码器大部分与后轮(驱动轮)结合,这样就可以知道当前的车速。

【平衡小车制作】(三)编码器讲解(超详解)_鲁乎乎的博客-CSDN博客_霍尔编码器和光电编码器的区别

编码器分类及原理和测速应用(含代码)_清雨夜Cll的博客-CSDN博客_编码器程序

智能车入门——编码器

一样,看看这两篇文章,知道编码器是什么就行,

 智能车入门——简单驱动常用模块 <新手从零做车>

像这篇文章,他讲到了写配置编码器的函数,暂时没必要看,逐飞的库里写好了。

如果对自己要求高一点,你简单看看,明白作者在干什么,到时候你自己独立写配置模块的函数,知道怎么个流程。


 中断

中断就是达到某个条件就去执行

如定时器中断(常用),设置中断周期为5ms,那么就会每5ms执行一次中断里的程序

串口中断:串口收到数据,就执行中断里程序

我说的比较浅显,具体需要搜一下大佬们的解释

什么是中断?中断的作用?_惬意的下雨天的博客-CSDN博客_什么是中断

中断的概念_typhoonzb的博客-CSDN博客_中断的概念

[7-1] 定时器_哔哩哔哩_bilibili

智能车入门——中断

中断比较重要,建议多看看


 UART串口

UART起到通信(数据传输交换)作用

TX发送,RX接收,用三根线就可以让两个板子通信,用一个usb转ttl就可以让板子与电脑通信,用无线串口就可以无线通信。

[8-1] 串口通信_哔哩哔哩_bilibili

一篇短文让你彻底理解什么是串口通信_Neutionwei的博客-CSDN博客_串口通信


EEPROM

EEPROM即带电可擦可编程 只读存储器,即可以写数据,又可以读数据,特点是掉电也能保存数据。

实际中我们可以写人机交互界面写入调车参数,修改方便,无需一次次下载代码。

STC16F不自带EEPROM,STC32G自带EEPROM

EEPROM的学习和使用方法_Bornpride的博客-CSDN博客_eeprom

深入理解EEPROM使用_大牛攻城狮的博客-CSDN博客_eeprom怎么写入数据

智能车模块详解——数据存储与读写(eeprom/flash)

串口通信和flash/eeprom在代码上实现过程差不多,

因为串口通信是一个字节 一个字节(8位) 地传输,flash/eeprom的读写也是8位8位的,具体怎么用,我后面应该会写,


系列文章目录

文章分为三个层次

速通版是希望通过简化的步骤搭建出寻迹小车,进而了解整个智能车是如何实现的,快速上手,为后续参与智能车竞赛做基础。

如果只是为了完成学校智能车初期培训,做出能简单循迹的小车,可以看这个速通版。

全程引导篇是讲了做出能够完赛的智能车的整个过程,大部分文章只是简单点拨一下,但是附上了相关的文章链接,方便根据自己的情况深入了解。

全程引导篇,能够带你比较系统地了解整个智能车的制作过程,推荐备赛初期或者有车模之后学习。

详细讲解篇是全程引导篇的补充,由于全程引导篇是引导性质,文章内容只是点拨,缺乏相应的原理或代码讲解,因此写详细讲解篇作为补充。

详细讲解篇会渗透在全程引导篇中。


速通版


智能小车速通版——手把手教程


全程引导篇


智能车入门——IDE安装以及库函数选用 

智能车入门——编程语言(c)的学习

智能车入门——简单驱动常用模块

智能车入门——车模器件篇

智能车入门——模块化编程

智能车入门——跑车前的零碎知识

智能车入门——电磁循迹原理与实现

智能车入门——实现低速完赛


详细讲解篇


智能车入门补充篇

智能车入门补充篇——逐飞开源库介绍

智能车入门补充篇——常见宏定义和使用

智能车入门补充篇——模块化编程

智能车入门补充篇——电感值处理、转向控制与巡线

智能车入门补充篇——元素识别

智能车模块详解——按键及按键调参

智能车模块详解——数据存储与读写(eeprom/flash)

智能车入门——I/O、PWM

智能车入门——中断

智能车入门——编码器

智能车入门——陀螺仪

智能车入门——摄像头和CCD

智能车入门——舵机

(更新中)文章来源地址https://www.toymoban.com/news/detail-404775.html

到了这里,关于智能车入门——简单驱动常用模块 <新手从零做车>的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是智能合约?新手入门指南

    智能合约,也称为数字合约,在计算机网络中使用 区块链技术来履行预编程的合约 当合同的条件得到满足时,智能合同就会执行,例如向合同的一方发送付款。 智能合约之所以具有吸引力有多种原因: 不信任。 由于智能合约及其条款已经预先约定,智能合约可以通过区块

    2023年04月08日
    浏览(47)
  • 【从零开始学Skynet】基础篇(三):服务模块常用API

              Skynet提供了开启服务和发送消息的API,必须要先掌握它们。列出了Skynet中8个最重要的API,PingPong程序会用到它们。 Lua API 说明 newservice(name, ...) 启动一个名为 name 的新服务,并返回服务的地址。 start(func)         用 func 函数初始化服务,并将消息处理函数注

    2023年04月12日
    浏览(64)
  • 智能小车 - DRV8833电机驱动模块

    基本兼容TB6612模块管脚 ,可驱动1.5A以下的直流电机和4线步进电机。 芯片中共有两个全H桥。因此最多可以同时驱动两个直流电机或一个步进电机。 (如果将4个电机中两个两个正负极相接,一个芯片也可带动4个电机) 管脚说明: ANI1:AO1的逻辑输入控制端口,电平0-5V。 AI

    2024年02月02日
    浏览(51)
  • C++-queue头文件-队列常用函数-#include<queue>新手入门

    队列是在一端允许插入,一端允许删除操作的线性表,是一种先进先出(FIFO)的线性表。在front,即队头,允许删除操作,进行出列操作,在rear,即队尾,允许插入操作,进行入列操作。 在VS编译器中添加queue类,建立队列q 建立队列: queueType, Container (数据类型,容器类型)

    2023年04月09日
    浏览(39)
  • 从零入门激光SLAM(八)——ROS常用消息

    大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看

    2024年02月12日
    浏览(36)
  • 【嵌入式开源库】MultiButton的使用,简单易用的事件驱动型按键驱动模块

    MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。 本章使用环境: 正点原子stm32F4探索者 代码工程使用正点原子HAL库实验三-按键输

    2024年02月02日
    浏览(55)
  • 从零入门激光SLAM(六)——ROS常用工具箱

    大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看

    2023年04月16日
    浏览(57)
  • Python入门:常用模块—xml模块

    xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单 data      country name = \\\"Liechtenstein\\\"          rank updated = \\\"yes\\\" 2 / rank          year updated = \\\"yes\\\" 2010 / year          gdppc 141100 / gdppc          neighbor direction = \\\"E\\\"   name = \\\"Austria\\\"  

    2024年02月19日
    浏览(40)
  • 从零开始学习 Java:简单易懂的入门指南(一)

    ) 1.1 什么是cmd? 就是在windows操作系统中,利用命令行的方式去操作计算机。 我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹,创建文件夹等。 1.2 如何打开CMD窗口? 按下快捷键:win + R。 此时会出现运行窗口。 在运行窗口中输出cmd 输出回车。 解惑: ​

    2024年02月16日
    浏览(70)
  • 从零开始学习 Java:简单易懂的入门指南(三)

    运算符: ​ 就是对常量或者变量进行操作的符号。 ​ 比如: + - * / 表达式: ​ 用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。 ​ 比如:a + b 这个整体就是表达式。 ​ 而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。 分类: 运

    2024年02月15日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包