串口屏控制的自动滑轨(未完工)

news2024/12/24 2:41:25

序言

        疫情期间自己制作了一个自动滑轨,基于无线遥控的,但是整体太大了,非常不方便携带,所以重新设计了一个新的,以2020铝型材做导轨的滑轨,目前2020做滑轨已经很成熟了,配件也都非常便宜,一米2020铝型材含运费18元左右,6mm同步带1元/米,拉紧端和滑车也都有成品。参数设置用一块串口屏进行设置,采用串口屏主要是为了练习一下技术,此外触控屏使用起来方便,整体外观更有科技含量一些。为了能负载一个单方相机,设计中采用了一个1:10的减速42步进电机。控制板采用的arduino nano及其CNC sheild V3 两轴控制版本,这样可以减轻其体积,实体按键三个,一个电源开关,两个控制按钮。供电采用3C,11.1V 850mah的电池。

    功能介绍:

        1、显示屏共分两部分,一个是参数设置部分,一部分是状态显示,参数设置部分用来设置延时开始时相机的初始位置和拍摄结束后的重点位置,转换为导轨参数就是位置A和位置B,用坐标点来表示。状态显示用来实时传送当前的位置和运行的时间信息。比如,我们在设置延时摄影的时候,设置了一个片段15分钟,起始位置A的坐标是0,结束位置B的坐标是2000(1个数值代表一个步进脉冲)。A点和B点的距离大约是122mm,这是拿尺估算出来的数据,本次截稿先不具体计算。15分钟就是900秒,每一个脉冲的时间间隔是0.45s。

       精确的计算如下:步进电机步进角度:7.5°,360/7.5=48。

                                   1:10的减速电机,480个脉冲皮带轮转一圈;

                                   GT2皮带轮直径,12.2mm,周长38.3mm,一个脉冲就是0.08mm。

                                   2000个脉冲计算值是160mm。

        2、在调整模式下:设置相机坐标,输入0-12500的值,对应0-1000mm的距离。点击运行按钮,按照设定的速度快速运行到指定的位置;

        3、在程序模式下:设置A点坐标,设置B点坐标,设置运行时间,然后电机运行,相机先按照设定的速度快速运行到指定的位置A,然后按照设置的时间匀速运行到位置B。

后续设想

        以上为版本一功能,版本二将在版本一的基础上增加Z周旋转功能,可使相机始终对准拍摄目标。将增加半径设置。版本三将在版本二的基础上增加变焦,可以拍摄带有希区柯克的延时视频。

一 材料清单及成本

序号名称规格型号数量单价总价备注
1cnc shield v417.867.86
2nano v3112.9912.99
3按键40.20.8
4开关10.40.4
5洞洞板5*7cm11.551.55
63s锂电850mAh132.9732.97
7A4988驱动板14.24.2
8步进电机减速比1:10147.8547.85
92020 同步带张紧器116.3416.34
10 3.5寸串口屏15454
11延时滑轨套装1120120
12GT2同步带22.44.8
13GT2同步轮12.152.15
14打印件11010
15其他螺丝等155
0
合计:320.91

二 机械部件及组装

 实际是对采购成品进行了电动改装:

 

2.1 打印部件

见附件压缩包中的打印件

2.2 组装爆炸图解

三 电控部分搭建

3.1 电控部分

    3.1.1CNC shield v4 与arduino nano 引脚对应关系

   3.1.2接线引脚说明

序号引脚注释备注
12Dirpin控制步进电机方向
25Steopin控制步进电机脉冲
38enablepin控制步进电机使能
49Key1功能键1
510Key2功能键2
611Key3功能键3
712Key4功能键4
8A4TX连接串口屏RX
9A5RX连接串口屏TX

3.1.3 cnc shield v4原理图

图一 cnc shield v4原理图

四 控制软件代码

4.1 nano代码

4.2 串口屏代码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git在码云上的使用指南:从安装到推送远程仓库

目录 前言: 1、git的安装 1.1.Linux-centos环境下安装 1.2.Linux-ubuntu环境下安装 2.创建Git本地仓库 3.配置Git 4.认识⼯作区、暂存区、版本库 5.添加文件 5.1.git命令 5.2.commit命令 6.远程操作 6.1.新建远程仓库 6.2.克隆远程仓库: 6…

GESP4级考试语法知识(冒泡排序)

冒泡排序参考程序&#xff1a; #include <iostream> using namespace std; const int MAXN10001; int main() {int n,i,j;float a[MAXN];cin>>n;for(i1;i<n;i)cin>>a[i]; //输入n个数bool ok;for(in;i>1;i--){oktrue; //判断是…

无人机场景 - 目标检测数据集 - 夜间车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;无人机场景夜间车辆检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如夜间无人机场景城市道路行驶车辆图片、夜间无人机场景城市道边停车车辆图片、夜间无人机场景停车场车辆图片、夜间无人机场景小区车辆图片、夜…

重学SpringBoot3-整合 Elasticsearch 8.x (一)客户端方式

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 这里写目录标题 1. 为什么选择 Elasticsearch&#xff1f;2. Spring Boot 3 和 Elasticsearch 8.x 的集成概述2.1 准备工作2.2 添加依赖 3. Elasticsearch 客户端配置方式…

动态规划应该如何学习?

动态规划如何学习 参考灵神的视频和题解做的笔记&#xff08;灵神YYDS&#xff0c;以后也都会用这套逻辑去思考&#xff09; 枚举选哪个&#xff1a; 动态规划入门&#xff1a;从记忆化搜索到递推_哔哩哔哩_bilibili 746. 使用最小花费爬楼梯 - 力扣&#xff08;LeetCode&a…

从零开始构建 ChatGPT

今天&#xff0c;我们要介绍的是一个名为 LLMs-from-scratch 的 GitHub 项目&#xff0c;它由开发者 rasbt 精心打造&#xff0c;旨在一步步教你如何使用 PyTorch 从零开始实现一个类似 ChatGPT 的大型语言模型&#xff08;LLM&#xff09;。 这是一个教育性质的开源项目&…

音视频听译:助力多维度沟通与发展的大门

在全球经济一体化的大背景下&#xff0c;企业之间的跨国合作愈发频繁。在商务会议、谈判和产品演示等活动中&#xff0c;语言的多样性成为了一大挑战。而音视频听译服务能够将不同语言的音频准确转换为目标语言文字&#xff0c;确保信息的精准传达&#xff0c;避免因语言障碍引…

向量模型Jina Embedding: 从v1到v3论文笔记

文章目录 Jina Embedding: 从v1到v3Jina Embedding v1数据集准备训练过程 Jina Embedding v2预训练修改版BERT在文本对上微调在Hard Negatives上微调 Jina Embedding v2 双语言预训练修改版BERT在文本对上微调用多任务目标微调 Jina Embedding v3预训练在文本对上微调训练任务相…

为啥学习数据结构和算法

基础知识就像是一座大楼的地基&#xff0c;它决定了我们的技术高度。而要想快速做出点事情&#xff0c;前提条件一定是基础能力过硬&#xff0c;“内功”要到位。 想要通关大厂面试&#xff0c;千万别让数据结构和算法拖了后腿 我们学任何知识都是为了“用”的&#xff0c;是为…

AI打造超写实虚拟人物:是科技奇迹还是伦理挑战?

内容概要 在这个科技飞速发展的时代&#xff0c;超写实虚拟人物仿佛从科幻小说中走进了我们的日常生活。它们以生动的形象和细腻的动作&#xff0c;不仅在影视、广告和游戏中吸引了无数目光&#xff0c;更让我们对AI技术的未来充满了期待和疑惑。这些数字化身在逼真的外貌下&a…

React基础大全

文章目录 一、React基本介绍1.虚拟DOM优化1.1 原生JS渲染页面1.2 React渲染页面 2.需要提前掌握的JS知识 二、入门1.React基本使用2.创建DOM的两种方式2.1 使用js创建&#xff08;一般不用&#xff09;2.2 使用jsx创建 3.React JSX3.1 JSX常见语法规则3.2 for循环渲染数据 4.模…

20241102在荣品PRO-RK3566开发板使用荣品预编译的buildroot通过iperf2测试AP6256的WIFI网速

20241102在荣品PRO-RK3566开发板使用荣品预编译的buildroot通过iperf2测试AP6256的WIFI网速 2024/11/2 14:18 客户端&#xff1a;荣耀手机HONOR 70【iPerf2 for Android】 服务器端&#xff1a;荣品PRO-RK3566开发板 预编译固件&#xff1a;update-pro-rk3566-buildroot-hdmi-2…

【启程Golang之旅】并发编程构建简易聊天系统

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

【JavaSE】java对象的比较

文章目录 元素的比较基本类型的比较对象的比较 如何进行对象比较重写equals方法基于Comparble.compareTo的比较基于Comparator.compare的比较区分Comparator和Comparable 在PriorityQueue中比较的体现 元素的比较 基本类型的比较 在Java中,基本类型可以直接进行大小的比较 //…

多SpringBoot项目同进程下统一启动

1.背景 使用SpringBoot技术栈进行REST HTTP接口开发服务时&#xff0c;一般来说如果模块较多或者涉及多人协作开发&#xff0c;大家会不自觉的将每个模块独立成一个单独的项目进行开发&#xff0c;部署时则将每个服务进行单独部署和运行。服务间的调用则通过FeignClients&…

lvgl

lvgl 目录 lvgl Lvgl移植到STM32 -- 1、下载LVGL源码 -- 2、将必要文件复制到工程目录 -- 3、修改配置文件 将lvgl与底层屏幕结合到一块 -- lvgl也需要有定时器,专门给自己做了一个函数,告诉lvgl经过了多长时间(ms(毫秒)级别) 编写代码 lvgl的中文教程手册网站…

使用WebAssembly优化Web应用性能

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用WebAssembly优化Web应用性能 引言 WebAssembly 简介 安装工具 创建 WebAssembly 项目 编写 WebAssembly 代码 编译 WebAssem…

【docker】docker 环境配置及安装

本文介绍基于 官方存储库 docker 的环境配置、安装、代理配置、卸载等相关内容。 官方安装文档说明&#xff1a;https://docs.docker.com/engine/install/ubuntu/ 主机环境 宿主机环境 Ubuntu 20.04.6 LTS 安装步骤 添加相关依赖 sudo apt-get update sudo apt-get install…

【Linux】网络编程:初识协议,序列化与反序列化——基于json串实现,网络通信计算器中简单协议的实现、手写序列化与反序列化

目录 一、什么是协议&#xff1f; 二、为什么需要有协议呢&#xff1f; 三、协议的应用 四、序列化与反序列化的引入 什么是序列化和反序列化&#xff1f; 为什么需要序列化和反序列化&#xff1f; 五、序列化推荐格式之一&#xff1a;JSON介绍 六、网络版计算器编程逻…

基于MATLAB的加噪语音信号的滤波

一&#xff0e;滤波器的简述 在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方 法即实现方法&#xff0c;并进行图形用户界面设计&#xff0c;以显示所介绍迷你滤波器的设计特性。 在无线脉冲响应&#xff08;IIR&#xff09;数字滤波器设计中&#xff0c;先进行模拟滤波器…