基于Arduino的平衡车机械臂

两轮驱动机器人车与机械臂的DIY指南

视频:

基于Arduino的平衡车机械臂


资料下载链接

引言

在这篇文章中,我们将一起探索如何构建一个两轮驱动的机器人车,并配备有一个机器人臂,这个项目适合初学者,并且可以在动态环境中执行各种操作任务。这个项目在摩洛哥的Orange Digital Center开发,这是一个致力于促进创新、创造力和快速原型制作的场所。在这里,个人和团队可以访问到最先进的工具,包括3D打印机、激光切割机以及各种电子和机械资源。本文将详细介绍所需的材料、步骤以及如何测试和组装这个机器人。
在这里插入图片描述
在这里插入图片描述

材料准备

在开始构建两轮驱动车与机器人臂之前,我们需要准备以下硬件:

  1. 面包板 - 用于无需焊接即可制作临时电路的板。
  2. 蓝牙模块(HC-05或HC-06) - 用于通过蓝牙进行无线通信。
  3. L293D电机驱动器 - 用于控制电机的方向和速度。
  4. PCA9685伺服驱动器 - 一个16通道,12位PWM驱动器,用于控制多个伺服或LED。
  5. SG90伺服电机(x5) - 常用于机器人技术中的迷你伺服电机。
  6. Arduino Uno - 基于ATmega328P的流行微控制器板。
  7. 开/关开关 - 用于控制电路电源的基本开关。
  8. DC电源插孔 - 用于Arduino板的电源输入。
  9. 18650锂离子电池(x2) - 每个额定为2200mAh和3.7V的可充电锂离子电池。
  10. 两轮机器人车套件 - 包括构建基本两轮机器人所需的组件,具有电动轮和平衡辅助轮。
  11. 3D打印机器人臂 - 由3D打印部件组成。我们将在3D建模部分提供STL文件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

步骤1:操作两轮驱动电机

首先,我们需要连接L293D电机驱动器来控制电机的方向和速度。具体连接如下:

  • 将L293D的VCC1引脚(Pin8)连接到Arduino的5V引脚,为L293D的逻辑电路供电。
  • 将L293D的GND引脚(Pin 4和Pin 5)连接到Arduino的GND引脚。
  • 将L293D的VCC2引脚(Pin 16)连接到电池的正极,为电机供电。
  • 将L293D的GND引脚(Pin 12和Pin 13)连接到电池的负极。
  • 将第一个直流电机的一个端子连接到L293D的OUT1(Pin 3)。
  • 将第一个电机的另一个端子连接到L293D的OUT2(Pin 6)。
  • 将第二个直流电机的一个端子连接到L293D的OUT3(Pin 11)。
  • 将第二个电机的另一个端子连接到L293D的OUT4(Pin 14)。
    在这里插入图片描述

步骤2:设计3D打印的机器人臂部件

接下来,我们需要使用CAD软件设计机器人臂的每个部件,使其符合所需的尺寸和功能。机器人臂由几个关节组成,可以进行旋转、弯曲和伸展等动作。
在这里插入图片描述
在这里插入图片描述

步骤3:使用PCA9685驱动器测试伺服电机

在这一步中,我们将使用PCA9685伺服驱动器测试伺服电机。PCA9685允许精确控制多个伺服,非常适合控制机器人臂的关节,确保它们正确响应。这将有助于在最终组装前验证臂的运动并确保伺服电机正常工作。
在这里插入图片描述

步骤4:使用PCA9685驱动器和蓝牙通信测试伺服电机

这一步我们将测试伺服电机,并使用蓝牙模块无线发送命令到伺服电机,确保它们正确响应。这将有助于在最终组装前验证臂的运动并确保伺服电机正常工作。

在这里插入图片描述

步骤5:配置蓝牙控制应用

在这一步中,我们将配置蓝牙应用以与Arduino通信,并上传代码到Arduino板。这将建立应用和伺服电机之间的连接,允许你通过应用界面测试和微调机器人臂的控制。

步骤6:组装和测试机器人

在这一步中,我们将组装机器人的所有组件,包括两轮底盘、机器人臂、伺服电机和电子设备。两轮底盘也通过蓝牙使用相同的应用进行控制,特别是使用滑块6(标记为Servo6)。
在这里插入图片描述

在这里插入图片描述

步骤7:测试

这是一个伟大的教育项目,有很多修改的空间。你可以使用更大的5V伺服电机来扩大两轮机器人或机器人臂的规模。另一个修改可能涉及将标准轮子换成全向轮或麦克纳姆轮,使机器人平台更加灵活。当然,这些修改将需要对3D模型和代码进行调整。一个潜在的改进可能是机器人臂的速度。通过更好的编程,手臂可以更快、更平滑地移动。如果手臂移动得太慢或有抽搐动作,可能是由于电池电量低。更换电池应该可以解决这个问题。我希望这个项目能帮助你学到新东西,最重要的是,玩得开心!

希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。

作者:Svan.


注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/492970.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【练习Day20】字符串变形

链接:字符串变形_牛客题霸_牛客网 方法一:双逆转(推荐使用) 思路: 将单词位置的反转,那肯定前后都是逆序,不如我们先将整个字符串反转,这样是不是单词的位置也就随之反转了。但是单…

ip地址和网络号关系是什么

在浩瀚的网络世界中,每一个连接互联网的设备都需要一个独特的标识来确保数据的准确传输。这个标识就是IP地址。然而,在深入探索IP地址的同时,我们不得不提及一个与之紧密相关的概念——网络号。网络号与IP地址之间存在着怎样的联系与区别&…

android 登录界面编写

1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候,验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时,使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…

run postinstall error, please remove node_modules before retry!

下载 node_modules 报错:run postinstall error, please remove node_modules before retry! 原因:node 版本出现错误,我的项目之前是在 12 下运行的。解决方法: 先卸载node_modules清除缓存将node版本切换到12重新下载即可

Docker 安装 禅道-21.2版本-外部数据库模式

Docker 安装系列 1、拉取最新版本(zentao 21.2) [rootTseng ~]# docker pull hub.zentao.net/app/zentao Using default tag: latest latest: Pulling from app/zentao 55ab1b300d4b: Pull complete 6b5749e5ef1d: Pull complete bdccb03403c1: Pul…

visual studio 2022 c++使用教程

介绍 c开发windows一般都是visual studio,linux一般是vscode,但vscode调试c不方便,所以很多情况都是2套代码,在windows上用vs开发方便,在转到linux。 安装 1、官网下载vs2022企业版–选择桌面开发–安装位置–安装–…

python学opencv|读取图像(十七)认识alpha通道

【1】引言 前序学习进程中,我们已经掌握了RGB和HSV图像的通道拆分和合并,获得了很多意想不到的效果,相关链接包括且不限于: python学opencv|读取图像(十二)BGR图像转HSV图像-CSDN博客 python学opencv|读…

设计模式--单例模式【创建型模式】

设计模式的分类 我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类: 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7 种)&#xff1…

neo4j 图表数据导入到 TuGraph

neo4j 图表数据导入到 TuGraph 代码文件说明后文 前言:近期在引入阿里的 TuGraph 图数据库,需要将 原 neo4j 数据导入到新的 tugraph 数据库中。预期走csv文件导入导出,但因为格式和数据库设计问题,操作起来比较麻烦(可能是个人没…

模具生产过程中的标签使用流程图

①NFC芯片嵌入周转筐,通过读卡器读取CK_Label_v3的数据,并将这些信息上传至服务器进行存储; ②服务器随后与客户的WMS(仓库管理系统)进行交互,记录和同步注塑机的原始数据; ③当周转筐内的模具…

Linux线程同步

1 线程同步概念 假设有有三个线程A,B,C,当前一个线程A对内存中的共享资源进行访问时,其它线程B,C都不可以对这块内存进行操作,直到线程A对这块内存访问完毕为止,B,C中的一个才能访问这块内存,剩…

Vue与React:前端框架的巅峰对决

文章目录 一、引言(一)前端框架发展现状简述 二、Vue 与 React 框架概述(一)Vue.js 简介(二)React.js 简介 三、开发效率对比(一)Vue 开发效率分析(二)React …

项目管理工具Maven(一)

Maven的概念 什么是Maven 翻译为“专家”,“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。什么是理想的项目构建? 高度自动化,跨平台,可重用的组件,标准…

【Prometheus 】【实战篇(五)】深入解析 Prometheus 监控指标类型:Counter、Gauge、Histogram 和 Summary

Prometheus 提供了四种核心的指标类型,分别是 Counter(计数器)、Gauge(仪表)、Histogram(直方图)和 Summary(摘要)。这些指标类型在客户端库中有具体的使用说明&#xff…

outlook smtp 发送邮件

前提条件 开通 app password 开通 smtp 服务 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMETextdef send_html_email_smtp(sender_email, sender_password, recipient_email, subject, html_content):# Create the messag…

如何利用Python爬虫获得Lazada商品评论列表

在电商领域,用户评论是了解商品口碑和市场反馈的重要渠道。对于Lazada这样的东南亚电商平台,获取商品评论列表对于市场分析、产品改进和销售策略的制定至关重要。本文将详细介绍如何使用Python编写爬虫程序,以获取Lazada商品的评论列表。 一、…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…

如何设计一个秒杀系统

开局一张图 结局要说清 对于设计一个秒杀系统&#xff0c;结合图片分层结构&#xff0c;根据每一层从访问层&#xff0c;负载层&#xff0c;服务层&#xff0c;业务层&#xff0c;支撑层&#xff0c;数据层&#xff0c;详细说明每一层应该怎么设计。 应该注意那些事项。比如访…

【LeetCode】45.跳跃游戏II

题目链接&#xff1a; 45.跳跃游戏 题目描述&#xff1a; 思路一&#xff08;广度优先搜索算法BFS&#xff09; 通过广度优先搜索算法寻找最短距离 代码实现&#xff1a; class Solution { public:int jump(vector<int>& nums) {int n nums.size();if(n<1) re…

WPF ControlTemplate 控件模板

区别于 DataTemplate 数据模板&#xff0c;ControlTemplate 是控件模板&#xff0c;是为自定义控件的 Template 属性服务的&#xff0c;Template 属性类型就是 ControlTemplate。 演示&#xff0c; 自定义一个控件 MyControl&#xff0c;包含一个字符串类型的依赖属性。 pub…