本帖最后由 小菜儿 于 2014-9-3 11:16 编辑
接上一帖,继续更新,继续更新中,做一个开源项目
3. 开发一个开源软件项目 Bananapi作为一个开源的硬件平台,其最终目的也是形成一个开源系统生态链,当然这个开源的生态链可以是面向教育的,也可以是面向应用的。但是,就开源生态链的本身的特点而言,其设计上可能会存在某些不足之处,未经修改与测试直接应用可能会存在风险。所以一般这样的开源系统生态链是面向教育的。面向教育的开源生态链应该具有成本低廉、涉及知识广泛、宜于实现等特点。 我们通过bananapi手册不难发现,其通信接口扩展相对丰富,而控制相关接口(PWM、ADC)显得捉襟见肘了,那么我们就应该用其长处,避其短板,将Bananapi重点应用放在通信上,而对于控制方面的应用可以在以后再设计一款DSP开发板来满足要求。 那么接下来考虑Bananapi的应用范围,计划能够应用在机器人控制(电机控制),电源控制(MOSFET控制),智能家居三个领域,主要功能是将网络通信内容,通过一定协议转换为其他接口的协议,其中包括:UART,I2C,SPI等。其中对于机器人控制,主要涉及的控制要素有: 分要素控制:电机1转速、电机2转速、电机3转速、电机4转速、电机5转速、电机6转速……; 总要素控制:前行速度、后退速度、左转角度、右转角度; 对于电源控制,主要设计的控制要素有:电流值设定、电压值设定、脉冲频谱设定、(电流/电压)脉冲基值设定、(电流/电压)脉冲峰值设定; 对于智能家居领域,主要的控制要素主要是电器要素设定,包括:开关时间设定、开关设定、开关量设定等。比如对于空调而言,需要设定什么时间开,控制温度是多少。 下面我们进行具体的开发过程: 第一,确定外部接口(UART、SCI、SPI等)协议。协议由帧头、数据、异或校验位、帧尾组成。其中数据包括应用领域、控制信息、数据长度、数据值四个信息。 帧头:0xAA 0x55 固定 数据: 引用领域:机器人0x01 电源 0x02 智能家居 0x03 控制信息:包括电机控制、速度与方向控制、电流电压、电器控制等要素的标志位。 数据:指具体的控制量,例如电机速度、前进速度、开关、电流电压值等。 异或校验位:除本位外,其他各位数据的异或校验和。 帧尾:预留两位 0x00 0x00 第二,确定Bananapi各个接口驱动。熟悉Bananapi通信接口驱动,并有效调用各个接口函数。 第三,编写接口测试程序。 |