-
大小: 1.43MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-11-14
- 语言: C/C++
- 标签: leap motion; MSP430G2553; 机械手;
资源简介
针对目前五指仿人五指机械手控制方式的局限性,我们设计了一种以操作人员体感手势图像为输入控制信号,操控五指仿人五指机械手的手指按照体感手势进行实时地动作的机械手控制系统。系统首次采用Leap Motion作为体感设备采集手势数据;利用计算机程序分析体感数据,发现手势并进行判别;运用MSP430单片机设定体感手势对应的控制指令;五指仿生机械手按照单片机的控制指令,完成指定的动作。经过实际装置测试,五指仿真机械手的手指可以按照体感手势进行实时地动作。
本项目包含三部分内容
(1)基于Leap Motion API所编写的手势判断处理模块,该程序在Leap API自带的Gesture之外,可识别“剪刀”“石头”“布”“竖起大拇指”等4种手势。
(2)Leap Motion上位机与MSP430G2553单片机串口通信程序。
(3)MSP430G2553接收上位机传来参数并产生相应PWM波控制舵机程序。
上位机开发环境:Win7+VS2013 语言 C++
单片机开发环境:Win7+CCS V5.5 语言 C
本项目受中国石油大学(华东)大学生创新训练项目支持
代码片段和文件信息
/******************************************************************************\
* Copyright (C) 2012-2014 Leap Motion Inc. All rights reserved. *
* Leap Motion proprietary and confidential. Not for distribution. *
* Use subject to the terms of the Leap Motion SDK Agreement available at *
* https://developer.leapmotion.com/sdk_agreement or another agreement *
* between Leap Motion and you your company or other organization. *
\******************************************************************************/
#include
#include
#include “Leap.h“
#include “COM.h“
using namespace Leap;
class SampleListener : public Listener {
public:
virtual void onInit(const Controller&);
virtual void onConnect(const Controller&);
virtual void onDisconnect(const Controller&);
virtual void onExit(const Controller&);
virtual void onframe(const Controller&);
virtual void onfocusGained(const Controller&);
virtual void onfocusLost(const Controller&);
virtual void onDeviceChange(const Controller&);
virtual void onServiceConnect(const Controller&);
virtual void onServiceDisconnect(const Controller&);
private:
};
const std::string fingerNames[] = {“Thumb“ “Index“ “Middle“ “Ring“ “Pinky“};
const std::string boneNames[] = {“metacarpal“ “Proximal“ “Middle“ “Distal“};
const std::string stateNames[] = {“STATE_INVALID“ “STATE_START“ “STATE_UPDATE“ “STATE_END“};
void SampleListener::onInit(const Controller& controller) {
std::cout << “Initialized“ << std::endl;
}
void SampleListener::onConnect(const Controller& controller) {
std::cout << “Connected“ << std::endl;
controller.enableGesture(Gesture::TYPE_CIRCLE);
controller.enableGesture(Gesture::TYPE_KEY_TAP);
controller.enableGesture(Gesture::TYPE_SCREEN_TAP);
controller.enableGesture(Gesture::TYPE_SWIPE);
}
void SampleListener::onDisconnect(const Controller& controller) {
// Note: not dispatched when running in a debugger.
std::cout << “Disconnected“ << std::endl;
}
void SampleListener::onExit(const Controller& controller) {
std::cout << “Exited“ << std::endl;
}
void SampleListener::onframe(const Controller& controller) {
// Get the most recent frame and report some basic information
const frame frame = controller.frame();
/* std::cout << “frame id: “ << frame.id()
<< “ timestamp: “ << frame.timestamp()
<< “ hands: “ << frame.hands().count()
<< “ extended fingers: “ << frame.fingers().extended().count()
<< “ tools: “ << frame.tools().count()
<< “ gestures: “ << frame.gestures().count() << std::endl;*/
/**根据手指数量识别手势动作** start **/
switch (frame.fingers().extended().count())
{
case 0:
{
std::cout << “fast“ << std::endl;
CmdNum = 2;
Write[0] = CmdNum;
WriteFile(hCom Write strlen(Write) &dwTX NULL); //发送字符
brea
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-06-13 22:31 Leap Motion上位机程序\
文件 3089 2015-04-28 22:41 Leap Motion上位机程序\COM.h
目录 0 2015-06-13 01:14 Leap Motion上位机程序\Debug\
文件 1150800 2015-03-21 10:10 Leap Motion上位机程序\Debug\Leap.dll
文件 114176 2015-05-05 23:13 Leap Motion上位机程序\Debug\Sample.exe
文件 1044892 2015-05-05 23:13 Leap Motion上位机程序\Debug\Sample.ilk
文件 343888 2015-05-05 23:13 Leap Motion上位机程序\Debug\Sample.obj
文件 1739776 2015-05-05 23:13 Leap Motion上位机程序\Debug\Sample.pdb
文件 2751 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.log
目录 0 2015-06-13 01:14 Leap Motion上位机程序\Debug\SampleVS2012.tlog\
文件 1274 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\cl.command.1.tlog
文件 31330 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\CL.read.1.tlog
文件 1180 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\CL.write.1.tlog
文件 2232 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\li
文件 3202 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\li
文件 1196 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\li
文件 264 2015-05-05 23:13 Leap Motion上位机程序\Debug\SampleVS2012.tlog\SampleVS2012.lastbuildstate
文件 797696 2015-05-05 23:13 Leap Motion上位机程序\Debug\vc120.idb
文件 512000 2015-05-05 23:13 Leap Motion上位机程序\Debug\vc120.pdb
文件 10690 2015-05-05 23:22 Leap Motion上位机程序\Sample.cpp
文件 1212 2015-03-21 10:11 Leap Motion上位机程序\SampleVS2012.sln
文件 27136 2015-05-05 23:22 Leap Motion上位机程序\SampleVS2012.v12.suo
文件 10065 2015-04-28 22:41 Leap Motion上位机程序\SampleVS2012.vcxproj
文件 165 2015-04-27 21:30 Leap Motion上位机程序\SampleVS2012.vcxproj.user
文件 160 2015-06-13 22:33 Leap Motion上位机程序\程序说明.txt
目录 0 2015-06-13 01:14 Leap_G2553\
文件 464 2014-05-08 16:06 Leap_G2553\.ccsproject
文件 22974 2014-05-08 16:07 Leap_G2553\.cproject
目录 0 2015-06-13 01:14 Leap_G2553\.launches\
文件 3848 2015-04-09 10:31 Leap_G2553\.launches\Leap_G2553.launch
文件 840 2014-05-08 16:06 Leap_G2553\.project
............此处省略46个文件信息
- 上一篇:CNC雕刻机控制软件
- 下一篇:MFC聊天室含源代码.rar
评论
共有 条评论