我想从Arduino开始制作一些能够(最好)调暗房间灯光的东西,并在按钮或开关被激活时为我的电脑打开一些隐藏式照明.
首先,Arduino甚至可以实现这一点吗?
其次,我如何用它打开和关闭真实灯光?也许某种接力?
有没有人知道一个好的教程或至少部分内容涵盖的东西?我对编程没有任何问题,只是不知道从哪里开始使用硬件.
显然,使用Android 2.3.4和3.1,现在可以访问USB配件.
我有一个Ardupilot Mega(基于Arduino)板,USB线连接到我的笔记本电脑,我可以通过COM7和115,200波特的简单串行通信程序连接到它.这允许我进入命令行界面,我可以发出命令并获取日志.
是否有可能编写一个通过USB与我的Ardupilot Mega板通信的Android应用程序?
我见过很多类似的线程,但大多数都是预先USB主机.
我正在为我的机器人从9个不同的传感器读取数据,我需要在同一个窗口中稳定地显示它们,这样我就可以比较这些值,看看是否有任何读数都关闭了.
我在Serial.print和lcd.print上遇到的问题是值不断移动,在移动机器人时我无法真正看到它们.
我想在显示任何其他东西之前调用类似Serial.clear()的东西,这样可以保持稳定并在一个地方,只改变值.
从我到目前为止发现的,不再支持Serial.print(17,BYTE)(调用ESC键).
那么......对于那些有更多Arduino经验的人来说......这样做的正确方法是什么?
基本上,我希望实现的是基于画布的Web界面,通过Raspberry Pi控制Arduino.的使用情况下是用户导航到其显示画布.然后在移动滑块时,将websocket消息发送到Raspberry Pi上的Tornado服务器.Tornado然后向Arduino发送一条串行消息,改变LED的RGB值.到目前为止,我已经能够在开发人员Raspberry Pi Android HTML5实时伺服控制的文档的帮助下做到这一点.raspberrypi:8080
但是,通信只是从Raspberry Pi到Arduino的单向通信.我希望Tornado能够监控串口以将任何传感器数据恢复到前端.这是我不确定如何继续的地方.我能够使用Node.js来完成这样的事情,Node.js同时监视websocket消息和串行消息.
是否应该生成一个不断监视端口的异步进程?我已经看到了这种解决方案的几种选择.
tornado.gen.Task,但对于单个HTTP请求,不是针对常量串行数据.tornado.ioloop.PeriodicCallback 我可以设置每毫秒检查一次串行数据,但这听起来像很多开销.或者我应该设置一个单独的Python应用程序来监视串行,然后与Tornado应用程序通信,它可以理解如下所示的内容?
所以有很多选择......有哪些建议和一些理由可以尝试或避免上述任何选项?
这就是我所需要的,并且需要将串行监控添加到:
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.websocket
from tornado.options import define, options
define("port", default=8080, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def …Run Code Online (Sandbox Code Playgroud) 我正在将数据发送到带有Arduino的服务器,这需要逐行构建HTML POST.我不一定知道Content-Length a-priori,所以我使用"chunked"编码.
当我尝试使用rfc2616中指定的"Transfer-Encoding"选项从Wikipedia发布此示例帖子时
client.println("POST /myurl HTTP/1.1");
client.println("Host: 12.345.679.999"); // replaced with the test server's IP
client.println("User-Agent: Arduino/1.0");
client.println("Transfer-Encoding: chunked");
client.println();
client.println("4");
client.println("test");
client.println("0");
client.println();
Run Code Online (Sandbox Code Playgroud)
或者,使用转义字符显式:
client.print("4\r\ntest\r\n0\r\n\r\n");
Run Code Online (Sandbox Code Playgroud)
我从服务器收到错误:
HTTP/1.1 411 Length Required
A request of the requested method POST requires a valid Content-length.
Server: Apache/2.2.22 (Ubuntu)
Run Code Online (Sandbox Code Playgroud)
但是,"chunked"编码不应该要求Content-Length头字段,请参阅rfc2616中的4.4 - 消息长度
我错过了一个领域吗?为什么这个电话不起作用?
为了记录,非Chunked-Encoding工作:
if(client.connect(server, 80)){
String PostData = "test";
Serial.println("POST /myurl HTTP/1.1");
client.println("Host: 12.345.679.999"); // replaced with the test server's IP
Serial.println("User-Agent: Arduino/1.0"); …Run Code Online (Sandbox Code Playgroud) 我一直在研究微控制器,并想知道它们中的大多数是否基于C/C++?我非常精通java,并且想问你们,如果有人知道我可以研究一个性价比很高的基于java的微控制器.
感谢所有答案!
关于到期yield()日,Arduino文档在https://www.arduino.cc/en/Reference/Scheduler上解释.显然它是Scheduler库的一部分:
#include <Scheduler.h>
Run Code Online (Sandbox Code Playgroud)
但是,我可以调用yield()我的Nano或ESP8266而不包括Scheduler lib - 但仅限于我的主程序,而不是包含文件.此外,包含不适用于我的非会费.
我错过了yield()什么秘密,或者yield()除了Due之外在Arduino平台上做了什么?
有没有人知道用手机控制Arduino Mega ADK的好介绍?我想做的就是使用一个非常基本的拨动开关应用控制引脚13上的LED.
编辑26/10/11:
http://labs.arduino.cc/ADK/Index
http://jeffreysambells.com/posts/2011/05/17/understanding-the-demokit-pde-arduino-sketch/
https://github.com/deadfalkon/HelloADK
现在我遇到了让我的Galaxy S2以配件模式连接的问题......
编辑27/10/11
http://sgccare.blogspot.com/2011/10/first-arduino-and-android-setup.html
我已经将ADH8066(Sparkfun)GSM模块连接到我的Arduino Uno,我正试图在Arduino和GSM模块之间进行正确的串行连接.当我直接(通过USB或只是TTL线)连接它时它工作正常,但是当通过Arduino控制时却没有.一些文本将正确输出,其余文本将出现乱码,几乎就像波特率错误一样,但我只是使用与从PC连接时相同的波特率(115200).
这是我正在使用的Arduino代码:
#include <SoftwareSerial.h>
#define rxPin 7
#define txPin 8
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
// EN: String buffer for the GPRS shield message
String SmsStorePos = String("");
String msg = String("");
String snTmp = String("");
String snFull = String("");
// EN: Set to 1 when the next GPRS shield message will contains the SMS message
int SmsContentFlag = 0;
// EN: Pin of the LED to turn ON and OFF depending on the received message
int ledPin = …Run Code Online (Sandbox Code Playgroud) arduino ×10
android ×2
adk ×1
arduino-ide ×1
automation ×1
c++ ×1
clear ×1
embedded ×1
erase ×1
esp8266 ×1
firmware ×1
http ×1
http-error ×1
http-headers ×1
http-post ×1
jarduino ×1
raspberry-pi ×1
refresh ×1
serial-port ×1
terminal ×1
tornado ×1
usb ×1
websocket ×1