【训练营】就决定是你了,皮卡丘大侦探! - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 【训练营】就决定是你了,皮卡丘大侦探!

  • 4.8k
  • 6
  • 34

简介:一个拥有十六个步态的智能侦探机械狗~ 1.十六个步态,可跑可跳可做俯卧撑 2.可实现智能手机远程控制 3.转接板接入智能摄像头,手机可以远程查看实时视频

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2022-06-20 21:14:41
更新时间: 2023-07-20 00:53:37
描述

设计思路
机械狗遇上鸿蒙,会碰撞出怎样的火花~做机械狗之初,问了下身边人的建议,做成什么样子好。“要好看”、“要智能好玩”、“要能遛”、“要能看家护院”、“要能陪我聊天”,嗯,调研过需求后发现,机械狗还是很有搞头的,拓展性很高。
正好搭上训练营顺风车,思考了一段时间后,基于本人对皮神的喜爱,决定将这个项目取名:皮卡丘大侦探。基本的功能设计如下:
image.png
站在巨人的肩膀上,事情做起来就会方便很多。用业余时间,把训练营的课程过了一遍,功能基本大致有谱了。
  • 海思 Hi3861模组做主控,基础控制功能可以分为三种。静止角度控制比较简单,例程有角度控制API可以调用,动态控制也相对简单,更改数组参数即可。步态控制要研究一下,看资料要控制相位差。
  • 智能化方面,手头刚好有涂鸦的nano开发板,之前立创社区也合作过活动,正好物尽其用。这样就比较方便的实现App控制,后续手机面板也好开发。要看SDK的资料情况,开发Hi3861的外设源码,拓展IO控制或者串口控制。
  • “看家护院”、“陪我聊天”这类功能,还是有点麻烦的,主要时间有限,摄像头音视频实时传输资料hi3861资料还没找到。索性直接用之前做的IPC转接板,接之前做过的成品好了,殊途同归。
  • 至于硬件外壳,没那么擅长,就按课程教的复制好了,当然皮神要用亮黄色。后续改版,腿部应该要做相应的设计调整
PS.本来设计是摄像头用云台,直接把云台的舵机接到转接板上,就可以在摄像头界面直接控制狗的转向。转接板都设计完了,没想到后边发现云台太重,机械狗带不动,最后只好忍泪换成了卡片机。

硬件设计

PCB画板
之前一直没有机会在立创EDA上实操做项目,应该有很久没有自己画板了,这次体验了一下,还好底子还在,一稿通过。给立创EDA打call,免去了安装AD的麻烦,在线用起来没有太多问题,双层板流畅随便画。
PS.中间遇到了一些小问题,不同PC端,谷歌浏览器加载工程有问题,一直打不开,换了个浏览器就好了。专业版问题已经反馈FAE。
主控板:
主控板原理图根教程里的类似,Hi3861做主控,为了方便布线和后续插拓展板,将PCA9685放在底面,拓展引脚放在模组两侧。
image.pngimage.png
拓展板:
拓展板直接用的之前做过的项目,本来想直接接云台,奈何重量太重,最后改用了IPC卡片机,这个转接板这次也就没用上,后边留着以后的项目用吧~
image.pngimage.png
上一个预期效果图,本来打算是这样子,放在大侦探背上,后边由于超重换成了卡片机。不过做项目嘛,本身就是按照实际情况灵活调整,毕竟时间有限,活还有很多~
image.png

硬件结构
外观硬件结构,solidworks 入门依葫芦画瓢。这一套流程下来,还是挺有收获的,小腿的垫片很重要这里要注意一下,看的仔细就不会漏掉,要么装配的时候会不平整,看到有很多同学遇到这个问题。
为了尺寸精准,基本所有尺寸都没变,做完项目后来看,脚底是可以改一下,增加受力面。然后固定板子的定位柱尺寸和课程里PCB 7*4cm是不配套的,应该要修改一下,还好都是小问题,总体走下来还算顺利。
image.png

组装调试
在心心念念的期待中,立创一条龙服务的板子和物料到了。抽个下班时间开始焊接调试,还好焊接功夫没还给老师。
image.png

image.png
这里也有个小坑,买来的按键和PCB上的封装不对应,第一遍烧录固件的时候没起来,排查下去发现EN脚的电平一直拉低,万用表测了下发现按键没生效,于是最后改了一下方向,只焊接了两个触点,搞定。
image.png
烧录搞定,亚克力切割片到位,开始组装,皮卡皮!
image.png
先装腿,再装身子,凭借猜想,螺丝没拧错,有点那个味了~
image.pngimage.png
组装成品的时候,遇到问题了,仔细看装配图和效果图腿部是反的。看来教程里和实物也没对应啊,纠结了一下按课程视频为准,用下边这个方向装了。事实证明,影响不大,角度决定位置,正反装静态姿态会有些差别。
image.pngimage.png
成品装好,来吧,展示~
image.png

软件设计

环境搭建
Ubuntu 教程提供了镜像还是比较方便,下载编译一条龙。顺便也研究了下 python 环境,本来想为什么是两个语言都有,看完程序,python其实也是传的json数据给模组,底层还是要靠C的。考虑后续要拓展App功能,要改动底层,就只简单试了下python的函数功能,后续开发均基于C语言的SDK包进行。
image.pngimage.png

基础功能
第一次烧录完成后,测试发现除了安装模式外,其余模式效果都一样。看了下源码,原来例程里写的参数都一样。正常到了这步,应该训练营的基础功能就可以实现了。
image.png

const char *html = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><title>传智教育元气派</title><style> body {user-select: none;text-align: center;} table {margin: 0 auto} td div {width: 150px;height: 150px;border: 1px solid darkgrey;display: flex;align-items: center;justify-content: center;color: black;} #s {background-color: red;color: white;} td div:active {background: deepskyblue;color: white;} button {margin: 0.5rem;width: 9rem;height: 3rem;font-size: 1.2rem;border-radius: 1rem;} button:hover {border-radius: 1rem;background-color: deepskyblue;color: aliceblue;}</style></head><body>

鸿蒙狗控制

<button id=\"a\">安装模式</button>






<button id=\"b\">原地踏步</button>

<button id=\"c\">蹲下</button>

<button id=\"d\">前进</button>

<button id=\"e\">后退</button>

<button id=\"f\">左转</button>

<button id=\"g\">右转</button>

<script> function u(p) {return `${p}`;}function g(i) {return document.getElementById(i);}function fe(e, f) {e.addEventListener('click', function (e) {/* do something*/f();});}function fg(u, f) {let x = new XMLHttpRequest();x.onreadystatechange = function () {if (this.readyState == 4 && this.status == 200) {f(x);}};x.open(\"GET\", u, true);x.send();}function fp(u, d, f, p) {let x = new XMLHttpRequest();if (p) {x.upload.addEventListener('progress', function (e) {p(e);});}x.onreadystatechange = function () {if (this.readyState == 4 && this.status == 200) {f(x);}};x.open('POST', u, true);x.timeout = 45000;x.send(d);}
fe(g('a'), () => {fg(u('/dog/init'), () => {});});
fe(g('b'), () => {let data = {\"type\": 3, \"count\": 30, \"list\": [[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100]]};fp(u('/dog/cmds'), JSON.stringify(data), () => {});});
fe(g('c'), () => {let data = {\"type\": 3, \"count\": 30, \"list\": [[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100]]};fp(u('/dog/cmds'), JSON.stringify(data), () => {});});
fe(g('d'), () => {let data = {\"type\": 3, \"count\": 30, \"list\": [[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100]]};fp(u('/dog/cmds'), JSON.stringify(data), () => {});});
fe(g('e'), () => {let data = {\"type\": 3, \"count\": 30, \"list\": [[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100]]};fp(u('/dog/cmds'), JSON.stringify(data), () => {});});
fe(g('f'), () => {let data = {\"type\": 3, \"count\": 30, \"list\": [[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100]]};fp(u('/dog/cmds'), JSON.stringify(data), () => {});});
fe(g('g'), () => {let data = {\"type\": 3, \"count\": 30, \"list\": [[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100]]};fp(u('/dog/cmds'), JSON.stringify(data), () => {});});</script></body></html>";
源码可以看出,只有两个参数数组[74, 111, 24, 151, 24, 151, 74, 111, 100], [24, 151, 74, 111, 74, 111, 24, 151, 100],只要做好这俩数据,基础控制的静止角度控制和姿态控制可以实现了。还剩下一个步态的控制,用提供的工具生成数组测试了一下,效果有,不过感觉并不流畅,离网上看到的效果还差蛮多,没达到满意的效果。
image.pngimage.png
网上看了一些机械狗的资料和朋友问了一下(特别鸣谢 小乙 同学),大约明白了机械狗的步态原理,摆动腿和支撑腿只要有一定的相位差,就可以走出不同的步态。
image.png
image.png
基于这个原理,模拟了一条腿的路径。然后就开启了漫长的调试过程,控制函数为了和web端区分做了简单封装。
最后基础控制模式,静态、动态、步态,总共保留了十六个姿态,当然不是每个都调试的很完美,毕竟还有很多功能排期等着呢~
image.png智能功能
作为 IoT 行业的开发者,接下来就时重头戏给项目加上智能化的功能呀。看需求,手机控制、摄像头画面、音箱控制,接入云端之后都可以一并解决。通过Hi3861通过转接板接入云平台,摄像头也接入同样的云平台,方便后边接入音箱的控制功能。
image.png

image.png
面板端第一个版本做的比较弱,直接用面板工作台搭建。后边针对UI做了一次优化升级,看起来就顺眼多了。
image.png
本来打算把模式名都换成技能名称,电光一闪、十万伏特什么的,怕调试时候姿态对不上忘了,就改了下边的几个。
image.png

成品功能展示
皮卡丘大侦探,成品
image.png
手机控制四个方向,按暂停回到安装初始状态。十二个静态、动态、步态模式。可点击按钮进入大侦探摄像头模式,进行巡逻监控。摄像头支持对讲功能。支持天猫精灵语音控制。
搞定收工,去吧,皮卡丘!
image.png
image.png

视频链接
B站视频链接https://b23.tv/8AalVBd    
舵机调到最后有一个坏了,可以看到步态有个腿没那么正常,不过也无伤大雅了。
还好有其他的视频有保存的,其他视频见如下附件。

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
序号 文件名称 下载次数
1

姿态.mp4

20
2

步态.mp4

16
3

侦探模式.mp4

17
工程成员
侵权投诉
相关工程
换一批
加载中...
认证图标

chi_a

鸿蒙物联网实战训练营优秀学员

添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP