电磁阀,电机什么的都可以哦
注意:未经授权本开源作品不得进行商业行为
版权为本人所有,未经授权不得转载
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总线的片选信号。
程序较为简单,包括一些外设的驱动总共有400多行,负责监听AT指令并对相关的指令进行解析。程序能发送测量到的数据到AT串口并实时配置驱动器。由于驱动我已经完成了,其他的功能既可以在控制器上用Arduino实现,也可以通过上位机的程序来实现,比如气压的反馈控制。
硬件使用EAGLE绘制。4层板可能不是很价格友好,不过设计文件开源,可以自己进行剪裁。大部分元件均可通过立创商城等购得,价格还算合理。值得注意的是气压传感器为Honeywell公司的ABP系列经济型数字气压传感器,提供了不同的量程范围,均可被本控制器的程序支持。我在此块板子上使用了ABPDANV060PGSA3,是SPI总线的相对气压传感器,支持到60psi的最大气压。这个目前比较难买,可以在贸泽购得。
有四路传感器还没安装,贴片就是钢网焊膏焊接的。
设计文件,一些介绍和代码可以在我的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.
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。