"MiniHand"蓝牙自动化仿生机械臂小车

使用Arduino控制机械臂 使用Arduino控制机械臂 一. 硬件设备 1x DFRdunio UNO Rev3 1x Prototyping Shield For Arduino 1x USB线 AtoB方口 1x DFLG6DOF 6自由度机械臂 二. 控制机械臂 机械臂的实现实质上就是舵机+支架,那么对机械臂的控制本质上就是对舵机的控制,对于6自由度机械臂有六台舵机,每个都是180°范围旋转的。 快速实现... 阅读详情

一、作品背景、发明目的

移动机器人作为机器人学发展中的一个重要分支,是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。机器人在现代工业中应用得特别广泛,而其与外界接触的部分是机械臂,它可以代替人手,与外界环境中有毒以及有害的物质直接接触以减少对人的危害,它具有能不断重复工作和劳动、不知疲劳、不怕危险等特点。人来社会发展已离不开机器人技术,而机器人技术的进步又推动科技的进步。因此,设计机械手、机械臂有特别重要的意义。

组合式机械臂是由若干一维机械臂以不同夹角组合而成,可实现机械臂的直线伸缩,或在 X-Y 平面移动,或在 X-Y-Z 空间定位等功能,以满足不同场合下的需要。针对目前机械 臂的笨拙缺点,基于工业 abb 码垛机械手原型,设计了这一款桌面级可移动机械臂,来完成特定搬运工作。在遇到特殊搬运任务时,一般的机械臂往往运动笨拙、操作复杂,而“MiniHand”机械臂小车具有体积小、灵活精妙的特性,可通过蓝牙控制前进、后退、转弯到指定位置,再进行机械臂的操作。对于需要进行重复动作的任务,“MiniHand”能完美胜任。使用者可 通过 pc 的上位机软件记录机械臂的位置,并且可以控制运行速度和循环次数。

二、作品简介

该作品以 arduino 为控制器,以可蓝牙遥控小车为承载,车上搭配以工业机械手为原 型设计的桌面级机械臂,体积小巧结构精妙。作品配合蓝牙、pc 上位机软件、android 端 App 控制,既可以通过 Android 端控制小车前进后退转弯、机械臂的伸展收缩,又可以通 过 pc 的上位机软件使用鼠标拖动滑块控制每个关节的位置,并且可以记录当前的位置,而 且还可以将记录的位置安装顺序播放.,控制运行速度和循环次数。

三、作品展示

俯视

侧身照

arduino芯片

机械臂

四、软件清单

android 端 app,pc 端上位机软件

五、适用范围

适用于小型搬运任务,个人娱乐,工业机械手的模拟以及机械臂教学使用。

六、推广前景

(一)可代替人的繁重劳动以实现生产的机械化和自动化,能在有害环境下操作以保护人
身安全,因而广泛应用于机械制造、冶金、电子、轻工和原子能等部门。
(二)实现服务机器人上机械手的灵活运动与控制,对于老年人以及残障人士在心理上和
身体上都非常有益处,为解决我国社会问题,创建和谐社会做出贡献。
(三)迷你机械手可以广泛运用于各种教学上和个人娱乐。

七、arduino实现代码

#include <Servo.h>

#define IN1 4
#define IN2 10
#define IN3 12
#define IN4 11
Servo servo_afthand;
Servo servo_prehand;
Servo servo_head;
Servo servo_claw;
char x;
//电机初始化
void IniMotor()
{
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
  //pinMode(ENA,OUTPUT);
  //pinMode(ENB,OUTPUT);
}

//舵机初始化
void iniServo()
{
  servo_claw.attach(3);
  servo_afthand.attach(5);
  servo_head.attach(9);
  servo_prehand.attach(6);
  servo_afthand.write(90);
  servo_prehand.write(90);
  servo_head.write(85);
  servo_claw.write(10);

}
//直走
void goLine()
{
  digitalWrite(IN1,HIGH);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
}

//右转
void turnRight()
{
  digitalWrite(IN1,HIGH);
  digitalWrite(IN2,LOW);
  delay(100);
}
//左转
void turnLeft()
{
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  delay(100);
}

//制动
void stopp()
{
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,LOW);
  //analogWrite(ENA,rightSpeed);
  //analogWrite(ENB,leftSpeed); 
}

//放下臂
void handup()
{
    int  i = servo_afthand.read();
    for(i;i<=145;i++)
    {
        servo_afthand.write(i);
        delay(25);
    } 
    int j = servo_prehand.read();
    for(j;j>=70;j--)
    {
        servo_prehand.write(j);
        delay(25);
    }
 }

//收起臂
void handback()
{
   int j = servo_prehand.read();
   for(int j=70;j<=90;j++)
    {
        servo_prehand.write(j);
        delay(25);
    }
    int  i = servo_afthand.read();
    for(int i=145;i>=90;i--)
    {
        servo_afthand.write(i);
        delay(25);
    } 
}

//打开爪
void clawopen()
{
   int k = servo_claw.read();
    for(k;k<=130;k++)
    {
        servo_claw.write(k);
        delay(30); 
}
}

//关闭爪
void clawoff(){
    int k = servo_claw.read();
    for(k;k>=10;k--)
    {
      servo_claw.write(k);
      delay(30);
    }
}

//机械臂转向左90°
void switchleft()
{
    int p = servo_head.read();
    int q = p+90;
    if(q>180)
   {
    for(p;p<=180;p++)
   {
    servo_head.write(p);
    delay(20);
   }

   }
   if(q<=180)
    {
    for(p;p<=q;p++)
   {
    servo_head.write(p);
    delay(20);
   }
    }
}

//机械臂转向右90°
void switchright()
{
    int p = servo_head.read();
    int q = p-90;
    if(q<0)
   {
    for(p;p>=0;p--)
   {
    servo_head.write(p);
    delay(20);
   }

   }
   if(q>=0)
    {
    for(p;p>=q;p--)
   {
    servo_head.write(p);
    delay(20);
   }
    }
}


void setup() {
  IniMotor();
  iniServo();
  Serial.begin(9600);

}

void loop() {

 if(Serial.available())
 {
    x = Serial.read();
    switch(x)
    {
       //motor_control
       case'a':goLine();Serial.println("go staight!");break;
       case 'b':stopp();Serial.println("stop!");break;
       case 'c':turnLeft();Serial.println("turn left!");break;
       case 'd':turnRight();Serial.println("turn right!");break;
       //servo_control
       case 'e' :handup();Serial.println("hand up!");break;
       case 'f' :handback();Serial.println("hand back!");break;
       case 'g':clawopen();Serial.println("claw open!");break;
       case 'h':clawoff();Serial.println("claw off!");break;
       case 'i':switchleft();Serial.println("servo switch left!");break;
       case 'j': switchright();Serial.println("servo switch right");break;
    }
 }
}

八、相关信息

队长及编写:陈含艺
团队成员:陈含艺、罗磊、骆妍
编写时间:2016-10-7

基于Arduino UNO的可控机械臂 Arduino Uno 是一款基于 微控制器 MTATmega328P的开发板。它有14个数字输入/输出引脚(这些引脚中有6个引脚可以作为PWM输出引脚),6个模拟输入引脚,16 MHz石英晶振,USB接口,电源接口,支持在线串行编程以及复位按键。用户只需要将开发板与电脑通过USB接口连接就可以使用。 阅读详情

相关推荐

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

非常简单的机械臂

qq_63202434的博客 1915

Arduino开发板DIY简易机械臂

机械臂由Arduino,舵机和MeArm硬件组成,Arduino通过程序驱动舵机,控制机械臂,简单地实现机械臂的功能。舵机 有两种一种是模拟舵机,一种是数字舵机。数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全一样的,主要由马达、减速齿轮、控制电路等组成,而数字舵机和模拟舵机的最大区别则体现在控制电路上,数字舵机的控制电路比模拟舵机的多了微处理器和晶振。数字舵机反应速度更快,无反应区范围小,定位精度高,抗干扰能力强逐渐取代模拟电机在机器人、航模中的应用。

优信电子的博客 7224

【基于腾讯云的CH32V307开发板远程机械臂小车】

随着科技的日益发达,人类社会正在向自动化,智能化的方向快速发展。机械臂履带车可以提高户外的生产效率,减少人力成本,提高工作效率,改善工作环境,提高安全性,减少事故发生率,有利于促进社会经济的发展,因此设计出机械臂来代替人的手臂也就显得很有必要。本文基于CH32V307开发板开发了智能移动履带机械臂小车,通过WIFI无线网络接入腾讯云物联网平台IoT Explorer,实现了在腾讯连连小程序上能够实时在线控制和在线监测运动数据。

vor234的博客 2927

Arduino基础学习——meArm(太极创客第二部分)

面包板电源模块为机器臂单独供电,机器臂本身有四个小电机驱动作用,如果单独靠arduino来为这四个小电机供电,机器臂可能不会稳定工作,将会抖动。机械臂的四个动作主要靠四个电机来控制,这四个电机主要连接在我们的arduino控制器上,通过audino的编程,可以对这四个电机发送相应的指令,然后电机就会驱动机械臂做出相应的动作。

qq_62687015的博客 5903

【Arduino机器人手臂和麦克纳姆轮平台自动操作】

因此,我们可以使用定制的Android应用程序控制Mecanum轮子机器人,方法与上一个视频中所述相同。除此之外,现在该应用程序还具有用于控制机器人手臂的按钮。最初的机器人手臂控制应用程序实际上具有用于控制机器人关节的滑块,但这会导致手臂稳定性出现一些问题。通过这种方式,手臂工作得更好,因此我将向原始机器人手臂项目提供这个更新版本的机器人手臂控制应用程序和 Arduino 代码。尽管如此,该机器人最酷的功能是能够存储动作,然后自动重复它们。使用“保存”按钮,我们可以简单地存储每个步骤的电机位置。

vor234的博客 2785

【Arduino 动手做】3D打印的机械臂 Remix

《Arduino 手册(思路与案例)》专栏专注于电子制作与智能控制领域,涵盖了Arduino在BLDC、CNC、ESP32 SPP、FreeRTOS、FOC、GRBL、HTTP、HUB75、IoT Cloud、JSON、LCD、OLED、LVGL、PID及TFT等方面的应用思路与案例,目前已发布近2300篇博客。Arduino作为开源电子原型平台,以其易用性、经济性和多样性,广泛应用于机器人、智能家居等项目。此外,文章还介绍了作者对“meArm”机械臂的改进设计,通过3D打印和硬件升级,增强了其举重能力和稳

雕爷学编程 1258

基于arduino与esp32的机械臂小车

基于arduino与esp32的机械臂小车

2303_79449572的博客 3546

【雕爷学编程】Arduino动手做(215)——MG90 四自由度机械手机械臂

本文分享了基于Arduino的四轴机械臂组装实验过程。作者通过图片详细展示了从底座安装、左右臂组装、机械爪装配到整体调试的8个步骤,使用MG90金属舵机作为核心部件。作为"108种传感器模块系列实验"的第215个项目,该实验探索了4自由度可编程WiFi机械臂的搭建方法,旨在为教学机器人开发提供实践参考。文章记录了完整的组装流程,体现了动手实践的学习理念,为Arduino机器人爱好者提供了可借鉴的DIY方案。

雕爷学编程 1596

【Arduino】蓝牙控制机械臂,和机械臂平移算法

本文仅仅简单介绍了arduino控制机械臂的使用,仅仅给大家参考。

weixin_57176753的博客 1624

基于Arduino的6自由度机械臂设计与实现

本文还有配套的精品资源,点击获取 简介:本文介绍了一个6轴机械臂项目,展示了如何基于Arduino控制器实现一个具有六个自由度(6DOF)的机器人。这种机器人能够在三维空间内自由移动和旋转,适用于多种任务。文中通过3D模型文件详细描述了机器人的结构,并探讨了机械设计、电子控制、编程技术等多方面的知识点。该项目为学习者提供了一个理解机器人运动学、动力学和综合应用跨学科技能的机...

weixin_35459464的博客 4912

Arduino控制的3D打印机械臂项目实战教程

3D打印技术,又称为增材制造,是一种通过逐层堆叠材料形成实体模型的制造过程。它的出现极大地简化了复杂机械结构的制作流程,尤其在定制化和小批量生产领域具有独特的优势。在进行完设计、组装和编程后,项目进入最终测试阶段。这里应该详细记录测试过程中的每一步,并针对可能出现的问题准备相应的解决方案。以下是测试和调试步骤的简化版:运行代码并检查各关节运动是否符合预期。监测电源电流,确保没有异常电流消耗。使用调试软件或串口监视器查看程序运行状态。

weixin_42588877的博客 1513

arduino uno r3 机械臂

开发版使用DC口7V-12V 供电(只用usb(5v)供电口 舵机驱动不了,usb口和DC口可同时供电),舵机正负极并联后直接使用拓展版5v供电,舵机信号线按照代码依次接到D9、D10、D11、D12,对应开发板 9、10、11、12 IO口。代码只是实现了功能,遥杆控制机械臂的大臂、小臂,按键控制底座转动和夹子。舵机的移动得根据实际情况更改每次角度+-的大小调以及延时时间试出最合适的参数。arduino uno r3 改进板、sg90舵机(180度 x 4)、

xw245184020的专栏 2583

51雾化器实现

1. 雾化器简介 雾化器是将试液雾化的一种器械。雾化器是原子化系统的重要部件,其性能对测定的精密度和化学干扰等产生显著影响。因此要求雾化器喷雾稳定、雾滴细小、均匀和雾化效率高。雾化器的类型有超声雾化器,空气压缩式雾化器,网式雾化器。超声雾化器因其价格合适,适合家用,被广泛应用于加湿器,香薰机等各种小家电,也在医疗领域有很多的应用。家用雾化器的主要器件是一枚雾化片。 家用雾化器分为两种不同类别雾化片,实孔雾化片和微孔雾化片,这两种的喷雾方法和工作原理是有所不同的。不同的雾化片需要特定的频率才能工作。 实孔雾

qq_42415953的博客 2万+

Arduino实训-可移动机械臂(智能小车)

通过简单的方法开发控制智能小车的Android App

ZzziK的博客 8490

python爬虫自动下载网页链接

需求分析 今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的: Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的pytho...

da_kao_la的博客 1万+

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 963

【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁

Arduino基础实验

悬铃木下的青春的博客 4397

Super4PCS文章阅读笔记

Super4PCS阅读笔记 Super4PCS阅读笔记 前言 前言 今天给大家分享一下点云配准四点法4PCS0的变种——Super4PCS。此算法的原文在:Super4PCS: Fast Global Pointcloud Registration via Smart Indexing。稍微我也会写一篇关于如何使用这篇文章的里所提供的代码进行点云粗配准。关于四点法...

Vodake的博客 4540

技能梳理27@体感机械臂

最近在抽时间集中整理之前做过的东西,有纯粹入门学习的、课程设计的、老师项目的、帮忙同学的、业余瞎搞的、毕业设计的(自己和“他人”)、之前在破产公司搞的,所以难度质量啥的参差不齐,一些半成品残次品正在考虑要不要整理,都算上预计这个系列能更六七十篇吧 这次这个没怎么参与,属于帮同学的,舍友[赵硕](https://blog.youkuaiyun.com/qq_35661436?type=blog)搞的,他现在转java了。所以只有当时给整理的文档,具体工程忘保存了,有需要的可以去他博客管他要哈哈

杨飞的博客 7517

别再死磕Excel了!用Vensim PLE免费版,30分钟搞定你的第一个系统动力学模型

本文介绍如何使用Vensim PLE免费版在30分钟内构建第一个系统动力学模型,无需编程或数学基础。通过个人储蓄增长案例,详细讲解因果回路图绘制、存量流量图创建及方程编写,帮助读者掌握动态系统建模与仿真技巧,适用于理财、项目管理等多种场景。

weixin_29045001的博客 329

DeepSeek的训练与优化流程

DeepSeek的训练体系不仅追求极致的计算效率,更注重将物理规律、人类知识、安全伦理深度融入训练过程,其"效率-安全-可解释性"三角平衡的设计理念,为行业提供了重要参考范式。

m0_56896669的博客 1438

Arduino 控制小车加机械臂

  是菜鸟的作品,实现了机械臂的控制,和小车前后左右的控制。连接 WiFi 后可实现TCP 通信。主要模块用到了一个Arduino nuo 板、一个红板、一个 TD-06 WiFi模块、四个舵机和两个小车驱动电机。   实物图如下   代码如下 #include <Servo.h> //------------------------------------------------...

dark_cy的博客 8269

ComfyUI整合包、秋叶ComfyUI、Florence节点报错下载并加载Florence2模型No module named ‘timm.layers‘、ComfyUI报错解决

步骤操作1打开2地址栏输入cmd并回车3输入命令:4安装完成后重新打开 ComfyUI,执行工作流,即可解决报错。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1245

【如何使用ROS和Arduino控制机器人手臂】

在本系列关于机械臂控制的这一部分中,学习使用 Arduino 和 ROS 构建一个非常简单的机械臂。机器人操作系统(ROS)是领先的机器人控制中间件/软件。完整的 ROS 生态系统提供了实现机器人运动学、动力学、运动控制、运动规划、感知和仿真算法所需的所有工具。在上一篇文章《如何将Arduino与机器人操作系统(ROS)一起使用》中,我们学习了如何将ROS与Arduino一起使用,并使用ROS模拟虚拟机器人手臂上的随机运动序列。

vor234的博客 3188

在 MATLAB/Simulink 中构建一个卫星间激光通信链路的完整仿真系统

摘要: 本文通过Simulink详细演示了卫星间激光通信系统的建模过程,重点分析其在10Gbps高速率、2000km距离下的性能。系统设计涵盖PAM-4调制、自由空间信道建模(路径损耗、指向误差、多普勒效应)、APD探测及链路预算计算,并给出典型场景下18.5dB SNR、1e-9误码率的仿真结果。针对激光通信的μrad级指向精度挑战,提出AI辅助跟踪、混合RF/激光等优化策略,为未来太空高速组网提供可扩展的仿真框架。所需工具箱包括Communications Toolbox和Aerospace Toolb

xiaoheshang_123的博客 384

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于Arduino红外控制机械臂+流水线操作

基于Arduino的红外控制机械臂,仅供参考学习。

Java_Caorui的博客 5274

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 华为网课云计算笔记
下一篇: 基于MFC的俄罗斯方块小游戏(一)
HY_Chan
博客等级 码龄10年 54粉丝 60原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值