Ubuntu20.04/22.04 配置 Arduino IDE 2.x 开发环境全攻略

张开发
2026/6/11 1:26:47 15 分钟阅读
Ubuntu20.04/22.04 配置 Arduino IDE 2.x 开发环境全攻略
1. 为什么选择在Ubuntu上玩转Arduino如果你是一个喜欢捣鼓硬件的极客或者是一个正在学习嵌入式开发的学生那么Arduino绝对是你绕不开的一个好伙伴。它用简单的C/C语法就能让你轻松控制LED、电机、传感器把天马行空的想法变成现实。而Ubuntu作为最流行的Linux发行版之一以其稳定、高效和强大的命令行工具成为了许多开发者的首选操作系统。那么当Arduino遇上Ubuntu会擦出怎样的火花呢我自己的经历是之前一直在Windows上用Arduino IDE 1.x版本后来换了台Ubuntu系统的开发机正好手头有两块基于LGT8F328P芯片的迷你开发板需要调试就决定试试全新的Arduino IDE 2.x。这一试发现新版本在界面和体验上确实有不少提升但安装配置过程尤其是网络环境还是踩了几个小坑。所以我把自己在Ubuntu 20.04和22.04上从零开始配置Arduino IDE 2.x的完整过程以及遇到的各种问题和解决方案都详细记录下来希望能帮你省去摸索的时间快速搭建一个顺手的开发环境。这篇文章就是为你准备的无论你是刚接触Ubuntu和Arduino的新手还是想从旧版IDE升级的老玩家都能找到清晰的指引。我们会从最基础的下载安装开始一步步搞定环境配置、网络优化、桌面集成甚至包括安装那些“不太好下载”的第三方开发板支持库。整个过程力求小白友好我会尽量用大白话解释每个步骤背后的原因让你不仅知道怎么做还明白为什么这么做。2. 准备工作与安装从官网到你的硬盘万事开头难但安装Arduino IDE其实很简单。我们不走Ubuntu软件仓库那条路因为仓库里的版本往往不是最新的。为了获得最新特性和最好的兼容性我们直接从官网下载。2.1 下载正确的安装包首先打开你的浏览器访问Arduino官网的软件下载页面。你会看到好几个版本别晕我们认准“Linux ZIP file 64 bits (X86-64)”这个选项。如果你的系统是32位的现在很少见了就选32位的版本。点击下载这个压缩包大概有200多MB耐心等待它下载完成。我习惯把下载的文件放在~/Downloads目录下方便管理。下载完成后我们打开终端。在Ubuntu里你可以用快捷键CtrlAltT快速召唤它。接下来的操作我们大部分时间都会和这个黑乎乎的窗口打交道别怕跟着命令敲就行。2.2 解压与系统级部署默认下载的ZIP包解压后就是一个包含所有运行文件的文件夹。但我们不推荐直接放在家目录里运行更好的做法是把它安装到/opt目录下。/opt是专门用来存放第三方可选应用软件的地方这样管理起来更规范权限也清晰。# 1. 进入你下载文件所在的目录比如Downloads cd ~/Downloads # 2. 解压下载的ZIP包 unzip arduino-ide_2.2.1_Linux_64bit.zip # 3. 将解压后的文件夹移动到/opt目录并改个简短的名字 sudo mv arduino-ide_2.2.1_Linux_64bit /opt/arduino-ide # 4. 为了以后升级方便我们创建一个软链接指向当前版本 cd /opt sudo ln -sfn arduino-ide latest这里解释一下最后一步的“软链接”。你可以把它理解成Windows里的“快捷方式”。我们创建了一个名为latest的链接它永远指向/opt/arduino-ide这个目录。以后如果Arduino出了新版本比如2.2.2我们只需要把新版本解压到/opt/arduino-ide-2.2.2然后把这个软链接的目标改过去就行。所有通过latest路径启动的程序都会自动使用新版本而不用去修改我们后面要创建的桌面快捷方式。2.3 首次运行与权限问题现在我们可以尝试首次运行了。进入目录直接执行cd /opt/latest ./arduino-ide如果一切顺利你会看到Arduino IDE 2.x的启动画面它会初始化一些用户配置比如在你的家目录下创建.arduino15和.arduinoIDE这两个隐藏文件夹。但很多时候问题就出在这个“如果”上。首次启动时IDE会尝试检查更新和下载一些核心索引文件。如果你的网络连接不太顺畅或者访问某些资源比较慢启动界面就可能会一直卡住等上十几分钟都没反应。这时候别急着关终端我们后面有办法解决。还有一个更常见的问题是串口权限。当你把Arduino开发板通过USB线连接到电脑后系统会把它识别为一个串口设备比如/dev/ttyACM0或/dev/ttyUSB0。默认情况下普通用户没有权限读写这个设备。你可以用以下命令查看ls -l /dev/ttyACM*输出结果可能是crw-rw---- 1 root dialout 166, 0 5月 10 14:30 /dev/ttyACM0。这表示只有root用户和属于dialout用户组的成员才能读写这个设备。所以我们需要把当前用户加到dialout组里sudo usermod -a -G dialout $USER执行完这个命令后非常重要的一步是注销当前用户然后重新登录或者直接重启电脑。只有这样新的组权限才会生效。之后你再连接开发板IDE里就能正常选择串口了。3. 破解网络困局让IDE顺畅启动与更新刚才提到首次启动可能卡住这几乎是所有国内用户在配置时遇到的第一个拦路虎。新版的Arduino IDE 2.x依赖网络来初始化环境、下载板卡信息和库索引如果连接不稳定体验会非常糟糕。我们不能干等着得主动出击。3.1 通过配置文件设置网络代理当IDE卡在启动界面时我们可以先强制关闭它在终端里按CtrlC。然后我们需要编辑一个配置文件。这个文件在IDE第一次尝试运行后就会生成即使它没成功启动。用你喜欢的文本编辑器打开这个文件比如nano或geditnano ~/.arduinoIDE/arduino-cli.yaml如果这个文件不存在你可以手动创建它。然后在文件中添加以下内容network: proxy: http://你的代理服务器IP:端口如果你的代理服务器需要用户名和密码格式是这样的http://用户名:密码代理服务器IP:端口。请注意密码中如果含有特殊字符可能需要用URL编码。更常见和方便的是使用本地的SOCKS5代理比如很多工具默认在本地1080端口开启的代理服务network: proxy: socks5://127.0.0.1:1080保存并退出编辑器。这个配置文件会告诉arduino-cliArduino命令行工具IDE 2.x的核心通过指定的代理服务器来访问网络。设置好后再次运行./arduino-ide你应该能看到启动过程不再卡顿开始正常下载资源了。3.2 图形界面内的代理设置通过配置文件设置是全局生效的。一旦IDE成功启动我们也可以在图形界面里进行更细致的设置。点击左上角的File-Preferences打开首选项窗口。在最下方找到“Network”区域这里可以单独设置IDE的HTTP/HTTPS代理。如果你在命令行配置文件里已经设置过了这里通常会显示出来。这个图形界面的设置和配置文件是联动的修改任何一处另一处也会同步更新。我个人的习惯是在arduino-cli.yaml里配置好代理这样无论是命令行工具arduino-cli还是图形界面IDE都能统一走代理避免后续安装开发板支持包、库文件时再次遇到网络问题。毕竟玩Arduino的一大乐趣就是尝试各种第三方库和板卡顺畅的网络是基础。4. 打造舒适工作流创建桌面快捷方式与美化每次都要打开终端切换到/opt/latest目录再执行命令来启动IDE实在太麻烦了。我们得给它创建一个漂亮的桌面快捷方式就像Windows下的图标一样一点就开。4.1 创建标准的.desktop文件在Linux系统中应用程序的快捷方式叫做.desktop文件它们通常存放在~/.local/share/applications/用户级或/usr/share/applications/系统级目录下。我们为自己创建用户级的即可。用编辑器创建并打开这个文件nano ~/.local/share/applications/arduino-ide.desktop然后将以下内容粘贴进去你需要根据实际情况修改Icon和Exec这两行的路径[Desktop Entry] Version1.0 TypeApplication NameArduino IDE 2.x CommentIntegrated Development Environment for Arduino Icon/opt/arduino-ide/resources/app/resources/icon.png Exec/opt/arduino-ide/arduino-ide Terminalfalse CategoriesDevelopment;IDE;Electronics; StartupWMClassarduino-ide这里有几个关键点需要注意Icon路径这个路径不一定对。Arduino IDE 2.x的图标可能藏得比较深。你可以尝试在/opt/arduino-ide目录下用find命令搜索一下find /opt/arduino-ide -name \*.png\ | grep -i icon。常见的路径可能是/opt/arduino-ide/resources/app/resources/icon.png或/opt/arduino-ide/resources/app/node_modules/arduino-ide-extension/src/browser/style/ide-logo.png。如果找不到你也可以从网上下载一个Arduino的Logo放到~/.local/share/icons/目录下然后在这里指向那个文件。Exec路径这就是我们可执行文件的绝对路径。StartupWMClass这一行非常重要它能解决一个常见的小毛病。没有这一行当你启动Arduino IDE后在Ubuntu的底栏Dock上它的图标可能会显示为一个默认的空白图标而不是Arduino的Logo。这一行的作用是将应用程序窗口与正确的图标关联起来。4.2 找出正确的StartupWMClass值怎么知道StartupWMClass该填什么呢我们需要一个小工具xprop。首先确保Arduino IDE正在运行然后打开终端输入xprop WM_CLASS回车后你的鼠标光标会变成一个十字。用这个十字光标去点击Arduino IDE的窗口。点击后终端里就会输出类似这样的信息WM_CLASS(STRING) \arduino-ide\, \Arduino IDE\。我们需要的值就是第一个字符串也就是arduino-ide不同版本可能略有差异以你实际看到的为准。把这个值填到.desktop文件的StartupWMClass后面。保存.desktop文件后你可能需要刷新一下桌面应用的数据库或者直接注销再登录。之后你就能在应用程序菜单里找到“Arduino IDE 2.x”了可以把它拖到底栏固定住以后一键启动非常方便。5. 安装第三方开发板与库手动安装的智慧Arduino生态的强大离不开海量的第三方开发板比如ESP8266、ESP32和库文件的支持。然而在安装这些第三方资源时我们很可能又会撞上网络这堵墙。很多开发板的索引文件或库的JSON配置托管在GitHub上而raw.githubusercontent.com这个域名经常无法稳定访问导致在IDE的“开发板管理器”或“库管理器”里点击安装后进度条一动不动。5.1 手动安装开发板支持包以我手头的LGT8F328P开发板为例它的支持包来自GitHub上的dbuezas/lgt8fx仓库。当在线安装失败时我们可以手动操作。首先我们需要知道Arduino IDE把所有的支持包、库文件放在哪里。它们默认都在你家目录下的隐藏文件夹.arduino15里。具体路径是~/.arduino15/packages/。每个硬件平台比如arduino、esp8266、lgt8fx都会在这里有一个自己的文件夹。对于LGT8F328P我们可以去GitHub仓库的Release页面直接下载最新的ZIP包比如lgt8f-2.0.0.zip。下载好后我们手动创建对应的目录结构# 进入Arduino的包目录 cd ~/.arduino15/packages # 为LGT8F创建目录结构 mkdir -p lgt8fx/hardware/avr/2.0.0 # 将下载的ZIP包解压到这个目录 unzip ~/Downloads/lgt8f-2.0.0.zip -d lgt8fx/hardware/avr/2.0.0/ # 此外还可以将ZIP包本身复制到staging/packages目录IDE有时会从这里识别 mkdir -p ~/.arduino15/staging/packages cp ~/Downloads/lgt8f-2.0.0.zip ~/.arduino15/staging/packages/完成这些操作后重启Arduino IDE。打开“工具” - “开发板”菜单你应该能在列表的最下方找到“LGT8F328P”相关的开发板选项了。这种方法适用于很多小众的、或者网络安装困难的开发板。核心思路就是找到离线包然后按照~/.arduino15/packages/厂商名/hardware/架构名/版本号/这样的目录结构放置文件。5.2 手动安装库文件库文件的安装也类似。在线安装库失败时我们可以去GitHub或其他地方下载库的ZIP压缩包。注意不要解压后直接扔进libraries文件夹。正确的方法是在Arduino IDE里选择“项目” - “加载库” - “添加.ZIP库…”然后选择你下载的ZIP文件IDE会自动处理解压和放置。如果你想完全手动管理也可以把库文件夹解压ZIP后得到的通常文件夹名就是库名直接放到~/Arduino/libraries/目录下如果没有就自己创建。重启IDE后就能在“加载库”的列表里看到它了。6. 新手上路Arduino IDE 2.x 基础使用指南环境终于配好了我们来快速熟悉一下这个新版的IDE看看它和经典的1.x版本有什么不同又有哪些好用的小技巧。6.1 界面布局与核心功能第一次打开Arduino IDE 2.x你可能觉得它有点像VS Code左侧多了一个垂直的侧边栏。这个侧边栏集成了几个核心功能导航器可以快速浏览和切换你打开的所有项目文件.ino文件。库管理器在这里搜索、安装和管理第三方库比1.x版本的库管理器更直观。开发板管理器安装各种开发板的核心支持包比如ESP32、Adafruit系列等。调试器这是2.x版本的一大亮点终于支持了硬件调试需要特定的开发板和支持。搜索全局搜索你的代码非常方便。中间的主区域依然是代码编辑器支持语法高亮、代码补全比1.x强很多、错误波浪线提示。底部是输出窗口编译信息、上传状态、串口监视器的内容都在这里显示。6.2 必须掌握的快捷键记住几个常用快捷键能极大提升效率验证/编译Ctrl R。写好的代码先编译一下看看有没有语法错误。上传Ctrl U。编译无误后一键烧录到开发板。打开串口监视器Ctrl Shift M。用来和开发板通信查看它打印的调试信息或者发送指令给它。自动格式化代码Ctrl T。让你的代码保持整洁统一的风格。快速跳转到函数定义F12。在复杂的项目中这个功能非常有用。6.3 第一个Blink程序我们来跑个最简单的程序验证一下环境是否完全正常。连接你的Arduino开发板比如最经典的Uno在IDE里选择正确的开发板和端口工具 - 开发板 工具 - 端口。然后点击“文件” - “示例” - “01.Basics” - “Blink”。这会打开一个让板载LED闪烁的示例程序。直接点击上传按钮向右的箭头等待编译和上传完成。如果你的开发板上的“L”灯开始规律地闪烁那么恭喜你整个环境从安装到烧录全部打通了6.4 版本管理与项目结构Arduino IDE 2.x对项目的管理也更规范了。它默认希望你为每个项目创建一个独立的文件夹文件夹名就是项目名主程序文件.ino也必须放在这个文件夹内且文件名与文件夹名相同。这种结构虽然一开始有点不习惯但对于管理多个项目、使用版本控制工具如Git非常友好。7. 进阶技巧与故障排除配置好了基础环境我们可以再深入一点了解一些能让开发更顺畅的技巧以及遇到常见问题该如何解决。7.1 使用命令行工具arduino-cliArduino IDE 2.x 背后其实是一个强大的命令行工具arduino-cli。有时候在终端里操作比用图形界面更快捷特别是在自动化脚本或者远程开发时。它通常随IDE一起安装位于/opt/arduino-ide目录下或者你也可以单独安装。# 查看arduino-cli版本 /opt/arduino-ide/resources/app/node_modules/arduino-ide-extension/lib/cli/arduino-cli version # 列出所有已安装的开发板核心 /opt/arduino-ide/resources/app/node_modules/arduino-ide-extension/lib/cli/arduino-cli core list # 搜索开发板核心例如ESP32 /opt/arduino-ide/resources/app/node_modules/arduino-ide-extension/lib/cli/arduino-cli core search esp32 # 编译一个项目 /opt/arduino-ide/resources/app/node_modules/arduino-ide-extension/lib/cli/arduino-cli compile --fqbn arduino:avr:uno /你的项目路径你可以为这个长长的路径创建一个别名alias放在你的~/.bashrc文件里比如alias arduino-cli\/opt/arduino-ide/.../arduino-cli\这样以后直接输入arduino-cli就能用了。7.2 解决串口访问权限问题进阶之前我们通过把用户加入dialout组来解决串口权限问题。但如果你有多个用户或者觉得这个方法不够精细还可以使用udev规则。创建一个规则文件让系统在检测到特定Arduino设备时自动设置好权限。sudo nano /etc/udev/rules.d/99-arduino.rules添加以下内容以常见的Arduino Uno的USB串口芯片为例# Arduino Uno 等使用 ATmega16U2 或 8U2 芯片的板子 SUBSYSTEM\tty\, ATTRS{idVendor}\2341\, ATTRS{idProduct}\0043\, MODE\0666\, GROUP\plugdev\ # Arduino Mega 2560 SUBSYSTEM\tty\, ATTRS{idVendor}\2341\, ATTRS{idProduct}\0010\, MODE\0666\, GROUP\plugdev\ # 常见的 CH340/CH341 串口芯片很多国产兼容板使用 SUBSYSTEM\tty\, ATTRS{idVendor}\1a86\, ATTRS{idProduct}\7523\, MODE\0666\, GROUP\plugdev\保存后重新加载udev规则并重启服务sudo udevadm control --reload-rules sudo service udev restart然后重新插拔你的Arduino设备。这样设置后任何用户都能读写这些特定的串口设备了。注意你需要确保你的用户也在plugdev组里通常默认在。7.3 编译时内存不足或卡死如果你在编译一些大型项目特别是针对ESP32等资源较丰富的板子时IDE卡死或者报内存相关的错误可以尝试调整编译器的设置。在“文件” - “首选项”里找到“编译”相关设置可以勾选“显示详细输出”这样能在输出窗口看到更详细的信息。对于内存问题可以尝试在终端中设置一个环境变量再启动IDE增加可用于编译的内存export JAVA_TOOL_OPTIONS\-Xmx2g\ /opt/arduino-ide/arduino-ide这条命令为Java虚拟机分配了2GB的最大内存。如果你的电脑内存充足可以把这个值设得更大比如-Xmx4g。你可以把export JAVA_TOOL_OPTIONS\-Xmx2g\这一行也加到你的~/.bashrc文件里让它永久生效。7.4 恢复默认设置与重装如果IDE出现了一些奇怪的、无法解决的问题你可以尝试恢复默认设置。关闭IDE然后重命名或删除家目录下的配置文件夹mv ~/.arduino15 ~/.arduino15.backup mv ~/.arduinoIDE ~/.arduinoIDE.backup再次启动IDE时它会像第一次运行一样重新初始化这些文件夹。注意这会清除你安装的所有第三方开发板、库和首选项设置。你的项目代码通常在~/Arduino目录下不会受影响。如果需要彻底重装除了删除上述配置文件夹把/opt/arduino-ide目录也删除然后重新解压一份干净的即可。这种“绿色安装”的方式清理起来非常彻底。折腾了这么一大圈从下载解压到配置代理从创建快捷方式到手动安装库一个强大且顺手的Arduino开发环境终于在Ubuntu上落地生根了。说实话这个过程里最磨人的就是网络问题但只要按照上面配置文件的方法搞定一次后面就一马平川。新版的IDE 2.x在代码补全、界面响应和项目管理上确实比老版本舒服不少侧边栏的设计也让查找库和开发板更方便了。遇到问题别慌多看看终端的输出信息善用搜索引擎和Arduino官方论坛大部分坑前人都踩过。硬件编程的乐趣就在于动手和解决问题现在环境搭好了接下来就尽情享受创造的过程吧点个灯、转个电机、读个传感器从一个个小项目开始你会发现这片开源硬件的天地如此广阔。

更多文章