0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Python控制Arduino开发板

454398 来源:网络整理 作者:网络整理 2019-11-28 17:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Arduino板是进入程序员的硬件黑客体系的最简单方法之一。那里有大量的初学者项目,几乎适合具有编程背景的任何人。即便如此,对于那些时间较短的人来说,入门似乎也令人生畏。

学习一门全新的语言来尝试微控制器似乎是一项艰巨的工作。如果您想以您已经熟悉的程序语言开始尝试自制的电子产品怎么办?好消息:您可以!

我们已经向您展示了如何使用Python控制Arduino开发板,今天我们将向您展示如何使用JavaScript进行操作。今天,我们不仅使用最基本的LED闪烁教程,还使用Johnny-Five框架通过计算机键盘来控制伺服器,这些键盘均使用JavaScript编程。

硬件列表

对于该项目将需要:

Arduino Uno(或兼容板):官方商店的价格为22美元,尽管您可以更便宜地购买它们,克隆板在AliExpress上的价格仅为3.20美元。 li》

业余爱好伺服器:任何一家业余爱好商店兼容Arduino的伺服器都可以,我使用的是速卖通提供的$ 1.60伺服器。

几根连接线

USB电缆:用于将Arduino连接到计算机

今天的教程将使用Arduino Uno板。我们将在本项目稍后使用的Johnny-Five框架支持大多数与Arduino兼容的微控制器,尽管您的电路板将需要具有PWM功能才能使伺服器满意。

电路设置

将伺服器这样连接到Arduino:

简而言之,VCC线( RED )连接到5v引脚Arduino的GND线( BLACK 或 BROWN )连接到Arduino的GND引脚和Pulse线( Yellow 或橙色)连接到Arduino的引脚10。请注意,虽然您不必将其专门连接到引脚10,但必须将其连接到PWM引脚,通常用〜表示。

仔细检查您没有混用上所有电线,然后将Arduino连接到您的计算机。我们将为此项目使用Windows 10。该项目的所有元素也都适用于Mac和Linux,尽管某些安装说明可能略有不同。

如果尚未安装,请下载Arduino IDE并选择您的 Board 和端口从工具菜单中。如果这是您第一次这样做,而且有点神秘,那么我们的Arduino初学者指南可以帮助您完成这些步骤。

连接好后,将 StandardFirmataPlus 示例草图上传到板上。您可以在示例》固件》 StandardFirmataPlus 下的文件菜单中找到此草图。您根本不需要修改草图,它实际上只是将Arduino设置为等待外部指令,稍后我们将为您提供这些指令。

带有Johnny-Five的JavaScript机器人技术

我们将使用Javascript控制Arduino的框架称为Johnny-Five。毫不奇怪,考虑到电影的名字,该项目适合与机器人技术合作。

《图id =“ attachment_731830” aria- describeby =“ caption-attachment-731830” class =“ wp-caption aligncenter”》

图片来源:johnny-five.io

要安装Johnny-Five,我们必须首先安装Node.js。您可以从Node.js网站下载其最新版本。我们使用的是推荐的发行版,在撰写本文时为 8.9.4 LTS 。

打开 .msi 文件并按照安装说明进行操作,确保将其添加到您的 PATH 中。当前的Node.js安装程序将PATH作为标准添加,尽管值得在安装过程中进行检查,因为这是下一步所需的操作。

安装完成后,我们将可以从Windows命令行(CMD)访问 Node Package Manager (NPM)软件包管理器。点击开始,然后输入CMD。在继续之前,我们需要初始化NPM以防止可能的安装错误。不需要任何专业知识,只需键入:

npm init

按照屏幕上的提示进行操作。对于今天的项目,您无需进行任何更改,只需按Enter直到返回命令提示符,然后键入:

npm install johnny-five

这将安装所有重要的软件包,其中将与我们的Arduino交谈。要使该项目正常工作,我们还需要另外一件事,那就是 Keypress 软件包,该软件包将允许我们从键盘上读取击键。

通过输入以下内容进行安装:

npm install keypress

一旦安装了所有这些软件包,我们就可以编写代码!

如果在安装过程中遇到任何问题,请尝试运行johnny-five 之后再次安装。可能只是这里使用的NPM版本的一个古怪之处,但是现在这样做可以防止您以后像我一样遇到问题。

代码

我们将使用今天约翰尼五公司文档中提供的一部分示例代码,该代码允许使用键盘上的箭头键控制我们的伺服系统。完整的代码可在johnny-five.io上找到,但是我们将在这里详细介绍它,以完全理解它的工作原理

我们现在使用Eclipse IDE进行编码,尽管您可以使用任何IDE

创建一个新文件并将其命名为test.js,并将其保存在以后可以从命令行轻松访问的位置。该脚本首先为所需的库创建变量,并初始化 Keypress 库以侦听传入的数据,然后调用 Board()方法来设置板。/p》 var five = require(“johnny-five”);

var keypress = require(“keypress”);

keypress(process.stdin);

var board = new five.Board();

请注意,此处的板卡设置是自动的,无需指定端口。如果您有特定的端口设置,或者在自动检测方面没有运气,则可能需要明确指定端口。

下一步,我们要“唤醒”主板并进行设置用于伺服控制。调用 board.on 会一直等到Arduino引脚准备就绪后再继续。约翰尼-五图书馆支持内置的伺服器,我们在引脚10上调用 Servo.Continuous(10)以允许直接控制。

board.on(“ready”, function() {

console.log(“Use Up and Down arrows for CW and CCW respectively. Space to stop.”);

var servo = new five.Servo.Continuous(10);

process.stdin.resume();

process.stdin.setEncoding(“utf8”);

process.stdin.setRawMode(true);

process.stdin 调用可确保我们从键盘接收的所有数据将在下一个代码块中可用。现在,我们要“监听”按键,并使用它们来顺时针(CW),逆时针(CCW)移动伺服器或停止其轨迹。

process.stdin.on(“keypress”, function(ch, key) {

if (!key) { // if no key is pressed, return i.e do nothing.

return;

}

if (key.name === “q”) {

console.log(“Quitting”);

process.exit();

} else if (key.name === “up”) {

console.log(“CW”);

servo.cw();

} else if (key.name === “down”) {

console.log(“CCW”);

servo.ccw();

} else if (key.name === “space”) {

console.log(“Stopping”);

servo.stop();

}

});

});

制作确保在此处底部包括所有右方括号,如果遇到任何错误,请参考上面链接的整个代码块。保存此脚本,然后打开命令提示符。

挥动您好!

现在导航至保存脚本的目录,然后键入以下内容以运行该脚本:

node test.js

在给您代码中说明的指示之前,程序应立即使用有关主板的信息启动。尝试按上下箭头键,空格键和 Q 退出。屏幕应该看起来像这样:

一切都很好,伺服器应该随着您的击键跳动!看看那小小的野兽浪!

卑微的起头

尽管承担的项目比通常的初学者闪烁的LED稍大一些在教程中,我们几乎没有涉及到Arduino开发板和类似微控制器可以完成的全部工作。

经验丰富的JavaScript用户应该可以直观地使用Johnny-Five软件包。该库也可以本地安装在Raspberry Pi上,使其成为萌芽的机器人制造商的理想软件包。

该库的优点在于,尽管它是为机器人而设计的,但输入和输出相同数据可用于创建DIY智能家居设置,甚至是家庭自制的安全系统。

通过这种方式与微控制器进行通讯,是DIY硬件世界的绝佳入门,而无需花费时间来学习全新的编程语言。在这里玩得开心,如果您碰巧要建造一个杀手级机器人,请记住我们在早期如何为您提供帮助。
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89598
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195990
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32 Nucleo-144开发板技术解析与应用指南

    。 STMicroelectronics开发板支持多种连接选项,包括Arduino、ST Zio和Morpho,同时集成了开关模式电源(SMPS),可实现高效的电源管理。该非常适合用于测试不同的性能和功耗配置,因此成为探索想
    的头像 发表于 10-17 14:40 539次阅读
    STM32 Nucleo-144<b class='flag-5'>开发板</b>技术解析与应用指南

    ‌STM32 Nucleo-64开发板技术解析与应用指南

    STMicroelectronics -C051C8 STM32 Nucleo-64开发板通过由STM32微控制器为概念测试和原型创建提供了一种经济实惠且灵活的途径。该开发板支持ARDUINO
    的头像 发表于 10-16 10:50 411次阅读
    ‌STM32 Nucleo-64<b class='flag-5'>开发板</b>技术解析与应用指南

    ‌PIC32CZ CA70 Curiosity Ultra开发板用户指南总结

    控制器 (MCU)。该开发板集成编程器或调试器,无需额外硬件。PIC32CZ CA70开发板配备Arduino Uno R3兼容接口和Xplained Pro扩展兼容接口。此
    的头像 发表于 09-28 14:43 453次阅读
    ‌PIC32CZ CA70 Curiosity Ultra<b class='flag-5'>开发板</b>用户指南总结

    CW32L011电机驱动控制开发板-软件

    CW32L011电机驱动控制开发板-软件分析 衔接上一个硬件
    的头像 发表于 08-13 10:44 761次阅读
    CW32L011电机驱动<b class='flag-5'>控制</b><b class='flag-5'>开发板</b>-软件

    CW32L011电机驱动电机控制开发板-硬件1

    CW32L011电机驱动电机控制开发板-硬件介绍 后面有软件分析
    的头像 发表于 08-12 14:20 3618次阅读
    CW32L011电机驱动电机<b class='flag-5'>控制</b><b class='flag-5'>开发板</b>-硬件1

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino
    的头像 发表于 08-08 20:16 3071次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>重新烧录引导程序bootlaoder

    ESP32开发板元件资料

    ESP32开发板元件
    发表于 07-21 14:47 14次下载

    【Milk-V Duo S 开发板免费体验】Milk-V DuoS之使用Arduino开发小核

    的 Linux 系统也是正常运行的。 另外,Duo 系列开发板已经支持可视化编程软件 VISUINO 安装及配置Arduino开发环境 下载Arduino IDE 下载最新版的
    发表于 07-17 21:01

    【BPI-CanMV-K230D-Zero开发板体验】+灯效控制Python编程

    ,在学习Python编程的基础上通过GPIO来实现LED灯的控制。 在开发板上,仅有的2个可供GPIO控制的器件是RGB_LED和按键,其中RGB_LED的电路如图1所示。 但要点亮W
    发表于 06-27 17:33

    有ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙派开发板

    最近我发现一个有趣的开发板。这个开发板集合了ARM核心,NPU核心甚至还有FPGA核心。它就是米尔新出的YM90X开发板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所科创
    的头像 发表于 06-13 08:03 1369次阅读
    有ARM,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙派<b class='flag-5'>开发板</b>

    【新品】远距离图传数传模块开发板、蓝牙模块开发板、无线模块开发板

    新品上市图传数传模块开发板蓝牙模块开发板国产无线模块开发板部分型号参与送样文末了解详情↓↓↓EWT611-900NW20S远距离图传数传模块开发板EWT611-900NW20S是一款入
    的头像 发表于 06-12 19:33 904次阅读
    【新品】远距离图传数传模块<b class='flag-5'>开发板</b>、蓝牙模块<b class='flag-5'>开发板</b>、无线模块<b class='flag-5'>开发板</b>

    STM32开发板一般都会配置arduino接口,是不是基本上也都会支持arduino

    STM32开发板一般都会配置arduino接口,是不是基本上也都会支持arduino?这个在哪里可以查询开发板是否支持
    发表于 03-07 06:33

    用AI人脸识别开发板BW21-CBV-Kit驱动墨水屏

    试着用BW21-CBV-Kit点亮2.9寸墨水屏,开发板例程非常丰富,在arduino开发的话上手超级容易。
    的头像 发表于 03-04 18:24 1537次阅读
    用AI人脸识别<b class='flag-5'>开发板</b>BW21-CBV-Kit驱动墨水屏

    通过Arduino Nano Matter开发板构建智能卷帘系统

    在本指南中,您将学习如何通过Arduino NanoMatter开发板上的Silicon Labs(芯科科技)MGM240S多协议无线模块来构建一个智能卷帘系统。该系统可通过 Amazon
    的头像 发表于 02-28 09:46 924次阅读
    通过<b class='flag-5'>Arduino</b> Nano Matter<b class='flag-5'>开发板</b>构建智能卷帘系统

    Arduino Nano Matter开发板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter开发板现已正式上市。这是延续今年3 月芯科科技和Arduino释出
    的头像 发表于 12-10 13:50 1434次阅读