资料介绍
描述
这是一个正在进行的项目。
Arduino 很棒,我喜欢它,是电子和自动化的“乐高”。这里我有这个项目:它把许多 MCU 板放在一起组成一个处理器网络,NetP 是它的名字。板通过 i2c 总线进行通信。我使用了 3.3V 的 Arduino Mini Pro 板。您需要一个 USB 转串行 FTDI 板才能将草图从 Arduino IDE 传递到 Mini Pros。对于键盘,我必须使用 3.3V 到 5V 的 TTL 电平转换器。
事实上,很多事情已经开始了,还有一些事情还有待完成。根据我们的意愿,其他人将被“发明”:-)。
已经做了什么:
最明显的部分是控制台:一个键盘和一个滚动显示器与本地 MCU Netp0 (Console) 交互,并通过它与本地 i2c 网络的其他成员交互:Netp1 (SD)、Netp2 (Updater) 和 Netp3 (时钟)等。
代替使用控制台的显示器和键盘,您可以将智能手机与蓝牙连接,并从那里远程执行所有操作;为此,我完美地设置了应用程序串行蓝牙终端 1.31,但您也可以使用其他应用程序。
每个 Netp MCU 成员都有一个特定的 i2c 总线地址 (0x0a)、一个名称 (CONSOLE)、一个 ID (p0) 和一个数字 (0)。当然,i2c 总线上还可以存在其他组件:实际上只有一个 EEPROM 和一个实时时钟板。我们必须为每个成员或组件使用不同的 i2c 地址。
该系统将是即插即用的。是的,您可以连接一个新的 Netp 成员,它将在网络中被识别(参见“扫描”命令)。
控制台 (p0) 功能:
- scan : scan [查询i2c总线,即扫描,返回总线上的活动地址列表,形式为“DDD (0xEE)”...以“'n' found”结尾]
- ckpower : ckpower [查询电量情况,即ckpower,返回“v3=3.3 v5=5.0 vraw=7.0-12.0”]
- ? : ? [询问命令列表,即?,返回板载可用命令列表和可用内存]
- reset : reset [强制MPU复位,即reset]
-
发送到处理器 ,即SD dir /,从处理器 返回 的结果]
“扫描”命令每 30 秒执行一次以允许即插即用。要知道谁有空,只需执行“扫描”命令即可查看姓名和地址。要知道控制台上执行了哪些命令,只需执行“?” 命令。要知道在 SD 成员上执行了哪些命令,只需执行“p1?” 命令。要获得 SD 上的文件列表,只需执行“p1 dir /”... 等等。
SD (p1) 功能:
- ? : ? [寻求帮助,即?,返回船上可用命令和可用内存的列表]
-
mw/mwa : mw
= [写入/修改文件名中的值,即 mw temp01=24 (FileName=Value),返回“written”](mwa 将值附加到文件中) -
mr/mra : mr
[从对应的文件名中读取Value,即mr temp01(FileName为temp01,Value为24,返回'Value'或“not found”](mra会从文件中读取多行值) - reset : reset [重置MPU,即重置]
-
dir : dir
[读取从'path'开始的文件名,即dir /],返回文件'names'和'size'的列表...以'n found'结尾] -
mkdir : mkdir
[建立一个新目录(以及相关子目录),即 mkdir /music,sdmkdir /logic/params/binary,返回“built”或“error”] -
rmdir : rmdir
[删除一个目录,即rmdir /music,返回“removed”或“error or not empty”] -
rename : rename
[重命名文件,即rename myfile.txt bestfile.txt,返回“renamed”或“not found”] -
del : del
[删除一个文件,即del myfile.txt,返回“deleted”或“not found”] -
type : type
[读取文件并以模式显示 0=CHR, 1=BIN, 2=HEX,即输入 myfile.txt CHR,返回文件内容...和文件大小'n'和字节红色'n'在最后] - eeupl : eeupl <文件名> [读取文件并上传到EEPROM,写入并验证所有数据,即eeupl /mysketch.hex,返回上传,写入,验证...]
由于内存不足,一些命令被禁用;我只保留了我真正需要的那些。我的经验表明不要强制使用接近最大值的内存,否则您将出现不可预测的行为或 MCU。在 SD 草图上,我认为尽可能压缩代码以节省内存。也许有些事情可以做得更好。
mw 和 mr 命令对 /MEMORY/ 子目录进行操作,mwa 和 mra 命令对 /LOG/ 子目录进行操作。
更新器(p2)功能:
- ? : ? [寻求帮助,即?,返回船上可用命令和可用内存的列表]
- reset : reset [重置MPU,即重置]
时钟(p3)功能:
- ? : ? [寻求帮助,即?,返回船上可用命令和可用内存的列表]
- reset : reset [重置MPU,即重置]
-
red : red
[打开或关闭红色LED,即红色打开,返回“ON”或“OFF”] -
green : green
[打开或关闭绿色LED,即绿灯亮,返回“ON”或“OFF”] - dht : dht [从DHT板获取温度和湿度,即DHT,返回值]
- gettemp : gettemp [从RTC板获取温度,即gettemp,返回温度值]
- gettime : gettime [从RTC板获取时间,即gettime,按DD/MM/YYYY HH:MM:SS返回时间值]
- settime : settime [设置RTC板的时间,即settime 31/12/2018 10:20:30,按DD/MM/YYYY HH:MM:SS返回时间值]
组件列表:
- 4 x Arduino Mini Pro 3.3v
- 微型 SD 卡适配器
- MicroSD 存储卡
- RTC zs-042 模块
- DHT-11传感器
- Protoboard 电源从 7-12V 到 3.3V 和 5V
- 4 个原型板
- 红色 LED
- 绿色 LED
- 2 x 470uF 25V 电容器
- 100nF电容
- HC05蓝牙模块
- FTDI USB-串口转换器
- 显示器 2.4" TFT LCD 240x320 RGB,驱动IC ILI9341
- USB迷你键盘
- TTL电平转换器 3.3V <-> 5V 用于键盘USB
- USB母头+数据线
- 有源蜂鸣器
- EEPROM i2c 1024
- 按钮
- 100欧姆电阻
- 4 x 5k1 欧姆电阻
- 2k2欧姆电阻
- 6k8电阻
- 2 x 120 欧姆电阻
- 许多电线...
i2c通讯BUS协议:
Netpx成员通过 i2c BUS(Wire.h 库)使用由消息和事件制作的自定义协议在它们之间进行通信。
当您从控制台键盘编写命令时,即“SD dir /”,首先将名称“SD”转换为查看 netRegisterNames[] 矩阵的真实地址(即 0x0b),然后使用 askCommandOnPx( )。另一方面,生成一个事件 receiveEvent() 并在本地执行请求的命令并将其数据发回。这些消息的 ID 是 chr(7) BEL 字节。
在扫描命令期间,使用 whois() 和 Wire.requestFrom() 将另一条消息发送到 BUS,用于向特定地址(即 0x0c)的潜在 Netpx 成员请求名称和其他信息。如果没有正确的回答,则将其视为“其他设备”。另一方面生成事件 netWhoIsEvent()。这些消息的 ID 是 chr(5) ENQ 字节。
做什么(我的愿望清单):
首先,我将有一个命令请求队列:实际上,您可以从控制台发送要执行的命令并等待它结束。如果您连续快速发送两个或多个命令,则可能会忽略第一个命令之后的所有命令。因此,有了这个新功能,所有命令都将被写入命令队列并以正确的顺序一次执行一个。
其次,我将有一个调度程序,一个在特定时间或每个特定时间执行的命令列表,等等。这个作为命令列表的文件应该可以从控制台以交互方式进行编辑。
第三,最雄心勃勃的愿望是将更新/新的草图存储在 SD 的特定目录中,并让 UPDATER 提供将它们传递到 EEPROM,然后再安装到最终目标 MCU。待更新的目标MCU应自行提供读取EEPROM和自动更新;因为这个功能需要修改正常的引导加载程序...
有什么想法或建议吗?
当我有新闻、改进、新零件、新想法等时,我会在这些页面中通知您。请让我知道您对这个正在进行的项目有何看法。
好好享受!
- 通过网络重置Arduino
- 使用USBasp和Arduino IDE对ATtiny MCU进行编程
- 涂鸦智能物联网平台mcu方案arduino库文件 5次下载
- 基于Arduino硬件光控灯制作资料 6次下载
- Arduino Uno国内改版电路原理图下载 0次下载
- Arduino Uno Rev.3开发板意大利原版电路图 0次下载
- 涂鸦智能 ① tuya-wifi-mcu-sdk-arduino-library 简单剖析
- 采用USB接口的核心电路板Arduino Mega2560 0次下载
- 在Arduino IED中安装TimeOne库文件 4次下载
- Arduino编程基础(一)——Arduino语言资料下载
- Arduino开发机器人经典书籍推荐Arduino开发实战指南:机器人卷
- 如何使用Arduino进行网络互动产品创新设计 22次下载
- Arduino系统网络选项 8次下载
- Arduino教程_Arduino图形化编程教程_ArduBlock 0次下载
- MCU网络接口方案的自由选择
- 如何使用Python和PinPong库控制Arduino 718次阅读
- 基于Arduino的机器学习开发 1.7w次阅读
- Arduino I/O函数详解 2342次阅读
- 如何从网页控制arduino? 3836次阅读
- dfrobot以太网络扩展板-W5200简介 1697次阅读
- 什么是MCU?MCU基础知识讲解 10.5w次阅读
- arduino如何控制舵机及详细步骤 16.3w次阅读
- 什么是MCU?MCU市场现状分析 9967次阅读
- arduino连接显示屏方法详解 4.7w次阅读
- Arduino如何安装驱动_Arduino安装驱动步骤 5.8w次阅读
- 浅谈Arduino和树莓派的区别 2.1w次阅读
- arduino用什么语言编程 6.9w次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
- arduino开发板有什么用 2w次阅读
- arduino ide编译过程 3203次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多