查看: 201|回复: 0

[项目分享] 一个Pan-Tilt迷宫游戏台

[复制链接]
本帖最后由 gada888 于 2019-10-2 16:23 编辑

这次做个简单的项目,一个云台,可以上下,左右的运动。它主要是通过两个粘在一起的的上下两个伺服电机来实现的。

废话不多说,直接开干。
2019-09-30_174410.png
首先弄个弹珠台,可以买一个,或3D打印一个,我没有,正在学习3D打印软件。希望以后会有。云台部分类似相机云台

2019-09-30_174315.png
只是这次做的没那么高端,用一个简单粗暴的方法实现这个功能。
这次的主角是三轴摇杆
2019-09-30_174924.png
和伺服电机
2019-09-30_174900.png
我从DF商城里捎带买了这个游戏杆,比我以前用的要精准。
主控用了Arduino romeo,主要为连线方便。

2019-09-30_175339.png

先看下连线图
2019-09-30_180139.png
为简化连线,我没有连VCC和GND。下面有拍摄的连线照片。可以看的很清楚。



[AppleScript] 纯文本查看 复制代码
//created by gada888  in China 30-09-2019

#include <Servo.h>  

int ServoXPin = 9;   
int ServoYPin = 10;   

int XPotPin = 0; //x
int YPotPin = 1; //y
int ZPotPin = 3; //key
 
int ServoX_Min = 0;  
int ServoX_Max = 180; 
int ServoY_Min = 0; 
int ServoY_Max = 180; 

Servo XServo;  
Servo YServo;    

int XPotValue;         
int XServoPosition;    
int YPotValue;         
int YServoPosition;    

void setup()   
{
  XServo.attach(ServoXPin);   
  YServo.attach(ServoYPin);         
}

void loop()  
{
  int x,y,z;
  x=analogRead(XPotPin);
  y=analogRead(YPotPin);
  z=digitalRead(ZPotPin);
  XPotValue  = analogRead(XPotPin); 
  YPotValue  = analogRead(YPotPin);  
  XServoPosition  = map(XPotValue, 0, 1023, ServoX_Min , ServoX_Max); 
  YServoPosition  = map(YPotValue, 1023, 0, ServoX_Max , ServoX_Min);   
  XServo.write(XServoPosition);       
  YServo.write(180-XServoPosition);       
  delay(50);    
}


2019-09-30_160249.png
IMG20190930160841_已压缩.jpg
完美运行
视频晚点奉上

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

本版积分规则

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

硬件清单

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

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

mail