开源的STM Arduino AT指令控制的多路输出和多路气压监测方案
该用户不需要名字2020/04/06原创 极客DIY电子技术 IP:香港

注意:未经授权本开源作品不得进行商业行为

版权为本人所有,未经授权不得转载


1.简介

       这是一个轻量但是强大的仪器DIY平台。通过这个系统的架构,能够轻松实现不同的控制器设计。整体分为几个部分,串口通讯,STM控制器,DAC芯片,H桥驱动芯片和气压传感器。其中串口和STM控制器上使用了我编写测试的AT指令程序来处理AT指令。从而能够兼容不同的上位机操作系统,或者其他的微控制器,从而完成了对整个控制单元的模块化设计。而本控制板则是提供了12路的电压开关,2路的0-10V标准模拟信号输出和12路的气压监测能力。


2.系统设计

       Aruinio 的 AVR 系列的单片机具有一系列的缺点。第一,新的芯片没有Bootlder,需要专用的 AVR 编程器来烧录 Arduino 的引导程序,这添加了额外的麻烦。第二,AVR的核心较为老旧,运算能力不高。Arduino基础型号使用的ST公司的单片机没有STM的ARM单片机外设丰富。当然,Arduinio的基础型号也能够完全兼容该驱动程序,只是不想购买AVR的编程器。也不想在板子上预留编程口和进行AVR烧录熔丝设置。用STM图个方便,且价格也完全在可以接受的范围内。若要对STM单片机进行编程,可以将板子上的开关切换到BOOT,并reset单片机就可以直接通过通讯串口编程。

       由于端口的限制,想要驱动那么多外设IC会比较困难,所以在该设计中使用了两片IO拓展芯片来分别负责H桥的电平信号和SPI总线的片选信号。

     Main system 2.png

        程序较为简单,包括一些外设的驱动总共有400多行,负责监听AT指令并对相关的指令进行解析。程序能发送测量到的数据到AT串口并实时配置驱动器。由于驱动我已经完成了,其他的功能既可以在控制器上用Arduino实现,也可以通过上位机的程序来实现,比如气压的反馈控制。

DriverAT flow chart 2.png

        硬件使用EAGLE绘制。4层板可能不是很价格友好,不过设计文件开源,可以自己进行剪裁。大部分元件均可通过立创商城等购得,价格还算合理。值得注意的是气压传感器为Honeywell公司的ABP系列经济型数字气压传感器,提供了不同的量程范围,均可被本控制器的程序支持。我在此块板子上使用了ABPDANV060PGSA3,是SPI总线的相对气压传感器,支持到60psi的最大气压。这个目前比较难买,可以在贸泽购得。


PCB01.png


    有四路传感器还没安装,贴片就是钢网焊膏焊接的。


board01.jpg

    

    设计文件,一些介绍和代码可以在我的GitHub上找到:XXXXXXXXXXXXXXXXXX/LeoAndGit/Soft_Robot_Controller

    后续的一些软件更新等应该也会在我的GitHub上发布(如果还有的话)


        BUGs on SoftRobotController-01:

    • The location of IDC connector is not very good.

    • Magnetic bead should be better between STM and analog part to reduce noise. I use a 0ohm resister to replace it in version 01 PCB.


        V1.0.0 code feature:

    • Support pressure sensor data reading

    • Send: AT+PREAD=XX\r\n
      Reply: YYYY\r\n OK\r\n
      Description: for testing. xx is which sensor you want to reading. xx=01 means S01 on board. YYYY is HEX data from pressure sensor. More information about the data can be found in technical note about SPI communication and datasheet from Honeywell.

        V0.1.0 code feature:

    • Support control every independent half-bridge output

    • Support 2 channels of analog output

    • Support multiple boards working together by different addresses

    • Not support pressure sensors yet

        A red LED shows 3.3V logic power is online and a green LED tells you this MCU is working now.

        How to control this board: send AT commands to it with baud of 115200.

    • Send: AT\r\n
      Reply: OK\r\n
      Description: for testing

    • Send: AT+VERSION\r\n
      Reply: VERSION\r\n OK\r\n
      Description: get version

    • Send: AT+ADDRESS\r\n
      Reply: ADDRESS\r\n OK\r\n
      Description: get address. This means when you connect this board to your PC, you can know which board is talking to.

    • Send: AT+RESET\r\n
      Reply: OK\r\n
      Description: reset all voltage to 0v and all half-bridges are set to low output

    • Send: AT+RESETR\r\n
      Reply: OK\r\n
      Description: all half-bridges are set to low output

    • Send: AT+DAC1=xxx\r\n
      Reply: OK\r\n
      Description: set output voltage of DAC1. This xxx is a hexadecimal number. With this setting of DAC, it means 000 will output 0V and FFF will output 10V.

    • Send: AT+DAC2=xxx\r\n
      Reply: OK\r\n
      Description: set output voltage of DAC2. Same with DAC1.

    • Send: AT+RON=xx\r\n
      Reply: OK\r\n
      Description: let half-bridge output high. xx is which port you want to select. xx=01 means port R1 on board.

    • Send: AT+ROFF=xx\r\n
      Reply: OK\r\n
      Description: let half-bridge output low. Same with RON command.

    

attachment icon Soft_Robot_Controller-1.0.0.zip 1.02MB ZIP 49次下载


来自:综合交流区 / 极客DIY电子信息 / 电子技术
3
1
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
GiroPetrenko
4年0个月前 IP:江苏
877784

好奇H桥在此处是留给什么用的

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
该用户不需要名字作者
4年0个月前 IP:香港
877807
引用GiroPetrenko发表于1楼的内容
好奇H桥在此处是留给什么用的

电磁阀,电机什么的都可以哦

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
spadger
3年11个月前 IP:陕西
879684

AVR编程器,五块多包邮

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}