智能小车制作过程全纪录: 六、软件平台--- 摄像头云台控制
2016-12-30 10:49
405 查看
摄像头云台采用2自由度云台控制可以控制,淘宝很多商家都有卖,云台如下图
舵机控制板采用24路舵机控制板,通过串口发送指令控制舵机的控制,如下图
舵机类Servo.java 封装了舵机控制的基本属性,可以根据属性获取控制的命令
ServoCMD.java类,封装了24路舵机的操作
舵机控制板采用24路舵机控制板,通过串口发送指令控制舵机的控制,如下图
舵机类Servo.java 封装了舵机控制的基本属性,可以根据属性获取控制的命令
package com.diego.serialcomm; public class Servo { private int pos=500; private int servoChanel=1; private int durationTime=100; public Servo(int pos, int servoChanel, int durationTime) { super(); this.pos = pos; this.servoChanel = servoChanel; this.durationTime = durationTime; } public int getPos() { return pos; } public void setPos(int pos) { this.pos = pos; } public int getServoChanel() { return servoChanel; } public void setServoChanel(int servoChanel) { this.servoChanel = servoChanel; } public int getDurationTime() { return durationTime; } public void setDurationTime(int durationTime) { this.durationTime = durationTime; } public String getCMDWithTime(){ String rts="#"; rts+=servoChanel; rts+="P"+pos+"T"+durationTime+"\r\n"; return rts; } public String GetCMDWithoutTime(){ String rts="#"; rts+=servoChanel; rts+="P"+pos+"\r\n"; return rts; } }
ServoCMD.java类,封装了24路舵机的操作
package com.diego.serialcomm; import java.util.ArrayList; import java.util.List; public class ServoCMD { private SerialComm servoCMDComm; private List<Servo> servoList=new ArrayList<Servo>(); public void openSAC(String portName){ servoCMDComm=new SerialComm(); try { servoCMDComm.connect(portName); System.out.println("******the SAC "+portName+" has been opened!"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void init(String portName,int servoCount){ openSAC(portName); for(int i=1;i<=servoCount;i++){ Servo s=new Servo(500,i,100); servoList.add(s); } } public void servoControl(int chanel,int pos,int durationTime){ String cmds=""; if(chanel>servoList.size()){ System.out.println("there is not this chanel "+chanel); return; } servoList.get(chanel-1).setPos(pos); servoList.get(chanel-1).setDurationTime(durationTime); cmds=servoList.get(chanel-1).getCMDWithTime(); servoCMDComm.setMsg(cmds); } public void servo1Control(int pos,int dotime){ servoControl(1,pos,dotime); } public void servo2Control(int pos,int dotime){ servoControl(2,pos,dotime); } public void servo3Control(int pos,int dotime){ servoControl(3,pos,dotime); } public void servo4Control(int pos,int dotime){ servoControl(4,pos,dotime); } public void servo5Control(int pos,int dotime){ servoControl(5,pos,dotime); } public void servo6Control(int pos,int dotime){ servoControl(6,pos,dotime); } public void servo7Control(int pos,int dotime){ servoControl(8,pos,dotime); } public void servo8Control(int pos,int dotime){ servoControl(8,pos,dotime); } public void servo9Control(int pos,int dotime){ servoControl(9,pos,dotime); } public void servo10Control(int pos,int dotime){ servoControl(10,pos,dotime); } public void servo11Control(int pos,int dotime){ servoControl(11,pos,dotime); } public void servo12Control(int pos,int dotime){ servoControl(12,pos,dotime); } public void servo13Control(int pos,int dotime){ servoControl(13,pos,dotime); } public void servo14Control(int pos,int dotime){ servoControl(14,pos,dotime); } public void servo15Control(int pos,int dotime){ servoControl(15,pos,dotime); } public void servo16Control(int pos,int dotime){ servoControl(2,pos,dotime); } public void servo17Control(int pos,int dotime){ servoControl(17,pos,dotime); } public void servo18Control(int pos,int dotime){ servoControl(18,pos,dotime); } public void servo19Control(int pos,int dotime){ servoControl(19,pos,dotime); } public void servo20Control(int pos,int dotime){ servoControl(20,pos,dotime); } public void servo21Control(int pos,int dotime){ servoControl(21,pos,dotime); } public void servo22Control(int pos,int dotime){ servoControl(22,pos,dotime); } public void servo23Control(int pos,int dotime){ servoControl(23,pos,dotime); } public void servo24Control(int pos,int dotime){ servoControl(24,pos,dotime); } public void test(){ try { servo1Control( 1500,100); Thread.sleep(1000); servo2Control( 1500,100); Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 智能小车制作过程全纪录: 四、软件平台--- Java 控制GPIO
- 智能小车制作过程全纪录: 二、软件平台--- Arduino底盘驱动
- 智能小车制作过程全纪录:一、硬件平台
- 通过WiFi控制智能小车机器人制作过程详解
- 基于android系统的智能小车控制软件开发
- C++Builder XE6开发海康设备控制软件--摄像头图像预览与云台控制
- 历时两年开发,昕友亿方InfoPath智能平台软件横空出世
- 昕友亿方InfoPath智能平台软件视频教程公开,4分钟学会轻松定制企业级应用软件
- 颠覆传统 联鼎软件推出全新智能高可用双机热备软件,可扩展为集群及容灾平台
- 软件智能升级(用Web Services制作升级程序)
- 制作演示的福音,推荐屏幕录制软件:Adobe Captivate 2,特意使用这个录制一个简单的录制使用过程,让大家有直观印象
- 8个最好的Linux平台商业智能(BI)软件
- 软件项目范围变更流程与过程控制研究
- 基于FreeBSD/BIND平台自动解析不同IP的智能DNS服务器架构过程
- 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 对象控制反转
- 一种构思:基于手机移动平台的远程小车控制
- 6410平台500W摄像头调试过程 && 拍照偏绿和图片保存等BUG
- 五大主流智能手机软件平台简单比较
- J2EE平台架构上开发CRM的技术过程控制
- Linux(FC7)下远程控制软件VNC安装配置详细过程