arduino 串口JSON指令发送
来源:互联网 发布:怎么判别淘宝托管被骗 编辑:程序博客网 时间:2024/06/06 02:32
http://www.geek-workshop.com/thread-3407-1-1.html
我是一个PHP 程序员,休闲的时候也谢谢python ,小时候就很喜欢电子产品,现在发现了arduino真是太高兴了,休息的时间又可以有个东西玩玩了,但是写惯了PHP 在回来写C发现真是心有余力不足,好吧废话不多说了,最近准备弄个小车,可过年时预定的零件还不能马上发到货,于是先写个伪代码吧,首先我想到的就是和串口的数据交互问题,看了好多文章都不是我想要的做法,由于常使用JSON 我对JSON 还是很有把握的于是找到了aJSON这个库,看了DEMO觉得这个真是太棒了,写了点代码基本实现了我想要的参数传递。小弟新手请大家多多指教。
实现要求
参数传递(由PYTHON 或 processing 通过串口发送给ARDUINO) 格式:{"motor":{"left":100, "right":20}, "servo":{"servo_1":90}}
基本的想法就是想把数据结构化些,并且JSON 好多语言也有支持,实在不行构造也简单,下面的代码只实现了简单的几个参数
{
"motor":{
"left":100,
"right":20
},
"servo":{
"servo_1":90
}
}
当然也可以加更多例如
{
"motor":{
"left":100,
"right":20
},
"servo":{
"servo_1":90,
"servo_2":40,
"servo_3":20,
},
"led":{
"led_1":1,
"led_2":0,
"led_3":1,
},
"test":"xxx"
}
代码如下:
#include <aJSON.h> aJsonStream serial_stream(&Serial); void setup() { Serial.begin(9600); } void loop() { if (serial_stream.available()) { /* First, skip any accidental whitespace like newlines. */ serial_stream.skip(); } if (serial_stream.available()) { /* Something real on input, let's take a look. */ aJsonObject *msg = aJson.parse(&serial_stream); ComExecution(msg); aJson.deleteItem(msg); } } void ComExecution(aJsonObject *msg) { aJsonObject *motor = aJson.getObjectItem(msg, "motor");//电动机指令速度 if (motor) { //电机参数存在 aJsonObject *motor_left = aJson.getObjectItem(motor, "left"); //左速度 aJsonObject *motor_right = aJson.getObjectItem(motor, "right");//右速度 if(motor_left) { //左侧电机功能 // Serial.println(motor_left->valueint);//速度为整型值 //Serial.println(motor_left->valuestring);//字符串 } if(motor_right) { //右侧电机功能 // Serial.println(motor_right->valueint); } } aJsonObject *servo = aJson.getObjectItem(msg, "servo");//舵机指令角度 if(servo) { //舵机参数存在 aJsonObject *servo_1 = aJson.getObjectItem(servo, "servo_1"); if (servo_1) { //舵机1的功能 // Serial.println(servo_1->valueint); } } }
aJSON.zip
21.33 KB, 下载次数: 259
- arduino 串口JSON指令发送
- Arduino通过串口发送结构体
- Arduino通过串口发送结构体
- 通过串口发送mavlink指令
- 通过串口使用AT指令发送短消息
- C# 串口短信发送工具 AT指令
- GPS控制指令-串口发送控制指令选择输出格式
- 通过串口和AT指令来发送短信
- 通过串口使用AT指令发送短消息(上)
- 通过串口使用AT指令发送短消息(下)
- 通过串口使用AT指令发送短消息(上)
- 通过串口使用AT指令发送短消息(下)
- AT指令对串口CDMA短信设备发送短信
- Linux串口编程(向空调发送十六进制指令)
- Arduino Mega_ADK 串口
- Arduino串口的使用
- Arduino的串口
- Arduino 串口通讯
- struts2学习74-79
- 关于Spring定时任务
- activity启动模式
- 借助LVS+Keepalived实现负载均衡
- linux传输文件sftp
- arduino 串口JSON指令发送
- HTML日期最小值
- 掌握 Ajax第一部分
- Ant 教程经典
- 为什么我们可以在非UI线程中更新UI
- 第三届蓝桥杯预赛c++b组
- DBFlow 学习笔记(一)
- build工具的基本原理
- 打印十字图