Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何复制pyserial向jUART的Arduino发送RGB值?_Javascript_Arduino Uno_Pyserial - Fatal编程技术网

Javascript 如何复制pyserial向jUART的Arduino发送RGB值?

Javascript 如何复制pyserial向jUART的Arduino发送RGB值?,javascript,arduino-uno,pyserial,Javascript,Arduino Uno,Pyserial,我在本地运行的Python应用程序中使用以下命令将RGB值发送到Arduino: import serial import struct ser = serial.Serial('/dev/ttyACM0', 9600) ser.write(struct.pack('>3B', red_value, green_value, blue_value)) # where the rgb values are ints like 77,75, 0 我现在想从一个非本地网站上实现这个功能

我在本地运行的Python应用程序中使用以下命令将RGB值发送到Arduino:

import serial
import struct

ser = serial.Serial('/dev/ttyACM0', 9600)

ser.write(struct.pack('>3B', red_value, green_value, blue_value))

# where the rgb values are ints like 77,75, 0
我现在想从一个非本地网站上实现这个功能

似乎是为此目的而设计的,即:

用于从中进行串行端口通信的跨平台浏览器插件 JavaScript

它要求用户为他们正在使用的系统和浏览器创建插件

我已经尽我所能地遵循了它们的说明,但我对参数的理解还不足以定义它们的值,而且我以前也没有做过浏览器插件,所以我不确定是否遗漏了什么

我正在使用Ubuntu的
16.04
Firefox48
并复制了:

致:

HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Serial Test</title>
<script src="serial.js"></script>
</head>
<body>

</body>
</html>
问题

01)上述Javascript中的空值应该是什么

02)我是否还需要按照
进行构建

03)我还需要做什么才能让jUART复制上面显示的原始
pyserial
程序

编辑:

根据用户建议查看pyserial默认值,然后复制它们,它们似乎在这里:

因此,胡亚特变量可能是:

var baud = 9600;
var parity = 0;
var csize = 8; // based on user comment
var flow = 0; // based on user comment
var stop = 0;
当我用
js
文件中的上述值打开
html
文件时,我在Firebug中得到以下信息:

ReferenceError:未定义插件

Arduino草图:(供参考)


查看文档,您唯一错过的就是将插件添加到插件目录。将已经编译好的插件从git复制到~/.mozilla/插件/而不是~/.mozilla/扩展

查看文档,唯一遗漏的是将插件添加到插件目录。将已经编译好的插件从git复制到~/.mozilla/插件/而不是~/.mozilla/扩展

,基于python代码,波特显然是9600。所有其他值在pyserial中都是默认值。阅读pyserial文档,了解默认奇偶校验位和停止位是什么。除非使用流控制,否则流控制通常为无。数据大小(csize)通常是8位,除非你真的在和一个非常旧的7位设备说话。根据python代码,波特率显然是9600。所有其他值在pyserial中都是默认值。阅读pyserial文档,了解默认奇偶校验位和停止位是什么。除非使用流控制,否则流控制通常为无。数据大小(csize)通常为8位,除非您真的在与非常旧的7位设备通信。
//Get a Serial object
var ser = plugin().Serial;

// Open a port
ser.open("/dev/ttyACM0");

// Set port options
/*
baud: Baud rate

parity: 0->none, 1->odd, 2->even

csize: 5 6 7 8

flow: 0->none, 1->software, 2->hardware

stop: 0->one, 1->onepointfive, 2->two
*/

var baud = "";
var parity = "";
var csize = "";
var flow = "";
var stop = "";

ser.set_option(baud, parity, csize, flow, stop);

// Send a byte to serial port
char = "";

ser.send(char);
__init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None)
var baud = 9600;
var parity = 0;
var csize = 8; // based on user comment
var flow = 0; // based on user comment
var stop = 0;
// digital output pin numbers
const int digitalOutputPinForRedLED = 9;
const int digitalOutputPinForGreenLED = 10;
const int digitalOutputPinForBlueLED = 11;

// global variables
int valueOfRed = 0;
int valueOfGreen = 0;
int valueOfBlue = 0;
int x = 1;

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 

  // set digital pin modes
  pinMode(digitalOutputPinForRedLED,OUTPUT);
  pinMode(digitalOutputPinForGreenLED,OUTPUT);
  pinMode(digitalOutputPinForBlueLED,OUTPUT);
}

void loop() {

  if (Serial.available()) {
    if (x==1) {
     valueOfRed = Serial.read();
     Serial.print("Red: ");
     Serial.println(valueOfRed);
     analogWrite(digitalOutputPinForRedLED, valueOfRed);
   }
    else if (x==2) {
     valueOfGreen = Serial.read();
     Serial.print("Green: ");
     Serial.println(valueOfGreen);
     analogWrite(digitalOutputPinForGreenLED, valueOfGreen);
   }
    else if (x==3) {
     valueOfBlue = Serial.read();
     Serial.print("Blue: ");
     Serial.println(valueOfBlue);
     analogWrite(digitalOutputPinForBlueLED, valueOfBlue);
   }
   x++;
 }
    else {
      x = 1; 
     }
delay(1);
}