一种机械臂,可通过带有传感器的手套无线模拟您的手部运动。
它由带有柔性传感器的手套控制的人造手组成。人工手通过控制手套无线再现手的动作。手和手套都适用于 arduino。
第 1 步:所需材料
控制手套的材料:
•弹性手套;
• lilypad arduino板(有不同的版本,通常只有 4 个模拟输入,所以请注意并购买图片中的那个):它的工作原理与经典的 arduino uno 完全一样,或者您甚至可以直接使用 arduino nano;
• xbee 模块:用于无线电通信;
•屏蔽连接xbee模块;
• 5 个弯曲传感器;
• 5 个电阻器:47 kω ;
•带3x1.5 v电池的电池组(lilypad 可以从2.7 到5.5 v 供电,所以4.5 v 就可以了);
• lilypad ftdi 适配器:将 lilypad 板连接到 pc 并使用 arduino ide 加载程序(非常可选,因为您也可以使用 arduino uno 板移除 atmega 芯片,但每次都进行这种连接很棘手) 。
机械臂的材料:
•手掌为钢结构,手指为木结构;
• arduino uno板;
• xbee 模块;
• 5 个伺服电机5v 供电(我使用 towerpro sg90);
• arduino uno 的伺服电机护罩:连接伺服电机我使用了futuraelettronica的 robot_shield,它还有一个开关稳压器为整个电路供电,但您可以使用任何用于控制伺服电机的护罩。链接:https://store.open-electronics.org/index.php?_rou.。. ;
•连接xbee模块的屏蔽(我做了一个可怕的,但它很经济,我需要做一个小因为robot_shield 的大小);
•钓鱼线;
•(可选)钓鱼坠子,用于固定钓鱼线,也可以简单地打一个结;
• 9 伏电池。
- 所需工具:
•角磨机(主要用于切割木材和钢材);
•轴向磨床;
•焊机(带电极);
•钻孔;
•焊台和焊锡;
• 电工剪刀;
•钳子;
•热缩管。
第2步:制作手套
为了制作控制手套,我建议首先选择不同组件的正确位置,然后用适当长度的电线连接所有东西。
要使用 arduino lilypad 进行模拟读取,您需要制作一个分压器,因为柔性传感器不像电位器那样工作(它们只有 2 个触点)。
所以按照方案,首先将 5 个电阻焊接在 lilypad 板上,一侧连接到 5 个不同的模拟引脚,另一侧共同接地。然后焊接柔性传感器,一侧连接到 5 个不同的模拟引脚,另一侧连接到正极。
然后连接 xbee shield:两根线用于电源,另外两根用于信号。将 tx 引脚焊接到 rx,反之亦然。
现在你需要电池组和手套了。
注意:不要为 arduino lilypad 供电超过 5.5 v,也不要反过来供电
第 3 步:制作机械臂
这是最复杂的部分,因为您必须选择合适的材料来制作手部,但如果您有可能 3d 打印手部,这也很容易(网上有许多不同的 3d 项目用于打印手部部件)。
我开始用软木制作手指,为动作找到合适的结构,然后用树枝制作。
因此,每根手指制作三个木制圆柱体,其中两个比你的指骨的正常长度长 1 厘米,需要将一个部件放入另一个部件中。
然后用角磨机制作凹槽以使零件装配在一起(参见图片,您会更好地理解)。
你需要一些砂纸使碎片弯曲,以便它们可以旋转。
用钻头为铰链打孔,然后你必须为钓鱼线打另外两个孔,垂直方向,一个朝向手内侧,一个向外。因此,当电线设置在手指的顶部时,向内拉时手指会闭合,向外拉时手指会打开。
但我后面发现手掌是有问题的,因为我最初是用木头做的,而较薄的部分总是会断裂。所以我决定用钢制造它,这一次我没有遇到任何问题。
剪下它并做一些类似于手指的突起,将它们固定在手掌上(参见图片作为参考)。然后用钻头为钓鱼线制作其他孔,拇指会很棘手,因为它不像其他手指那样垂直。
动手后,您需要为五个伺服电机和 arduino uno 板做一个支撑。一定要选择舵机的正确位置,这样它们在旋转时不会相互接触。
最后一部分是将手指连接到伺服电机:将钓鱼线固定在手指顶部并使其穿过孔;然后,当电线位于手的底部时,以最大旋转 (180°) 转动转子(手动,不通电),使其处于垂直位置,然后将闭合手指的电线设置到最低转子的孔,例如打结;再次将转子旋转 0°(它再次垂直,之前打的结在顶部),然后将另一根线(打开手指)设置到转子的最低孔。按照此步骤中的最后一张图片更好地理解。
因此,当电机处于 0°(垂直)时,手指打开,而当转子处于 180°(再次垂直)时,手指关闭。
第 4 步:机械臂的电路
对于电路,您可以选择使用带有 xbee 护罩的 arduino uno 伺服电机护罩,或者使用 xbee 模块和引脚制作定制护罩用于伺服电机,并通过其插孔端口为 arduino uno 供电。
我制作的 diy xbee shield 使用 12 kohm 电阻和 22 kohm 电阻,您可以在图片中看到接线。
所以我使用了我之前已经购买的东西,但是你可以使用任何让你控制伺服电机和 xbee 的东西。
伺服电机有 3 根电线:
黄色:信号(连接到数字引脚);
红色:电源(+5 v);
棕色:接地(gnd)。
我使用了最简单的伺服电机,工作电压为 5 v,旋转角度为 180 度(这是完美的角度,我们不需要更多)。
电脑的usb接口无法提供足够的电源来控制5个伺服电机,所以我建议使用12v电源测试一切,然后使用9v电池(碱性电池为佳)。
第 5 步:程序
记住:要加载程序,您必须删除连接到 arduino 的 tx 和 rx 引脚的所有东西(在本例中是 xbee 模块),否则程序将无法加载。还要记住在 ide(lilypad 或 arduino uno)中设置正确类型的 arduino。
两个代码的链接:
https://codebender.cc/sketch:59559
https://codebender.cc/sketch:55013
试试这个代码来测试手套上的弹性传感器:https ://codebender.cc/sketch:56264
这是为了测试 lilypad 和 arduino uno 之间的连接:https ://codebender.cc/sketch:55014
untitled file:
/*
flex glove
created by santin gabriele, 2014
i.t.s.t. j. f. kennedy, cl. 5^a ea
thanks to elias de lamper for suggestions to improve this program!
*/
int resthumb = a4; // variables of the analog read form the flex sensors connected to the analog pins of arduino lilypad
int resindex = a3;
int resmiddle = a2;
int resannular = a1;
int respinky = a0;
int openedthumb =0; // variables of the values when the hand is completely opened
int openedindex =0; // this is needed for a continuous calibration
int openedmiddle =0;
int openedannular =0;
int openedpinky =0;
int closedthumb; // variables of the values when the hand is completely closed
int closedindex; // we can't set it to zero since that the minimum value reached
int closedmiddle; // in the analog read never reach zero. we'll assign the value of
int closedannular; // a first analog read, then the program in the loop will
int closedpinky; // automatically assing lower values
int thumb =0; // variables of the values to send
int index =0;
int middle =0;
int annular =0;
int pinky =0;
void setup()
{
serial.begin(9600); // activating serial communication, xbee series 1 are pre-programmed at 9600 baud/s
pinmode(resthumb, input); // the variables of the sensor are set as input
pinmode(resindex, input);
pinmode(resmiddle, input);
pinmode(resannular, input);
pinmode(respinky, input);
closedthumb = analogread(resthumb);
closedindex = analogread(resindex);
closedmiddle = analogread(resmiddle);
closedannular = analogread(resannular);
closedpinky = analogread(respinky);
}
void loop()
{
thumb = analogread(resthumb);
index = analogread(resindex);
middle = analogread(resmiddle);
annular = analogread(resannular);
pinky = analogread(respinky);
if(thumb > openedthumb) // calibration reading and setting the maximum values. this needs you to completely open your hand a few times
openedthumb = thumb;
if(index > openedindex)
openedindex = index;
if(middle > openedmiddle)
openedmiddle = middle;
if(annular > openedannular)
openedannular = annular;
if(pinky > openedpinky)
openedpinky = pinky;
if(thumb < closedthumb) // calibration reading and setting the minimum values. this needs you to completely close your hand a few times
closedthumb = thumb;
if(index < closedindex)
closedindex = index;
if(middle < closedmiddle)
closedmiddle = middle;
if(annular < closedannular)
closedannular = annular;
if(pinky < closedpinky)
closedpinky = pinky;
thumb = map(thumb ,closedthumb ,openedthumb ,0,180); // the analog read has to be readapted in values between 0 and 180 to be used by the servomotors.
index = map(index ,closedindex ,openedindex ,0,180); // the minimum and maximum values from the calibrations are used to correctly set the analog reads.
middle = map(middle ,closedmiddle ,openedmiddle ,0,180);
annular = map(annular,closedannular,openedannular,0,180);
pinky = map(pinky ,closedpinky ,openedpinky ,0,180);
serial.write(<); // this character represent the beginning of the package of the five values
serial.write(thumb); // the values are sent via the tx pin (the digital pin 1)
serial.write(index);
serial.write(middle);
serial.write(annular);
serial.write(pinky);
delay(30);
}
用于汽车应用的以太网和以太网-AVB
深入了解人工智能芯片:痛点在哪儿?
基于STM32单片机的控制步进电机实验
高德地图首创“全境智能冬季应急大屏”正式上线
触发器的电路结构与工作原理
自制遥控机械臂的教程
手持设备Sico,连接现实与虚拟世界的桥梁
fireflyH.264硬编码&硬解码简介
管控打压区块链行业造假乱象,具有明确应用场景的区块链项目才有意义
网络大时代下,国内飞机wifi将上线,还解决了高铁信号问题高铁WiFi也会同步上线
VM系列振弦采集模块(智能振弦传感器测量模块)其它常见问题
单片机C语言程序设计: 单片机与 PC 通信
13908亿斤!雪中丰收的秘密
闽江学院实验室揭牌仪式
卡曼滤波器入门教程α−β−γ滤波器 2
国产替代威世(VISHAY)3KASMC系列TVS瞬变抑制二极管
长虹C3418T彩电图像自动消失故障的检修
荣膺桂冠!中兴GoldenDB蝉联中国金融级分布式数据库第一
老旧小区电梯加装物联网案例
录音模块:WT588FM01高性能录音语音芯片IC,功能丰富,音质卓越,满足多样化需求