电子握力器改造
toy_hand_game
介绍
消耗体力玩具,使用握力器(Grip Strengthener)控制舵机旋转。
开始设想是控制丝杆电机滑动,两套设备就可以控制两个丝杆电机进行“模拟拔河”,后续发现硬件设计错误,ULN2003不能控制两相四线电机,硬件改为drv8833后依旧无法带动,猜测原因是丝杆生锈或驱动电流过大,故暂且搁置,改为舵机。
在舵机没有想到更有意思的场景前,在上面加了个地球仪。

开发思路
对电子计数式5-60KG可调握力器的智能化、趣味化、对战化改造

软件
- 主从机兼容,舵机控制端做主机,使用ECB02蓝牙模块,握力器做从机,使用ECB01模块(更便宜,但只能做从机)
- AT指令设置从机MAC,AT指令设置主机要绑定的MAC
- 从机每隔一段时间(毫秒以内)向主机发送按键状态,实测:可能由于蓝牙性能原因,会丢包
- 主机检测从机的连接和断开状态,并控制舵机进行不同的左右旋转动作进行指示
- 主机实时检测从机即握力器的按下状态,进行动作反馈,目前由于使用的是不能360度连续旋转的舵机,所以只能来回转,舵机还有可能出现反转,后续改进
- 实测程序,发现连接不稳定,猜测原因是没有做蓝牙模块的天线,下版硬件会改进
硬件

- ECB01和ECB02蓝牙模块硬件兼容
- 蓝牙主从角色指示灯
- 主从机硬件做了兼容
- 为了接那个非主流的FPC接口丝杆电机,做了个FPC-SMD插座
- 引出2.0间距的SWD下载口,实测,不好用,但是省位置
- ULN2003驱动,注意,图上COM和E的电气属性接错(( ╯□╰ ))
- Micro usb连接
- 带指示灯指示的充电电路
- 5v转3.3v稳压电路
- 按键检测电路,复用为开关电路
- 电源开关状态锁存电路
- CR2032电路
- 板框方面尽量和原握力器老电路板做了兼容,如下图,但实际还是需要修改一下外壳,有的地方会卡位,且目前USB插座有点偏一端


注意事项
-
CR2032和USB电路只能焊一种电源方案,硬件做了集中复用设计(PS,这部分没测)
-
一些电路部分功能尚未验证,慎用
-
蓝牙性能不怎么行,后续需改进电路再次尝试
-
舵机方案属于临时起义,硬件是跳线出来的
-
如果不使用电源开关状态锁存电路,纯使用usb,需要把BAT和3.3接到一起
其它
演示视频:电子握力器改造(真心)_哔哩哔哩_bilibili
工程附件:技能梳理39@握力器+stm32+BLE+SG90+电源控制(提取码:HdY6)
立创广场:对握力器进行趣味智能改造 - 嘉立创EDA开源硬件平台 (oshwhub.com)
B站:“大饼酱人”
CSDN:“大饼酱人”(大饼酱人_DAY TIME,STM32,QT-CSDN博客)
公众号:“大饼匠人”
微信交流群:待创建
众筹链接:待创建
可定制化或自行修改源仓库(toy_hand_game: 消耗体力玩具,使用握力器控制舵机旋转 (gitee.com))
相关文章:
电子握力器改造
toy_hand_game 介绍 消耗体力玩具,使用握力器(Grip Strengthener)控制舵机旋转。 开始设想是控制丝杆电机滑动,两套设备就可以控制两个丝杆电机进行“模拟拔河”,后续发现硬件设计错误,ULN2003不能控制两相四线电机,…...
3D展2D数学原理
今年早些时候,我为 MAKE 杂志写了一篇教程,介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理,并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub,但我在这里编写了对使这一…...
MacOS+Homebrew+iTerm2+oh my zsh+powerlevel10k美化教程
MacOS终端 你是否已厌倦了MacOS终端的大黑屏? 你是否对这种美观的终端抱有兴趣? 那么,接下来我将会教你用最简单的方式来搭建一套自己的终端。 Homebrew的安装 官网地址:Homebrew — The Missing Package Manager for macOS (o…...
jenkins解决工具找不到的问题
--------------------------插件选择版本最好能跟服务器对上...
Android : 画布的使用 简单应用
示例图: MyView.java: package com.example.demo;import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.Vi…...
紫光展锐5G扬帆出海 | 东南亚成为5G新热土
东南亚是一块充满活力和潜力的市场,这里人口基数大、年轻消费群体占比高,电子市场在过去几年显著增长。 增速“狂飙”的东南亚手游 近年来,东南亚手游下载量逐年增长,2023 年第一季度下载量突破 21 亿次,贡献了全球近…...
STM32 学习(一)新建工程
本课程使用的stm32型号 引脚定义,有FT能接5v,没有FT能接3.3v 启动配置 第二种启动模式中,系统存储器中存放了一部分Bootloader程序,该程序可以接收串口的数据,然后刷新到主闪存中,这样就可以使用串口下载程…...
ROBOGUIDE教程:FANUC机器人固定点焊焊接虚拟仿真
目录 概述 机器人系统创建 焊接工件模型创建 机器人抓手工具添加与工件安装 工作台添加与工件安装 固定点焊焊枪支架模型创建与组装 固定点焊焊枪添加与配置 机器人远程TCP标定(核心内容) 远程TCP手动测试 远程TCP指令介绍 机器人仿真程序编写 机器人示教编程 机…...
代码审计必要性探讨
1、背景 为了保证代码的质量,需要一系列的流程来进行保证: 今天要探讨的是代码审计的必要性。 2、代码审计 代码审计的做法多种多样,我理解必须解决以下问题 ,才可能有效: 核心:审计的本质是对比&#…...
SpringBoot-Shiro
Apache Shiro:https://shiro.apache.org/ 依赖 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.1</version> </dependency>ShiroConfig.java Configuratio…...
认识Docker
大家好,这里是七七,今天起开起我们的Docker技术篇,本文是介绍Docker的,不介绍如何使用和安装Docker,只是单纯的介绍Docker。 目录 一、历史 二、Docker究竟是什么 三、Docker的结构与特性 1、Docker仓库 2、Dock…...
uniapp的分包使用记录
UniApp的分包是一种将应用代码划分为多个包的技术。分包的核心思想是将不同部分的代码划分为不同的包,按需加载,从而提高应用性能。使用UniApp的条件编译功能,开发人员可以根据需要将代码划分为多个包。每个包都包含一组页面和组件࿰…...
JSON.stringify()
一、定义 JSON.stringify() 是一个 JavaScript 内置函数,用于将 JavaScript 对象或值转换为 JSON 字符串 二、语法 JSON.stringify(value, replacer, space); value:要转换为 JSON 字符串的 JavaScript 对象或值。 eplacer(可选࿰…...
机器学习——损失函数
【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、简介 损失函数(loss function)又称为误差函数(error function),是衡量模型好坏的标准,用于估量模型的预测值与真实值的不一致程度,是一个…...
C#多线程(补充)
C#多线程(补充) C# 多线程的补充在C#中使用多线程1. Thread类2. 线程池3. Parallel类4. Task类启动任务接收任务的返回值同步调用指定连续任务任务的层次结构 5. BackgroundWorker控件 C# 多线程的补充 在C#中使用多线程 1. Thread类 使用Thread类通过…...
关于苹果iOS 16:揭开伪装成飞机模式的隐形蜂窝接入漏洞的动态情报
一、基本内容 在日常生活中,网络威胁不断演变,给个人和组织带来了一系列重大挑战。网络犯罪分子使用的一种最常见的、最具破坏性的方法之一就是网络钓鱼。这种攻击方式通过电子邮件、短信或其他通讯渠道冒充可信实体,诱使个人泄露敏感信息&am…...
Python+OpenCV 零基础学习笔记(4-5):计算机图形基础+Python相对文件路径+OpenCV图像+OpenCV视频
文章目录 相关链接运行环境前言计算机图形OpenCV简单使用图形读取文件读取可能会出现的问题:路径不对解决方案其它路径问题解决方案 图像显示保存OpenCV视频视频素材如何获取?简单视频读取 相关链接 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 …...
【C++篇】讲解Vector容器的操作方法
文章目录 🍔vector容器概念🌹操作方法⭐赋值操作⭐容量和大小⭐插入和删除⭐数据存取 🍔vector容器概念 vector 是 C 标准库中的一个容器,它提供了一种动态数组的实现。vector 容器可以存储任意类型的元素,并且可以根…...
桥接模式-举例
概叙:桥接模式用一种巧妙的方式处理多层继承存在的问题, 用抽象关联取代了传统的多层继承, 将类之间的静态继承关系转换为动态的对象组合关系, 使得系统更加灵活,并易于扩展, 同时有效控制了系统中类的个数…...
FreeBSD下安装Jenkins(软件测试集成工具)记录
简要介绍Jenkins 简而言之,Jenkins 是领先的开源自动化服务器。它使用 Java 构建,提供了 1,800 多个插件来支持几乎任何事情的自动化,因此人类可以将时间花在机器无法完成的事情上。 主要目的: 持续、自动地构建/测试软件项目。…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...


