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

Ubuntu:Arduino IDE 开发环境配置【保姆级】

物联网开发学习笔记——目录索引

本章主要介绍在Ubuntu系统搭建Arduino IDE 开发环境,windows系统请移步:Windows:Arduino IDE 开发环境配置【保姆级】

参考官网:Arduino - Home

有关更多详细信息,请参阅 Arduino IDE 2.0 文档。Arduino IDE 是开源的,其源代码托管在GitHub上。

我本人大部分时间都是直接使用Ubuntu系统,如您不想直接安装ubuntu系统,请先参考使用VirtualBox安装Ubuntu系统【保姆级】。

工欲善其事必先利其器,下面开始Ubuntu系统Arduino IDE 开发环境配置之路。

备注:此文档使用的Ubuntu系统为Ubuntu 20.04 LTS

一、Arduino IDE 下载

点击【SOFTWATE】

点击【Linux】软件版本下载

点击【JUST DOWNLOAD】下载

考虑到国内访问比较慢,我已经把软件上传到百度网盘

链接:百度网盘 请输入提取码
提取码:test  目录:IOT-IDE -> Arduino-IDE -> linux

文件:arduino-ide_2.2.1_Linux_64bit.zip  和 arduino-ide_2.2.1_Linux_64bit.AppImage

二、Arduino IDE 安装

有两种方式:

1. 使用 arduino-ide_2.2.1_Linux_64bit.zip 安装

先解压:

$ unzip arduino-ide_2.2.1_Linux_64bit.zip

执行:./arduino-ide

$ cd arduino-ide_2.2.1_Linux_64bit
$ ./arduino-ide

 启动Arduino-IDE, 在这个界面,请耐心等待

启动完成,进入如下界面:

2. 使用arduino-ide_2.2.1_Linux_64bit.AppImage安装

给arduino-ide_2.2.1_Linux_64bit.AppImage文件可执行权限

$ chmod a+x arduino-ide_2.2.1_Linux_64bit.AppImage

然后直接执行./arduino-ide_2.2.1_Linux_64bit.AppImage

 ./arduino-ide_2.2.1_Linux_64bit.AppImage

在如下窗口,点击【Agree】 

3. 其他arduino版本安装方法

注意:其他版本安装方式可能会有一些不一样,如arduino-1.8.19-linux64.tar.xz

1. xz -d xxx.tar.xz 解压成 xxx.tar 格式文件
$ xz -d arduino-1.8.19-linux64.tar.xz2. 然后再 tar -xvf xxx.tar 解压文件
$ tar -xvf arduino-1.8.19-linux64.tar

解压后

1. 进入arduino-1.8.19/
$ cd arduino-1.8.19/2. 执行./install.sh 安装
$ $ sudo ./install.sh

安装完成后,直接命令行输入arduino运行

$ arduino 

运行界面:
 

4. 语言配置,可以根据自己喜好配置。

三、Arduino IDE 中安装开发板

这部分和

从 1.6.4 开始,Arduino 允许使用 Boards Manager 安装第三方平台软件包。

这个小结介绍在Arduino IDE中添加开发板,我目前手上有esp8266和esp32开发板,所有我就已添加esp8266/esp32开发板为例,进行详细的介绍。

1. 安装esp8266开发板

参考:GitHub - esp8266/Arduino:Arduino 的ESP8266核心

首先介绍esp8266开发板的安装,打开Arduino IDE “首选项”

英文:点击【File】-> 【Preferences】

中文:点击【文件】-> 【首选项】

在Arduino IDE的“首选项”对话框中找到“其他开发板管理地址” 

英文:点击【Additional boards manager URLs】

中文:点击【其他开发板管理地址

将以下网址复制并且黏贴到到Additional boards manager URLs”/“其他开发板管理地址” 栏中,并点击OK

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 点击【OK】后,会提示“正在下载package_esp8266com_index.json索引”等待下载完成,打开Arduino IDE的“开发板管理器”

英文:点击【Tools】-> 【Board】-【boards manager 】

中文:点击【工具】-> 【开发板】->【开发板管理器】

在“开发板管理器”的搜索栏中输入“esp8266”

 

确认是否成功安装“esp8266”开发板,如果提示【已安装】表示已经安装成功

英文界面:

中文界面:

 2. 安装esp32系列开发板

参考:Welcome to ESP32 Arduino Core’s documentation — Arduino-ESP32 2.0.6 documentation

基本和【1. 安装esp8266开发板】类似,在Arduino IDE的“首选项”对话框中找到“其他开发板管理地址” 并添加如下地址

  • 稳定版发布链接:

    https://espressif.github.io/arduino-esp32/package_esp32_index.json
    
  • 开发发布链接:

    https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

    四、Arduino IDE 运行示例程序

    在测试之前,请确保您已完成以下准备工作:

  1. 您已经在电脑里成功安装好Arduino IDE

  2. 使用USB数据线将开发板与电脑连接好

  3. 开发板驱动程序已成功安装。

在Arduino IDE的开发板菜单中找到您的开发板,如我使用的esp8266开发板是【NodeMCU 1.0 (ESP-12E module)】,您需要根据自己所使用开发板的实际情况选择。

设置Arduino IDE的开发板端口,您需要根据自己所使用开发板的实际情况选择。

假如您不知道如何查看开发板连接的端口号,请看备注查看开发板端口号

打开Blink示例程序

将Blink示例程序编译上传给esp8266【NodeMCU 1.0 (ESP-12E module)】开发板

注意:如上传的时候arduino出现Permission denied: '/dev/ttyUSB0'错误

主要错误信息:

SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
Cannot connect to Arduino!

解决方案:

打开终端并执行以下命令:
sudo usermod -a -G dialout $USER

然后重新插拔usb或重新启动Arduino IDE,再次运行上传。

 确认开发板上LED开始闪烁 
程序上传完毕,如果看到开发板上的LED开始闪烁说明Blink示例程序编译上传成功。恭喜您现在可以用Arduino IDE为开发板编写控制程序了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

备注

查看开发板端口号

1. 首先电脑和开发板使用usb数据线相连

2. 查看开发板连接的端口号

Ubuntu 20.04 LTS系统默认自动usb转串口驱动程序,使用如下命令参考端口号

$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 10月 15 15:45 /dev/ttyUSB0

参考资料

Arduino官网:Arduino - Home

GitHub - esp8266/Arduino: ESP8266 core for Arduino

乐鑫官网:Getting Started — Arduino-ESP32 2.0.6 documentation

物联网开发学习笔记——目录索引

相关文章:

Ubuntu:Arduino IDE 开发环境配置【保姆级】

物联网开发学习笔记——目录索引 本章主要介绍在Ubuntu系统搭建Arduino IDE 开发环境,windows系统请移步:Windows:Arduino IDE 开发环境配置【保姆级】 参考官网:Arduino - Home 有关更多详细信息,请参阅 Arduino I…...

Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证

Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证。 官网地址:https://kafka.apache.org/ 本文说明如何做client验证ACL是否生效,我们之前开启了无acl信息不允许访问的配置。涉及的client有以下几个场景:shell脚本、python脚本、java应用、flink流。 kafka shell script验证…...

Pycharm 2023 设置远程调试

pycharm 版本 : 2023.2.1 整体流程参考:https://blog.csdn.net/xuanhaolaile/article/details/128293254 首先确定远程服务器上已经安装好 requirements.txt 中所需的依赖包。 1、SSH Configurations 添加远程服务器 2、Python Interpreter 注意&…...

asp.net core在其他程序集获取HttpContext

首先在Program.cs中,注册 builder.Services.AddHttpContextAccessor();Program.cs完整代码: using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.CodeAnalysis.CSharp.Syntax; using System.Text.Encodings.Web; using System.Text.Unicode; us…...

UWB NI框架嵌入式实现——Qorvo示例

在Qorvo提供的DW3000示例代码中,实现了与Apple的NI框架的互通的示例,本文中针对其示例程序进行简要的分析。测试中使用Qorvo提供的模块,该模块为nRF52833DW3000的架构。 1. Qorvo相关库文件 Qorvo在提供示例时,仅提供了相关的库文…...

Linux OS源的问题记录

场景 安装了一台Linux虚拟机充当服务器,准备搭建一个elk环境,我使用命令安装docker的时候,报错提示 YumRepo Error: All mirror URLs are not using ftp, http[s] or file.Eg. Invalid release/repo/arch combination/ removing mirrorlist…...

数据库:Hive转Presto(五)

此篇将所有代码都补充完了,之前发现有的代码写错了,以这篇为准,以下为完整代码,如果发现我有什么考虑不周的地方,可以评论提建议,感谢。代码是想哪写哪,可能比较繁琐,还需要优化。 …...

SQL中for xml path 的用法

1. 用法 是一种将查询结果转换为 XML 格式的方法。它可以将查询结果中的每一行转换为一个 XML 元素,并且可以指定元素的名称和属性。 2. 应用示例 有一张学生选修课程的表,如下图所示 希望整合成下图所示效果 --建表 if object_id(StudentInfo,u) is…...

【TensorFlow2 之014】在 TF 2.0 中实现 LeNet-5

一、说明 在这篇文章中,我们将展示如何在 TensorFlow 中实现像 \(LeNet-5\) 这样的基础卷积神经网络。LeNet-5 架构由 Yann LeCun 于 1998 年发明,是第一个卷积神经网络。 数据黑客变种rs 深度学习 机器学习 TensorFlow 2020 年 2 月 29 日 | 0 …...

【2023】redis-stream配合spring的data-redis详细使用(包括广播和组接收)

目录 一、简介1、介绍2、对比 二、整合spring的data-redis实现1、使用依赖2、配置类2.1、配置RedisTemplate bean2.2、异常类 3、实体类3.1、User3.2、Book 4、发送消息4.1、RedisStreamUtil工具类4.2、通过延时队列线程池模拟发送消息4.3、通过http主动发送消息 5、&#x1f3…...

飞书应用机器人文件上传

背景: 接上一篇 flask_apscheduler实现定时推送飞书消息,当检查出的异常结果比较多的时候,群里会有很多推送消息,一条条检查工作量会比较大,且容易出现遗漏。   现在需要将定时任务执行的结果记录到文件,…...

高版本Mac系统如何打开低版本的Xcode

这里写目录标题 前言解决方案 前言 大家偶尔也碰见过更新Mac系统后经常发现低版本的Xcode用不了的情况吧.基本每年大版本更新之后都可以在各个开发群里碰见问这个问题的. 解决方案 打开访达->应用程序->选中打不开的那个版本的Xcode并且右键显示包内容->Contents-…...

测试H5需要注意的交互测试用例点

H5(HTML5)是一种用于构建网页的标准,可以实现丰富的交互和功能。测试H5交互通常涉及到验证网页在各种情况下的行为,包括用户输入、按钮点击、页面加载等等。以下是一些可能的H5交互测试用例: 页面加载: 验…...

1014蓝桥算法双周赛,学习算法技巧,助力蓝桥杯

家人们,我来免费给大家送福利了!!! 【1014蓝桥算法双周赛 】 背景 蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心举办的全国性IT学科赛事。参赛高校超过1200余所,累计参赛人数超过40万人。该…...

C语言之通讯录的实现篇

目录 test.c 主菜单menu 创建通讯录con 初始化通讯录InitContact 增加个人信息AddContact 展示个人信息ShowContact 删除个人信息DelContact 查找个人信息SearchContact 修改个人信息ModifyContact test.c总代码 contact.h 头文件包含 PeoInfo_个人信息的设置声…...

如何降低海康、大华等网络摄像头调用的高延迟问题(二)

目录 1.RTSP介绍 2.解决办法1 3.解决办法2 1.RTSP介绍 RTSP(Real-time Streaming Protocol)是一种用于实时流媒体传输的网络协议。它被设计用于在服务器和客户端之间传输音频、视频以及其他流媒体数据。 RTSP协议允许客户端通过与服务器建立RTSP会话…...

centos清理日志和缓存

今天使用redmine修改密码,修改报错,再去试试创建用户,创建用户的页面直接报错显示不出来。然后看了一下服务器,发现服务器磁盘空间全部占满了。 CentOS系统也会在使用很长一段时间后出现硬盘空间开始不够的情况,而这并…...

排序算法的稳定性

什么是排序算法的稳定性? 排序算法的稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i] r[j],且 r[i…...

kafka属性说明

kafka中关于一些字段说明 groupId :标识消费者分组id,如果多个消费者id相同,就表示这几个消费者是一组,当一组多个消费者消费同一个topic时,一组中只会有一个成功消费 代码如下 这时只会有一条消息被消费...

STM32F4使用ucosii时操作浮点数卡死的问题

STM32F4使用ucosii时操作浮点数卡死的问题_stm32 fpu float 程序跑不起来_shou撕代码的博客-CSDN博客...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: ​onCreate()​​ ​调用时机​:Activity 首次创建时调用。​…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

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

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

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...