在 Ubuntu 环境下使用 VSCode 和 PlatformIO 下载程序到 Arduino Uno

  1. 安装 VSCode

    • 访问 VSCode 官网 下载 .deb 包
    • 使用以下命令安装:
      sudo dpkg -i <下载的文件名>.deb
      sudo apt-get install -f
      
  2. 安装 PlatformIO 扩展

    • 在 VSCode 中,转到扩展市场(Ctrl+Shift+X)
    • 搜索 “PlatformIO IDE”
    • 点击 “安装”
  3. 创建 PlatformIO 项目

    • 在 VSCode 中,点击 PlatformIO 图标(通常在左侧栏)
    • 选择 “New Project”
    • 选择 Board: “Arduino Uno”
    • 选择 Framework: “Arduino”
    • 选择项目位置并命名
      在这里插入图片描述
  4. 编写代码

    • src/main.cpp 中编写或粘贴您的 Arduino 代码
      #include <Arduino.h>void printMenu() {Serial.println("\n--- Arduino Menu ---");Serial.println("1. Say Hello");Serial.println("2. Get Arduino Uptime");Serial.println("3. Blink LED");Serial.println("Enter your choice:");
      }void setup() {Serial.begin(9600);while (!Serial) {; // Wait for serial port to connect (needed for native USB port only)}Serial.println("Arduino ready for communication!");pinMode(LED_BUILTIN, OUTPUT);printMenu();
      }void loop() {if (Serial.available() > 0) {char choice = Serial.read();// Clear the serial bufferwhile (Serial.available() > 0) {Serial.read();}switch (choice) {case '1':Serial.println("Hello from Arduino!");break;case '2':Serial.print("Arduino uptime: ");Serial.print(millis() / 1000);Serial.println(" seconds");break;case '3':Serial.println("Blinking LED 3 times...");for (int i = 0; i < 3; i++) {digitalWrite(LED_BUILTIN, HIGH);delay(500);digitalWrite(LED_BUILTIN, LOW);delay(500);}Serial.println("Blinking complete!");break;default:Serial.println("Invalid choice. Please try again.");}printMenu();}
      }
      
  5. 连接 Arduino Uno

    • 使用 USB 线将 Arduino Uno 连接到电脑
  6. 编译和上传

    • 点击 VSCode 底部状态栏的 “PlatformIO: Build” 图标编译代码
    • 点击 “PlatformIO: Upload” 图标将程序上传到 Arduino Uno
    • 点击vscode下方的Auto在这里插入图片描述在这里插入图片描述
  7. 监视串口输出

    • 点击 “PlatformIO: Serial Monitor” 图标打开串口监视器
    • 这时在串口监视器中输入数字,就可以选择相应的功能。

    注:如果遇到权限问题,可能需要将用户添加到 dialout 组:

    sudo usermod -a -G dialout $USER
    

    添加后需要注销并重新登录才能生效。

故障排除

串口监视器错误

如果在点击 “PlatformIO: Serial Monitor” 时出现类似以下的错误:在这里插入图片描述
这是因为 PlatformIO 在尝试运行测试,但是找不到测试文件。解决方法如下:

  1. 确保您不是在运行测试命令。串口监视器应该使用 “Monitor” 命令,而不是 “Test” 命令。

  2. 如果问题仍然存在,尝试以下步骤:

    • 在项目根目录创建一个 test 文件夹(如果不存在)
    • test 文件夹中创建一个空的测试文件,例如 test_main.cpp
    • test_main.cpp 中添加以下内容:
      #include <unity.h>void setUp(void) {// set stuff up here
      }void tearDown(void) {// clean stuff up here
      }void test_function_calculator_addition(void) {TEST_ASSERT_EQUAL(32, 25 + 7);
      }int main(int argc, char **argv) {UNITY_BEGIN();RUN_TEST(test_function_calculator_addition);UNITY_END();return 0;
      }
      
  3. 尝试使用命令行运行串口监视器:

    • 打开终端
    • 导航到项目目录
    • 运行命令:pio device monitor
  4. 检查 platformio.ini 文件,确保正确配置了串口监视器:

    [env:uno]
    platform = atmelavr
    board = uno
    framework = arduino
    monitor_speed = 9600
    

如果问题仍然存在,可以尝试重新安装 PlatformIO 或查看 PlatformIO 的官方文档以获取更多帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Meta:大语言模型可以通过自我批判取得大幅提升!

夕小瑶科技说 原创 作者 | 谢年年 论文的审稿模式想必大家都不会陌生&#xff0c;一篇论文除了分配多个评审&#xff0c;最后还将由PC综合评估各位审稿人的reviews撰写meta-review。 最近&#xff0c;来自Meta的研究团队将这一模式引进到大模型的对齐训练中。模型同时扮演 执…

springboot名著阅读网站

基于 springbootvue实现的名著阅读网站&#xff08;源码L文ppt&#xff09;4-035 4 系统设计 4.1 系统概述 名著阅读网站的设计与开发是指对该系统的各个功能模块进行详细设计&#xff0c;力求每个模块都能够满足用户的要求&#xff0c;系统开发完成后还需对系统进行单元…

如何搭建RGBD GS-ICP SLAM环境以及如何与自己编的pcl并存

0. 简介 最近深度学习SLAM又出来一个分支&#xff0c;3D gaussion splatting做slam的操作&#xff0c;之前我们给读者讲过如何使用C做3D高斯溅射。这里最近受到优刻得的使用邀请&#xff0c;正好解决了我在大模型和自动驾驶行业对GPU的使用需求。UCloud云计算旗下的Compshare的…

视频结构化从入门到精通——GPU主要硬件平台介绍

视频结构化主要硬件平台 1. 深度学习中“硬”和“软”的概念 在深度学习中&#xff0c;“硬”和“软”通常用于描述不同的处理方法或策略&#xff0c;尤其是在解码、编码、推理等任务中。它们反映了算法在处理信息时的确定性和灵活性。 软&#xff08;Soft&#xff09; 处理…

【看雪-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

电脑物理地址怎么修改方法

电脑物理地址怎么修改方法非常容易&#xff0c;需要用到一个小工具 首先需要下载一个修改软件《物理网卡mac修改器》&#xff0c;工具下载地址&#xff1a;https://download.csdn.net/download/baiseled/89633292 1.点击软件下拉框选中网卡序号 2.当前网卡mac物理地址就会显示…

Android Studio执行代码报错:Cause: unable to find valid certification path to requested target

今天执行一个老项目&#xff0c;代码没人动过&#xff0c;但是启动Android Studio后系统报错&#xff0c;报错信息为&#xff1a;Cause: unable to find valid certification path to requested target 下面是报错截图 网上找了好多解决方法&#xff0c;但是都不好用。 最后的…

windows安装php7.4

windows安装php7.4 1.通过官网下载所需的php版本 首先从PHP官网&#xff08;https://www.php.net/downloads.php&#xff09;或者Windows下的PHP官网&#xff08;http://windows.php.net/download/&#xff09;下载Windows版本的PHP安装包。下载后解压到一个路径下。 2.配…

【YOLOv5模型部署】——TensorRT推理引擎安装与使用基于Flask的项目部署

声明&#xff1a;笔记是做项目时根据B站博主视频学习时自己编写&#xff0c;请勿随意转载&#xff01; 温馨提示&#xff1a;对于我的电脑没有Nvidia的独显&#xff0c;只有Intel的集显&#xff0c;最后导出时无法识别Nvidia显卡设备&#xff01;&#xff01;就没成功&#xf…

访问数组索引时超出边界引发 ArrayIndexOutOfBoundsException

ArrayIndexOutOfBoundsException 是 Java 中非常常见的一种运行时异常。它是在访问数组时&#xff0c;如果访问的索引超出了数组的有效范围时抛出的异常。为了更好地理解这种异常的工作机制、产生原因以及如何处理&#xff0c;让我们详细分解这个问题&#xff0c;并从多个角度进…

STM32基础篇:RTC × Unix时间戳 × BKP

Unix时间戳 最早是在Unix系统使用的&#xff0c;之后很多由Unix演变而来的系统也都继承了Unix时间戳的规定。目前&#xff0c;Linux、Windows、安卓这些系统&#xff0c;其底层的计时系统都是使用Unix时间戳。 Uinx时间戳&#xff08;Unix Timestamp&#xff09;定义为从UTC/…

实验室ICPR 2024论文分享┆DS MYOLO:一种基于状态空间模型的驾驶场景可靠目标检测器

论文分享简介 本推文详细介绍了一篇实验室的最新论文成果《DS MYOLO: A Reliable Object Detector Based on SSMs for Driving Scenarios》&#xff0c;该论文已被第27届国际模式识别大会&#xff08;ICPR&#xff09;接收&#xff0c;论文的第一作者为李杨。论文提出了一种基…

Elasticsearch Mapping 详解

1 概述 映射的基本概念 Mapping 也称之为映射&#xff0c;定义了 ES 的索引结构、字段类型、分词器等属性&#xff0c;是索引必不可少的组成部分。 ES 中的 mapping 有点类似与DB中“表结构”的概念&#xff0c;在 MySQL 中&#xff0c;表结构里包含了字段名称&#xff0c;字…

CRIO与Windows下LabVIEW开发对比

LabVIEW在CRIO和Windows平台上开发时&#xff0c;尽管同属于一个编程环境&#xff0c;但在硬件架构、实时性能、模块化设计等方面存在显著差异。CRIO系统通常应用于工业自动化和嵌入式控制&#xff0c;具有实时操作系统支持和强大的I/O扩展能力&#xff1b;而Windows系统则更适…

《机器学习》文本数据分析之关键词提取、TF-IDF、项目实现 <上>

目录 一、如何进行关键词提取 1、关键词提取步骤 1&#xff09;数据收集 2&#xff09;数据准备 3&#xff09;模型建立 4&#xff09;模型结果统计 5&#xff09;TF-IDF分析 2、什么是语料库 3、如何进行中文分词 1&#xff09;导包 2&#xff09;导入分词库 3&#xff09…

今年读过最绝的大模型神书死磕这本大模型神书!看完直接脱胎换骨!!

书名&#x1f4d6;&#xff1a;《大语言模型&#xff1a;基础与前沿》 该书深入阐述了大语言模型&#xff08;Large Language Model, LLM&#xff09;的基本概念和算法、研究前沿以及应用&#xff0c;内容全面且系统性强&#xff0c;适合&#x1f468;&#x1f3fb;‍&#x1…

Prometheus + Grafana + nVisual 实现运维监控全面可视化

Prometheus主要实现采集、存储、查询设备数据指标、告警等功能&#xff1b;Grafana通过Prometheus的API以仪表板的形展示数据&#xff0c;同时在线提供了大量监测数据展示模版。然而&#xff0c;实际运维中我们不仅需要实时监测数据&#xff0c;还需要了解设备的物理位置、拓扑…

3.js - modelPosition.z = sin((modelPosition.x+uTime)*10.0)*0.05;

哈 1、完整的动态波纹效果吧 main.js import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls// 顶点着色器 import basicVertexShader from ./shader/11-01/raw/vertex.glsl?raw // 片元着色器 import basicFragmentShad…

使用docker安装jenkins,然后使用jenkins本地发版和远程发版

使用docker安装jenkins&#xff0c;然后使用jenkins本地发版和远程发版 1、安装docker 1.安装必要的一些系统工具 sudo yum install docker-ce 2.添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3.更新…

内推|京东|后端开发|运维|算法...|北京 更多岗位扫内推码了解,直接投递,跟踪进度

热招岗位 更多岗位欢迎扫描末尾二维码&#xff0c;小程序直接提交简历等面试。实时帮你查询面试进程。 安全运营中心研发工程师 岗位要求 1、本科及以上学历&#xff0c;3年以上的安全相关工作经验&#xff1b; 2、熟悉c/c、go编程语言之一、熟悉linux网络编程和系统编程 3、…