这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【若非】两轮平衡车DIY教程贴

共7条 1/1 1 跳转至

【若非】两轮平衡车DIY教程贴

菜鸟
2015-06-08 20:25:51     打赏

我一直在思考,如果直接拿别人的代码,分析一下相关函数,运行一遍,发现能小车跑,就认为OK的话。我相信,那样我永远也不会成为大手。于是我准备从一个空工程开始,重写代码,时间难免会很长,请大家稍安勿燥。

PS:本人大三学生一枚,知识储备很是匮乏,其中错误难免,希望大家能积极指出,以期精进。[三日更新一篇,最后更新日期:2015-6-10]


1.系统整体框架&调试流程

2.基础实验

--2.1串口示波器协议分析---【更新完毕】

--2.2 通信协议搭建--【更新完毕】

3.进阶实验

4.高级实验


{注}基础知识篇幅会较长,我这边会以有道云笔记的外链方式给出。





关键词: 两轮平衡车     DIY    

菜鸟
2015-06-08 20:41:13     打赏
2楼
系统整体框架&调试流程:正在修改中

菜鸟
2015-06-08 20:41:37     打赏
3楼

基础实验:

STM32基础知识点:(引用网络资料或自己总结)

1.初识STM32固件库(点击进入笔记)

2.STM32空工程创建(点击进入笔记)


2.1串口示波器协议分析

官方套件串口1和串口3原理图:

--串口1用来调试发送数据用的,及Datascope所用串口

--串口3用来在调试完成后,通过蓝牙发送控制信息




先来分析专门发送数据的串口是怎么实现的吧!

上位机提供的帧格式:(由于发送数据协议要求不高,就不需要帧类型--数据校验位


实现发送步骤(用农产品包装类比):看不清的话,右键点击查看图片

void Float2Byte(float *target,unsigned char *buf,unsigned char beg)

void DataScope_Get_Channel_Data(float Data,unsigned char Channel)

unsigned char DataScope_Data_Generate(unsigned char Channel_Number)



    while(1)            
	   { 		    		    				 
	    DataScope_Get_Channel_Data( 1.0 , 1 );  //将数据 1.0  写入通道 1
            DataScope_Get_Channel_Data( 2.0 , 2 );  //将数据 2.0  写入通道 2
            DataScope_Get_Channel_Data( 3.0 , 3 );  //将数据 3.0  写入通道 3
            DataScope_Get_Channel_Data( 4.0 , 4 );  //将数据 4.0  写入通道 4
	    DataScope_Get_Channel_Data( 5.0 , 5 );  //将数据 5.0  写入通道 5
            DataScope_Get_Channel_Data( 6.0 , 6 );  //将数据 6.0  写入通道 6
	    DataScope_Get_Channel_Data( 7.0 , 7 );  //将数据 7.0  写入通道 7
            DataScope_Get_Channel_Data( 8.0 , 8 );  //将数据 8.0  写入通道 8
	    DataScope_Get_Channel_Data( 9.0 , 9 );  //将数据 9.0  写入通道 9
            DataScope_Get_Channel_Data( 10.0 , 10); //将数据 10.0 写入通道 10
 
	    Send_Count = DataScope_Data_Generate(10); //生成10个通道的 格式化帧数据,返回帧数据长度
		
	    for( i = 0 ; i < Send_Count; i++) //循环发送,直到发送完毕 { while((USART1->SR&0X40)==0);  
  	      USART1->DR = DataScope_OutPut_Buffer[i]; //从串口丢一个字节数据出去      
	     }
  
            delay_ms(50); //20fps, 帧间隔时间。 不同电脑配置及 USB-TTL 设备的优劣均会影响此时间的长短,建议实测为准。  
    	   }



特别注意:

现场协议传输浮点数的时候,-12.5 (0xC1480000),传输的时候要按照00 00 48 C1的顺序传输,要不PC端将无法得到正确数据。




菜鸟
2015-06-08 20:41:58     打赏
4楼
进阶实验:编辑占位

菜鸟
2015-06-08 20:42:18     打赏
5楼
高级实验:编辑占位

院士
2015-06-09 09:19:38     打赏
6楼
这个我看好,不知道你是不是能坚持~~~

菜鸟
2015-11-23 16:13:48     打赏
7楼
慢慢来。顶你。

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]