机器人制作开源方案 | 晾衣收纳一体机器人

news2024/10/7 4:36:16

一、作品简介

作者:仓天赐 黄云超 吴正乐 高骏 代思旭
单位:泰州学院
指导老师:宋向前 李杨作者:仓天赐 黄云超 吴正乐 高骏 代思旭
单位:泰州学院
指导老师:宋向前 李杨

       与智能家居系统含义近似的有家庭自动化、电子家庭、数字家园、家庭网络、网络家居、智能家庭/建筑,在我国香港和台湾等地区,还有数码家庭、数码家居等称法。而我们所研发的晾衣收纳一体机器人正是智能家居的一种,家居生活中,衣服的晾晒存放是每天脱不开的话题。而我们基于Arduino的智能晾晒收纳控制系统设计的目在于设计一套全新的衣物晾晒收纳控制系统,帮助人们晾晒衣服的同时,免除人们收纳存放衣服的繁琐劳动,可以自行将衣物收纳叠放存储起来,从而在生活中解决人们不必要的劳动。该系统主要由机械支架,电机传 动及控制等部分组成。整个控制系统简单便利,便于人们日常的使用维护,同时满足人们的日常需求。
 

1.设计背景

随着人们生活水平的不断提高,对生活质量的要求也逐渐攀升。而与人们日息相关的生活住处 ,家庭居所更是人们日益关注的热点 。人们的日常生活中家用的电器逐步的实现自动化,再由自动化转向智能化,近些年来智能家居的概念也逐渐的成为人们口中普遍流传的热词!智能家居系统是利用先进的计算机技术、网络通讯技术、智能云端控制、综合布线技术、医疗电子技术依照人体工程学原理,融合个性需求,将与家居生活有关的各个子系统如安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动 、地板采暖、健康保健、卫生防疫、安防保安等有机地结合在一起,通过网络化综合智能控制和管理,实现“以人为本”的全新家居生活体验。
 

2.工作流程

第一步:调整晾衣角度 衣物夹具夹放好衣物后,通过手机 app 控制衣物传送装置的启停,带动传送 带的转动进而控制晾衣服的位置。如图为衣物传送装置工作过程。

衣物传送装置工作过程

衣物传送装置工作过程

       第二步:折叠衣物 通过手机 app 软件启动折叠衣物功能,此时,霍尔传感器在其连接的舵机带 动下,旋转到指定位置,如下图为衣物折叠装置工作过程。

       第三步:收纳衣物 折叠好后的衣服,经过传送带的作用下,被带到指定位置,再由活动支架翻 转到收纳箱中。如下图为衣服存放过程。

3.作品创新点

       ① 晾衣收纳一体机器人集晾晒衣服和收纳衣服于一体,可以即时的将晾晒 好的衣服收纳到衣柜中。随时取出,极大的方便了使用者给用户带来极 佳的使用体验。 
       ②晾衣收纳一体机器人几乎实现了全自动化的作业方式,减少了用户的日 常工作量! 
       ③ 晾衣收纳一体机器人配备了 APP 的远程操作的功能,使用者可以在一定 的距离内使用 APP 远程操控机器人收取和存放衣物。
 

4. 作品难点及改进方向

4.1难点及解决办法
       ①晾衣收纳一体机器人的机体构建材料引用探索者的零部件难以组装完成。 
       解决办法:采购了一些铝合金材料进行机体框架的搭建。 
       ②机器人运作时,没有达到预期的效果或者突然停止,我们检查完不是传 感器和软件调试的问题,也没有外界影响 。
       解决办法:多次调试查不出原因后,我们发现电源长时间工作后电池的 电压不足会导致机器人出现很多原本不存在的问题。 
       ③机器人在相同环境下开始时线路出现混乱
       解决办法:安装时,适当对杜邦线进行分类和标注减少舵机与接线板接 错的现象,从而避免机器人运作时舵机混乱所导致的线路偏移。
       ④ 裁剪的布料用来作为折叠的衣服的材质过于柔软,难以实现美观的折叠 效果。 
       解决办法:通过程序加快动作的完成,减少动作偏差的概率。 
       ⑤机器人模型的构建时零件数目复杂而又繁琐,且经常出现干涉的现象! 
       解决办法:在不改变整体形状的前提下,适当改变模型零件的局部结构 以正确顺利的完成模型的搭建。
4.2.改进方向
       ① 能让机器人在大部分环境下正常工作,减少外界环境的干扰。 
       ②将外形设计的更加现代化、更加富有创新思想。 
       ③ 继续研究传感器,将影响传感器的因素都考虑进去。 
       ④ 电源两极漏出来的地方需要用绝缘胶布粘起来,防止两极短路,从而保 证安全。
 

二、机械结构设计

1.机械机械结构材料选取

 晾衣收纳一体机器人的机体的构建主要采用铝合金材料和探索者的相关零 部件,如下图。

铝合金型材料

2. 衣物夹具机械结构设计

夹具安装在衣服传送装置的履带上,夹具内侧附吸铁石用来夹紧衣物。当到 达衣物折叠装置上方时,柱 2 与柱 1 接触,传送带继续向前运行,夹具打开。图1为衣物夹具结构,图 2为夹具上的吸铁石,图 3为夹具结构动作杆。

图1衣物夹具结构
图2吸铁石

图3夹具结构动作杆

3.衣服传送机械结构设计

        由两个直流电机与履带组成和四个履带轮组成,负责调整晾衣位置角度和传 送衣服的功能。如图下图为衣物传送装置。

衣物传送装置

4. 衣服折叠机械结构设计

衣物折叠装置,主要是由前后左右四块可活动板件,及其所对应的四个舵机组成。功能上实现对衣物折叠功能。动作流程为,左右前后四块板件在舵机的驱动下依次翻转运动,实现对衣物的左右前后方向的折叠动作。如图下图为衣物折叠装置。

衣物折叠装置

5.衣物存放机械结构设计

衣物存放装置主要是由传送带、活动支架、收纳箱及其对应的舵机电机部分组成功能上实现对折叠好后的衣物的传送存放功能。动作流程为电机驱动传送带把折叠后衣服传送到活动支架上,到达指定位置后,舵机驱动活动支架工作,把传送来的衣物翻转存放到收纳箱中,实现对衣物的最后的存储收纳功能。下图为为衣物存放装置。

衣物存放装置

三、硬件及蓝牙功能

1. 硬件设计

1.1Basra主控板简介
       Basra 是一款基于 Arduino 开源方案设计的一款开发板,通过各种各样的传感器来感 知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以在 Arduino、eclipse、Visual Studio 等 IDE 中通过 c/c++语言来编写程序,编译成二进制文 件,烧录进微控制器。下图为实物图片与接口。

实物图片与接口

1.2霍尔传感器模块
       霍尔传感器主要利用霍尔效应。磁场中有一个霍尔半导体片,恒定电流 I从 A 到 B 通过该片。在洛仑兹力的作用下,I 的电子流在通过霍尔半导体时向一侧偏移,使该片在 CD 方向上产生电位差,这就是所谓的霍尔电压。下图为霍尔传感器霍尔

霍尔传感器

       电压随磁场强度的变化而变化,磁场越强,电压越高,磁场越弱,电压越低,霍尔电压值很小,通常只有几个毫伏,但经集成电路中的放大器放大,就能使该电压放大到足以输出较强的信号。若使霍尔集成电路起传感作用,需要用机械的方法来改变磁感应强度。其方法是用一个转动的叶轮作为控制磁通量的开关,当叶轮叶片处于磁铁和霍尔集成电路之间的气隙中时,磁场偏离集成片,霍尔电压消失。这样,霍尔集成电路的输出电压的变化,就能表示出叶轮驱动轴的某一位置,利用这一工作原理,可将霍尔集成电路片用于点火正时传感器。霍尔效应传感器属于被动型传感器,它要有外加电源才能工作,这一特点 使它能检测转速低的运转情况。霍尔效应传感器的组成有 1-霍尔半导体元件 2- 永久磁铁 3-挡隔磁力线的叶片,晾衣收纳一体机器人中主要利用霍尔传感器来检测衣物是否到达指定位置。
       ① 使用 PH2.54 插座,配 PH2.54 转杜邦头连接线
       ② 响应频率:10HZ       
       ③ 供电电压:3.3V 或 5V
       ④ 工作电流:15mA

1.3舵机模块
       伺服电机通常被称为舵机,下图为舵机。它是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,输出轴就可以转到特定的位置。只要控制信号持续不变,伺服机构就会保持轴的角度位置不改变。如果控制信号发生变化,输出轴的位置也会相应发生变化。
       ① 大扭力金属标准齿舵机 MG996R 标准伺服器
       ② 重量: 55g
       ③ 速度: 4.8V@0.2Osec/60°
       ④ 6.0V@0.19sec/60°
       ⑤ 扭力: 4.8V@13kg-cm
       ⑥ 6.0V@15kg-cm
       ⑦ 电压: 4.8V-7.2V
       ⑧ 空载工作电流: 120mA
       ⑨ 堵转工作电流: 1450mA
       ⑩ 响应脉宽时间: s 5usec
       ⑪ 角度偏差:回中误差 0 度,左右各 45°误差 s 3°齿轮: 5 金属齿轮组
       ⑫ 连接线长度; 300mm

舵机

1.4蓝牙串口模块
       HC-05 蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有 AT 命令,用户可向模块发送各种 AT 指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。如图 (a)为蓝牙串口模块,图 (b)为蓝牙串口模块原理图。

参数
       ① 蓝牙 2.0 带 EDR, 2Mbps-3Mbps 调制度
       ② 内置 2.4GHz 天线, 用户无需调试天线
       ③ 灵敏度(误码率)达到 -80dBm
       ④  -4 -> 6dBm 功率可调输出
       ⑤ 外置 8Mbit FLASH
       ⑥ 低电压 3.3V 工作
       ⑦ 可选 PIO 控制
       ⑧ 标准 HCI 端口(UART or USB)
       ⑨ USB 协议: Full Speed USB1.1, Compliant With 2.0
       ⑩ 数字 2.4GHz 无线收发射
       ⑪ CSR BC04 蓝牙芯片技术
       ⑫ 自适应跳频技术
       ⑬ 蓝牙 Class 2 功率级别

图(a) 蓝牙串口模块

图b蓝牙串口模块原理图

2. 蓝牙功能设计

APP INVENTOR 的界面制作
       蓝牙功能的设定大致可以分为共两项,启动和关闭晾衣功能,开启和关闭叠衣功能,如图  为蓝牙选择界面菜单。

蓝牙选择界面菜单

逻辑设计
       进入逻辑设计状态后,按如下思路编程,下图为逻辑设计界面
       (1)利用“列表选择框”让用户选择已与手机配对的外部蓝牙设备;
       (2)当“列表选择框”完成后,让用户知道外部蓝牙设备与手机蓝牙可以通信;
       (3)根据“按钮”的功能(如“开”“关”等)让手机蓝牙向外部蓝牙设备发送指令。

逻辑设计界面

四、程序源码

1. 示例程序

主程序代码

#include <Servo.h>

int a,b,c,d,e,f;

Servo left_fold;//定义舵机名 left_fold、right_fold、up_fold、store_fold、complete_fold

Servo right_fold;

Servo up_fold;

Servo store_fold;

Servo complete_fold;

boolean flag1=0; void setup()

{

left_fold.attach(3);//舵机 left_fold 在 3 引脚

right_fold.attach(4);//舵机 right_fold 在 4 引脚

up_fold.attach(7);//舵机 up_fold 在 7 引脚

store_fold.attach(8);//舵机 store_fold 在 8 引脚

complete_fold.attach(12);//舵机 complete_fold 在 12 引脚

left_fold.write( 1 );//舵机 left_fold 初始角为 1

right_fold.write( 165 );//舵机 right_fold 初始角为 165

up_fold.write( 5 );//舵机 up_fold 初始角为 5

store_fold.write( 25 );//舵机 store_fold 初始角为 25

complete_fold.write( 111 );//舵机 complete_fold 初始角为 111

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

}

void loop()

{

if(digitalRead(3)==1)

{

digitalWrite(9,HIGH);

digitalWrite(10,LOW);

}

else{ digitalWrite(9,LOW);

digitalWrite(10,LOW);flag1=1;}

if(flag1==1)

{

delay( 1500 );

flag1=0;

for (b= 1;b<=148; b++ )//舵机控制右侧板件翻转

{

right_fold.write(165-b);

delay( 3 );

}

delay(200 );

for (b= 1;b<=152; b++ )

{

right_fold.write(17+b);

delay( 3 );

}

delay(200 );

delay( 1500);

for (a= 1; a<=150; a++ )//舵机控制左侧板件翻转

{

left_fold.write(1+a);

delay( 3 );

}

delay( 200 );

for (a= 1; a<=150; a++ )

{

left_fold.write(151-a);

delay( 3 );

}

delay( 200 );

delay( 1500 );

for (c= 1; c<=100; c++ )//舵机控制前侧板件翻转

{ up_fold.write(5 + c);

delay( 3);

}

for (c= 1; c<=100; c++ )

{ up_fold.write(105 - c);

delay( 3 );

}

delay( 200);

delay( 1500 );

for (d= 1; d<=102; d++ )//舵机控制后侧板件翻转

{

store_fold.write(25 + d)

delay( 3 );

}

delay( 200 );

for (d= 1; d<=102; d++ )

{

store_fold.write(127 - d);

delay( 3 );

}

delay( 2000 );

digitalWrite(9,HIGH);//直流电机控制传送带运动

digitalWrite(10,LOW);

delay( 700 );

digitalWrite(9,LOW);

digitalWrite(10,LOW);

delay( 300 );

for (f= 1; f<=28; f++ )//舵机控制活动支架翻转

{

complete_fold.write(111 - f);

delay( 5);

}

delay( 500 );

for (f= 1; f<=38; f++ )

{

complete_fold.write(83 + f);

delay( 3);

}

delay( 2000

flag1=0;

digitalWrite(5,HIGH);

digitalWrite(6,LOW);

delay(1000);

}

}

蓝牙控制程序

#include <Servo.h>

Servo servo1,servo2; //定义舵机名 1 和 2

char buttonState;

boolean flag1=0; void setup()

{

servo1.attach(4); // 舵机 1 信号在 4 引脚

servo2.attach(7);//舵机 2 信号在 7 引脚

Serial.begin(9600);//波特率 9600

servo1.write(0); servo2.write(0);//舵机 1、2 初始角度 0 度

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

}void loop()

{if(digitalRead(3)==1)

{

digitalWrite(10,HIGH);

digitalWrite(9,LOW);

}

else{ digitalWrite(9,LOW);

digitalWrite(10,LOW);flag1=1;}

if(flag1==1)

{

delay( 12700);

flag1=0;

digitalWrite(10,HIGH);

digitalWrite(9,LOW);

delay(1000);

}

if(Serial.available()>0)//串口接受到的数据个数

{

buttonState = Serial.read();

}

if (buttonState == '1')//控制 1 舵机

{servo2.write(90);

delay(20);

}

if (buttonState == '2')

{servo2.write(0);

delay(20);

} if (buttonState == '3')

{digitalWrite(9,0);

digitalWrite(10,1);

delay(15);}

if (buttonState == '4')

{digitalWrite(9,0);

digitalWrite(10,0);

delay(15);}

}

{digitalWrite(9,0);

digitalWrite(10,0);

delay(15);}

}


五、参考文献

[1] 吴晨晨.一种智能移动机器人通用控制系统研究与实现[D].南京:南京航空航天大学,2012.
[2] 范印越.机器人技术[M].北京:电子工业出版社,1988.
[3] 杜样瑛.工业机器人及应用[M].北京:机械工业出版杜,1986.
[4] 马香峰.机器人机构学[M].北京:机械工业出版社,1991.
[5] 濮良贵,纪名刚.机械设计(第八版)[M].北京:高等教育出版杜,2006.

详细内容可参考 【S020】晾衣收纳一体机器人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mathematica清除全局变量以及避免与内置命令冲突

自己在使用MMA的时候之前遇到过一个问题&#xff0c;就是发现使用 ClearAll["Global*"]这个命令并不能清除某些变量&#xff0c;例如 如果想要清除K这个变量则需要单独清除 Clear[K]。 实际上这是由于和MMA内部的一些预定义的命令或函数冲突的结果。其实其他变量都…

【修车案例】一波形一案例(8)

背景介绍&#xff1a;有客户问到如果气缸盖垫片失效&#xff0c;冷却液压力应该会有明显上升&#xff0c;用虹科Pico示波器怎么做这个诊断&#xff1f;我们找到一辆气缸盖垫片和冷却套坏了的丰田AD发动机进行测试分析。 示波器诊断&#xff1a; A通道 - WPS500X压力传感器测冷…

在 Vue3 中使用 mitt 进行组件通信

npm 包地址 mitt 是一个轻量级的 JavaScript 事件触发器&#xff0c; 只有200b。有基本的事件触发、订阅和取消订阅功能&#xff0c;还支持用命名空间来进行更高级的事件处理。 功能特点&#xff1a; Microscopic —— weighs less than 200 bytes gzippedUseful —— a wil…

【紫光同创国产FPGA教程】——【PGL22G第九章】HDMI环路实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开…

element-radio回显问题

html <template><el-form-item label"状态" prop"type" :label-width"formLabelWidth"><el-radio-group v-model"form.type" class"ml-4"><el-radio label"1">上架</el-radio><…

如何像专家一样高效使用搜索引擎?适用于百度Baidu、谷歌Google

你几乎可以在互联网上搜索到任何内容,而Google是大多数人选择搜索信息的主要途径之一。 尽管频繁地使用Google,但是大部分互联网用户都不知道如何快速和高效地使用Google搜索。 可以说使用Google是一门艺术。 想要获得正确的答案,你需要提出正确的问题。想要快速地获得正…

Juniper防火墙升级SRX

1.下载软件包 公司概况- 瞻博网络 选择 支持, 然后选择SRX 系列, 再然后选择对应的产品,比如 SRX340 2.上传版本 使用3Cdaemon搭建ftp服务器,配置IP与电脑通信 [edit] root# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.238/24 [edit] root# set …

安装dock打包前端项目遇到的一些错误

1docker安装报错 2 docker安装报错 运行 wsl --list报错 wsl --list 适用于 Linux 的 Windows 子系统没有已安装的分发版。 可以通过访问 Microsoft Store 来安装分发版解决方法 如果执行 wsl --list 命令报告适用于 Linux 的 Windows 子系统没有已安装的分发版&#xff0c;…

【Redis缓存架构实战常见问题剖析】

文章目录 一、Redis缓存架构实战剖析1.1、大规模的商品缓存数据冷热分离机制1.2、缓存击穿导致线上数据压力暴增解决方案1.3、缓存穿透及其解决方案剖析1.4、突发性的热点缓存数重建导致系统压力暴增问题分析1.5、Redis分布式锁解决缓存与数据库双写不一致问题剖析1.6、利用多级…

R | R包安装报错-github连接速度慢或无法访问 | metaboanalystR | Retip | rJava安装

R | R包安装报错-github连接速度慢或无法访问 | metaboanalystR | Retip | rJava安装 一、metaboanalystR 安装1.1 Bioconductor报错&#xff0c;无网络连接1.2 github520-修改hosts文件 二、retip安装2.1 rJava包加载报错及安装2.2 安装Retip包 三、从Bioconductor安装Rdisop报…

【MySQL数据库】| 索引以及背后的数据结构

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️ 专栏&#xff1a;MySQL数据库 &#x1f397;️ 如何优雅的活着&#xff0c;是我找寻的方向 目录 1. 基本知识2. 索引背后的数据结构总结 1. 基本知识 概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有…

3D模型格式转换工具HOOPS Exchange如何获取模型的特征树?

Tech Soft 3D致力于用无与伦比的技术推动创新&#xff0c;并很高兴为Oracle、SIEMENS、Hexagon Matrology和Stratasist&#xff0c;提供用最快、最准确的数据转换工具包获取CAD数据。 HOOPS Exchange允许开发团队轻松构建&#xff0c;通过单一接口将CAD数据转换为30多种文件格…

Docker - 安装常用服务

Docker - 安装常用服务 防火墙 对外开放访问&#xff0c;需要开放指定的端口提供对外访问 # 防火墙状态 systemctl status firewalld # 开启防火墙 systemctl start firewalld # 关闭防火墙 systemctl stop firewalld# 开放端口 firewall-cmd --zonepublic --add-port10002/…

【React入门实战】实现Todo代办

文章目录 效果功能-状态管理相关接口定义相关方法定义 UIinput输入框&#xff1a;回车添加todo标题列表列表项Main 总体代码 非常简单入门的react-todo练习&#xff0c;代码写的很小白。 效果 技术栈&#xff1a;react-typeScript 数据分为代办Todo和已办完Done&#xff0c;可…

C#,数值计算——函数计算,Dfridr的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 通过Ridders的多项式外推方法返回函数func在点x处的导数。 /// 输入值h作为估计的初始步长&#xff1b;它不需要很小&#xff0c;而是应为x上的增量&#xff0c; /// 在此增…

springboot,spring框架返回204 status code的时候,会吞掉返回值

背景 发现有个有意思的现象&#xff0c;就是当你的接口返回204的 HTTP status code 的时候&#xff0c;会自动把 response body 吃掉&#xff0c;即使代码里是有返回的。例如 &#xff08;其实204本身就是NO_CONTENT的意思&#xff0c;不过我是真没想到真干掉了返回&#xff0…

Spring6学习笔记01

一、课程简介 Spring框架是一款极其优秀的轻量级开源框架&#xff0c;为了解决企业应用开发的复杂性而出现。Spring框架的用途不仅仅限于服务器端的开发&#xff0c;从简单性、可测试性和松耦合性角度而言&#xff0c;绝大部分Java应用都可以从Spring中受益。Spring框架凭借其…

Linux Hadoop平台伪分布式安装

Linux Hadoop 伪分布式安装 1. JDK2. Hadoop3. MysqlHive3.1 Mysql8安装3.2 Hive安装 4. Spark4.1 Maven安装4.2 Scala安装4.3 Spark编译并安装 5. Zookeeper6. HBase 版本概要&#xff1a; jdk&#xff1a; jdk-8u391-linux-x64.tar.gzhadoop&#xff1a;hadoop-3.3.1.tar.gzh…

JVM在线分析-解决问题的工具一(jinfo,jmap,jstack)

1. jinfo (base) PS C:\Users\zishi\Desktop> jinfo Usage:jinfo <option> <pid>(to connect to a running process)where <option> is one of:-flag <name> to print the value of the named VM flag #输出对应名称的参数-flag [|-]<n…

v-calendar 日历组件使用自定义提示内容

目录 0.介绍 1.安装v-calendar 2.页面使用 3.使用插槽实现待办数量的标记 0.介绍 最近项目中用到了日历插件&#xff0c;需要统计每天的任务数量&#xff0c;类似elementui的badge组件&#xff0c;待办任务数量 大概最后的效果如下图所示&#xff0c;右上角把代办任务数量…