手把手教你做Arduino随动机械臂
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验视频链接
图2,机械臂主体 图1,机械臂主体和Arduino连接
子项目1:什么是Arduino Leonardo?
名 概 编 厂 称: 述: 号: 商: Arduino Leonardo ATmega32u4 A000057 Atmel
Arduino Leonardo的处理器核心是 ATmega32u4,同时具有20路数字输 入/输出口(其中7路可作为PWM输出, 12路模拟输入),一个16MHz晶体振 荡器,一个USB接口,一个电源插座, 一个ICSP header和一个复位按钮。
子项目2:制作随动机械臂
5.制作操纵杆
注意:一定要搞 清顺序,否则舵 机的转动方向可 能与电位器相反
图13,将电位器依次按照舵机的位置用强力胶粘住 (最快的方法但不是最好的)
子项目2:制作随动机械臂
图14,连接完成!
子项目2:制作随动机械臂
想了解更多?? QQ号:844233041 视频稍后发!!
子项目2:制作随动机械臂
当控制四个舵机时,程序变成: 在制作硬件之前,可以现将此程序拷入板子
#include <Servo.h> Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; int potpin1 = 0; int potpin2 = 1; int potpin3 = 2; int potpin4 = 3; int val1; int val2; int val3; int val4; void setup() { myservo1.attach(9); myservo2.attach(10); myservo3.attach(11); myservo4.attach(13); } void loop() { val1 = analogRead(potpin1); val2 = analogRead(potpin2); val3 = analogRead(potpin3); val4 = analogRead(potpin4); val1 = map(val1, 0, 1023, 0, 179); val2 = map(val2, 0, 1023, 0, 179); val3 = map(val3, 0, 1023, 0, 179); val4 = map(val4, 0, 1023, 0, 179); myservo1.write(val1); myservo2.write(val2); myservo3.write(val3); myservo4.write(val4); delay(15); }
子项目2:制作随动机械臂
材料: 4.杜邦线若干(公母头的都要有哦)。
5.舵机摆臂若干,各种型号螺丝若干。
工具 各种螺丝刀(必须的),强力胶水(加固用),电烙铁, 焊锡等技术宅必备电工用具。
暂时还没买烙铁 架。。。
子项目2:制作随动机械臂
Biblioteka Baidu
准备工作:
图7,程序的校检
1.将程序校检后拷入板子
2.先将舵机编号,再将电位器按照舵机顺序编号 3.将杜邦线与电位器连接好(杜邦线母头可以正 好插入电位器引脚) 4.将舵机杜邦线的母头改造为公头(这是因为 Arduino板子上的连接口全部都是母头,所以舵 机连不上的缘故,强烈建议Arduino将来出带公 头的板子!改造接线花了我不少时间……)
欢迎交流!!
子项目1:什么是Arduino Leonardo?
输入输出 20路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆 内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能 – 串口信号RX(0号)、TX(1号): 与内部 ATmega32U4 USB-to-TTL 芯片相连,提供TTL电压水平 的串口接收信号。 – 外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。 – 脉冲宽度调制PWM(3、5、6、9、10 、11、13):提供7路8位PWM输出。 – SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。 – LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄 灭。 模拟输入A0到A5、A6到A11:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为 0到5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能 AREF:模拟输入信号的参考电压。 Reset:信号为低时复位单片机芯片。 通信接口 串口:ATmega32U4内置的UART可以通过数字口0(RX)和1(TX)与外部实现串口通信;ATmega32U4 可以访问数字口实现USB上的虚拟串口。 TWI(兼容I2C)接口 SPI 接口 物理特征 Arduino UNO的最大尺寸为2.7 x 2.1 inches。 开发环境 Arduino 1.0.1 开发语言为C语言 图四,开发环境
子项目2:制作随动机械臂
原理图:
V+=5V
V
USB(连至电脑) V+=5V Arduino Leonardo
signal Analog Input(P WM)
Analog Input
舵机(servo)有三条 接线,分别为信号线 (signal),电源线 (V++)和地线
电位器(pot)有三根线,其 中电刷连接的变阻线接板子 的模拟输入
子项目2:制作随动机械臂
实际连接图(以一号舵机为例):
舵机
电位器
子项目2:制作随动机械臂
程序源代码(一个舵机)
#include <Servo.h> // 开发环境Arduino 1.0.1中有此库 Servo myservo; // 创建一个舵机项目(myservo)以操控一个舵机 int potpin = 0; // 模拟输入接口0号口接电位器 int val; // 引入变量读取电位器输入的电压值 void setup() { myservo.attach(9); // 把舵机连接至九号PWM输出口上 } void loop() { val = analogRead(potpin); // 从电位器上读取电压值(从0到1023) val = map(val, 0, 1023, 0, 179); // 用map函数将电压值转化成要控制的舵机的转动角度 myservo.write(val); // 将输出角度读出控制舵机转动 delay(15); // 等待舵机达到指定位置 }
手把手教你做随动机械臂
课程作业主题:单片机硬件开发平台 课程名称:计算机硬件基础
项目介绍
课程作业项目名称:基于单片机系统的四自由度随动机械臂 子项目: (1)了解Arduino Leonardo这款硬件开发平台; (2)制作随动机械臂 (3)了解SSC32路舵机控制器的用法; 项目介绍:项目旨在制作一台小型四自由度机械臂,控制方式为随动控制 (即用一种用电位器制作操纵杆,使舵机摆过的角度电位器的旋钮,从而达 到机械臂跟随操纵杆运动的一种控制方式),此机械臂通过利用Arduino Leonardo这款硬件开发平台作为处理器,电位器为输入设备,舵机为输出 设备,搭建起以Arduino Leonardo为核心的机械臂系统。
12 3
图8,电位器编号和舵机的编号
4
图9,接头被破坏 时的惨状……
图10,改造后的接口(中间插上细 铁丝再焊牢,再包上绝缘胶布)
子项目2:制作随动机械臂
正式开始搭建!!
1. 将舵机摆臂以合适角度固 定在舵机上。
子项目2:制作随动机械臂
正式开始搭建!!
2. 用自攻螺丝在二号三号舵 机的侧部中央钻孔(力气 活),但注意不要伤到里 面的电路!
子项目2:制作随动机械臂
3.如图搭建机械臂,注意小臂是 用旧的电池架弯曲制成,如果没 有,可以找相似的材料代替。搭 建完毕后要注意将线绕整齐,不 要妨碍到机械臂的动作。
子项目2:制作随动机械臂
发挥你的想象力!
图11,可以给机械臂装上不同零件,让它更像一只手臂
子项目2:制作随动机械臂
2号舵机 3号舵机 4号舵机
图12,肩部特写
图13,肘部特写
子项目2:制作随动机械臂
4.按照原理图逐步搭建电路
按照原理图搭建电路,注意: 一号电位器信号输出端接A0; 二号电位器接A1;三号电位 器接A4;四号接A5。一号舵 机信号输入端接A9;二号接 A10;三号接A11,四号接 A13。千万不要接错!
图12,一个关节控制电路的搭建
图5,Arduino1.0.1中的四自由度机械臂随动控制程序
子项目2:制作随动机械臂
材料: 1.Arduino Leonardo板一个,miniUSB数据线一条(接电脑用)。 2.舵机:普通模拟180度舵机 一个(盛辉mg996R即可); 9g小型舵机2个;2.5g微型 舵机一个。 3.电位器4个(1K 1W,其实具体型号 无所谓,1K左右的低功耗的就行,旋 转角尽量接近180度,因为选取的舵机 都是180度的舵机)
图三,我所用的Arduino Leonardo
子项目1:什么是Arduino Leonardo?
1.
2.
3. 4. 5. 6. 7. 8. 9. 1. 2.
3.
概要 • 电源 处理器 ATmega32u4 Arduino UNO可以通过2种方式供电,而且能 工作电压 5V 自动选择供电方式 输入电压(推荐) 7-12V 外部直流电源通过电源插座供电。 输入电压(范围) 6-20V USB接口直接供电。 数字IO脚 20 (其中7路作为PWM输出) 模拟输入脚 12 USB接口 IO脚直流电流 40 mA 3.3V脚直流电流 50 mA Flash Memory 32 KB (ATmega32u4, 其中4 KB 用于 bootloader,即引入程序)外接电源接口 SRAM 2.5 KB (ATmega32u4) • 存储器 EEPROM 1 KB (ATmega32u4) ATmega32u4包括了片上32KB Flash,其 工作时钟 16 MHz 中4KB用于Bootloader。同时还有2.5KB SRAM和1KB EEPROM。