如何使用Python控制Arduino开发板

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硬件世界的绝佳入门,而无需花费时间来学习全新的编程语言。在这里玩得开心,如果您碰巧要建造一个杀手级机器人,请记住我们在早期如何为您提供帮助。


智慧工地AI机器人实现无接触测温
可燃气体与有毒气体探测器的设置应符合哪些规定
数字化转型知识方法系列之:数字化转型的基本认识与参考架构
智能电表怎样查用电量 智能电表哪个是剩余电量
水货笔记本局域网访问受阻
如何使用Python控制Arduino开发板
HTC推出号称世界最安全的路由器Exodus 5G Hub
CRIMSON项目启动:开发先进的激光相干拉曼散射显微镜
讯飞智能学习机兼具颜值与实力,辅导孩子学习的好帮手
荣耀手环4简评 帮助你监测信息状态的一大利器
如何用usb组建局域网
安捷伦一致性测试和设计验证系统支持LTE-A载波聚合
工业4.0下的工业网络通讯
简易蒸汽机制作方法
Molex 全新天线解决方案网站登场
浅谈地铁综合布线系统
Excelitas Technologies推出用于智能家居和入侵警报器的DigiPyro PYD 5731微型热释电探测器
VR虚拟现实迈入4K超清时代
英特尔宣布进军汽车AI芯片市场
高速数据采集神器来袭!Teledyne FLIR Forge-5G 24M相机助力工业成像应用