这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » (lijunbo)我的自平衡之路

共7条 1/1 1 跳转至

(lijunbo)我的自平衡之路

菜鸟
2015-06-29 20:48:51     打赏

一直以来都想diy一个四轴飞行器玩玩,可惜EEPW在之前已经举行过四轴活动,自己没有机会参与,好遗憾的说。看到两轮自平衡小车,心里又痒了起来,忍不住就搞了一个,申请,下单等快递。一切才刚开始.点击标题直接跳转哦

1.开箱组装篇(2015-06-29更新)

2.程序下载篇(2015-06-30更新)

3.STM32官方固件库下载2015-07-03更新

4.通过一个新建工程学习配置固件库(2015-07-04更新)



关键词: 两轮 平衡 小车 进程    

菜鸟
2015-06-29 21:26:39     打赏
2楼
一:开箱组装篇

小车收到,包装很严实。小纸箱里塞满了各种纸片,我怕里面会有电子元件,每个都检查了一下,其实我拆包裹特别的没有耐心,别人都是拆的工工整整的,我拆完就是乱七八糟,拍照留念:

刚拆开的包裹


组装起来难度很小,电路板都是元件焊接好的,我买的套餐包括一个屏幕,排针焊接一下插进去就好了。鉴于组装过程其他用户都发的很详细,我在这里不做赘述,完成以后的效果是这样的:

上电测试


翻个身给大家看看底部:

翻滚吧


和充电器来个合影:

和充电器合影


看到主板上面预留有超声波测距接口,我就知道这货将来可以一显身手了:

超声波


手机安装app后,打开蓝牙连接小车后,操控正常,前后左右 转圈什么的都没有问题,只是有一点不好就是小车在保持平衡的时候如果你把小车提起来,小车就开始狂转再放下来也不能保持平衡,我觉得如果检测到小车被提起来的时候把电机关掉就好了,这个是后话,接下要做的是琢磨一下程序,下个贴更新程序下载。


院士
2015-06-30 09:32:24     打赏
3楼
嗯,看后续了

院士
2015-06-30 16:46:37     打赏
4楼
看上去的确不错的啊

菜鸟
2015-06-30 18:23:43     打赏
5楼
二:程序下载篇

没有J-link,话说为啥j-link会这么贵呢?我选择了使用串口下载的办法,这也是大家喜闻乐见的一种下载方式,51单片机都是这么过来的,因此一点也不会陌生。操作上面也没有什么难点,总结起来就以下几个步骤:

1.     1.用任意一种USB转串口模块(CH340 ,FT232)将电脑和小车主板的端口(串口1,J3)连接起来,如果电脑之前没有使用过这样的模块,可能会提示安装驱动,依照提示安装好驱动,电脑的设备管理器就会出现一个com端口

2.     2.将小车的红色拨码开关拨到“OFF”位置,打开MCUISP软件,选择STMISP,设置好正确的com端口和波特率,打开要下载的HEX文件

3.点击开始编程,等待编程完成。

截个图如下:

isp编程


菜鸟
2015-07-03 00:13:10     打赏
6楼
三.STM32官方固件库下载


STM32的寄存器很多,如果我们在程序中直接写代码操作这些寄存器,意味着我们要掌握每个寄存器的用法,对于我们这些初学者来说,这是一个不小的拦路虎。ST提供了一系列的固件库,其实就是函数包,通过固件库我们无需深入掌握底层硬件细节也可以应用每个外设。意法半导体也在不断的更新这个固件库,截至到目前最新的库版本为V3.5.以下介绍如何从官方下载最新的固件库。


1.     1.登陆ST官方网站http://www.stmicroelectronics.com.cn/web/cn/home.html

2.     2.选择 支持->工具.软件

3.     3.选择微控制器软件

4.     4.选择stm32MCU软件

5.     5.过滤器配置如下

6.

1.   

6.选择下载如下的固件库

1.     



固件库目录结构:

Libraries 文件夹下面有 CMSIS STM32F10x_StdPeriph_Driver 两个目录,这两个目录包含固件库核心的所有子文件夹和文件.其 中 CMSIS 目 录 下 面 是 启 动 文 件 ,STM32F10x_StdPeriph_Driver 放的是 STM32 固件库源码文件。源文件目录下面的 inc 目录存放的是 stm32f10x_xxx.h 头文件,无需改动。src 目录下面放的是 stm32f10x_xxx.c 格式的固件库源码文件。每一个.c 文件和一个相应的.h 文件对应。这里的文件也是固件库的核心文件,每个外设对应一组文件。Libraries 文件夹里面的文件在我们建立工程的时候都会使用到。





菜鸟
2015-07-04 01:13:42     打赏
7楼
LED.rar.通过一个新建工程学习配置固件库

1建立目录

1.1 新建工程目录:“LED”,你也可以根据自己的需要命名此顶层目录;

1.2在目录“LED”下新建 “RVMDK”目录,表示采用ARM MDK开发环境;

1.3在“RVMDK”目录下新建目录“V1”,表示软件版本V1.0,这个好处在于下次将整个目录复制一下改为“V2”,软件版本就是V2.0了。

1.4在“V1”目录下新建 “Libraries”目录;

1.5在“V1” 目录下新建 “Project” 目录。

1.6在“Project”目录下新建“OBJ”、“LIST”、“Pro”3个目录。

1.7在“V1” 目录下新建“USER”目录。

1.8在“USER”目录下新建“INC”、“SRC”2个目录。

完成后的目录结构如下:

2 拷贝文件

2.1 将固件库目录X:\..\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries下的所有目录拷贝到工程目录X:\..xx\LED\RVMDK\V1\Libraries目录下。

2.2将固件库目录 X:\..\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggle目录下的stm32f10x_it.c”、“system_stm32f10x.c拷贝到工程目录X:\..\LED\RVMDK\V1\USER\SRC目录下,在此“SRC”目录下新建“main.c”文件,“main.c”先“神马”也不写。

2.3 将固件库目录X:\..\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggl目录下的stm32f10x_conf.h”、“stm32f10x_it.h 这2个文件拷贝到工程目录 X:\..\LED\RVMDK\V1\USER\INC目录下。


3 建立工程:

3.1运行“Keil uVision4” ;

3.2点击主菜单栏 “Project”è“New uVision Project”,选择在工程目录的X:\..\LED\RVMDK\V1\Project\Pro目录下命名新建工程为“LED_FLASH.uvproj”(当然也可以命名为你自己需要的工程名);

3.3接下来出现CPU选择窗口,选择CPU为 “STMicroelectronics” è“STM32F103C8” (这个大家根据自己的需要选择),点击 “OK” 按钮

3.4接下来出现Copy STM32 Startup Code to Project Folder and ADD File to Project ?提示时选择“否”(在后面的步骤中会根据CPU选择启动文件的,这里不用选择,完成工程建立

4 工程管理

上一节新建的工程还是空空的,这一步要将它实例化。

4.1 在“Project”窗口中用鼠标左键点击“Target 1”,再点击右键弹出菜单选择菜单中的 “Manage Components”子菜单,出现“Components,Environment and Books”窗口。

4.2 用鼠标双击“Project Targets”栏中的 “Target 1” 将 “Target 1” 改为 “LED_FLASH” ,在中间的 “Groups”栏中添加“USER”、“STM32_LIB”、“TARTUP”、“CMSIS”4个条目

4.3 在“USER”条目的“Files”栏中添加目录..\V1\USER\SRC下的“main.c”、“stm3210x_it.c”2个文件,通过窗口的“Add  Files”按钮可以添加文件

4.4 在 “STM32_LIB” 条目的 “Files” 栏中添加目录..V1\Libraries\STM32F10x_StdPeriph_Driver\src目录下的“stm3210x_misc.c”、“stm3210x_rcc.c”、“stm3210x_gpio.c”、 “stm3210x_usart.c”4个文件

4.5 在“STARTUP”条目的“Files” 栏中添加目录..\V1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的 “startup_stm3210x_hd.s”这个文件.

4.6 在 “CMSIS” 条目的 “Files” 栏中添加目录 ..\V1\Libraries\CMSIS\CM3\CoreSupport下的“core_cm3.c”和目录

..\V1\USER\SRC下的“system_stm32f10x.c”这2个文件。


完成后的图片如下:


5 工程设置

5.1在“Project”窗口中用鼠标左键点击最顶层的“LED_FLASH”,再点击右键弹出菜单选择菜单中的 “Options for Target  …”子菜单出现“Options for Target  ‘LED_FLASH”窗口,勾选使用微库IROM1IRAM1根据芯片不同而不同,一般KEIL会自动根据芯片填好的

5.2 选择顶层的“Output ”,进入“Output”设置页,点击下面的“Select Folder for Objects…”按钮,选择目录。。V1\Project\OBJ为目标文件目录,选中“Create HEX File”

5.3 选择顶层的“Listing”页 ,进入“Listing”设置页,点击下面的“Select Folder for Listings…”按钮,选择目录..\V1\Project\LIST目录为list文件生成目录

5.4 这是关键的一步,选择顶层的“C/C++”页 ,进入“C/C++”设置页,在“Preprocessor Symbols”的“Define:”文本框中填入“STM32F10X_MD,USE_STDPERIPH_DRIVER”。如果不填编译会报错,大家可以试一下。

5.5  在窗口的“Include Paths”旁边的文本框后有一个按钮,点击调出“Folder Setup”窗口。这里要添加4个目录,因为这4个目录里都有“.h ”文件:

RS422\RVMDK\V1\Libraries\STM32F10x_StdPeriph_Driver\inc” ;

RS422\RVMDK\V1\Libraries\CMSIS\CM3\CoreSupport ” ;

RS422\RVMDK\V1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x ” ;

RS422\RVMDK\V1\USER\inc ” ;

5.6 其他“C/C++”默认就可以了。

6. main.c文件

因为这是一个没有任何功能的工程框架,所以main.c可以这么写:

#include "stm32f10x.h"

main ()

{

while (1)

{

;

}

}

编译程序,没有警告和错误,框架就算生成了,想添加自己的代码就可以以后添加了



共7条 1/1 1 跳转至

回复

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