使用arduino mega2560制作一台超简易的假机械臂!
要实现机械臂所需的功能,我们需要让机械臂能在三维空间中自由活动。
现在,使用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制作一台超简易的假机械臂!相关推荐
- 运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线、圆、人物轮廓及写字的功能。
运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线.圆.人物轮廓及写字的功能. 给大家看看效果吧 演示写字视频在下: VID 首先放置了诸多控件 在给控件 ...
- 【华为云技术分享】40多元成本制作基于Arduin的随动四轴机械臂,机械臂实现步骤记录、复现等功能
[摘要] Arduin随动四轴机械臂,机械臂实现步骤记录.复现等功能:主要原材料元器件有:电位器 * 4.9g舵机 * 4.轻触开关 * 1.Arduin UNO * 1.热熔胶.杜邦线多根(建议用质 ...
- 机械臂颜色识别案例 | 路上捡到一台机械臂,给它点颜色瞧瞧?
大家好,我就是那个走在路上经常捡到宝的铁熊老师,那么今天捡到了啥好玩的东西呢?一台五自由度机械臂,从天而降出现在我面前! 这话说出口,我自己都不信,哪有那么好的运气!其实这是朋友送我玩的,你也想要这台 ...
- 从零制作视觉抓取机械臂实物系列:一、让机械臂实物动起来(1)
视觉机械臂整体介绍 1.课程介绍 2.抓取流程框架 3.硬件简介 3.1.机械臂选择 3.2.控制器以及通讯方式选择 3.3.相机选择 硬件准备 1.课程介绍 大家好,我是拿笔小新的新.上课之前我 ...
- 关于自制Arduino MEGA2560的一点记录
最近受托制作一个基于Arduino MEGA2560的板子,在电路上增加些接口可以不用外接模块.由于很久没接触Arduino,一些操作都忘记了,现记录下以后再搞时候碰到问题以备回忆. 1. 烧写bo ...
- [Moonlight内网串流教程] IPAD超简易操作版 - 安卓苹果通用
超简易进行串流教程 使用设备:ipad Air 3 .有Nvidia显卡的普通Windows笔记本. Windows系统准备工作 1.打开Nvidia GeForce Experience,如果没有就 ...
- 超简易复制Model对象(为后续备忘录设计模式博文做铺垫)
超简易复制Model对象(为后续备忘录设计模式博文做铺垫) 复制整个Model需要实现NSCopy协议,可以想象是非常麻烦的一件事情,今天我跟大家分享一个不需要你做任何操作的复制Model对象的方法, ...
- Arduino Mega2560简介
Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计.可通过3种方式供电,而且能自动选择供电方式. 具有54路数字输入输出. 概述 Arduino Mega ...
- 用arduino mega2560通过isp给 arduino uno烧录程序
用arduino mega2560通过isp给 arduino uno烧录程序 一直想通过最基本的方式来烧录arduino程序,没有bootloader,不使用arduino IDE,基于avr-li ...
最新文章
- /usr/bin/ld: cannot find -lc错误原因及解决方法
- 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
- 【MM模块】Document Release 订单下达(审批)
- Linux(Ubuntu,Cent OS)环境安装mkfontscale mkfontdir命令以及中文字库
- 超级计算机 26010,全球最强超级计算机搭载的SW26010处理器解析
- 网络直播“黑科技”:Stream Matrix
- 【LeetCode笔记】416. 分割等和子集(Java、动态规划、背包问题、滚动数组)
- Android的面孔_Actiyity
- Python redis的订阅发布机制(publish、pubsub)
- _int64_在Linux对应对文件,linux下32位机与64位机基本数据类型长度对比
- 数据保密-第三代透明加密技术
- Web浏览器没有Flash如何播放RTMP协议直播
- 冒泡排序(Java)
- 禅定是否一定要打坐,为什么?
- SDI科普--- SD-SDI/HD-SDI/3G-SDI/12G-SDI
- 轮流取石子游戏c语言答案,取石子游戏
- 【51nod】2589 快速讨伐
- thinkphp创建临时表
- 元胞自动机在交通系统中的应用之一【元胞自动机的基础知识】
- 中考计算机考试辽宁,中考考哪些科目(2019辽宁中考科目及分值)