基于北斗(GPS)的小车导航
复用之前电设的代码,以TM4C123G为主控板,以zynq3000作为信号接收(串口或总线连接),利用磁导、惯导、卫星信号实现导航,为了方便,使用履带及两个电机进行运动。使用蓝牙串口进行调试。在完成所有功能的前提下,尝试将所有程序迁移至zynq的ARM核上.
单片机教程可以看一下这里,这个作者的其他文章也很有用
最最重要的文档是datasheet文档和C:/TI/tm4c~~这个文件夹中的各种样例,不少编译就可以直接跑
##目前完成情况
- 车已经组装完毕,电源与电机驱动调试完毕
- pwm调试完毕,车可以正常运动
- 蓝牙串口调试完毕
- 蓝牙遥控程序编写完毕,可以通过蓝牙遥控车运动
- 惯导模块的I2C正在调试中
- 惯导算法正在调试中
本阶段(今日到9月12日)应完成的任务为:
**基本:**能够利用惯导完成一定的导航,能够与zynq板通信,完成定位功能.
**进阶:**基本消除bug,达到设计要求.
**高阶:**将程序移植至zynq板上.
聂浩
- 完成惯导模块与和zynq通信的调试
- 完成代码的整体组合
王璞瑞
- 重做12V转5V版
- 找到给zynq供电的合理方法
- 寻求合理的原件布局
刘天威与秦誉轩
- 熟悉欧拉角等基本的惯导概念
- 理解PID等控制理论
- 基于惯导完成停车,坐标确定,角度控制,距离控制的基本代码
丛天硕
- 完成经纬度坐标与平面直角坐标的转换代码
- 与王璞瑞一起修改车的布局
注意:完成代码时请增加足够的注释,最好在本文档中进行说明.git大家可以百度直接使用git客户端的gui程序
本阶段(今天到期末复习)完成的任务为:
**入门:**安装CCS,跑通板子的demo(我会提供去年电设的教程)
**初阶:**完成车辆的遥控行动
**进阶:**完成惯导的姿态矫正
**注意:**注意代码编写时的注释和说明文档编写
聂浩
- 通信协议的制定、协助各位完成任务
王璞瑞
- 调通pwm,重写基本的move函数
- 选购或制作电机驱动版
刘天威
- 修改高级的运动代码,对停止转弯、运动转弯进行优化
- 设计最终的导航算法(不必编码)
丛天硕
- 调通蓝牙串口,协助进行通讯协议的完成
Git教程 by 廖雪峰
鉴于惨痛的经验…为了保持分支图的清晰,如果在push时发现远程仓库下的对应分支已被修改,并且预期不会有太多的conflict, 请不要直接使用 git pull
, 而是使用 git pull --rebase
,以避免不必要的merge
下面是个人摸索出的,比较科学的工作流程……
$ git clone git@git.lambda.cool:nh13/thedc.git # 克隆仓库到当前目录下
$ cd thedc # 进入本地仓库文件夹
$ git status # 确认下处在 gps_robot 分支
$ git checkout develop # 来到 develop 分支
$ git pull # 获取最新的工作进度
$ git checkout -b some_work # 分支出 some_work 分支,并转到该分支
如果是需要多人合作的分支,则可能需要 push 到远程库
$ git push -u origin some_work # 推至远程,同时设置为跟踪该远程分支
加入了新文件 some_new_file
$ git add some_new_file
修改了一系列已经添加的文件,一同提交
$ git commit -a
develop 分支上出现了比较重要的更新,需要立即合并到当前分支
$ git checkout develop # 来到 develop 分支
$ git pull # 获取最新的工作进度
$ git checkout some_work # 来到工作分支下
$ git merge --no-ff develop # 将最新更新与自己已有工作进度合并
$ git checkout develop # 来到 develop 分支
$ git pull # 确保 develop 分支与远程同步
$ git merge --no-ff some_work # 将工作成果合并进 develop 分支
$ git push # 将合并后的 develop 分支推至远程仓库
如果很不幸,有人在 merge 的时间里更新了 develop 分支导致 push 失败, 请在 pull 时带上 --rebase
,以保持分支图的清晰
$ git pull --rebase # 将本次修改放在此修改之后
$ git push # 推回远程仓库
最后别忘了删除 some_work 分支
$ git branch -d some_work # 删除 some_work 分支
如果之前将该分支推至远程库,则还要从远程库删除
$ git push origin :some_work # 将一空分支 push 到远程库的该分支,即删除
大家注意,所有操作都保持了 develop 分支 在本地与远程的同步
这里的思路是 本地的 develop 分支是远程 develop 分支的直接体现
所有本地 develop 分支上的改变,都应对应着远程 develop 分支上的改变
故在 develop 分支可能发生冲突时,请使用 git pull --rebase
(如果不确定,一直用它就好了…)
其他类似的分支同理……
不过建议大家主要用这类工具看看分支树和修改历史,或者便捷地 commit……当然,如果你 清楚地 知道自己在做什么的话,用它而抛弃命令行也不是什么大事 = =
2014年电设的参赛程序,写的要跪,相当简单,只使用了一种传感器。 编写过程中没有涉及多少团队合作,注释并不齐全,最终还存在一些BUG,懒得修改了。
by 鸽子为什么这么大 队队长 Neil