【雕爷学编程】Arduino动手做(194)---makeblock mbot 主控板

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百九十四:mbot主控板 makeblock童心制物mCore V1.5开发板 RJ25接口机器人兼容Arduino

在这里插入图片描述
在这里插入图片描述

mBot,这款带科技感的、工业级的主控板,它支持积木式电脑编程和Arduino编程,换句话说,它是从Arduino演变而来,由于mBot使用的控制芯片是atmega328p-AU,与Arduino系统中的UNO相同,故它们在某种程序上,具有相似的功能和接口。

在这里插入图片描述
1、 atmega328的最小系统
常用的最小系统,由时钟电路(晶振电路),复位电路和电源电路组成,如下图所示,其中晶振使用16M的晶振,复位电路低电平有效,5V电压供电,同时将各控制引脚通过网络标号的形式引出,然后再连接到各功能电路模块中,其中的D13/SCK连接了一个LED灯,因为MISO、MOSI和SCK组成了SPI接口,而SCK提供时钟,所以这个Led应该是显示SPI的工作状态。

在这里插入图片描述

时钟电路
在晶振并联一个1M欧姆的电阻,查阅资料发现它的作用是降低Q值,增大阻尼,缩短起振时间。
在这里插入图片描述

2、电源电路
mBot上的电压可由3种方式提供,如下图所示,一种是USB供电方式(图中的VBUS),这个主要用来调试程序,因为它既可以提供电压,又可以进行通信,如下载程序等;一种是通过电池的形式供电,电池由P1引入,另一种是由DC适配器电源提供,而且当后两种供电时,通过CMOS三极管的作用,只能有一种起作用。

在这里插入图片描述
不管是那种供电方式,最后都由开关S1来控制电压的开断,当S1闭合后,电压输出两路,一路连接到电机的驱动部分进行供电,一路经TP3603芯片转换成5V的电压,为整个系统进行供电。值得一提地是,转换后的5V电压,又经过肖特基二极管和TVS二极管以及电容,进行了进一步的保护,大大增加了系统电压的稳定性,最后通过一个Led灯指示电压的工作状态。

TP3605是TPmicro(TapowerSemiconductor Inc.)推出的一款1MHz固定频率CC(恒流)模式的PWM升压型DC-DC变换器。芯片集成了2.1A/200mΩ主开关,单节锂电池供电能够输出5V高达1A的负载电流,最高输出电压可达12V。它内部已经集成了上、下桥 MOS,在外部只需要加输出电感及整流二极管就可以得到输出电压,效率更是高达94%以上。电流模控制提供了快速的瞬态响应和周期性的峰值电流限制能力。TP3605具有过温保护,关断保护,欠压保护,过流保护等保护机制,增添了系统的稳定性,以确保芯片工作的安全性。TP3605转换效率高,可达到94%以上,特别是在关断模式下只需要不到1uA的工作电流,在同等条件下更省电,使得在手持式产品的应用领域获得更长的待机时间。

充电电路

在这里插入图片描述
TP4056是一款锂电池恒压线性充电管理IC,充电电压固定4.2V。
引脚TEMP1:电池温度检测输入,连接到电池的NTC传感器输出端,温度过低或过高引起此引脚电压输出异常,充电暂停,当然了,这里是接地GND的,所以是没有这个功能的。
引脚PROG2:充电电流检测端,一般串一个电阻R来监测电流I
引脚CE:使能端,高电平使能
引脚CHRG:充电状态指示,充电时内部下拉低电平,否则高阻态
引脚STDBY:充电完成指示,内部下拉,否则高阻态
引脚BAT:电池连接端

电源控制管理
TP3605具有过温保护,关断保护,欠压保护,过流保护等保护机制,增添了系统的稳定性,以确保芯片工作的安全性。TP3605转换效率高,可达到94%以上,特别是在关断模式下只需要不到1uA的工作电流,在同等条件下更省电,使得在手持式产品的应用领域获得更长的待机时间。

在这里插入图片描述
3 、USB&串口电路
USB的接口电路,如下图所示,首先由USB接口提供5V的电压,由VBUS引入到电源电路中,其次,由USB接口引入的D_N和D_P经CH340芯片,将主控芯片上的TTL串口D0/RXD、D1/TXD转换成USB接口,同时D0/RXD、D1/TXD通过P5与蓝牙模块连接,进行主控芯片与蓝牙、USB与蓝牙的数据通信。另外,蓝牙模块和主控芯片通信P4接口与其电路,共用复位功能。

在这里插入图片描述
CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。在串口方式下,CH340 提供常用的modem联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线;在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。它具有: 全速USB 设备接口,兼容USB v2.0,外围元器件只需要晶体和电容;仿真标准串口,用于升级原串口外围设备,或者通过USB 增加额外串口;计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改;硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps;支持常用的MODEM 联络信号RTS、DTR、DCD、RI、DSR、CTS;通过外加电平转换器件,提供RS232、rs485、RS422 等接口; 支持IrDA 规范SIR 红外线通讯,支持波特率2400bps 到115200bps。

USB转串口电路

在这里插入图片描述
CH340G,也需要一个M的起振电路,供电5V(3.3V电压也可以,但是V3引脚必须与VCC相连且必须引入外部3.3V电源,其外部连接电路必须不超过3.3V),芯片内部内置了电源上电复位地电路。

4 、电机驱动电路
控制mBot上的两个驱动电路,如下图所示,由控制芯片ATMega328引出的DIR2_D4+、DIR1_D7控制转动的方向,PWM1_D6、PWM2_D5控制转动的速度,这四个引脚分别连接到驱动芯片TB6612上,最后经过TB6612的处理,转换成真正的控制信号M1+、M1-和M2+、M2-经过P2、P3连接到电机上,来控制电路的转动。

在这里插入图片描述

TB6612是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲),4种电机控制模式:正转/反转/制动/停止,PWM支持频率高达100 kHz,片内低压检测电路与热停机保护电路。由于其基于MOSFET的H桥集成电路,其效率高于晶体管H桥驱动器。相比常用的L298N的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需外接电源滤波电容 ,就可以直接驱动电机,利于减小系统尺寸。

驱动IC TB6612,大电流双通道电路输出,可同时驱动2个电机!每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止,PWM支持频率高达100 KHZ;待机状态;片内低压检测电路与热停机保护电路; 我们知道控制直流电机,一般要3个IO引脚,一个控制输出PWM,还有2个则控制正反转mCore呢,2个电机控制只用了4个IO引脚,真是省了2个IO资源啊!

分析下,三极管9013是NPN型,当DIR2_D4+为高电平时,三极管导通,DIR2_D4-接地低电平,当DIR2_D4+为低电平时,三极管截止,DIR2_D4-接+5V串电阻,为高电平,同样,DIR2_D7+也是一样的。这样设计节省资源IO,但是不能通过同时高或同时低来制动,而只能通过控制PWM速度控制来制动。

5 、板载传感器电路

在这里插入图片描述
按键电路
按键电路非常简单,按下低电平,弹上高电平。

6、 RGB控制电路,以及光敏电阻控制电路

光敏传感器电路
光敏传感器的电路也非常简单,主要理解光敏电阻,随着光照强度的增加,其电阻值会逐渐减小这一特性,反应到电路上,就是光照越强,A6端的电压越大。

在这里插入图片描述
RGB三色灯电路
mBot的RGB三色灯与以往的三色灯不同,它使用了一个集控制电路与发光电路于一体的智能外控LED光源,即WS1812B。主要弄懂在级联时,每经过1个像素点传输,信号减少24bit。ws2812B是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和可编程定电流控制部分,有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。具体工作原理,可查看其数据手册。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/80728.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洪水肆虐京津冀,救灾新闻别虚假

在洪水肆虐京津冀的今天,本“人民体验官”将要推广人民日报官方微博文化产品《辛苦了!子弟兵蹚淤泥推舟为村民送物资》,并联系各方媒体的相关报道夹叙夹议。 图:来源“人民体验官”推广平台 人民微博用正能量语气告诉朝野上下&am…

Linux进程信号

全文目录 概念什么是Linux信号?信号行为(core dump)如何理解信号被进程保存:信号发送的本质: 产生信号1. 终端按键(组合键)变成信号:2. 通过系统调用接口向进程发送信号3. 软件条件产…

模拟实现消息队列项目(系列3) -- 服务器模块(硬盘管理)

目录 前言 1. 创建项目 2. 创建核心类 2.1 Exchange 2.2 MSQueue 2.3 Binding 2.4 Message 3. 数据库设计 3.1 SQLite 配置 3.2 Mapper层代码实现 3.2.1 创建表操作 3.2.2 交换机 队列 绑定的增加和删除 3.3 实现DataBaseManager 3.4 DataBaseManager单元测试 4.…

“他“是怎么拿offer的?全网最全,性能测试面试题+答案(超全整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、什么是负载测试…

R语言3_安装SeurateData

环境Ubuntu22/20, R4.1 在命令行中键入, apt-get update apt install libcurl4-openssl-dev libssl-dev libxml2-dev libcairo2-dev libgtk-3-dev # libcairo2-dev :: systemfonts # libgtk :: textshaping进入r语言交互环境,键入, instal…

7.物联网操作系统互斥信号量

1.使用互斥信号量解决信号量导致的优先级反转, 2.使用递归互斥信号量解决互斥信号量导致的死锁。 3.高优先级主函数中多次使用同一信号量的使用,使用递归互斥信号量,但要注意每个信号量的使用要对应一个释放 优先级翻转问题 优先级翻转功能需…

Git仓关联多个远程仓路径

前言 Git仓如果需要将代码push到多个仓,常用的做法是添加多个远程仓路径,然后分别push。这样虽然可以实现目的,但是需要多次执行push指令,很麻烦。 本文介绍关联多个远程仓路径且执行一次push指令的方法:git remote …

conda 环境 numpy 安装报错需要 Microsoft Visual C++ 14.0

到公司装深度学校环境。项目较旧,安装依赖,一堆报错(基于 conda 环境): numpy 安装报需要 C 14.0 No module named numpy.distutils._msvccompiler in numpy.distutils; trying from distutilserror: Microsoft Visu…

Maven-生命周期及命令

关于本文 ✍写作原因 之前在学校学习的时候,编写代码使用的项目都是单体架构,导入开源框架依赖时只需要在pom.xml里面添加依赖,点一下reload按钮即可解决大部分需求;但是在公司使用了dubbo微服务架构之后发现只知道使用reload不足…

COSV Schema 1.0正式对外发布,棱镜七彩参与制定工作

近期,CCF版开源漏洞信息描述规范COSV Schema 1.0正式制定并对外发布,棱镜七彩参与制定工作。 图 COSV Schema 1.0制定过程贡献单位及专家名单 作为开源软件治理与软件供应链安全领域的先行者,棱镜七彩一直致力于提升开源效能、防范开源漏洞。…

一起学数据结构(3)——万字解析:链表的概念及单链表的实现

上篇文章介绍了数据结构的一些基本概念,以及顺序表的概念和实现,本文来介绍链表的概念和单链表的实现,在此之前,首先来回顾以下顺序表的特点: 1.顺序表特点回顾: 1. 顺序表是一组地址连续的存储单元依次存…

FL Studio21高级中文版本下载及切换中文语言教程

FL Studio对新人有极高的友好度,成为编曲软件的入门首选!FL Studio官方提供多达31款各类插件,令你编曲功力大涨!FL Studio是超多顶级音乐人的启蒙首选!包括百大DJ冠军Martin Garrix,六获格莱美提名的Deadma…

Java入门2022黑马-200-1

1-5 常用cmd命令 dir可以查看隐藏的文件, exit 退出 6-20 20-30 30-40 37 三元表达式 switch新特性 统计 while continue break 50

ELK企业级日志分析系统

目录 一、ELK 概述 1.ElasticSearch 2.Kiabana 3.Logstash 可以添加的其它组件 1.Filebeat 2.Fluentd 三、为什么要使用 ELK 四、ELK 的工作原理 五、 ELK Elasticsearch 集群部署 更改主机名、配置域名解析、查看Java环境 部署 Elasticsearch 软件 修改elasticsearc…

怎么合并多个视频?简单视频合并方法分享

合并多个视频可以将它们组合成一个更长的视频,这对于需要播放多个短视频的情况非常有用。此外,合并视频还可以使视频编辑过程更加高效,因为不必将多个独立的视频文件分别处理。最后,合并视频可以减少文件数量,从而使整…

K8S系列文章之 Kind 部署K8S的 服务发布

安装kind 下载 https://github.com/kubernetes-sigs/kind/releases/download/0.17.0/kind-linux-amd64 执行以下命令: mv kind-linux-amd64 /usr/local/bin/kind chmod 777 /usr/local/bin/kind 之前需要先在本地主机安装好docker yum -y install yum-utils d…

vscode Google代码风格设置无效解决

1. 采用第一个方法设置google代码设置风格 2. 安装了clangd后需要在格式化风格做选择 vscode 安装 clang-format插件 $ code /home/tony/.config/Code/User/settings.json 这就能解决google风格设置无效的问题了,原来根因在于使用的格式化插件没有生效导致&#xf…

MemFire教程|FastAPI+MemFire Cloud+LangChain开发ChatGPT应用-Part2

基本介绍 上篇文章我们讲解了使用FastAPIMemFire CloudLangChain进行GPT知识库开发的基本原理和关键路径的代码实现。目前完整的实现代码已经上传到了github,感兴趣的可以自己玩一下: https://github.com/MemFire-Cloud/memfirecloud-qa 目前代码主要…

VIM 编辑器: Bram Moolenaar

VIM 用了很长时间, 个人的 VIM 配置文件差不多10年没有更新了。以前写程序的时候, 编辑都用这个。 linux kernel, boost规模的代码都不在话下。现在虽然代码写的少了,依然是我打开文件的首选。 现在用手机了,配个蓝牙键…

UE中低延时播放RTSP监控视频解决方案

第1章 方案简介 1.1 行业痛点 在各种智慧城市、智慧社区、智慧水利、智慧矿山等数字孪生项目中,经常使用通UE来开发三维可视化场景。在这些场景中通常都需要把现场的各种监控视频在UE的可视化场景中接入,主要包含海康威视、大华、宇视、华为等众多监控…