1.前期硬件准备

2s锂电池一个(用于供电),stm32f103c8t6最小系统板一个(主控板),两个摇杆(用于摇杆模式),四个电位器(用于示教器模式),一个蓝牙hc-05(用于蓝牙模式已经串口打印信息方便调试),一个oled显示屏(用于显示信息,也是方便调试),以及最主要的由四个sg90舵机组成的四自由度机械臂(因为我没有3d打印机,故直接在淘宝买了一个现成的,只需要买机械臂,不用带控制板,几十块钱,有条件的也可以买四个90°的sg90舵机自己打印外壳,没条件的也可以像我一样买现成的,链接也给大家放下面了)

【淘宝】假一赔四 https://e.tb.cn/h.h58uEdzwlHNI62N?tk=TQCiVBrR5L0 HU006 「新款4四轴机械臂4轴4自由度Arduino可编程控制WIFI创新比赛 DIY」
点击链接直接打开 或者 淘宝搜索直接打开

除此之外还需要控制板上面的一些电阻电容,芯片和按键等器件,不过这些都不贵。下图就是最终项目的实物呈现图。机械臂演示视频已经在我的同名B站发布,下面是演示视频链接:

http://【STM32四自由度机械臂实现多功能控制-哔哩哔哩】 https://b23.tv/O82ynIa

2.stm32机械臂控制板PCB

原理图其实很简单,stm32和舵机,电位器,蓝牙,oled显示屏,以及摇杆等外设都是排针排母,真正的电路部分只有两个降压电路和led指示灯和按键电路模块,总体还是比较简单清晰明了的。

下面是pcb的3d预览图,PCB工程文件文末有开源链接,希望大家一键三联后领取。 

 3.外设及其接线介绍

3.1蓝牙hc-05

PA9接RX,PA10接TX,GND接地,VCC接5V,另外两个引脚可不接,可用于串口打印信息,也可通过手机发送信息控制机械臂。(PA9对应stm32的USART1_TX,PA10对应stm32的USART1_RX)

3.2摇杆

GND接地,+5V接5V,两个VRX分别接PA2和PA4,两个VRY分别接PA3和PA5,SW可不接,两个摇杆主要用于摇杆模式下控制机械臂。(PA2-PA5对应的是stm32的ADC1_IN2-ADC1_IN5)

3.3 电位器

GND接地,VCC接3.3V,四个OUT分别接PA6,PA7,PB0,PB1,四个电位器主要用于示教器模式下控制机械臂,受限于PCB是平面的,大家可以用杜邦线将电位器引出来,并用木棍等物品将电位器像机械臂那样连接起来,这样就可以真正实现示教器模式,你控制木棍运动,机械臂就会跟随同步运动。(PA6,PA7,PB0,PB1对应的是stm32的ADC1_IN6-ADC1_IN9)

,

3.4oled显示屏 

GND接地,VCC接3.3V,SCL接PB6,SDA接PB7,OLED显示屏主要用于显示一些信息,起到一个方便调试的作用。(PB6对应stm32的I2C1_SCL,PB7对应stm32的I2C1_SDA)

3.5SG90舵机

红线电源线接5V,棕线地线接GND,四根黄线信号线分别接PB10,PB11,PA15,PB3,这个舵机应该不用介绍用处了,它就是机械臂的四自由度。(PA15对应stm32的TIM2_CH1,PB3对应stm32的TIM2_CH2,PB10对应stm32的TIM2_CH3,PB11对应stm32的TIM2_CH4,也就是定时器2的四个通道,用于输出PWM的,具体的代码等到软件篇会介绍)

 

 除了上述的外设以外,还有两个led指示灯所使用的gpio是PA11和PA12,以及四个按键的gpio分别使用的是PA0,PA1,PB4,PB5。

下面是stm32机械臂控制板PCB的链接,希望大家多多支持,待我把软件部分整理一下,会加快发布出来。

http://通过网盘分享的文件:stm32机械臂控制pcb.zip 链接: https://pan.baidu.com/s/1KXA44s-QkAyqEYr9eFoOQg 提取码: 0531

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

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

相关文章

华为OD机试_2025 B卷_最差产品奖(Python,100分)(附详细解题思路)

题目描述 A公司准备对他下面的N个产品评选最差奖, 评选的方式是首先对每个产品进行评分,然后根据评分区间计算相邻几个产品中最差的产品。 评选的标准是依次找到从当前产品开始前M个产品中最差的产品,请给出最差产品的评分序列。 输入描述 第…

飞算JavaAI:重塑Java开发效率的智能引擎

飞算JavaAI:重塑Java开发效率的智能引擎 一、飞算JavaAI核心价值 飞算JavaAI是全球首款专注Java语言的智能开发助手,由飞算数智科技(深圳)有限公司研发。它通过AI大模型技术实现: 全流程自动化:从需求分析→软件设计→代码生成一气呵成工程级代码输出:生成包含配置类、…

Java和Go各方面对比:现代编程语言的深度分析

Java和Go各方面对比:现代编程语言的深度分析 引言 在当今的软件开发领域,选择合适的编程语言对项目的成功至关重要。Java作为一门成熟的面向对象语言,已经在企业级开发中占据主导地位超过25年。而Go(Golang)作为Google…

CloudCanal:一款企业级实时数据同步、迁移工具

CloudCanal 是一款可视化的数据同步、迁移工具,可以帮助企业构建高质量数据管道,具备实时高效、精确互联、稳定可拓展、一站式、混合部署、复杂数据转换等优点。 应用场景 CloudCanal 可以帮助企业实现以下数据应用场景: 数据同步&#xff…

如何发现 Redis 中的 BigKey?

如何发现 Redis 中的 BigKey? Redis 因其出色的性能,常被用作缓存、消息队列和会话存储。然而,在 Redis 的使用过程中,BigKey 是一个不容忽视的问题。BigKey 指的是存储了大量数据或包含大量成员的键。它们不仅会占用大量内存&…

Golang读取ZIP压缩包并显示Gin静态html网站

Golang读取ZIP压缩包并显示Gin静态html网站Golang读取ZIP压缩包并显示Gin静态html网站1. 读取ZIP压缩包2. 解压并保存静态文件3. 设置Gin静态文件服务基本静态文件服务使用StaticFS更精细控制单个静态文件服务4. 完整实现示例5. 高级优化内存映射优化使用Gin-Static中间件6. 部…

参数列表分类法:基本参数与扩展参数的设计模式

摘要 本文提出了我设计的一种新的函数参数设计范式——参数列表分类法,将传统的"单一参数列表"扩展为"多参数列表协同"模式。通过引入"基本参数列表"和"扩展参数列表"的概念,为复杂对象构建提供了更灵活、更具表…

Ajax之核心语法详解

Ajax之核心语法详解一、Ajax的核心原理与优势1.1 什么是Ajax?1.2 Ajax的优势二、XMLHttpRequest:Ajax的核心对象2.1 XHR的基本使用流程2.2 核心属性与事件解析2.2.1 readyState:请求状态2.2.2 status:HTTP状态码2.2.3 响应数据属性…

ArcGIS 打开 nc 降雨量文件

1. 打开ArcToolbox,依次打开 多维工具 → 创建 NetCDF 栅格图层,将 nc 文件拖入 输入 NetCDF 文件输入框,确认 X维度(经度)、Y维度(经度) 的变量名是否正确,点击 确定。图 1 加载nc文…

01-elasticsearch-搭个简单的window服务-ik分词器-简单使用

1、elasticsearch下载地址 如果是其他版本可以尝试修改链接中的版本信息下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-windows-x86_64.zip 2、ik分词器下载地址 ik分词器下载的所有版本地址:Index of: analysis-ik/stable/…

[数据结构与算法] 优先队列 | 最小堆 C++

下面是关于 C 中 std::priority_queue 的详细说明,包括初始化、用法和常见的应用场景。什么是 priority_queue? priority_queue(优先队列)是 C 标准库中的一个容器适配器。它和普通队列(queue)最大的不同在…

零基础入门物联网-远程门禁开关:硬件介绍

一、成品展示 远程门禁最终效果 二、项目介绍 整个项目主要是实际使用案例为主,根据自己日常生活中用到物联网作品为原型,通过项目实例快速理解。项目分为两部分:制作体验和深入学习。 制作体验部分 会提供所有项目资料及制作说明文档&a…

软件系统国产化改造开发层面,达梦(DM)数据库改造问题记录

本系统前(vue)后端(java spring boot)为列子,数据库由MySQL--->DM(达梦),中间件为中创的国产化相关软件,如tomcat、nginx、redis等。重点讲数据库及代码端的更改,中间件在服务端以…

N8N与Dify:自动化与AI的完美搭配

“N8N”和“Dify”这两个工具彻底理清楚,它们其实是两个定位完全不同的开源平台,各自擅长解决不同类型的问题,但也能协同工作。以下是详细说明:1. n8n:工作流自动化平台定位:n8n 是一个专注于跨系统连接与任…

ARM汇编编程(AArch64架构)课程 - 第5章函数调用规范

目录AAPCS64调用约定参数传递规则返回值规则栈帧管理SP寄存器FP寄存器 (X29)栈帧布局示例AAPCS64调用约定 ARM Architecture Procedure Call Standard for 64-bit (AAPCS64) 参数传递规则 参数位置寄存器分配特殊规则参数1-8X0-X7 (64-bit) / W0-W7 (32-bit)浮点数使用 V0-V7参…

软考(软件设计师)软件工程-成本评估模型,软件能力成熟度,软件配置管理

成本评估模型 Putnam 下面通过一个具体案例,逐步说明Putnam模型的计算过程。我们将开发一个银行核心交易系统,规模为80万行代码(LOC),要求24个月内交付。参数符号值说明软件规模L800,000 LOC通过功能点转换获得开发时间…

SASSNet复现

复现结果–Dice:89.354614,Jaccard:80.968917,95HD:7.3987764,误差在接受范围 MethodDiceJaccardJaccard # 感想 第19篇完全复现的论文

大数据学习5:网站访问日志分析

1.数据处理1.1 环境准备进入cd /opt/server/hadoop-3.1.0/sbin文件夹,停止hdfs服务cd /opt/server/hadoop-3.1.0/sbin ./stop-dfs.sh进入/opt/server/hadoop-3.1.0/etc/hadoop文件夹,编辑yarn-site.xml文件/opt/server/hadoop-3.1.0/etc/hadoop vim yarn…

力扣1310. 子数组异或查询

这一题很明显的就是用前缀和异或来解决&#xff0c;只要清楚异或的性质&#xff0c;这一题就十分容易。 对异或的性质的讲解如下&#xff1a; 异或运算解析 具体代码如下&#xff1a; class Solution { public:int sum[30005]; vector<int> xorQueries(vector<int>…

React Native 状态管理方案全面对比

React Native 状态管理方案全面对比 在 React Native 开发中&#xff0c;状态管理是构建复杂应用的核心问题。以下是主流状态管理方案的深度对比分析&#xff1a; 一、基础方案&#xff1a;useState/useReducer 适用场景 简单的组件级状态中等复杂度的局部状态管理不需要跨组件…