Raspberry Pi运行Arduino Sketch

2023-11-04

在本文中,您将学习如何在Raspberry Pi上运行为Arduino编写的sketch。 这将使我们能够将Arduino代码编译为可以在Raspberry Pi上运行的二进制文件。 但是在我们这样做之前,我们必须在Arduino IDE和Raspberry Pi上做一些准备。

硬件

软件

Arduino IDE设置

Raspberry Pi设置

基本示例:LED和控制台

理论已经足够,需要一些练习的时间! 我们将以最基本的Arduino功能开始工作:LED和串行输出。 我们将使用以下Arduino Sketch,这是经过稍微修改的“ Fading” Arduino示例。 使用PWM(脉冲宽度调制)设置LED亮度,并将当前的PWM值打印到控制台。

我们有了代码,现在我们需要将所有组件连接在一起。这里也没有什么复杂的,只有两个LED和10k电阻。

现在,所有控制台输出将出现在控制台中。 与其他任何终端程序一样,可以通过键盘快捷键Ctrl + C停止该程序。 我更喜欢手动上传,因为它不需要设置其他服务,并且通常更可靠(至少在我的设置下)。

使用以上两种方法之一上载sketch,并观察其中一个LED闪烁,另一个则逐渐淡入和淡出!

sketch还将当前的PWM值打印到控制台中,这就是输出的样子。

高级示例:SPI和I2C

显然,您可以通过闪烁的LED和控制台输出来完成出色的工作,但是我认为,当添加一些更高级的功能(例如I2C和SPI)时,您可以做的事情更多。 RasPiArduino框架也支持这些框架,因此我们可以使用I2C总线将Raspberry连接到许多不同的传感器,或者使用SPI总线连接到通信模块之类的东西。 对于I2C设备,我将使用ROHM传感器评估套件中的BH1745NUC颜色传感器,对于SPI设备,我将使用SX1278 LoRa模块。 它们都在3.3V逻辑上运行,因此将它们与Raspberry连接就像连接几根电线一样容易。

这就是电路的样子。它虽然不漂亮,但可以完成工作。

在此示例中,所有重要信息都被打印到Raspberry控制台。 我们可以看到SX1278成功接收到包含字符串“ Hello Raspberry!”的数据包。 (从Arduino通过LoRenz屏蔽发送),并且颜色传感器正在测量正确的值!

详情参阅 - 亚图跨际

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Raspberry Pi运行Arduino Sketch 的相关文章

  • Arduino 支持线程吗?

    我有几个任务需要用arduino来做 但其中一个需要很长时间 所以我想使用线程来同时运行它们 我有一个 Arduino Mega 更新 四年后 我终于可以在我的 arduino mega 上安装 FreeRTOS 这里有一个link htt
  • arduino安装DHT11库

    步骤操作如下 打开Arduino IDE 在菜单栏中选择 项目 gt 加载库 gt 管理库 在库管理器的搜索框中 输入 DHT sensor library 找到 DHT sensor library by Adafruit 点击 安装 安
  • 使用 Arduino 将serial.read()转换为可用的字符串

    我正在使用两个 Arduino 来相互发送纯文本字符串新软系列 https docs arduino cc learn built in libraries software serial and an RF http en wikiped
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • 使用 pySerial 等待 Arduino 自动重置

    我正在尝试在 Linux 上使用非常简单的代码 为了展示问题 从 Arduino 板上读取行 Python代码 arduino py import serial arduino serial Serial dev ttyACM0 with
  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • Arduino I2S 正弦波

    我正在开发一个项目 我想通过组合不同的正弦波来生成 简单 声音 我使用的是 arduino mkrZero 因为它内置了 I2S 接口 并且似乎有足够的处理能力来满足我的需求 I have wired my system exactly l
  • 如何将 char 数组定义为常量?

    这里是 C C 菜鸟 我已经在头文件中定义了它 typedef unsigned char BitChar 9 8 data bytes chars and one width byte char extern BitChar BitFon
  • 如何将值从 Arduino 发送到 Python,然后使用该值

    我正在构建一个使用 Python 进行远程控制的机器人 通过简单的 GUI 通过互联网发送控制消息 我的部分代码 GUI 和控制系统 运行得很好 但我陷入了困境 我正在尝试使用视差平传感器来获取与物体的距离信息Arduino Mega ht
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • 同时使用 GPRS 和 GSM

    我正在尝试使用 GSM GPRS 调制解调器的 GPRS 功能将数据发送到远程服务器 但我无法这样做 我在 Arduino 论坛上发布了一个问题 但没有得到任何回复 这是问题的链接 https robotics stackexchange
  • Arduino从SD卡读取最后一行

    我对 Arduino 业务还很陌生 如何从 SD 卡读取最后一行 通过以下代码片段 我可以读取第一行 n 之前的所有字符 现在我想添加一个 向后 声明 或其他内容 到目前为止我的代码 include
  • 在Python中快速绘制数据

    我正在尝试使用 arduino 绘制来自 mpu6050 imu 的数据 MPU6050 发送数据的速度比绘图快 Arduino 代码从串口提供 6 个数据 即偏航 俯仰 滚动 轴 ay 和 az 我需要快速情节的建议 Python代码 i
  • Arduino 上的 Serial 和 Stream 有什么区别,Serial.write 是如何实现的?

    我很难理解串行和流这两个术语之间的区别 串行不是流的一种吗 我对作业有一些我不明白的问题 计算机通过使用 流或串行 读取 彼此发送的数据来确定每个字节的含义 Also Serial write 我也很困惑 它返回一个字节的数据 对吗 一个字
  • 将浮点数转换为字节数组的 C 函数

    我正在尝试创建一个函数来接受浮点变量并将其转换为字节数组 我找到了一段有效的代码片段 但如果可能的话 希望在函数中重用它 我也在使用 Arduino 环境 但我知道它接受大多数 C 语言 目前工作 float variable 1 11 b
  • 如何在 Windows 上获取 Arduino 草图的汇编语言列表?

    我希望能够看到我的 Arduino 草图的汇编语言列表 我怎样才能实现这个目标 Update 我正在 Windows 机器上运行 Arduino 软件 一种方法是使用avr objdump on the elf构建创建的文件 例如 在 OS
  • Arduino C++ 析构函数?

    我知道在Arduino中你不能使用delete 那么什么时候调用 C 类中定义的析构函数呢 同样 如果我想创建一个指向数组的指针 我必须使用malloc and free 当对象被销毁时 析构函数被调用 对于自动 堆栈上 变量 它在离开其作
  • Arduino C++ 代码:可以使用虚函数和异常吗?

    跟进这条评论 https stackoverflow com questions 452139 writing firmware assembly or high level 452401从问题中编写固件 汇编还是高级 https stac
  • 在链接时合并全局数组/从多个编译单元填充全局数组

    我想定义一系列的东西 比如事件处理程序 的内容 该数组在编译时是完全已知的 但定义在 多个编译单元 分布在多个库中 至少在最终 静态 链接之前是相当解耦的 我想要 也保持这种方式 因此添加或删除编译单元将 还可以自动管理事件处理程序 而无需
  • ESP32:dsb1820 温度传感器给出恒定的负 127 读数

    我正在尝试使用连接到 esp32 微控制器的单个 dsb1820 温度传感器来获取温度读数 传感器连接到 esp32 的 GPIO 4 我打算将温度读数发送到云端 我面临的问题是温度读数总是给出值 127 我在网上某处读到 当 dsb182

随机推荐

  • 学会项目成本管理计算,PMP计算题就是送分题

    学会项目成本管理计算 PMP计算题就是送分题 PMP中的计算主要在 lt 项目成本管理 gt 的控制成本部分 服务于挣值管理 EVM Earned Value Management 挣值分析 EVA Earned Value Analysi
  • Android OpenGLES绘制yuv420纹理

    Android OpenGLES绘制yuv420纹理 曾大稳丶 关注 2018 07 16 11 31 字数 76 阅读 440评论 0喜欢 3 把shader代码写入raw里面 vertex shader glsl attribute v
  • keil编译错误:ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED

    出现这个错误 很多网上都说是没注册成功导致的 注册成功的话会在keil的菜单栏 help gt about 里看到如下的显示 我的keil里about显示注册成功了 但还是出现错误提示 ERROR L250 CODE SIZE LIMIT
  • AI 时代来临,这些 AI 工具让你的工作更加高效!

    在这篇文章中 我们将介绍一些有趣的人工智能应用 这些应用涵盖了不同的领域 包括图像生成 文本处理 决策辅助等 以下是这些应用的具体介绍和文本链接 AI 生成图标工具 iconifyai是一个AI生成App图标的产品 价格每15个图标约10美
  • codeforces 1186d D. Vus the Cossack and Numbers

    题意 和为0的n个double数 上下取整后和还为0的构造一个 首先都下取整 结果肯定 lt 0 和加起来再取绝对值num 则有num个数要上取整 那么小数部分为0的不变 不为0的挑num个上取整 其他的下取整 另外floor ceil r
  • JMM内存模型、JMM内存间交互操作

    主内存与工作内存 JMM内存间交互操作 关于主内存与工作内存之间具体的交互协议 即一个变量如何从主内存拷贝到工作内存 如何从工作内存同步回主内存这一类的实现细节 Java内存模型中定义了以下8种操作来完成 Java虚拟机实现时必须保证下面提
  • 配置接口IP地址并通过静态路由、默认路由配置实现全网互通!

    配置接口IP地址并通过静态路由 默认路由配置实现全网互通1 对Router R1 R3进行默认路由配置 R2为静态路由配置 2 配置好PC机的IP地址 子网
  • Can‘t use an undefined value as an ARRAY reference at probe2symbol

    Can t use an undefined value as an ARRAY reference at probe2symbol 有时间限制 过了时间就不行 把所有诸如if samp1e 5 gt 118 next 删掉 就可以了 这句
  • golang返回值为interface{}的类型判断

    大家知道 golang对于不确定返回值可以用interface 代替 这确实很方便 但是也带来了问题 那就是如何判断返回值是什么类型的 其实可以用反射也就是reflect来判断 通过函数 reflect TypeOf 1 即返回类型 本文参
  • Qt学习之二——QPushButton按钮用法

    目录 1 QPushButton按钮简介 2 三个构造函数 3 QPushButton常用属性 4 QPushButton常用方法 5 QPushButton按钮的信号与槽 1 QPushButton按钮简介 QPushButton是普通按
  • Vlc播放rtsp视频

    Vlc播放rtsp视频 网上的例子不少 我看后觉得有点不足的地方 就是他们没有设置播放rtsp视频时的参数 参数设置对播放网络视频是很重要的 如果设置不当 或不设置 可能你的程序就播放不了rtsp视频了 说下开发步骤吧 挺简单的 我的环境
  • 分布式消息队列RocketMQ&Kafka -- 消息的“顺序消费”-- 一个看似简单的复杂问题

    在说到消息中间件的时候 我们通常都会谈到一个特性 消息的顺序消费问题 这个问题看起来很简单 Producer发送消息1 2 3 Consumer按1 2 3 顺序消费 但实际情况却是 无论RocketMQ 还是Kafka 缺省都不保证消息的
  • 初学者怎样看懂代码_糖说:不懂代码的我们如何看代码?

    大家新年好啊 先给各位老板们拜个年 这两天写的大家不是很爱看 可能大家还是喜欢看一些故事性的东西 那么在以后的韭爷说里一定会加大对于故事板块儿的输出的 现在我们还是继续今天的内容吧 有始有终 不懂代码的我们如何看代码 这是一个问题 因为笔者
  • 【Android取证篇】华为设备无法识别解决方案

    Android取证篇 华为设备无法识别解决方案 以鸿蒙系统的开发者模式设置展示 和安卓的设置情况一样 suy 文章目录 Android取证篇 华为设备无法识别解决方案 华为设备无法识别 一 正常打开方式 1 开发者模式 2 USB配置 仅充
  • 最新ChatGPT网站AI系统源码+详细图文搭建教程/支持GPT4.0/AI绘画/H5端/Prompt知识库/

    一 前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统 本期针对源码系统整体测试下来非常完美 可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统 那么如何搭建部署AI创作ChatGPT
  • 2017-06-12 每日一记 Linux的root密码修改

    在ubuntu中 1 1 切换root用户 sudo su 然后输入sudo密码 su root 然后输入root密码 1 2 切换其他用户 su 用户名 修改root用户密码 需要记得sudo密码 首先sudo su 输入普通用户密码 进
  • 页面加载与iframe加载函数

  • 运算放大器基础知识

    文章目录 前言 一 运放内部电路原理 二 运放的参数和特性 1 输入输出特性曲线 2 主要参数 三 运放常用应用 1 加法器 2 减法器 3 读书电路和指数电路 4 乘法器和除法器 5 乘方和开平方根电路 6 积分电路 7 微分电路 8 P
  • Spring-Boot添加MyBatis:手动添加代码方式

    创建了一个MySQL数据库 并添加了一张表 添加MyBatis后 有两种使用方式 注解方式 简单快速 适合规模较小的数据库 xml配置方式 支持动态生成SQL 调整SQL更方便 适合大型数据库 无论哪种方式 都需要共同执行的前期工作 在po
  • Raspberry Pi运行Arduino Sketch

    在本文中 您将学习如何在Raspberry Pi上运行为Arduino编写的sketch 这将使我们能够将Arduino代码编译为可以在Raspberry Pi上运行的二进制文件 但是在我们这样做之前 我们必须在Arduino IDE和Ra