logo资料库

基于 Arduino 红外控制的智能机械手的设计.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
科技风 2019 年 4 月 科技创新 DOI:10.19392 / j.cnki.1671-7341.201912006 基于 Arduino 红外控制的智能机械手的设计 刘景铭 沈阳工业大学 辽宁沈阳 110870 摘 要: 本文介绍了一种基于 Arduino 红外控制的智能机械手的设计,该设计主要面向儿童,通过智能机械手的多功能来吸引 儿童的注意力。本设计方案中包括机械手,Arduino Uno 开发板,I 2 C LCD1602 显示屏,驱动手指舵机、红外接收模块,红外遥控器, 电源等。通过 Arduino 的红外控制功能,借助红外遥控器向 Arduino 发送信号,再利用 Arduino 对舵机发送 PWM 信号,来控制舵机 的旋转角度进而控制智能机械手的手指弯曲程度,做出不同的手势,完成不同的功能,同时在 LCD1602 显示屏上可以显示当前智 能机械手执行的功能。 关键词: 红外线; Arduino 控制; 智能机械手 Abstract: This paper introduces the design of an intelligent manipulator based on Arduino infrared control.The design is mainly aimed at children.It attracts children's attention through the multi-function of the intelligent manipulator.This design includes manipulator,Arduino Uno core development board,I 2 C LCD1602 LCD display,driving finger steering module,infrared receiving module,infrared remote control- ler,power module and so on.Through the infrared control function of Arduino,the infrared remote controller sends signals to Arduino,and then uses Arduino circuit board to send PWM signals to the actuator to control the rotation angle of the actuator,and then to control the ben- ding degree of the fingers of the intelligent manipulator,so as to make different gestures and implement different functions.At the same time, the current functions of the intelligent manipulator can be displayed on the LCD1602 display screen. Key words: infrared light; Arduino control; The intelligent manipulator 1 概述 现如今大多数的玩具智能手智能化程度较高,虽然功能强 大但也避免不了智能手本身结构易损坏,不易于装配,销售价 格昂贵等缺点。 本文所介绍的智能机械手是机电一体化的充分体现,将机 械上对智能手的结构设计和电子设计上利用 Arduino 芯片的红 外控制功能模块的完美结合。借助 Arduino 的红外控制功能, 利用遥控器上的按键对智能机械手的功能进行选择与实现,即 不易损坏,易于装配且销售价格低,便于维修。 2 硬件系统的设计 本文介绍了一种基于 arduino 红外控制的智能机械手的设 计方案,智能机械手分为机械手和 Arduino 控制模块两大部分 智能机械手分为手掌和五个机械手指,每个机械手指有三 个自由度,三个活动关节。 Arduino 控制模块是利用 Arduino 对机械手实现多功能控 制,包括 Arduino Uno 核心开发板,I2C LCD1602 液晶显示屏,驱 动手指舵机模块、红外接受模块,红外遥控器,电源模块等。 2.1 Arduino Uno 核心开发板 Arduino Uno 开发板是智能手工作的核心,以采用的微处理 .并包括 14 路数字输入输出 IO 引脚,6 个模 器是 ATmega328 拟输入 IO,16MHZ 陶瓷谐振器,USB 接口,电源接口,ICSP 接 头,复位按钮等 [2] ,可以采用 ATmega328 芯片进行 USB 到串 行数据的转换。 [1] 2.2 I 2 C LCD1602 液晶显示屏 LCD1602 是一种专门用来显示字母、数字、符号等的点阵 型液晶模块,其优点是控制简单,性价比高,但由于其引脚占用 过多所以通过 PCF8574T 转接板与 Arduino 板相连。通过此种 方式,可以大大节省 Arduino 的 IO 口,PCF8574T 转接板除了 VCC 和 GND 接口外,仅使用两个双向漏极开线路,串行数据线 ( SDA) 和 串 行 时 钟 线 ( SCL ) ,通 过 电 阻 上 拉。 本 系 统 中 LCD1602 显示屏用于显示当前智能手所执行的功能,在遥控器 指令发出后,显示屏上显示当前功能。 2.3 驱动舵机模块 驱动舵机采用 SG90 舵机,工作电压为 3.5V 到 6V,无负载操作 速度为 0.12/60 度(4.8V),0.10/60 度(6V),扭矩为 1. 6KG. cm(4. 8V),其内部包括外壳,直流电机,齿轮和位置测试。 2.4 红外接收模块及红外发射遥控器 红外接收头采用 HX1838B,工作电压为 2V 到 5. 5V,工作 频率为 38KHZ,接受距离为 22m,接受角度为正负 45 度,主要 功能为 IC 化的一种受光元件,其内部是将光电二极管和集成 IC 共同组成,一般只接受 38KHZ 的红外线,这样子遥控器可以 发出特定的 38KHZ 的频率,从而完成发射接收,构成通讯。而 后通过红外发射遥控器的不同按键来实现智能手的不同功能。 2.5 电源模块 电池采用 9V 方形碳性电池。或者可以通过 PC 端利用 USB 传输线进行程序烧写和供电。 3 控制流程及算法的设计 3.1 红外的发送与接收 本设计方案设计的红外通信协议为 NEC 协议,NEC 编码 协议是红外遥控通信协议的一种,利用 NEC 编码来定义遥控 器上每个按键的命令码,在按键按下时红外遥控器会将命令码 以红外线的形式传输给红外接收头 HX1838B,实现电信号转换 为光信号再转换为电信号,再将电信号传输给 Arduino 开发板。 利用遥控器上的 CH-键测试遥控器是否与 Arduino 板构成通 讯,利用遥控器的每一个数字键对应智能机械手的每一个功 能,具体功能数暂定为 6 个。 遥控器按键表及对应的 NEC 编码表 遥控器按键 按键的 NEC 编码 CH- CH CH+ FFA25D FF629D FFE21D 左转 暂停 右转 FF22DD FF02FD FFC23D - 0 1 4 7 + EQ FFE01F FFA857 FF906F 100+ 200+ FF6897 FF9867 FFB04F 2 5 8 3 6 9 FF30CF FF18E7 FF7A85 FF10EF FF38C7 FF5AA5 FF42BD FF4AB5 FF52AD 7
科技创新 科技风 2019 年 4 月 myservo2.attach(9) ; myservo3.attach(10) ; myservo4.attach(11) ; myservo5.attach(12) ; myservo1.write(0) ; / / 回到 0 角度 myservo2.write(0) ; myservo3.write(0) ; myservo4.write(0) ; myservo5.write(0) ; delay(1000) ; lcd.init( ) ; lcd.backlight( ) ; / / 打开 LCD 尾灯 } void loop( ) { if( irrecv.decode( &results) ) { Serial.print( " irCode:" ) ; Serial.print( results.value,HEX) ; Serial.print( " ,bits:" ) ; Serial.println( results.bits) ; irrecv.resume( ) ; } delay(600) ; if ( results. value = = 0xFF30CF ) / / 如 果 接 收 的 编 码 为 0xFF30CF { Functon1( ) } else if( results.value = = 0xFF18E7) { Functon2( ) } else if( results.value = = 0xFF7A85) { Functon3( ) } else if( results.value = = 0XFF10EF) { Functon4( ) } else if( results.value = = 0xFF38C7) { Functon5( ) } else if( results.value = = 0xFF5AA5) { Functon6( ) } } } 4 结论 一种基于 Arduino 红外控制五指灵巧手的方案,完成了红 外遥控器远程遥控五指机械手的多功能实现,例如:可抓取规 则形物体,正方体,长方体,球体等,也可以实现多种手势,数数 字,OK 等,在执行功能是在显示屏上可显示功能名称,避免混 乱。在以后的研究中可以在智能手上添加更多的功能,例如手 部安全反馈系统,更复杂的手指舞等,值得我进一步研 究 与 学习。 参考文献: [1]桂淮濛.基于 Arduino 的电子产品的设计.2018.09.18. [2]李红渊.基于 Arduino 语音控制的五指灵巧手. 作者简介: 刘景铭( 1998-) ,男,汉族,辽宁鞍山人,沈阳工 业大学在读本科生,研究方向: 控制工程。 3.2 Arduino 对舵机的控制 Arduino 开发板在接收电信号后,再依据程序判断按键来 选择特定的舵机控制程序,通过利用 Arduino 电路板对舵机发 送 PWM 信号,然后由电路板上的 IC 处理信号以计算旋转方向 来驱动舵机内部电机,并通过驱动电机通过齿轮将角度传递至 摆臂,控制摆臂的旋转角度来控制智能手手指的弯曲角度。 3.3 LCD1602 对功能的显示 在 Arduino 对舵机的控制的同时,也对 LCD1602 输出信号 在显示屏上显示当前功能。 控制流程图 主体控制程序如下 #include <IRremote.h> / / 引入红外通讯库文件 #include <Servo.h> / / 引入舵机库文件 #include<Function1.h> / / 引入功能 1 到 6 的库文件 #include<Function2.h> #include<Function3.h> #include<Function4.h> #include<Function5.h> #include<Function6.h> #include <Wire.h> / / 引入 LCD 显示屏库文件 #include <LiquidCrystal_I2C.h> Servo myservo1 / / 定义五个驱动舵机 Servo myservo2 Servo myservo3 Servo myservo4 Servo myservo5 LiquidCrystal_I2C lcd(0x27,16,1) ; const int irReceiverPin = 7; / / 定义红外数据的接受引脚 7 IRrecv irrecv( irReceiverPin) ; decode_results results; void setup( ) { pinMode( ledPin,OUTPUT) ; Serial.begin(9600) ; / / 定义波特率 irrecv.enableIRIn( ) ; myservo1.attach(8) ; / / 定义舵机的输出接口 8
分享到:
收藏