查看: 3895|回复: 14

【chocho精品】“吃”钱币的机器人

[复制链接]
本帖最后由 Chocho2017 于 2018-5-12 19:20 编辑

每个“精分”机器人背后,都有一个同样“精分”的工程师
                                                                                                             ——用Beetle与激光测距打造的吃钱小机器人
1.jpg

13.jpg

2.jpg
有那么一群人,常年累月地混迹在正常人群里,小心行事的他们很难被常人发现,他们就是——“精分”工程师唯一能让他们现形的方法就是让他们做个小玩意儿出来。对不起,我憋不住了,我承认我是一名“精分”工程师。
想到硬币不方便携带,平时每次收到硬币都放在家里,搞得家里硬币成堆了。
于是我就想,可以做一个吃硬币的机器人嘛,刚好用来存放硬币。说干就干!
材料准备
      TowerProSG90舵机   1个;  购买地址
       品胜9V/250mAh镍氢充电电池  1个;  购买地址
      Gravity:VL53L0X ToF 激光测距传感器  1个;  购买地址
      Gravity I2C OLED-2864 显示屏  1个;    购买地址
      高品质 micro USB数据线  1根;    购买地址
      Beetle控制器  1个;    购买地址
      降压模块  1个;某宝有卖哟,哈哈,我是自拆了一个下来
      雪糕木棒若干;自备
      多层木板数块;自备
      微型合页带螺丝   1块;自备
      乳白木工胶、快干胶、热熔胶等;自备
3.jpg
原理图
      使用Beetle作为主控板,连接激光测距传感器收集距离的数据,通过2864oled显示屏显示出相应的机器人表情,并在得到的数据基础上操作舵机的转动角度;以实现监测到前面有硬币的时候,oled显示相应表情,控制舵机将硬币抛入机身内。
4.png
制作
首先是切木板,粘接成盒体,将木板钻孔待上合页,将前面板切出一个oled大小的方孔.
5.jpg

用合页连接机器人的上下部分身体,用1.5mm粗的铁丝弯出一个波形,在两侧装上适当长度的雪糕         棒,用雪糕棒为小机器人做上手臂,最后在舵机底部用木板增高:
6.jpg

用雪糕棒,用铅笔画一个弧度,然后用小刀切下来,钻个小孔,然后将木块粘在舵机上
7.jpg

在木盒正面板下部分中心位置打孔,放置激光测距传感器,机身背后打孔安装开关使用
8.jpg

按照原理图焊接电路的各个部分
9.jpg

最后使用热熔胶、快干胶,将所有的器件转入机器人机身内
10.JPG

最后在手臂与身体上钻孔,安装一根铁丝支撑,达到手臂抬起连带上盖也可以上升的目的,调试达到最好的效果:
11.JPG

至此,机器人的硬件部分就算制作完成了。
12.JPG

接下来,下载运行程序到主控,点击连接下载程序,程序主要功能代码如下:
[AppleScript] 纯文本查看 复制代码
#include "Arduino.h"
#include "Wire.h"
#include "DFRobot_VL53L0X.h"
#include "U8glib.h"
#include "font.h"
#include <Servo.h>

DFRobotVL53L0X sensor;
Servo myservo;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);

bool checkDistance(void){
  uint8_t i = 5;
  if(sensor.getDistance() <= 60 && sensor.getDistance() >= 20.00 && sensor.getDistance() != 5.00){
    while(i--){
      Serial.println(i);
      if(sensor.getDistance() <= 60 && sensor.getDistance() >= 20.00 && sensor.getDistance() != 5.00){
      }else{
        break;
      }
      delay(100);
    }
  }
  
  return((i==0)?true:false);
}

void caozuo()
{
  Serial.println(sensor.getDistance());
  if (checkDistance())
  {
    delay(2000);
    u8g.firstPage();
    do {
      u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits9);
    } while (u8g.nextPage());
    delay(500);
    myservo.write(30);
    delay(200);
    myservo.write(130);
  }
}

void setup() {
  Serial.begin(115200);
  Wire.begin();
  sensor.begin(0x50);
  sensor.setMode(Continuous, High);
  sensor.start();
  myservo.attach(11);
}

void loop()
{
  unsigned char i;
  myservo.write(130);
  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  for (i = 8; i > 0; i--)
  {
    delay(100);
    caozuo();
  }

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits1);
  } while (u8g.nextPage());
  delay(100);
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  delay(100);
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits2);
  } while (u8g.nextPage());
  delay(100);
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  for (i = 5; i > 0; i--)
  {
    delay(100);
    caozuo();
  }

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits3);
  } while (u8g.nextPage());
  delay(50);//bishuangyan 0.05s

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  delay(50);//xiaolian 0.05s
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits3);
  } while (u8g.nextPage());
  delay(50);//bishuangyan 0.05s

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  delay(50);//xioalian 0.05s
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits7);
  } while (u8g.nextPage());
  delay(50);//zuoxiaoyiyan 0.05s

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits4);
  } while (u8g.nextPage());
  for (i = 3; i > 0; i--)
  {
    delay(100);
    caozuo();
  }

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits7);
  } while (u8g.nextPage());
  delay(50);//zuoxiaoyiyan 0.05s

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  delay(50);//xiaolian 0.05s
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits8);
  } while (u8g.nextPage());
  delay(50);//youxiaoyiyan 0.05s

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits5);
  } while (u8g.nextPage());
  delay(100);//youdayiyan 0.1s
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits8);
  } while (u8g.nextPage());
  delay(100);//youxiaoyiyan 1s
  caozuo();

  u8g.firstPage();
  do {
    u8g.drawXBMP( 0, 0, 128, 64, u8g_logo_bits0);
  } while (u8g.nextPage());
  delay(500);
  caozuo();

  u8g.firstPage();
  do {
  } while (u8g.nextPage());
  delay(200);
  caozuo();

  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_unifont);
    u8g.drawStr( 23, 25, "Put a coin!");
    u8g.drawStr( 7, 55, "Get a surprise!");
  } while ( u8g.nextPage() );
  delay(500);
  caozuo();
}


欢迎各位加杂家的微信,进行创意探讨:zcl2009031081

Chocho2017  版主
 楼主|

发表于 2018-4-27 11:09:50

照例,自己抢个沙发先。
回复 支持 反对

使用道具 举报

设计chen  学徒

发表于 2018-4-27 11:45:08

楼主能加一下微信好友吗,我对你这个很有兴趣,想跟你交流一下,谢谢 13723776917
回复 支持 反对

使用道具 举报

Forgotten  版主

发表于 2018-4-27 13:16:39

哈哈 好萌 这个贱贱的小表情
回复 支持 反对

使用道具 举报

ricky  NPC

发表于 2018-4-27 14:12:18

能不能加入心愿单?
回复 支持 反对

使用道具 举报

Chocho2017  版主
 楼主|

发表于 2018-4-27 14:16:10

设计chen 发表于 2018-4-27 11:45
楼主能加一下微信好友吗,我对你这个很有兴趣,想跟你交流一下,谢谢 13723776917 ...

好呀。。。
回复 支持 反对

使用道具 举报

Chocho2017  版主
 楼主|

发表于 2018-4-27 14:16:57

ricky 发表于 2018-4-27 14:12
能不能加入心愿单?

可以呀。
回复 支持 反对

使用道具 举报

Chocho2017  版主
 楼主|

发表于 2018-4-27 14:17:05

Forgotten 发表于 2018-4-27 13:16
哈哈 好萌 这个贱贱的小表情

回复 支持 反对

使用道具 举报

1973742214  高级技师

发表于 2018-4-28 21:16:58

加上腿,找钱币吃
回复 支持 反对

使用道具 举报

铁熊  版主

发表于 2018-4-30 21:25:03

最近吃硬币比较火~
回复 支持 反对

使用道具 举报

digi_cow  初级技匠

发表于 2018-5-8 13:11:06

目前看到的最高级的吃硬币机器人
回复 支持 反对

使用道具 举报

Chocho2017  版主
 楼主|

发表于 2018-5-8 14:57:50

digi_cow 发表于 2018-5-8 13:11
目前看到的最高级的吃硬币机器人

哈哈,谢谢。
回复 支持 反对

使用道具 举报

微笑的rockets  NPC

发表于 2018-5-8 15:55:27

用laserblock做一个试试?
回复 支持 反对

使用道具 举报

gray6666  中级技匠

发表于 2018-5-8 16:30:58

好棒,可以批量量产。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

Chocho2017  版主
 楼主|

发表于 2018-5-10 09:25:48

gray6666 发表于 2018-5-8 16:30
好棒,可以批量量产。。。。。。。。。。。。。。

如果量產,你會買?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail