当前位置: 首页 > news >正文

【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台

吃完快餐粥,除了粥的味道不错之外,我对个快餐盒的圆盖子产生了兴趣,能否做个极低成本的简易机器人呢?也许只需要二十元左右

在这里插入图片描述

知识点:轮子(wheel)

中国词语。是用不同材料制成的圆形滚动物体。简单来说,它包括轮子的外圈、与外圈相连接的辐条和中心轴。透过滚动,轮子可以大大的减少与接触面的磨擦系数。如果配上轴,即成为车的最主要构成部份。轮子在交通运输中非常有用,是人类的重要发明之一。除了车轮以外,其他圆形的轮还有船轮、飞轮等等。

任何简单而意义深远的发明都不是凭空出现在人们的脑海中的,必然有什么现象触发了灵感。正如古人见到水里漂着的木头而想到独木舟一样,车轮的发明也可能是受到了一些自然物的启发。《淮南子》中说我们的祖先“见飞蓬转而知为车”。“飞蓬”是一种草,其茎高尺许,叶片大,根系入土浅。一有大风,很容易被连根拔起,随风旋转。古人可能就是受到这个现象的启发,发明了车轮和车轴。与鲁班受锯齿草的启发而发明锯子的传说一样,这种说法很可能也是一个传说而已。因为轮子在自然界是有原型的。原始民族曾经普遍地崇拜过天空中的日月。古人一定认为它们拥有最完美的外形——直到古希腊时代,哲学家柏拉图也还认为球体是最完美的形式。也许新石器时代的先民在制作器具时很自然地会模仿太阳和月亮的形状。当他们偶然发现制成的圆盘状物体可以在转动中保持形状不变时,他们就有兴趣进一步发掘它的用途。

在掌握锋利而坚固的工具以前,人类是不可能拥有轮式车辆的。用石器工具难以将木头加工成合适的圆柱形,更不必说复杂到带辐条的轮子了。所以,车轮的出现只能是青铜时代以后的事情。

据英国科学史家李约瑟考证的结论,约在四千五百年到三千五百年前,中国出现了第一辆车子。而《左传》中提到,车是夏代初年的奚仲发明的,如果记载属实,那是四千年前的事情。在殷代(距今三千多年前)文物中,考古学家也发现了殉葬用的车,当时的车子由车厢、车辕和两个轮子构成,已经是比较成熟的交通工具了。中国古代有传说是轩辕黄帝把木头插在圆轮子中央,使它运转,因而造成车辆。但鉴于归功于黄帝的发明实在太多,我们也不能轻易把这个说法当真。

以埃及的战车为例。这些战车具有带辐条的车轮,轮上装有坚固的箍,并且车轮用锲子紧紧钉在轴上。车厢、车辕和两副挽具证明了同样的技术。如果我们想从在埃及战车或罗马战车的创造者那里所看到的那种精细活计探求人类发明带轮车的过程,那是没有什么益处的。但是,常常有这种情况:能够找到一些制作粗糙的物品,而这些物品就好像是技术之早期阶段的再现。古代最简陋的乡村大车,用两个几乎一英尺厚的圆形木作车轮,是用横断的树干做成的,同时,这些圆形物,或者叫车轮,不是在轴上旋转,而是固定在轴上。车轴安放在特制的木框内,或者是在两块窄木板内,或者是穿在车底上的环孔里,同它的一对轮子一起转动,就像小孩儿的玩具车那样。有趣的是,在条件已经改变的情况下,铁路车辆的制造者们又恢复了这种构造。

在像葡萄牙这样一些国家里,现今还可以看到轴和车轮一起转动的古典车子。于是可以设想:类似的大车说明,带轮的车是怎样发明的。最初用的是轴,或滚子,是用它们来滚动大石头或其他巨大的重物。我们可以想象,用光滑的树干或圆木做的这类滚子,起初是这样完成的:把它的中间部分削细一些。于是,它就变成了一个两端带着宽圆滚的轴。我们猜想,轴是处在某一种最简陋的梁木架下,并在架下转动的。于是我们就有了一辆最简单的想象中的带轮车。完全可能,类似关于车的第一个概念出现之后,轮就开始单独制造,并把它固定在一个活动的轴上,装上了轮箍。后来,有了轻便的车轮和光滑的轮座,于是车轮就在不动的轴上转动了。当然,所有这些,无非是一种想象,但是,无论如何,它使我们的头脑完全清楚了车的本质。

在这里插入图片描述

安装好四个N20小电机,希望以此作为一个简单的实验平台,试试各种不同的运动方式

在这里插入图片描述

二套电源系统(3.7V升压为5V),二个电机驱动模块MX1508,Arduino nano

在这里插入图片描述

快餐盒盖的空间有点小

在这里插入图片描述

Arduino nano和电机驱动分别使用独立的电源系统,单片机5V,N20电机3.7V,二片MX1508模块,分别驱动四个小电机运行。快餐盒盖简易底盘系统终于完成,薄薄纸盒的底盘,强度和刚度都不够,只能勉强做做小实验而已。

这个实验平台的最终成本还不到20元(四只N20是咸鱼二手淘来的),无论成功或失败都没有神马压力。

初步的想法,是通过这个非常简单的底盘,学习机器人的行走机构,动手尝试不同的运动方式,实际测试各种形态的轮子系统。目前考虑列入系列实验范围的有圆轮、平轮、棒轮(拨轮)、环轮(空心轮)和麦克纳姆轮等。

在这里插入图片描述

四只电机效率最高的是同向转动,输出的运动形式为原地转圈。圆形的底盘,无法像普通小车那样采用平行车轴(电机轴也短),比较适合的是十字轴动力结构,百度查了下,这种结构很少见,不实用的结构,做做实验还行。本例实验平台的十字轴动力电机位置见示意图红点。

在这里插入图片描述

第一种,圆轮
就是普通轮子,这里使用一些简易材料来做实验,比如饮料瓶盖等。

在这里插入图片描述

安装好四只轮子的

在这里插入图片描述

【花雕动手做】快餐盒盖,极低成本搭建机器人实验平台(圆轮的视频)

https://v.youku.com/v_show/id_XNTA2NTU0ODA4MA==.html?spm=a2hzp.8244740.0.0

在这里插入图片描述

在这里插入图片描述

第二种,平轮
探索机器人行走机构的各种行走方式,需要脑洞大开,并且敢于去尝试。平轮也可称作平面轮,是我的一种叫法,确实不多见。依旧使用饮料瓶盖(侧面),安装好的见下图。

在这里插入图片描述

花雕动手做】快餐盒盖,极低成本搭建机器人实验平台(平轮的视频)

https://v.youku.com/v_show/id_XNTA3NzU0MTQ4OA==.html?spm=a2hzp.8244740.0.0

在这里插入图片描述

补充:平轮的动态图
在这里插入图片描述
第三种,大轮
使用同样大小的快餐盒盖来当轮子,相当于车轮和车身一般大。

在这里插入图片描述
大圆轮安装好,是这样

在这里插入图片描述

【花雕动手做】快餐盒盖,极低成本搭建机器人实验平台(双只大圆轮的视频)

https://v.youku.com/v_show/id_XNTA3OTg5OTYwOA==.html?spm=a2hzp.8244740.0.0

在这里插入图片描述

相关文章:

【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台

吃完快餐粥,除了粥的味道不错之外,我对个快餐盒的圆盖子产生了兴趣,能否做个极低成本的简易机器人呢?也许只需要二十元左右 知识点:轮子(wheel) 中国词语。是用不同材料制成的圆形滚动物体。简…...

重生学c++系列第三课类和对象(上)

好的我们重生c系列的前两期已经介绍完了c祖师爷针对C语言补充的几个新功能,现在我们进入c的真正课题学习——类与对象: C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 比如说我们洗菜做饭&am…...

驱动开发-按键中断

编写LED灯的驱动&#xff0c;使用GPIO子系统&#xff0c;里面添加按键的中断处理 1.应用程序发送指令控制LED亮灭 2.按键1 按下&#xff0c;led1电位反转 按键2按下&#xff0c;led2电位反转 按键3 按下&#xff0c;led3电位反转 功能函数 #include<stdlib.h> #inclu…...

数据结构 | 二叉树的应用

目录 一、解析树 二、树的遍历 一、解析树 我们可以用解析树来表示现实世界中像句子或数学表达式这样的构造。 我们可以将((73)*(5-2))这样的数学表达式表示成解析树。这是完全括号表达式&#xff0c;乘法的优先级高于加法和减法&#xff0c;但因为有括号&#xff0c;所以在…...

python:卡尔曼和贝叶斯滤波器

本文分享一个Filerpy的说明文档和代码示例文档&#xff0c;有关于 Python 中的卡尔曼和贝叶斯滤波器。该方法可以应用于气象遥感等领域。 说明文档&#xff1a;https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html 参考代码链接&#xff1a;https://nbviewer.…...

走进 Go 语言基础语法 | 青训营 (1)

Powered by:NEFU AB-IN 文章目录 走进 Go 语言基础语法 | 青训营 (1)代码注释代码模板 走进 Go 语言基础语法 | 青训营 (1) 代码注释 /** Author: NEFU AB-IN* Date: 2023-08-06 09:44:15* FilePath: \GoTest\a.go* LastEditTime: 2023-08-06 11:00:45*/ package mainimport (&…...

基于边缘无线协同感知的低功耗物联网LPIOT技术:赋能智慧园区方案以及数字工厂领域

回到2000年左右&#xff0c;物联网的底层技术支撑还是“ZigBee”&#xff0c;虽然当时ZigBee的终端功耗指标其实也并不庞大&#xff0c;但是&#xff0c;“拓扑复杂导致工程实施难度大”、“网络规模小导致的整体效率低下”都成为限制其发展的主要因素。 LPWAN&#xff0c;新一…...

【《快速构建AI应用——AWS无服务器AI应用实战》——基于云的解决方案快速完成人工智能项目的指南】

基于云的人工智能服务可以自动完成客户服务、数据分析和财务报告等领域的各种劳动密集型任务。其秘诀在于运用预先构建的工具&#xff0c;例如用于图像分析的Amazon Rekognition或用于自然语言处理的AWS Comprehend。这样&#xff0c;就无须创建昂贵的定制软件系统。 《快速构…...

vue运行在IE浏览器空白报错SCRIPT1006: 缺少‘)‘ -【vue兼容IE篇】

其他浏览器均正常&#xff0c;但是切换ie模式&#xff0c;打开空白&#xff0c;F12打开报错缺少‘)‘ &#xff0c;如下图 在搜狗浏览器下点开报错&#xff1a;定格在crypto-js处 解决&#xff1a; 步骤一&#xff1a;使用npm安装babel-polyfill 依赖&#xff08;已安装了可忽…...

接口自动化测试Mock Get和Post请求

Mock可以模拟一个http接口的后台响应&#xff0c;可以模拟request&#xff0c;response 下载 moco-runner-0.11.0-standalone.jar 下载链接: https://pan.baidu.com/s/1bmFzvJPRnDlQ-cmuJ_3iRg 提取码: kpjv 确保安装了jdk,cmd下可以运行java -version 一、模拟不带参的get请求…...

WPF上位机8——C#与MySQL

ADO.NET 数据库连接 数据插入、删除、更改 数据查询 带单个参数 带多个参数 using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Wp…...

[JAVAee]网络编程-套接字Socket

目录 基本概念 发送端与接收端 请求与响应 ​编辑客户端与服务器 Socket套接字 分类 数据报套接字 流套接字传输模型 UDP数据报套接字编程 DatagramSocket API DatagramPacket API InetSocketAddress API 示例一: 示例二: TCP流数据报套接字编程 ServerSock…...

批量导出pdf为zip文件(可以修改zip中pdf名称)

核心代码 public static void compressZip1(HashMap<String,File> map, String rootPath, String zipFileName) throws FileNotFoundException {FileOutputStream fileOutputStream new FileOutputStream(zipFileName);ZipOutputStream zipOutputStream new ZipOutputS…...

[国家集训队] Tree II 题解报告

[国家集训队] Tree II 一道真板子题 就是练习LCT懒标记的题目 除了翻转标记以外还要维护乘法标记和加法标记 注意加法标记和乘法标记的维护&#xff01;&#xff01;&#xff01; 加法标记 因为splay的区间大小不是固定的&#xff0c;所以我们要维护size&#xff0c;并且…...

【redis】docker搭建redis集群

docker搭建redis集群&#xff0c;超级简单方便。 # 1. 拉取redis. 目前我拉取最新的是7.0.12 docker pull redis # 2. 下载配置文件 wget https://raw.githubusercontent.com/redis/redis/7.0/redis.conf # 3. 移到对应目录 mkdir -p /opt/docker/redis mv redis.conf /opt/d…...

前端个人年度工作述职报告(二十篇)

前端个人年度工作述职报告篇1 尊敬的各位领导、各位同仁&#xff1a; 大家好!按照20__年度我公司就职人员工作评估的安排和要求&#xff0c;我认真剖析、总结了自己的工作情况&#xff0c;现将本人工作开展情况向各位领导、同仁做以汇报&#xff0c;有不妥之处&#xff0c;希…...

TypeScript 编译配置

TypeScript的编译配置&#xff1a; 对单独一个ts文件进行监听编译 可使用tsc demo.ts -w 如果想对所有ts文件进行监听编译&#xff0c;监听到变化就自己编译&#xff0c;可以直接创建一个tsconfig.json文件。内容空着也OK&#xff1a;{}&#xff0c;执行 tsc 或 tsc -w 如果有…...

使用DMA传输实现单片机高效串口转发——以STM32系列为例

使用DMA传输实现单片机高效串口转发——以STM32系列为例 DateAuthorVersionNote2023.08.06Dog TaoV1.01. 完成了文档的撰写。 文章目录 使用DMA传输实现单片机高效串口转发——以STM32系列为例应用场景实现流程源码示例串口与中断配置DMA外设配置DMA发送数据函数串口中断服务函…...

一文了解 Android Auto 车载开发~

作者&#xff1a;牛蛙点点申请出战 背景 我的的产品作为一个海外音乐播放器&#xff0c;在车载场景听歌是一个很普遍的需求。在用户反馈中&#xff0c;也有很多用户提到希望能在车上播放音乐。同时车载音乐也可以作为提升用户消费时长一个抓手。 出海产品&#xff0c;主要服务…...

Pixel4 安卓源码及内核修改编译教程 | 基于Android12 AOSP

之前整理了 Pixel4上的源码过程&#xff0c;下载的话大家可以去镜像网站下载&#xff0c;可以节约很多时间。 实验设备&#xff1a;Ubuntu18.04 32G2T Pixel4 文章目录 一、安卓源码下载1.准备下载环境&#xff08;1&#xff09;安装Python 3.9&#xff08;2&#xff09;安装g…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

【阅读笔记】MemOS: 大语言模型内存增强生成操作系统

核心速览 研究背景 ​​研究问题​​&#xff1a;这篇文章要解决的问题是当前大型语言模型&#xff08;LLMs&#xff09;在处理内存方面的局限性。LLMs虽然在语言感知和生成方面表现出色&#xff0c;但缺乏统一的、结构化的内存架构。现有的方法如检索增强生成&#xff08;RA…...

深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”

深入浅出JavaScript中的ArrayBuffer&#xff1a;二进制数据的“瑞士军刀” 在JavaScript中&#xff0c;我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时&#xff0c;单纯依赖字符串或数组就显得力不从心了。这时&#xff…...