开源平衡车/zh

来自Microduino Wikipedia
跳转至: 导航搜索

概述

  • 项目名称:Microduino开源平衡车
  • 目的:DIY一台属于自己的两轮自平衡小车
  • 难度:中
  • 耗时:2小时
  • 简介:
    • 两轮自平衡小车是一个集多种功能于一体的综合系统,是自动控制理论与动力学理论及技术相结合的研究课题.
    • 平衡车在完成自身平衡的同时,还能够支持多种遥控方式
      • 可以使用Joypad遥控
      • 也可以支持蓝牙APP遥控
    • 这套系统完全由Microduino来实现,用户可以体验手工DIY的乐趣

材料清单

模块清单(Joypad模式)

模块 数量 功能
Microduino-Core/zh 2 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Module nRF/zh 2 无线通信
Microduino-Module Motion/zh 1 检测姿态
Microduino-Shield Stepper/zh 1 驱动连接地板

模块清单(蓝牙模式)

模块 数量 功能
Microduino-Core/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Module BLE/zh 1 无线通信
Microduino-Module Motion/zh 1 检测姿态
Microduino-Shield Stepper/zh 1 驱动连接地板

其他材料

模块 数量 功能
2.4G天线 1 2.4G通讯
固定板材 1 固定支撑
M2尼龙螺丝 4 固定底板
M2尼龙螺柱 4 固定底板
M2尼龙螺母 4 固定底板
短铜柱 8 固定电机
M4金属螺丝 2 固定车轮
2s锂电池(7.4V) 1 供电
锂电池专用平衡充电器 1 电池充电
Micro-USB数据线 1 串口通信,下载程序
车轴连接器 2 连接电机轴和车轮
车轮 2 结构
步进电机 2 驱动车轮
步进电机线 2 连接电机和驱动板
Balancematerial1.jpg

程序下载

从以下地址下载源程序 BalanceCar_Microduino

程序烧写

    • 用数据线连接其中的Microduino-USBTTL/zh准备上传程序
    • 注意:最好不要将所有模块堆叠在一起之后再上传程序
  • 打开Arduino IDE for Microduino,环境,(搭建参考:AVR核心:Getting started/zh
  • 点击【工具】,确认开发板/处理器(Microduino/mCookie-Core(328p)、Atmega328P@16M,5V)选择无误,并选中对应端口号(COMX)
  • 点击【文件】->【打开】,浏览到项目程序地址,点击“BalanceCar_Microduino.ino”程序打开
  • 几项都无误后,点击"→"按钮下载程序到开发板上


搭建步骤

Balancestep1-1.jpg

Balancestep1-2.jpg


Balancestep1-3.jpg


Balancestep2-1.jpg

Balancestep2-2.jpg

Balancestep3-1.jpg


操作说明

  • 如果在Step6中堆叠的nRF模块,小车上电后默认会进入Joypad遥控模式,否则进入蓝牙模式

Joypad遥控指南

蓝牙遥控指南

  • 首先下载蓝牙遥控APP(Android):mTank.zip
  • 确定手机版本号是Andro 4.3以上,确定当前蓝牙功能已打开
  • 搜索到名为“Microduino”的蓝牙设备进行连接
  • 接下来就可以通过APP进行遥控了

锂电池充电

  • 在平衡车使用过程中发现电机转速比较慢,平衡车无法直立起来,此时是2s电池电量不足,需要使用配套的锂电池平衡充给电池充电
  • 请按下图所示将2s电池的白色3pin接口插入平衡充的3pin插口内,然后接上平衡充的电源
BalanceCharge1.jpg
  • 可以通过平衡充的充电指示灯判断充电状态,各种状态如下:
指示灯状态 充电状态
绿灯闪烁 没有接电池
红灯常亮 电池正在充电
绿灯常亮 电池已充满

代码说明

  • 在“userDef.h”文件是我们的配置文件
  • 首先看电机的配置,一般新版本都是设置成512
#define STEPPER_SPEED 1024 //根据不同步进电机版本 设置成1024或者512
//识别步进电机版本方法:[螺丝位凸起螺杆|1024] [螺丝位正常螺丝固定|512]
  • 以下代码可以配置nRF模式下通道,需要保证和Joypad遥控器一致
  • Joypad的nRF模式通道配置可参考:nRF模式通道配置
#define NRF_CHANNEL 70  //nRF通道
enum _DIRECTION {
  YAW = 0,
  PITCH,  //UPIN朝前安装
  ROLL
};
#define DIRECTION PITCH
  • 以下代码可以调整平衡车角度环和速度环的PID参数
    • 角度环参数设置如下:
#define KP_CON 0.2 // 0.25
#define KI_CON 0        
#define KD_CON 28  // 30 28 26
    • 速度环参数设置如下:
#define KP_THR 0.065  //0.08//0.065
#define KI_THR 0.0005//0.05
#define KD_THR 0

疑难解答/FAQ

  • Q:在使用过程中,平衡小车无法直立怎么办?
Balancestep7-1.jpg
  • Q:在使用过程中发现平衡车倒向一边,并听见步进电机堵转异响?
    • A:此时可以将平衡车拨倒向另一边,然后平衡车就可以立起来。

视频