论坛首页 > 创客天地 > 第二届立创商城电子制作节 > 参赛作品《重力体感四轮电动滑板...
查看:1951  |  回复:14
参赛作品《重力体感四轮电动滑板车》
Mr154194R
1
主题
6
回复
发表于Mon Jun 05 13:35:23 CST 2017   |  只看该作者 1# 电梯直达

【报名阶段需要填写的内容】

1. 参赛者姓名(必填项):

邓长坤

2. 单位或学校名称(必填项):

合肥工业大学

3. 当前职务或职称(必填项):

学生

4. 参赛作品的名字(必填项):

参赛作品《重力体感四轮电动滑板车》

5. 简要陈述您的idea和作品(必填项):


本作品是一款新颖的智能电动滑板,致力于打造一款新型安全的代步工具。智能体感控制电动滑板以传统滑板为原型,进行电动化重新设计。动力系统采用双无刷电机进行直接轮边驱动。控制系统通过感应使用者的重量转移进行操纵电动滑板。同时增加一些稳定控制系统,保证电动滑板方便、安全的被使用。动力电池采用锂离子电池,结合电机的制动能量回收,滑板的续航能力大大增加。整个系统安全、方便和轻便。

6. 拟用到的立创商城在售物料(必填项):

stm32f103rct6 stm32f103c8t6、hx711、ir2010s、ir2181s、acs712等等

7. 拟用到的非立创商城物料或其它补充(必填项):

电阻应变片,等等

【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

1.作品的整机外观图片或焊接组装好的PCBA图片;

2.作品的研究背景、目的和功能、市场应用前景;

3.作品 在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现?


安全智能的代步工具,研究发现市面上的电动滑板工具大多都是两轮平衡车,电动滑板车,独轮车,等等。两轮平衡车体积较大,用户携带也不方便,而且售价很高。电动滑板车,体积稍大,重量较重,虽然有折叠的滑板车,但是折叠的机械结构不稳定,容易出现机械故障;独轮车,体积可以,但是学习比较困难。如何能够解决走路嫌远,开车麻烦的困扰。

目前现有的电动滑板都是采用无线蓝牙进行遥控操作,用户手里拿着一个遥控器,进行前进和停车的操作。这种方法需要额外携带遥控器,同时遥控器容易受到外界环境的干扰,一旦遥控器产生故障滑板不受控制,那么将会对使用者带来不可预料的危险。

由此产生思考能否设计一款能够判断用户需求的电动滑板,同时完全保障用户的安全。即一个具有思维能力的电动滑板。通过感应使用者的重量转移进行操纵的电动滑板,或者称为智能体感控制电动滑板。它是这样工作:通过一只脚踩动滑板的前面,系统就能判断你再滑板上的重量分布而进行速度的操控。向前踩和前倾表示加速,向后踩和向后倾斜表示刹车。这意味着滑板的控制完全由用户身体来控制,同时也符合人的动作需求。

滑板是一种青少年十分喜爱的运动,我们的作品结合青少年的兴趣,又将先进的科技技术融合到滑板之中。使得滑板的使用变得更加方便、简单、安全,使青少年在使用滑板的过程中逐渐了解体感压力控制和平衡控制的神器。

由于增加了智能压力体感控制和平衡控制的方法,使得滑板的学习变得十分简单,甚至可以说1分钟即可上手。所以说,我们的作品也是一款十分方便代步工具,目前市面上流行的代步工具相比,我们的滑板重量较轻(目前重量稍重,后期再优化可以做到重量在7~9kg),携带十分方便。在一些开车嫌近,走路嫌远的场合,比如上下班代步,取快递,超市购物等。

  

二、系统构架图

用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。


先放一个整体的构思。

 点击查看大图

 点击查看大图

分为以下几个部分。

压力采集部分,主控板,电池,滑板面板,前后桥架,驱动轮,外壳。


三、硬件部分的描述

1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的;

2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。


PCB加工之后的实物图

  

 



1.压力数据采集

体感控制滑板,关键是对体感数据的采集获取。体感控制并非像市面上的平衡车的体感控制,市面上的平衡车的体感控制多数采用MPU6050,这种MEMS的陀螺仪传感器获得姿态角度,进而通过控制电机实现平衡控制。这里我们提到的体感控制,很明显是采集重力数据,具体的说是采集人在滑板上的重心位置。再进一步说,就是采集压力数据的分布。接下来对于滑板这个产品,难道要像3D压感手机那样吗?并不是。

很明显,可以有两种思路,一种思路是把传感器安装在前后桥架的两个固定点。另一种思路是把传感器安装在滑板的面板上。具体那种更好,有待于测试。调研市场上,目前唯一一款支持压感控制的滑板为zboard2,此滑板采用的是传感器安装在滑板的面板上。

http://www.hitnology.com/video-156.html

 

此图中的黑色垫脚就是压力传感器的位置。踩这里就前进,反方向的传感器板为刹车减速功能。


 

这里,我们选择另一种安装在桥架与木板之间的方案。传感器选择电子秤中量产的体重传感器。如下图


 

此传感器为半桥电路,两个可以用作一个全桥采样电路。2个半桥式50KG称重传感器组成全桥接法将E+、E-、S+、S-四个端子分别接在一起,模拟信号本身就会组成一个全桥传感器。 但需要注意,这两个传感器的灵敏度一致性是否良好。 如果传感器灵敏度的一致性良好,可以组成一个全桥传感器。 就像组秤一样。 可以采用差分放大,再用AD转换芯片过采样转换,获得数字信号。

 

为了节省时间,选择了电子秤的放大电路hx711,这个芯片不算贵。以后有时间,计划用运放搭一个放大电路。下图为hx711的采集电路。采用数字通信方式与单片机通信。

这个芯片很用起来很方便,例程很多。数字通信的方式,可以免去了模拟信号的传输的干扰,毕竟长板长度约1m/2=0.5m,这个距离如果用模拟通信,可能干扰比较大。

 点击查看大图


注意:上面的电路,前后桥架各安装一套。这样可以采集两个通道的压力数据,进而计算出重心的位置。以上传感器的部分就做完了。


2.双BLDC电机控制电路设计

这个算是第二关键部分,选择了带霍尔的轮毂式无刷电机。双驱方案。电机的控制有两种方案,一种是依靠现有的BLDC驱动芯片,完成单个BLDC的控制,

另外一种是自己写BLDC的控制代码。在这里选择后者。我们还是自己写BLDC的代码吧。毕竟还是自己还是有点基础的,六步换向的方法并不难。一个stm32f103rct6可以

实现两台bldc的控制。

(1)霍尔接口电路设计

 

(2)MOS管驱动设计

 点击查看大图

(3)三电阻采样放大电路

 点击查看大图

两个电机的电路一样,这里就不再重复贴图介绍了。

(3)主控板主芯片电路

 点击查看大图

主芯片的外围电路相对简单,这里给出了主芯片的引脚分配图。

(4)供电系统


供电电池为36V,经过DCDC得到15V,线性稳压(78M05)得到5V,再次线性稳压(LM1117-3.3V)得到3.3V。供电系统属于比较常见的方案了。



四、材料清单(BOM列表)

列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。

如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。

stm32f103rct6 stm32f103c8t6、hx711、ir2010s、ir2181s、acs712等等

主芯片STM32F103RCT6 http://www.szlcsc.com/product/details_8815.html

模数转换/HX711 http://www.szlcsc.com/product/details_44649.html

等等,具体可以到立创商城搜索。


五、软件部分的描述(选填)

如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。

软件工作流程图:


1.hx711压力数据采集代码

unsigned long Read_HX711(void) 

unsigned long val = 0; 
unsigned char i = 0; 

GPIO_SetBits(GPIOB,GPIO_Pin_11);    //DOUT=1 
GPIO_ResetBits(GPIOB,GPIO_Pin_12);    //SCK=0 
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11));   //等待DOUT=0  
delay_us(1); 
for(i=0;i<24;i++) 

GPIO_SetBits(GPIOB,GPIO_Pin_12);    //SCK=1 
val=val<<1; 
delay_us(1);  
GPIO_ResetBits(GPIOB,GPIO_Pin_12);    //SCK=0 
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11))   //DOUT=1 
val++; 
delay_us(1); 

GPIO_SetBits(GPIOB,GPIO_Pin_12); 
delay_us(1); 
GPIO_ResetBits(GPIOB,GPIO_Pin_12); 
delay_us(1);  
return val;  
}   

void RCC_Configuration(void)

{
        //----------使用外部RC晶振-----------
        RCC_DeInit();                        //初始化为缺省值
        RCC_HSEConfig(RCC_HSE_ON);        //使能外部的高速时钟 
        while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);        //等待外部高速时钟使能就绪
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);   
        FLASH_SetLatency(FLASH_Latency_2); 
        RCC_HCLKConfig(RCC_SYSCLK_Div1);                //HCLK = SYSCLK
        RCC_PCLK2Config(RCC_HCLK_Div1);                        //PCLK2 =  HCLK
        RCC_PCLK1Config(RCC_HCLK_Div2);                        //PCLK1 = HCLK/2
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);        //PLLCLK = 8MHZ * 9 =72MHZ
        RCC_PLLCmd(ENABLE);                        //Enable PLLCLK

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);        //Wait till PLLCLK is ready
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);        //Select PLL as system clock
        while(RCC_GetSYSCLKSource()!=0x08);                //Wait till PLL is used as system clock source        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);        //使能APB2外设的GPIOA的时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);          
}


/*******************************************************************************
* Function Name  : GPIO_Configuration
* Description    : 初始化GPIO外设
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void GPIO_Configuration(void)
{
        //CLK:PB5  CLR:PE11  Data:PE10
        GPIO_InitTypeDef        GPIO_InitStructure;                //声明一个结构体变量

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;         //选择PC.10(TXD) 和 PC.11
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //管脚频率为50MHZ
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;         //输出模式为推挽输出
        GPIO_Init(GPIOB,&GPIO_InitStructure);                                 //初始化PB5

           //配置USART1_Tx为复合推挽输出
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
          GPIO_Init(GPIOA, &GPIO_InitStructure);
        
          //配置 USART1_Rx 为浮空输入
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
          GPIO_Init(GPIOA, &GPIO_InitStructure);

          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;         //选择PC.10(TXD) 和 PC.11
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;         //浮空输入
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
        GPIO_Init(GPIOB,&GPIO_InitStructure);                                 //初始化PB5

           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; 
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //管脚频率为50MHZ
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;           
        GPIO_Init(GPIOB,&GPIO_InitStructure);                                 //初始化PB5

        
           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;         //选择PC.10(TXD) 和 PC.11
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //管脚频率为50MHZ
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;           
        GPIO_Init(GPIOA,&GPIO_InitStructure);                                 //初始化PB5
}

2.bldc控制部分

这里给出电机换向的代码

void huanxiang(void)
{
  u8 irq_zhuanzi; 

  irq_zhuanzi =(u8)((GPIOC->IDR&0x000000c0)>>6); //读转子位置
  irq_zhuanzi|=(u8)((GPIOC->IDR&0x00000100)>>6);
  irq_zhuanzi &= 0x07;


   if(zheng_fan==RESET)
  
  { //正转
    switch(irq_zhuanzi) //根据转子位置,决定CCER输出相位和转子字偏移量
    {
 case 0x06:{                      
   TIM1->CCER=0x3081;//1,4    ba
   };break;
 case 0x02:{
 TIM1->CCER=0x3180; //4,5   bc         
           };break;
  case 0x03:{
 TIM1->CCER=0x3108; //2,5    ac
   };break;
 case 0x01:{
 TIM1->CCER=0x3018; //2,3    ab      
           };break;
 case 0x05:{
 TIM1->CCER=0x3810; //3,6    cb      
           };break;
 case 0x04:{
           
 TIM1->CCER=0x3801;    //1,6  ca        
           };break;
default:break;



}  }
 else
  { //反转
switch(irq_zhuanzi) //根据转子位置,决定CCER输出相位和转子字偏移量
    {
    //*
  case 0x02:{
   TIM1->CCER=0x3810;//3,6        cb
   };break;
 case 0x06:{
 TIM1->CCER=0x3018;//2,3 ab           
           };break;
   case 0x04:{
 TIM1->CCER=0x3108;//2,5    ac
   };break;
 case 0x05:{
 TIM1->CCER=0x3180;//4,5  bc        
           };break;
 case 0x01:{
 TIM1->CCER=0x3081;//1,4  ba        
           };break;
 case 0x03:{              
 TIM1->CCER=0x3801;//1,6  ca        
           };break;
 default:break;
 //*/
 
    }
  }
 
}


六、作品演示

请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得5分,具体详见活动规则。


废话不多说,到了重点了。看效果,是骡子是马拉出来溜溜!


体感滑板测试视频1,没有自拍杆,拍摄的不好。没有展现出来无遥控器的体感效果。

最好选择蓝光观看,手机录的1080p格式,看起来清晰些。

https://v.qq.com/x/page/v05332uynf6.html

第二波美女试玩的视频。

https://v.qq.com/x/page/d05343y8msl.html

双电机FOC主板

测试视频1

https://v.qq.com/x/page/v0533oxqp8o.html

测试视频2

https://v.qq.com/x/page/b0533i17w0f.html

===================================================================


插播一下,第一代的东西,也算是在这里留个纪念,毕竟这个是第一代车子。

第一代:这个是第一代做的,与现在写的方案不一样。也一同贴出来。

 点击查看大图

由于第一代的车子电机的功率比较小,跑起来速度比较慢。当然线路也是乱,主要是为了验证效果,验证完毕,

这个也是第一代的老爷车很快就寿终正寝了。

 

插播结束!!

==============================================================================

回到现在做的车子。。

 

 

放图。。镁铝试玩~~~

 

美女试玩,没到10分钟就玩的十分溜了。。



七、总结

例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。

过段时间再总结吧。

总之,感觉这个活动非常好。立创这个平台也是十分方便,BOM报价,采购,PCB制板,钢网,SMT一条龙服务,而且质量可靠,价格公道。

对于小批量样品制作的用户也是非常划算。自己一直也在嘉立创打样板。

对于体感电动滑板这个产品,个人感觉可能今年会有较大的市场。。




八、后期改进

下图为两轮平衡车的主板,采用stm32f103rct6主芯片控制两台BLDC电机。预留的接口刚好可以用于连接压力数据。借用这个成熟

的电路可以快速制作出自己的滑板控制器。

 

目前已经完成了对板子的电路分析。板子的程序已经抹掉,正在参考st的foc库编写自己的bldc

正弦波控制代码。。如果这个工作完成了(这应该叫做逆向工程了吧),就可以非常便宜的做出

一台体感滑板车了。

视频链接:https://v.qq.com/x/page/v0533oxqp8o.html

在平衡车板子上,自己写的双BLDC电机控制,双FOC。啦啦啦啦啦!!!静音!!完美!!








该帖子已被Mr154194R于Mon Aug 07 16:43:42 CST 2017编辑过
回复 收藏
  举报
立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Mon Jun 05 14:20:26 CST 2017   |  只看该作者 2#

欢迎参与!

您已经报名成功!

您现在就可以开始进行设计工作了,后期相关内容请在一楼编辑进行完善。

当前所有参赛选手分值统计表及活动详细介绍见:  http://www.szlcsc.com/go/17523dej


《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
立创君
【官方工作人员】
72
主题
1123
回复
发表于Sat Aug 05 10:43:53 CST 2017   |  只看该作者 3#

> 楼主已完成【主动传播,恭喜再获5分;

> 所有参赛选手分值统计表及活动详细介绍见:http://www.szlcsc.com/go/17523dej

报名成功后至第二阶段结束(8月22日截止)前的任意时间在朋友圈发布特定图文内容即视为主动传播;

> 每位参赛选手都有一次主动传播加5分的机会,这就是传说中的“送分题”,详询立创君微信号:LCSCSZ扫码添加)。

立创商城(WWW.SZLCSC.COM),在线订单成交量全国领先的一站式元器件采购自营商城。
Mr154194R
1
主题
6
回复
发表于Mon Aug 07 16:08:31 CST 2017   |  只看该作者 4#
立创君 发表于 Sat Aug 05 10:43:53 CST 2017  3# &gt; 楼主已完成【主动传播】,恭喜再获5分; &gt; 所有参赛选...
 立创君,视频已经更新。
立创君
【官方工作人员】
72
主题
1123
回复
发表于Mon Aug 07 16:14:39 CST 2017   |  只看该作者 5#
Mr154194R 发表于 Mon Aug 07 16:08:31 CST 2017  4# 立创君,视频已经更新。
视频标题名不符合活动规则的加分要求哦(标题须为"第二届立创商城电子制作节参赛作品:《作品名》"),建议参考作品《高精度电源》在腾讯视频的标题并登录腾讯视频后台重新编辑下标题,改一改又能多5分![小黄人坏笑]
立创商城(WWW.SZLCSC.COM),在线订单成交量全国领先的一站式元器件采购自营商城。
Mr154194R
1
主题
6
回复
发表于Mon Aug 07 16:15:53 CST 2017   |  只看该作者 6#
立创君 发表于 Mon Aug 07 16:14:39 CST 2017  5# 视频标题名不符合活动规则的加分要求哦(标题须为"第二届立创商...
好的。看懂了。
Mr154194R
1
主题
6
回复
发表于Mon Aug 07 16:44:25 CST 2017   |  只看该作者 7#
上传了美女试玩的视频,筒子们来帮忙顶啊!!
Mr154194R
1
主题
6
回复
发表于Mon Aug 07 16:45:21 CST 2017   |  只看该作者 8#
立创君 发表于 Mon Aug 07 16:14:39 CST 2017  5# 视频标题名不符合活动规则的加分要求哦(标题须为"第二届立创商...
修改好了!!立创君,来顶啊!!
立创君
【官方工作人员】
72
主题
1123
回复
发表于Mon Aug 07 17:06:34 CST 2017   |  只看该作者 9#
Mr154194R 发表于 Mon Aug 07 16:45:21 CST 2017  8# 修改好了!!立创君,来顶啊!!
厉害了老铁,双击666!
立创商城(WWW.SZLCSC.COM),在线订单成交量全国领先的一站式元器件采购自营商城。
无敌电吹风
0
主题
16
回复
发表于Wed Aug 16 19:21:08 CST 2017   |  只看该作者 10#
感觉很适合我这种新手,对吧
多维空间
1
主题
22
回复
发表于Thu Aug 17 08:34:03 CST 2017   |  只看该作者 11#
严格说控制方式与重力体感没有半毛钱关系,混淆了概念哦。说是压感还是准确的。
自由 平等 互助 共享
Mr154194R
1
主题
6
回复
发表于Fri Aug 18 20:05:27 CST 2017   |  只看该作者 12#
多维空间 发表于 Thu Aug 17 08:34:03 CST 2017  11# 严格说控制方式与重力体感没有半毛钱关系,混淆了概念哦。说是压...
说的是。老铁很专业啊。。压感控制这个说法是比较合理的。重力体感控制也能说的过去,毕竟是由于重力引起的压力。。有些压力并不是重力引起的。
Mr154194R
1
主题
6
回复
发表于Fri Aug 18 20:06:38 CST 2017   |  只看该作者 13#
无敌电吹风 发表于 Wed Aug 16 19:21:08 CST 2017  10# 感觉很适合我这种新手,对吧
上手十分快。。学会了爱不释手。
立创小程
【官方工作人员】
2
主题
151
回复
发表于Sat Aug 26 15:11:57 CST 2017   |  只看该作者 14#
在这激动人心的时刻,恭喜楼主入选第二届立创商城电子制作节30强,30强&入围奖名单:http://club.szlcsc.com/article/details_8910_1.html
第三阶段投票正式开始,这不仅仅是对您自己实力的认可,更是对其他选手的肯定,还是一个继续学习的机会,为您喜爱的作品投上您那宝贵的一票,投票:http://club.szlcsc.com/article/details_8913_1.html
不断前行
lieyingfx
0
主题
4
回复
发表于Fri Jan 05 09:40:39 CST 2018   |  只看该作者 15#
请问楼主,“在平衡车板子上,自己写的双BLDC电机控制,双FOC”,是实现的双电机电流闭环控制还是双电机转速闭环控制?如果是双电机转速闭环控制,请问最低转速可以稳定控制到多少rpm?谢谢啦!
  • 温馨提示:标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考:社区发帖规则
  • 您当前输入了 0个文字。还可以输入8000个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

顶部