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

2024-01-26 12:50

本文主要是介绍【雕爷学编程】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。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。具体工作原理,可查看其数据手册。

这篇关于【雕爷学编程】Arduino动手做(194)---makeblock mbot 主控板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

16.Spring前世今生与Spring编程思想

1.1.课程目标 1、通过对本章内容的学习,可以掌握Spring的基本架构及各子模块之间的依赖关系。 2、 了解Spring的发展历史,启发思维。 3、 对 Spring形成一个整体的认识,为之后的深入学习做铺垫。 4、 通过对本章内容的学习,可以了解Spring版本升级的规律,从而应用到自己的系统升级版本命名。 5、Spring编程思想总结。 1.2.内容定位 Spring使用经验

IPython小白教程:提升你的Python交互式编程技巧,通俗易懂!

IPython是一个增强的Python交互式shell,它提供了丰富的功能和便捷的交互方式,使得Python开发和数据分析工作更加高效。本文将详细介绍IPython的基本概念、使用方法、主要作用以及注意事项。 一、IPython简介 1. IPython的起源 IPython由Fernando Pérez于2001年创建,旨在提供一个更高效的Python交互式编程环境。 2. IPyt

从《深入设计模式》一书中学到的编程智慧

软件设计原则   优秀设计的特征   在开始学习实际的模式前,让我们来看看软件架构的设计过程,了解一下需要达成目标与需要尽量避免的陷阱。 代码复用 无论是开发何种软件产品,成本和时间都最重要的两个维度。较短的开发时间意味着可比竞争对手更早进入市场; 较低的开发成本意味着能够留出更多营销资金,因此能更广泛地覆盖潜在客户。 代码复用是减少开发成本时最常用的方式之一。其意图

Java并发编程—阻塞队列源码分析

在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。   在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了D

剑指offer—编程题7(用两个栈实现一个队列)

题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 代码如下: [java]  view plain copy print ? public class Test07 {       /**       * 用两个栈模拟的队列       *

剑指Offer—编程题4 ( 替换空格)

一、题目:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。    在网络编程中,如果URL参数中含有特殊字符,如空格、'#'等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在'%'后面跟上ASCII码的两位十六进制的表示。

剑指Offer—编程题56(链表中环的入口地址)

题目:一个链表中包含环,如何找出环的入口结点? 解题思路   可以用两个指针来解决这个问题。先定义两个指针P1和P2指向链表的头结点。如果链表中环有n个结点,指针P1在链表上向前移动n步,然后两个指针以相同的速度向前移动。当第二个指针指向环的入口结点时,第一个指针已经围绕着环走了一圈又回到了入口结点。    剩下的问题就是如何得到环中结点的数目。我们在面试题15的第二个相关题目时用到

剑指Offer—编程题15(链表中倒数第k个结点)

题目:输入一个链表,输出该链表中倒数第k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6 个结点,从头结点开始它们的值依次是1 、2、3、4、5 、6。这个个链表的倒数第3 个结点是值为4 的结点. public static class ListNode {int value;ListNode next;} 解题思路: