Arduino-环境搭建

news2024/11/25 8:17:44

Arduino-环境搭建

文章目录

  • Arduino-环境搭建
    • 下载开发软件
    • 调研Arduino入门教程
    • 本次学习所使用的Arduino开发板型号
    • 下载开发板的包——电脑联网,先插上开发板,再打开Arduino IDE
    • Arduino串口接收实验
    • Arduino蓝牙接收实验
    • Arduino蓝牙发送实验

下载开发软件

官网:Arduino官网
在官网中,操作如下图1、图2
在这里插入图片描述

图1

在这里插入图片描述

图2

在这里插入图片描述

图3

右键以管理员身份打开,如图4所示

在这里插入图片描述

图4

选择“仅为我安装”,如图5所示
在这里插入图片描述

图5

选择安装位置如下图6所示
在这里插入图片描述

图6
正在安装中,如图7所示

在这里插入图片描述

图7
安装完成,勾选运行Arduino IDE,如图8所示

在这里插入图片描述

图8

调研Arduino入门教程

1.bilibili_太极创客

本次学习所使用的Arduino开发板型号

如下图9所示,型号为Arduino UNO R3

在这里插入图片描述

图9

然后就打开IDE了。此时参考太极创客的教程,发现选择开发板那里,啥也没有,这就涉及到下一步了,我们需要下载开发板的包。
我们这里先关闭IDE。

下载开发板的包——电脑联网,先插上开发板,再打开Arduino IDE

如下图10,识别到了插上的开发板接口,然后自动下载对应的软件包了。所以我们在打开软件前,应该联网。而且由于服务器在国外,因此下载速度会慢一些,需要耐心等待
在这里插入图片描述
如下图11,

在这里插入图片描述

图11

在这里插入图片描述

图12

Arduino串口接收实验

参考资料:
1.Arduino串口接收实验

操作步骤:
(1)按照参考资料,在初始化阶段,完成串口波特率初始化,设置成9600

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

(2)定义一个字符串类型的全局变量

String str;

(3)在循环中不断地读取数据,并打印出来;而读取的数据从何而来呢?当然是用软件助手来发啦!
读取数据并打印的代码如下

void loop() {
  // put your main code here, to run repeatedly:
  str = "";
  while (Serial.available() > 0)
  {
    str += char(Serial.read());   // read是剪切,而不是复制
    delay(10);  // 延时
  }
  if (str.length() > 0)
  {
    Serial.print(F("Arduino 接收到的数据:"));
    Serial.println(str);
  }
}

Arduino蓝牙接收实验

参考资料:
1.Arduino蓝牙资料1
准备材料:
硬件
(1)Arduino UNO R3
(2)安卓手机(装有自己使用AndroidStudio编写的软件,具备蓝牙开启、连接与指令发送功能)
软件:
(1)Arduino IDE(编程与使用串口助手查看接收的信息)
(2)自己编写的安卓软件(功能如上叙述)
编写代码:
(1)参考Arduino蓝牙资料1与Arduino串口资料叙述1、Arduino串口资源不够用怎么办?,可以知道R3在硬件上只有1个串口,可用于程序下载,因此需要软件串口,由此可以将蓝牙模块连接到软件串口上。因此在代码里导入软件串口的包,再把蓝牙模块的TX、RX分别映射到对应的口上,然后对应接好线即可。

#include <SoftwareSerial.h>//蓝牙连接的头文件
SoftwareSerial BT(10, 11); //HC-05的RX和TX分别接D11和D10
String BtOrder;//接收蓝牙的指令

(2)在初始化阶段,对要打印信息的串口和蓝牙串口进行波特率初始化,如下

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  BT.begin(9600);
  Serial.println("Bluetooth is ready!");
}

(3)在循环中,不断地接收蓝牙的数据,如果有数据(即BtOrder的长度大于0),则打印数据

void loop() {
  // put your main code here, to run repeatedly:
  BtOrder = "";
  delay(10);
  while(BT.available() > 0){
    BtOrder += (char) BT.read();
    delay(10);
  }
  if(BtOrder.length() > 0){
    Serial.println("receive data from blueTooth: "+BtOrder);
  }
  
}

实验结果:如下图13
在这里插入图片描述

图14

思考1:蓝牙模块的Tx、Rx能分别接到下载程序串口的Rx、Tx吗?
回答:可以参考上面的链接Arduino串口资料叙述1,这会造成串口冲突,从而无法下载程序。这也是为什么使用软件串口的原因。

Arduino蓝牙发送实验

这个实验与Arduino通过蓝牙接收的实验差不多,只不过数据传送的方向发生了改变。
注意,结合串口接收实验的代码,本次发送的数据来源是来自于ArduinoIDE自带的软件串口编辑框,因此通过char(Serial.read())读取一个byte,然后组成字符串,放入到String类型的变量str中,在读完后,通过BT.print(str)一次性将整个字符串发送给手机软件。代码如下:

#include <SoftwareSerial.h>//蓝牙连接的头文件
SoftwareSerial BT(10, 11); //HC-05的RX和TX分别接D11和D10
String str;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  BT.begin(9600);
  Serial.println("Bluetooth is ready!");
}

void loop() {
  // put your main code here, to run repeatedly:
  str = "";
  while (Serial.available() > 0)
  {
    str += char(Serial.read());
    //BT.write();   // read是剪切,而不是复制
    //delay(10);  // 延时
  }
  BT.print(str);
}

实验结果,如下图15所示,显示的是手机app接收到的数据
在这里插入图片描述

图15

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

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

相关文章

【python-Unet】计算机视觉~舌象舌头图片分割~机器学习(三)

返回至系列文章导航博客 1 简介 舌体分割是舌诊检测的基础&#xff0c;唯有做到准确分割舌体才能保证后续训练以及预测的准确性。此部分真正的任务是在用户上传的图像中准确寻找到属于舌头的像素点。舌体分割属于生物医学图像分割领域。分割效果如下&#xff1a; 2 数据集介…

一些二叉树相关面试题

文章目录1. 对折2. 判断是否是平衡二叉树3. 判断是否是搜索二叉树4. 二叉树的直径5. 寻找最大二叉搜索树6. 用递归套路判断是否是完全二叉树7. 派对的最大快乐值1. 对折 这个大家可以自己用纸对折一下&#xff0c;我这里就简单的说一下&#xff1a; 这是我们第一次对折的情况。…

使用PHP做个图片防盗链(全网详解)

概念&#xff1a; 防盗链是一种防范网络图片、视频等资源被他人盗链&#xff08;直接在其它网站使用&#xff09;的技术。在网站上添加防盗链功能可以防止其他网站恶意盗取自己网站的图片等内容&#xff0c;减少带宽消耗和保护网站内容安全。通常实现防盗链的方式是在网站服务…

js 使用 Array.from 快速生成0~5,步进值为0.1的数组

一、我们平常用的比较多的方法是for循环生成 let data[] for(let i0;i < 51;i){data.push(i/10) }二、用Array.from生成 先来认识一下我们今天的主角&#xff01;&#xff01;&#xff01; 1、释义 Array.from() 方法从一个类似数组或可迭代对象创建一个新的&#xff0c…

SpringMVC(三):请求流程处理

一、引言&#xff1a; 如下是我画的一个简单的SpringMVC的请求流程图&#xff0c;接下来会通过请求流程图去进行源码分析。 [1 ] 当我们客户端发送请求时&#xff0c;Servlet会进行请求的解析&#xff0c;然后交给DispatcherServlet进行统一分发。[2] DispatcherServlet会根…

北京君正案例:超能面板PRO采用4英寸IPS超清多彩屏,值不值得买?

清晨&#xff0c;窗帘自动拉开&#xff0c;悦耳音乐缓缓响起&#xff0c;面包机、咖啡机自动工作&#xff0c;开启新一天。离家时&#xff0c;一键关掉所有灯光和家电&#xff0c;节能安全&#xff0c;手机上便可查看家里设备状态&#xff0c;不用担心门没锁、灯没关等问题。下…

ClickHouse入门详解

ClickHouse基础部分详解一、ClickHouse简介二、ClickHouse单机版安装2.1、ClickHouse安装前准备环境2.2、ClickHouse单机安装三、ClickHouse数据类型四、ClickHouse的表引擎一、ClickHouse简介 对于其他乱起八糟的简介&#xff0c;我就不写了&#xff0c;只写干货. ClickHouse总…

Lumen6 /laravel 框架路由请求实现token验证

版本 Lumen6.0 中文文档&#xff1a;https://learnku.com/docs/lumen/5.7/cache/2411 实现功能效果 1、使用缓存存储用户token 2、从请求头head 中获取用户token 3、返回指定的认证失败结构体 4、对指定的接口路由做身份验证 第一步&#xff1a;解除注释 注意&#xff1…

QML控件--Container

文章目录一、控件基本信息二、控件说明三、属性成员四、成员函数一、控件基本信息 Import Statement: import QtQuick.Controls 2.14 Since: Qt 5.7 Inherits: Control Inherited By: DialogButtonBox, MenuBar, SwipeView, and TabBar 二、控件说明 Container&#xff08;容…

网络安全之从原理看懂 XSS

01、XSS 的原理和分类 跨站脚本攻击 XSS(Cross Site Scripting)&#xff0c;为了不和层叠样式表(Cascading Style Sheets&#xff0c;CSS)的缩写混淆 故将跨站脚本攻击缩写为 XSS&#xff0c;恶意攻击者往 Web 页面里插入恶意 Script 代码&#xff0c;当用户浏览该页面时&…

【产品设计】删除确认文案,猛男落泪

使用各种系统时&#xff0c;都有各种删除操作&#xff0c;用户在删除时&#xff0c;很少关注文案写了什么&#xff0c;但这个文案往往让产品经理们殚精竭虑。怎么样才能写出合格的删除确认文案呢&#xff1f; 使用各种系统的时候&#xff0c;都有各种删除操作&#xff0c;作为用…

substrate中打印调试信息的多种方式详解

目录1. 获取substrate-node-template代码2. 添加一个用于测试的pallet至依赖到pallets目录3. log方式来输出信息3.1 将log依赖添到cargo.toml文件3.2 log-test/src/lib.rs修改call方法3.3 polkadot.js.调用测试函数do_something_log_test4. printable trait方式来输出信息4.1 首…

在 Rainbond 上使用在线知识库系统zyplayer-doc

zyplayer-doc 是一款适合企业和个人使用的WIKI知识库管理工具&#xff0c;提供在线化的知识库管理功能&#xff0c;专为私有化部署而设计&#xff0c;最大程度上保证企业或个人的数据安全&#xff0c;可以完全以内网的方式来部署使用它。 当然也可以将其作为企业产品的说明文档…

2023“认证杯”数学中国数学建模赛题浅析

2023年认证杯”数学中国数学建模如期开赛&#xff0c;本次比赛与妈杯&#xff0c;泰迪杯时间有点冲突。因此&#xff0c;个人精力有限&#xff0c;有些不可避免地错误欢迎大家指出。为了大家更方便的选题&#xff0c;我将为大家对四道题目进行简要的解析&#xff0c;以方便大家…

4.redis-主从复制

01-主从复制概述 单机redis存在的问题 ①硬盘故障, 导致数据丢失, redis不好用;②内存容量受限制, 单台服务器内存扩展有上限, 内存数据超过该上线, 该如何处理. 解决方案 1个master可以有多个slave, 1个slave只能对应1个master master: 主机, 可以读也可以写, 主要负责写. …

MySQL运维24-SHOW ENGINE INNODB STATUS解析

文章目录1、SHOW ENGINE INNODB STATUS概述2、信号量&#xff08;Semaphores&#xff09;2.1、信号量信息示例2.2、信号量信息说明2.3、知识点&#xff1a;CPU自旋(SPIN)2.3、信号量中的OS WAIT ARRAY INFO3、死锁3.1、死锁信息示例3.2、死锁信息说明4、外键冲突4.1、外键冲突信…

elementUI实现selecttree自定义下拉框树形组件

elementUI有select组件也有tree组件&#xff0c;但是就是没有下拉框和tree组件的结合体&#xff0c;那么这次我们就自定义一个。 效果图 引入组件 <select-tree ref"selectTree" treeChange"treeChangeFun" :dataArray"orgList" :value"…

【网络安全】文件上传漏洞及中国蚁剑安装

文件上传漏洞描述中国蚁剑安装1. 官网下载源码和加载器2.解压至同一目录并3.安装4.可能会出现的错误文件上传过程必要条件代码示例dvwa靶场攻击示例1.书写一句话密码进行上传2. 拼接上传地址3.使用中国蚁剑链接webshell前端js绕过方式服务端校验请求头中content-type黑名单绕过…

《花雕学AI》22:一种让AI模拟虚拟角色方法,足以更多创造力的ChatGPT角色扮演

一、什么是ChatGPT的角色扮演&#xff1f; ChatGPT是一种基于GPT-3模型的人机对话技术&#xff0c;它可以实现自然语言和计算机之间的交互。ChatGPT的角色扮演指的是让模型扮演一个虚构的人物&#xff0c;与用户进行设定好的对话。 例如&#xff0c;您可以让ChatGPT扮演一个关…

一文打通锁升级(偏向锁,轻量级锁,重量级锁)

前置知识&#xff1a;synchronized 在JavaSE1.6以前&#xff0c;synchronized都被称为重量级锁。但是在JavaSE1.6的时候&#xff0c;对synchronized进行了优化&#xff0c;引入了偏向锁和轻量级锁&#xff0c;以及锁的存储结构和升级过程&#xff0c;减少了获取锁和释放锁的性能…