查看: 2603|回复: 5

用Boson&Arduino实现跳一跳外挂装置

[复制链接]

最近微信推出的小游戏“跳一跳”
刷爆了朋友圈

1D420F149ED3EF18E806E862EDBCC0ABA0A6E22B_size15_w552_h413.jpeg

如何才能刷到2999分?
光靠手指是不行的,还是要外援!
接下来我们来教大家用Boson模块+Arduino主控板制作简单的外挂装置~

!用玩游戏的方式学编程!

先上效果图

Boson 3.gif




材料清单:

微信截图_20180102215206.png

尺子,按钮模块,角度传感器模块,舵机,导电胶布,棉签,Arduino主控板+扩展板,导电线

硬件制作:

1. 将角度传感器连到A0,黄色按钮模块连到数字2号口,舵机连接到数字9号口(PMW)
2. 将棉签裹上一层导电布,然后将导电布一段接上5V导电线,(可直接连接至扩展板),即可模拟手指触摸屏幕~
舵机.png


微信截图_20180103150810.png


代码上传:

打开ArduinoIDE ,上传代码

[C] 纯文本查看 复制代码
#include <Servo.h>
Servo myservo;
int pos = 0;
float val = 0.00;
const int buttonPin = 2;
const int ledPin = 13;
//Variables will change:
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
void play(){
  int t = val*300;
  myservo.write(0);
  delay(500);
  myservo.write(60);
  delay(t);
  myservo.write(0);
  delay(500);
}
void setup() {
  // put your setup code here, to run once:
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  myservo.attach(9);
  myservo.write(0);
  delay(500);
}

void loop() {
  // put your main code here, to run repeatedly:
  val = analogRead(A0);
  val = (val+1)*0.02;
  Serial.println(val);
  buttonState = digitalRead(buttonPin);
  //compare the buttonState to its previous state
  if (buttonState != lastButtonState){
    //if the state has changed, increment the counter
    if (buttonState == HIGH){
      buttonPushCounter++;
      play();
      Serial.println("on");
      Serial.print("number of button pushes: ");
      Serial.println(buttonPushCounter);
    }else{
      //if the current state is LOW then the button
      //wend from on to off:
      Serial.println("off");
    }
    //dalay a little bit to avoid bouncing
    delay(50);
  }
  lastButtonState = buttonState;
}


打开Arduino IDE 的工具,点击串口监视器,
微信截图_20180103151829.png

开始游戏:
1.先用尺子测量距离屏幕上盒子之间的距离;
2.通过角度模拟器的输入实际测量的盒子之间的距离

跳一跳.gif

3.按下黄色按钮,舵机就会按对应的时间按压屏幕,然后就尽情地跳跳跳吧~



Boson 3.gif

JustDoIt  学徒

发表于 2018-1-3 19:20:33

666
回复 支持 反对

使用道具 举报

xiaohe9527  高级技师

发表于 2018-1-4 12:04:09

那么不同的距离怎么办呢?每次都要测量吗?
回复 支持 反对

使用道具 举报

1002victor  初级技师

发表于 2018-1-4 13:28:07

太麻烦,不如手快
回复 支持 反对

使用道具 举报

zbl  管理员
 楼主|

发表于 2018-1-4 13:41:05

xiaohe9527 发表于 2018-1-4 12:04
那么不同的距离怎么办呢?每次都要测量吗?

这个初级版本是需要手动测量的~可以做个图像识别的高级版本!
回复 支持 反对

使用道具 举报

面包板  初级技匠

发表于 2018-1-5 15:10:22

没太明白程序里距离和需要按屏幕的时间的线性关系?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail