要实现机械臂所需的功能,我们需要让机械臂能在三维空间中自由活动。

现在,使用4个舵机、mega2560和一些简单的材料就可以制作一台听从我们命令的次机械臂。

成品:

上位机使用visual studio。

设计界面:

vs的控制方式是手动选择角度后点确定,上位机就会将角度信息以串口形式发送给单片机。arduino在处理后控制舵机旋转。

上位机代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace jixiebi
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){serialPort1.PortName = "COM6";serialPort1.BaudRate = 9600;}private void trackBar1_Scroll(object sender, EventArgs e){}private void button1_Click_1(object sender, EventArgs e){serialPort1.Open();serialPort1.Write("a");trackBar1_Scroll(sender, e);serialPort1.Write(trackBar1.Value.ToString());serialPort1.Close();}private void trackBar2_Scroll(object sender, EventArgs e){}private void button2_Click_1(object sender, EventArgs e){/*serialPort1.Open();serialPort1.Close();*/serialPort1.Open();serialPort1.Write("b");trackBar2_Scroll(sender, e);serialPort1.Write(trackBar2.Value.ToString());serialPort1.Close();}private void trackBar3_Scroll(object sender, EventArgs e){}private void button3_Click(object sender, EventArgs e){serialPort1.Open();serialPort1.Write("c");trackBar3_Scroll(sender, e);serialPort1.Write(trackBar3.Value.ToString());serialPort1.Close();}private void button4_Click(object sender, EventArgs e){serialPort1.Open();serialPort1.Write("A");serialPort1.Close();}private void button5_Click(object sender, EventArgs e){serialPort1.Open();serialPort1.Write("B");serialPort1.Close();}private void button1_Click(object sender, EventArgs e){}}
}

接下来就是单片机了。因为是arduino作为单片机,可以直接使用其自带舵机控制函数。

代码如下:

 //通过上位机控制多个舵机//20度为间隔,0度至180度#include <Servo.h>
#define def (1 - '1')Servo duoji1;
Servo duoji2;
Servo duoji3;
Servo duoji4;int data ;
void setup() {Serial.begin(9600);duoji1.attach(5);duoji2.attach(6);duoji3.attach(7);duoji4.attach(2);
}void loop() {if(Serial.available() > 0){char type = Serial.read();//舵机识别if(type == 'a'){data = ( Serial.read() + def )*20;duoji1.write(data);}if(type == 'b'){data = ( Serial.read() + def )*20;for(int i = 0;i <= data;i++){duoji2.write(data);delay(10);}}if(type == 'c'){data = ( Serial.read() + def )*20;duoji3.write(data);}if(type == 'A'){duoji4.write(0);}if(type == 'B'){duoji4.write(40);}}   delay(1000);
}

控制过程就是通过上位机依次控制关节舵机的角度,然后就可以捡垃圾啦!!!

效果如下:

加垃圾的机械臂

使用arduino mega2560制作一台超简易的假机械臂!相关推荐

  1. 运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线、圆、人物轮廓及写字的功能。

    运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线.圆.人物轮廓及写字的功能. 给大家看看效果吧 演示写字视频在下: VID 首先放置了诸多控件 在给控件 ...

  2. 【华为云技术分享】40多元成本制作基于Arduin的随动四轴机械臂,机械臂实现步骤记录、复现等功能

    [摘要] Arduin随动四轴机械臂,机械臂实现步骤记录.复现等功能:主要原材料元器件有:电位器 * 4.9g舵机 * 4.轻触开关 * 1.Arduin UNO * 1.热熔胶.杜邦线多根(建议用质 ...

  3. 机械臂颜色识别案例 | 路上捡到一台机械臂,给它点颜色瞧瞧?

    大家好,我就是那个走在路上经常捡到宝的铁熊老师,那么今天捡到了啥好玩的东西呢?一台五自由度机械臂,从天而降出现在我面前! 这话说出口,我自己都不信,哪有那么好的运气!其实这是朋友送我玩的,你也想要这台 ...

  4. 从零制作视觉抓取机械臂实物系列:一、让机械臂实物动起来(1)

    视觉机械臂整体介绍 1.课程介绍 2.抓取流程框架 3.硬件简介 3.1.机械臂选择 3.2.控制器以及通讯方式选择 3.3.相机选择 硬件准备 1.课程介绍   大家好,我是拿笔小新的新.上课之前我 ...

  5. 关于自制Arduino MEGA2560的一点记录

    最近受托制作一个基于Arduino MEGA2560的板子,在电路上增加些接口可以不用外接模块.由于很久没接触Arduino,一些操作都忘记了,现记录下以后再搞时候碰到问题以备回忆. 1.  烧写bo ...

  6. [Moonlight内网串流教程] IPAD超简易操作版 - 安卓苹果通用

    超简易进行串流教程 使用设备:ipad Air 3 .有Nvidia显卡的普通Windows笔记本. Windows系统准备工作 1.打开Nvidia GeForce Experience,如果没有就 ...

  7. 超简易复制Model对象(为后续备忘录设计模式博文做铺垫)

    超简易复制Model对象(为后续备忘录设计模式博文做铺垫) 复制整个Model需要实现NSCopy协议,可以想象是非常麻烦的一件事情,今天我跟大家分享一个不需要你做任何操作的复制Model对象的方法, ...

  8. Arduino Mega2560简介

    Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计.可通过3种方式供电,而且能自动选择供电方式. 具有54路数字输入输出. 概述 Arduino Mega ...

  9. 用arduino mega2560通过isp给 arduino uno烧录程序

    用arduino mega2560通过isp给 arduino uno烧录程序 一直想通过最基本的方式来烧录arduino程序,没有bootloader,不使用arduino IDE,基于avr-li ...

最新文章

  1. /usr/bin/ld: cannot find -lc错误原因及解决方法
  2. 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
  3. 【MM模块】Document Release 订单下达(审批)
  4. Linux(Ubuntu,Cent OS)环境安装mkfontscale mkfontdir命令以及中文字库
  5. 超级计算机 26010,全球最强超级计算机搭载的SW26010处理器解析
  6. 网络直播“黑科技”:Stream Matrix
  7. 【LeetCode笔记】416. 分割等和子集(Java、动态规划、背包问题、滚动数组)
  8. Android的面孔_Actiyity
  9. Python redis的订阅发布机制(publish、pubsub)
  10. _int64_在Linux对应对文件,linux下32位机与64位机基本数据类型长度对比
  11. 数据保密-第三代透明加密技术
  12. Web浏览器没有Flash如何播放RTMP协议直播
  13. 冒泡排序(Java)
  14. 禅定是否一定要打坐,为什么?
  15. SDI科普--- SD-SDI/HD-SDI/3G-SDI/12G-SDI
  16. 轮流取石子游戏c语言答案,取石子游戏
  17. 【51nod】2589 快速讨伐
  18. thinkphp创建临时表
  19. 元胞自动机在交通系统中的应用之一【元胞自动机的基础知识】
  20. 中考计算机考试辽宁,中考考哪些科目(2019辽宁中考科目及分值)

热门文章

  1. JDK1.7扩容时为什么会产生并发死链问题
  2. java v_java -v报错 java -version正确
  3. 机器学习中的无监督学习是什么?
  4. 银行管理系统 - 2022计科实训QT课设
  5. Android 动画实现
  6. (二)基于STM32f103的I2C通信接口的EPPROM模块(24C256)读写程序详解
  7. Linux各种打包和压缩文件命令
  8. 2022Android春招,2022最新阿里Android高级面试题及答案
  9. 汇编语言AX,BX,CX,DX寄存器
  10. 常见的麦克风供电方式总结(驻极体电容器麦克风)