Arduino无线下载套件免费申请试用-Arduino中文社区 - Powered by Discuz! Archiver

syl312 发表于 2016-8-22 09:26

Arduino无线下载套件免费申请试用


Arduino无线下载套件介绍:             这是一个无线串口下载arduino主板程序的工具。还可以调试程序,制作无线类传输产品,实现无线串口透明传输。使用过arduino的用户都知道,给主板在下载程序时,需要用到一根带复位功能的USB转串口线,而程序不是一次便调试好了,需要反复修改,反复下载,而这根串口线给用户带来了极大的不便,现在有更好的解决办法了――无线下载。      无线下载套件参与方式:      提供使用无线套件完成特定功能的想法并实现(不要求难度,创意越好,机率越大),收到套件后在规定时间将想法实现并发表说明帖子,参考了哪些资料,可以让初学者理解。活动时间:20套无线套件申请完为止。名单公布:
      1、最终入选的20个最佳项目创意,会在本帖中公布。
      2、成功入选的用户:1、在Arduino中文社区没有发布过精华帖的用户,需缴纳保证金(保证金为¥50),在完成项目后退还。在Arduino中文社区发布过精华帖的用户,提供精华帖的链接即可,无须缴纳保证金。    3、快递费自理,顺丰或者天天快递都可以。活动奖品:      1、按申请要求完成相关内容后,免费赠送无线下载套件。
      2、未申请成功跟贴用户凭ID可8折购买。视频演示:http://v.youku.com/v_show/id_XMTY5NjMxMDU2OA==.html说明:20套Arduino无线下载套件由@alleazy 提供,感谢对社区的支持~



syl312 发表于 2016-8-22 09:26

1、视频例程讲解请参考2L.

alleazy 发表于 2016-8-22 09:30

本帖最后由 alleazy 于 2016-8-23 20:12 编辑

谢谢syl312审核通过发表,注明一下,此次活动发货日期定为9月1号之后

想参与免费赠送试用的,可以先提交自己的想法,比如计划用本套件做一个什么功能的东东,不要求难度,创意好可以加分,开动脑筋吧
我们已经将无线转化为串口形式来传输数据,不需要去了解无线底层的操作,串口发什么另一边就收什么,而且是单工双向传输的,


视频中的例程是简单获取串口数据,然后对获取到的数据进行分析计算得出结果,例程用到了比较多的串口函数,
函数说明可以参考http://blog.csdn.net/iracer/article/details/50334041
代码如下:

float val1 = 0;                  // val1+val2=val3 val1 val2 val3三个变量用来存储加数与结果   
float val2 = 0;                  // 也可能是加法减法乘法 除法   
float val3 = 0;                  // 下面称val1为第一变量   val2为第二变量val3为结果变量
byte symbol = 0;                   // 运算标记   用来标记是哪种运算
byte dateLongBuffer = {0};   // 从串口读取到的数据存在这个数组当中
byte receiveCnt = 0;               // 串口接收了多少字节
byte dateBuffer1 = {0};      // 将dateLongBuffer数组的第一个变量的ASCII码搬运到这个数组中
byte charNumbers1 = 0;             // 第一个变量占用多少字节   如果是123则占3字节如果是4567则是四字节
byte dateBuffer2 = {0};      // 将dateLongBuffer数组的第二个变量的ASCII码搬运到这个数组中
byte charNumbers2 = 0;             // 第二个变量占用多少字节

/*
* 程序启动初始化注意波特率匹配   
*/
void setup() {
      Serial.begin(57600);   // opens serial port, sets data rate to 57600 bps
      Serial.println("Hello, I'm a robot, nice to meet you.");
}
/*
* 从指定长度的ASCII码转化成十进制INT型变量
*/
int getInt(unsigned char *pucData, unsigned char ucLength)
{
    unsigned char i = 0;
    int valTemp = 0;
    String stringCopy = "";
    for (i = 0; i < ucLength; i++) {
       stringCopy += (char)pucData;      // 拷贝字符串数据
    }
    valTemp = stringCopy.toInt();         // 这是一个将字符串变量转化变INT变量的函数
    return valTemp;                         // 将结果返回
}
/*
* 为了程序的整洁 将数据变换过程放到此函数中
*/
void analyseData(void)
{
   byte i = 0;
   byte receiveDataTemp = 0;
   // 将各变量初始化为0
   symbol = 0;
   charNumbers1 = 0;
   charNumbers2 = 0;
   for (i = 0; i < 10; i++) {
         dateBuffer1 = 0;
         dateBuffer2 = 0;
   }
   // 对串口数据逐个分析
   for (i = 0; i < receiveCnt; i++) {
         receiveDataTemp = dateLongBuffer; //
         if ((receiveDataTemp >= '0' && receiveDataTemp <= '9')) {// 判断数据是否为0~9的ASCII码
            if (symbol == 0) { // symbol = 0说明还没有遇到运算符号应拷贝第一个变量
                  dateBuffer1 = receiveDataTemp; // 复制数据1
            } else {         // symbol != 0说明已经遇到运算符号应拷贝第二个变量
                  dateBuffer2 = receiveDataTemp; // 复制数据2
            }
          } else if (receiveDataTemp == '+'){
            symbol = '+';                                  // 记录运算符号
            val1 = getInt(dateBuffer1, charNumbers1);
          } else if(receiveDataTemp == '-') {
            symbol = '-';
            val1 = getInt(dateBuffer1, charNumbers1);
          } else if(receiveDataTemp == '*') {
            symbol = 'x';
            val1 = getInt(dateBuffer1, charNumbers1);
          } else if(receiveDataTemp == '/') {
            symbol = 'c';
            val1 = getInt(dateBuffer1, charNumbers1);
          } else if ((receiveDataTemp == '=')&& symbol != 0) { // 判断运算结束符号 '=' 将结果运算并打印出来
            val2 = getInt(dateBuffer2, charNumbers2);
            Serial.println("I got the answer");
            switch (symbol) {
                  case '+':
                      val3 = val1 + val2;
                      Serial.print(val1,DEC);
                      Serial.print(" + ");
                      Serial.print(val2,DEC);
                      Serial.print(" = ");
                      Serial.println(val3,DEC);
                  
                  break;
                  case '-':
                      val3 = val1 - val2;
                      Serial.print(val1,DEC);
                      Serial.print(" - ");
                      Serial.print(val2,DEC);
                      Serial.print(" = ");
                      Serial.println(val3,DEC);
                  break;
                  case 'x':
                      val3 = val1 * val2;
                     Serial.print(val1,DEC);
                      Serial.print(" * ");
                      Serial.print(val2,DEC);
                      Serial.print(" = ");
                      Serial.println(val3,DEC);
                  break;
                  case 'c':
                      val3 = val1 / val2;
                      Serial.print(val1,DEC);
                      Serial.print(" / ");
                      Serial.print(val2,DEC);
                      Serial.print(" = ");
                      Serial.println(val3,DEC);
                  break;
            }
            symbol = 0xFF;
          } else {
            symbol = 0; // 遇到无效字符,退出 做标记
            break;
          }
   }
   // 如果symbol不为0xFF 则说明运算不成功给出提示
   if (symbol != 0xFF) {
          Serial.println("You are kidding me");
          Serial.println("You can enter this data: xx...xx+xx...xx=");
   }
}


void loop() {
      if (Serial.available()) {                                    // 判断串口是否有数据   如果有数据则等待100ms   数据接收完成
                delay(100);                                             // 等待数据接收完成
                receiveCnt = Serial.available();                     // 读取串口数据个数
                Serial.readBytes(dateLongBuffer,receiveCnt);         // 从串口读取数据,读取完成自动清除缓存
                analyseData();                                          // 对接收到的数据进行分析计算
         }

}串口测试结果



seesea 发表于 2016-8-22 09:52


seesea 参加活动
seesea ,

已参加人数 :0 人

活得精彩 发表于 2016-8-22 11:33


活得精彩 参加活动
活得精彩 , seesea ,

已参加人数 :0 人

活得精彩 发表于 2016-8-22 11:33


活得精彩 参加活动
活得精彩 , seesea ,

已参加人数 :0 人

活得精彩 发表于 2016-8-22 11:34

alleazy 发表于 2016-8-22 09:30
谢谢syl312审核通过发表,注明一下,此次活动开始发货日期定为9月1号之后

我想知道一下是通过什么方式传输的?蓝牙?wifi?射频?

syl312 发表于 2016-8-22 12:27

活得精彩 发表于 2016-8-22 11:34
我想知道一下是通过什么方式传输的?蓝牙?wifi?射频?

晚点会有个详细的说明文档~
参加活动需要填写下申请内容哈

alleazy 发表于 2016-8-22 15:59

活得精彩 发表于 2016-8-22 11:34
我想知道一下是通过什么方式传输的?蓝牙?wifi?射频?

普通类似于NRF24L01P的无线

yuanjingyun 发表于 2016-8-22 16:29


yuanjingyun 参加活动
yuanjingyun , 活得精彩 , seesea ,

已参加人数 :0 人
页: [1] 2 3 4 5 6
查看完整版本: Arduino无线下载套件免费申请试用