使用M5stickC+8servos驱动板重写微信跳一跳-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2393|回复: 2

使用M5stickC+8servos驱动板重写微信跳一跳

[复制链接]
发表于 2020-2-11 23:16 | 显示全部楼层 |阅读模式
【使用M5stickC+8servos驱动板重写微信跳一跳】


【故事】
故事还是要讲的。这个小玩具纯粹是极客研究,没有实战价值,和家人朋友玩得时候,告诉人家一声,我用机器人啦。
原帖是受美科(microduino)官方公众号一个项目的启发,用processing+uno实现了一版,尝试了两种方案:一是用模拟电极的方式触摸屏幕,一种比较硬核一点,用舵机模拟手指。
链接在这里,感兴趣的同学可以去看看。
☞☞☞【微信跳一跳物理辅助工具】来自美科微信公众号的实践


宅家期间,使用M5stickC+8servos驱动板重写微信跳一跳。有两个知识点:
1、使用arduinojson 6.0来解析上位机发来的json格式的跳跃数据。
2、使用M5stickC+8servos驱动板来实现舵机驱动。

正面_a.jpg
c8_a.jpg
触屏机构侧面_a.jpg
【代码】
[mw_shl_code=arduino,true]/*
微信跳一跳arduino端程序,移植到M5stickC
2020-02-11
version:0.3
作者:沧海

基本原理:利用processing+摄像头+鼠标,测量跳跃点之间距离,将延时系数+跳跃距离用json格式+串口
送至M5stickC(arduino),arduino+servo,经过延时后,实现跳跃功能。

数据格式:
{"ratio":3.35,"dist":370}
使用M5出品的8servs 扩展板来实现舵机驱动


*/
//======M5StickC AND IIC_servo
#include <M5StickC.h>
#include "IIC_servo.h"
//===========ArduinoJson部分
#include <ArduinoJson.h>
//==========跳跃参数
float iratio=1.0;//延时系数
int idist=1;//跳跃距离
//====触摸屏幕的舵机角度
int ANGLEMIN=5;//
int ANGLEMAX=20;
void setup() {
  Serial.begin(00);
  // Initialize the M5StickC object
  M5.begin();
  // LCD display
  M5.Lcd.println(" ");
  M5.Lcd.println("  WX_Jump 0.3");
  IIC_Servo_Init();     //sda  0     scl  26
}


void loop() {
  const size_t capacity = JSON_OBJECT_SIZE(3) + 60;   //定义来自arduinojson.org的助手生成
  DynamicJsonDocument jsonBuffer(capacity);
  while (!Serial.available())
   delay(100);
   DeserializationError error = deserializeJson(jsonBuffer, Serial);// json数据源来自serial。生成一个jsonBuffer
  if (error) {
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.c_str());
    return;
  }

  iratio=jsonBuffer["ratio"]; //解析jsonBuffer,得到iratio,跳跃系数
  idist=jsonBuffer["dist"];//解析jsonBuffer,得到idist,跳跃距离

  #Serial.println(iratio);
  #Serial.println(idist);
  dojump();//调用跳跃函数

}

void dojump()//跳跃函数
{
Servo_angle_set(1,ANGLEMAX); //舵机安装在CH1,一共八路舵机输出,模拟手指点击屏幕
delay(iratio*idist);         // 跳跃距离*延时系数
Servo_angle_set(1,ANGLEMIN);  //模拟点击屏幕结束,抬起模拟手指

}[/mw_shl_code]


【感谢】
  感谢M5Stack提供有趣的硬件平台,这一版有两个新知识点,希望对大家有所启发。感谢美科该项目的原作者,如果我得到了名字,会及时更正致谢。
  感谢arduino.cn提供交流平台。


我的代码以及库,都打包附上,供各位玩家参考。arduinojson库请在arduinojson.org下载最新。


weixin_jump_0.3.rar (2.36 KB, 下载次数: 1)


发表于 2020-2-13 20:57 | 显示全部楼层
学习一下沧海笑老师的最新研究。
 楼主| 发表于 2020-2-13 21:49 | 显示全部楼层
topdog 发表于 2020-2-13 20:57
学习一下沧海笑老师的最新研究。

感谢师兄关注,这个没有太多提升,只是试了一下M5最新的IIC舵机控制。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 17:37 , Processed in 0.092114 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表