【NANO PI M1】【bluebanboom】05. NanoPi M1 HTTP遥控小车

  • bluebanboom
  • LV4工程师
  • |      2016-07-22 09:39:15
  • 浏览量 1449
  • 回复:3
NanoPi M1 HTTP遥控小车来了。 有了Go的GPIO库,撸个HTTP小车真是分分钟的事情。 先来张UI,大家看看。 完整代码:https://github.com/bluebanboom/M1HTTPCar 首先是连线,小车用的L289N驱动的。 如上图所示,将M1的11,13,15,16号引脚分别与L298N的In1,In2,In3,In4连接。 然后执行如下命令:
$ sudo go run car.go

-------------------------------------------

Car is ready on http://192.168.1.137:8000

-------------------------------------------
将http://192.168.1.137:8000在浏览器中打开即可控制小车了。 由于go直接run代码在M1上速度较慢,大家可以先编译一下代码,执行如下命令即可:
go build car.go
在当前目录下会生成一个car可执行文件,这样速度会快很多。 大家也可以从这里下载编译好的直接体验:https://github.com/bluebanboom/M1HTTPCar/releases 下载car-v0.1.0.zip 解压后执行即可。 好了。下面简单讲一下代码。 先讲一下Go代码。代码主要由两部分组成,一部分是建立HTTP服务器,创建了两个URL handle,用于响应 “http://serverip/action"和其他。 只要不是action就直接显示控制页面。 action会响应几个动作:on,off,stop,forward,backward,left,right用于控制小车启动、方向等。 另外一部分是小车控制部分,主要由DoAction函数实现 func (car *Car)DoAction(action string) int 这里先把前进、转向、停止等动作的各个pin的输出先定义好了,定义在Actions中,这样对应的命令去到各个pin的输出依次写入就行。 Action中对应的输出分别是LeftIn1(In1)、LeftIn2(In2)、RightIn1(In3)、RightIn2(In4),这样就把M1的引脚和L298N的引脚对应好了。 后面的代码就很好写了。 然后就是控制页面的代码,由于前端我也不太熟,将不太明白。 其实就是几个按钮对应的动作,想服务器请求。 比如点击开,会通过ajax请求http://serverip/action?on,关会请求http://serverip/action?off。 其他命令依此类推。 另外有一个地方需要注意,小车在执行命令前都会先stop一下,这样再执行其他命令会平滑一些。 还有就是小车实现的简单粗暴,比如转向是一个轮子不动,另一个动来实现转向。 其实这里应该用pwm实现两轮差速来转向。因为L298N的pwm控制我一直没测试好,然后我也没完成Go的pwm控制,所以慢慢来吧。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:3
bridgeBin 2016-07-30
收藏下
0   回复
举报
发布
独行客 2016-07-29
控制端直接网页显示,连手机app都省了,哈哈
0   回复
举报
发布
灵澈 2016-07-25
小车飞起来了没?
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子