请选择 进入手机版 | 继续访问电脑版

作品展示

原创作品:Ever_never

系统分类: 机器人创想秀 - 技术流

作品版权:Ever_never 版权所有,禁止匿名转载;禁止个人使用。

Ever_never

2015-5-26 01:11:17

决赛得分

总分(1.69)点赞数(14)评委打分(0)

初赛得分

总分(67.18)点赞数(305)评委打分(50.96)

评委[创想秀_评委1]:创意挺好.对行李箱上的进行某种改进,曾见过有好几个. 以下问题需要注意: (1)灯光跟踪,容易受到环境光的影响; (2)摄像机由于带光学镜头,也容易损坏和污染,保养不容易. (3)若对行李箱增加较多的重量,也是不可行的. (4)超声传感器的安装和防护,也需要注意. 建议: (1)采用无线编码和通信的方式, (2)采用无线定位定向的方式,也许不可行,需要考虑一下,

评委[章苏阳zsy]:动力、安全性(飞机上)需考虑,应用难度大

评委[创想秀_评委1]:觉得有些实用性,又觉得有较多的限制,可以再进一步细化一下。

作品亮点:

这是一款通过图像识别来进行跟踪定位的智能行李箱,它可以解放你的双手,让箱子跟着你走。

作品说明:

[align=left] 智能行李箱

灵感来源:

     现在国人外出旅游的人越来越多,在机场、火车站、车站、步行街充斥着拖着行李箱的路人,大家一只手拉着行李箱,一只手拿着地图或者手包很不方便。为了让大家的手从行李箱的拉杆中解放出来,我们想到了设计一款跟着人走的智能箱子。

方案:

      该智能行李箱使图像识别模块进行识别定位人的位置,判断出位置后,就驱动电机向目标方向运动,同时我们使用了超声波传感器,它可以进行测距避障,当箱子与人之间的距离等于安全距离时便会主动停下,而超过一个值时便会马上向主人报警,以防止丢失(该功能也用于防止箱子被坏人拖走)。尽量增加产品的可靠性和安全性。

现存问题:

      这个作品现在完成了跟着人走、丢失报警、保持安全距离等功能,但现在所完成的功能都是基于现有的行李箱进行改装,所以底盘承重能力不足,在复杂地形下的运行也不太可靠。所以新的作品需要在电路和软件上进行改进,也需要对机构进行全新的设计。未来我们准备将其做成一个平台化的产品,让他更方便更实用。

[/align][align=center][size=3][media=swf,500,375]http://static.video.qq.com/TPout.swf?vid=f0155n138q3&auto=0[/media][/size][/align]
[align=left][font=宋体][size=3]如您无法查看视频,请点击下面的链接:[/size][/font][/align][align=left][url=http://v.qq.com/boke/page/f/0/3/f0155n138q3.html]http://v.qq.com/boke/page/f/0/3/f0155n138q3.html[/url][/align]

[align=left][b]由于时间问题,并没有来得及做太多改进,不过新方案已经在筹备中,有望诞生箱子3.0并参加下一届机器人创想秀。[/b]
[/align]
[align=left]附:[/align][align=left]#include <Servo.h>
#include <Wire.h>
//#include <PixyI2C.h>
#include <SPI.h>
#include <Pixy.h>

//PixyI2C pixy;
Pixy pixy;
uint16_t blocks;
unsigned int objectSize;
unsigned long pixyTime;


int E1 = 8;     //M1 Speed Control
int E2 = 9;     //M2 Speed Control
int M1 = 7;     //M1 Direction Control
int M2 = 10;     //M1 Direction Control
//int buzzer = 5;  //Buzzer pin
//int i=200;       //Buzzer pulse

Servo leftMotor;
Servo rightMotor;

Servo panServo;
Servo tiltServo;

void setup()
{
  Serial.begin(57600);
  //pinMode(buzzer,OUTPUT);
  pixy.init();

  
  
}

void loop()
{
  pixyTime = millis();
  blocks = pixy.getBlocks();
  objectSize = pixy.blocks[0].width * pixy.blocks[0].height;
   
//if (Block)
//{
      if(objectSize > 100)
      {
    Serial.print("pixy.blocks[0].x = ");
    Serial.println(pixy.blocks[0].x);         
    Serial.print("pixy.blocks[0].y = ");
    Serial.println(pixy.blocks[0].y);         
    Serial.print("pixy.blocks[0].width = ");
    Serial.println(pixy.blocks[0].width);         
    Serial.print("pixy.blocks[0].height = ");
    Serial.println(pixy.blocks[0].height);   
    Serial.print("objectSize = ");
    Serial.println(objectSize);
        
        if (objectSize < 10000)  // object far from robot
        {
          if(pixy.blocks[0].x > 70 && pixy.blocks[0].x < 248)
          {
            forward();
             Serial.print("forward");
             Serial.println();
          }
          if(pixy.blocks[0].x > 0 && pixy.blocks[0].x < 70)
          {
            right();
            Serial.print("right ");
            Serial.println();
          }
         if(pixy.blocks[0].x > 248 && pixy.blocks[0].x < 318)
          {
            left();
             Serial.print("left ");
             Serial.println();
            
            
          }
         
        }
   if (objectSize > 10000)  // object too close to robot
      {
        stop();
            Serial.print("stop ");
            Serial.println();
      }
      }
     
//}
//else
//{           stop();
//            Serial.print("stop ");
//            Serial.println();
//}
   
}

void forward()
{
   analogWrite (E1,250);      //PWM Speed Control
   digitalWrite(M1,LOW);   
   analogWrite (E2,250);   
   digitalWrite(M2,LOW);
  
}

void stop()
{
  digitalWrite(E1,0);
  digitalWrite(M1,LOW);   
  digitalWrite(E2,0);   
  digitalWrite(M2,LOW);
  
    //delay(50);
}

void backward()
{
   analogWrite (E1,250);
  digitalWrite(M1,LOW);   
  analogWrite (E2,250);   
  digitalWrite(M2,LOW);
  
    //delay(50);
}

void left()
{
  analogWrite (E1,250);
  digitalWrite(M1,HIGH);   
  analogWrite (E2,250);   
  digitalWrite(M2,LOW);
   
    //delay(50);
}

void right()
{
   analogWrite (E1,250);
  digitalWrite(M1,LOW);   
  analogWrite (E2,250);   
  digitalWrite(M2,HIGH);
  

    //delay(50);
}


[/align]
其他作品
lucy发表于 2015-5-26 08:13:14 | 显示全部楼层
有图么?可以图文并茂的描述哦
CVBNM发表于 2015-6-10 15:40:55 | 显示全部楼层
如果跟着人走的话,一定要在腿上带那两个纸板吗?
Ever_never发表于 2015-5-27 07:39:40 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=114346&ptid=92194][color=#999999]lucy 发表于 2015-5-26 08:13[/color][/url][/size]
有图么?可以图文并茂的描述哦[/quote]

有视频不就好了嘛
Ever_never发表于 2015-6-12 22:53:48 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=116583&ptid=92194][color=#999999]CVBNM 发表于 2015-6-10 15:40[/color][/url][/size]
如果跟着人走的话,一定要在腿上带那两个纸板吗?[/quote]

因为目前采用的是颜色识别处理,所以用了两张黄色纸片。
sunmaoming发表于 2015-6-15 16:59:33 | 显示全部楼层
不错。挺有想法的。赞一个。
sunmaoming发表于 2015-6-15 16:59:36 | 显示全部楼层
不错。挺有想法的。赞一个。
Ever_never发表于 2015-6-16 00:13:28 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=117325&ptid=92194][color=#999999]sunmaoming 发表于 2015-6-15 16:59[/color][/url][/size]
不错。挺有想法的。赞一个。[/quote]

谢谢支持
41780发表于 2015-7-14 12:06:06 | 显示全部楼层
想法不错
返回列表