征集啃萝卜开发版改进建议,树莓派zero免费送-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: syl312

[线上活动] 征集啃萝卜开发版改进建议,树莓派zero免费送

[复制链接]
发表于 2016-12-14 11:48 | 显示全部楼层
元件的黄色引线连接Arduino管脚时最好能有显示管脚的编号
发表于 2016-12-14 22:06 | 显示全部楼层
本帖最后由 ntwhq 于 2016-12-15 21:25 编辑

       开发版和教育版都试用了下,开发版和Arduino IDE区别不是太大,最大的亮点是函数名有了联想功能,写代码方便多了。
       这里主要测评一下教育版,针对一个具体的项目,通过编程体验说一下自己的感想。
       项目是做一个超声波避障的小车,超声波传感器装在舵机上,当发现前方有障碍体时再分别测量左右方障碍物的距离,然后选择转向障碍物距离较大的方向继续前行。
       下面以工作的顺序谈一些看法:
       1.在编程前首先要搭建硬件电路,感觉这种方式很好,将硬件和软件结合在一起更加直观,容易理解。但在使用过程发现少了直流电机模块或直流电机驱动模块,我只有用4个LED来替代两个电机的接口,不然无法编程,因为编程模块不支持手工填写端口号,因此建议建议增加电机模块,同时增加通用的输入、输出模块,用以代替缺失的模块。在使用中发现有时改硬件模块的名字无效,保存后重新调用又恢复成老名字了。
       2.编程区分全局变量函数、Setup、Loop三个功能区,结构很清晰,有利于学习者从图形编程向文本代码的自然过渡,同时自动生成的源码非常具有可读性。
       3.输入框最好能自动改变大小,以适应不同内容的长度,比如函数名的输入框,当函数名较长时就只能显示部分内容了。
       4.自定义函数都是无参函数,能否考虑也能使用有参函数,同时考虑允许有返回值,这样调用函数就更方便了,比如我这里使用的几个子函数,如果能加入速度参数,程序就更简化了。
       5.编程功能模块中的“数学函数”建议还是改成“数学”,要么把“函数”改成自定义函数,不然两都容易混淆。
       6.在“数学函数”中建议增加三角函数等函数。
       7.编程中有些模块功能要进一步完善,比如“全角度电机(360度电机)”没有调速模块,只能是最大速或停止。
       8.项目只能保存在网上,不能导出,建议增加导出和导入功能。
       9.教育版不能设置、查看COM口,建议增加这一功能。        
       10.最后提一个可能不靠谱的建议:既然电路都搭建了,能否增加在线仿真的功能?

        先就说一下初步的想法,有了新的想法再补充。有什么不对的地方请指教。

        附上程序代码,第一次使用啃萝卜,错误的地方请指正。(因为硬件中没有电机模块,只好用LED替代,原先改名为端口号,重新调用又恢复成原名了)
         1.gif
         2.gif
下面是自动生成源码:

[mw_shl_code=cpp,true]/**
* Copyright(C), 2016-2038, KenRobot.com
* FileName: 智能小车超声波避障.ino
* Author: ntwhq
* Create: 2016/12/14
* Modify: 2016/12/14
*/

#include <SR04.h>
#include <Servo.h>

int led_0 = 3;
int led_1 = 5;
int led_2 = 6;
int led_3 = 9;
Servo servo_0;
SR04 ultrasound_0(8, 7);
float x = 0;
float M = 0;
float L = 0;
float R = 0;
void forward() {
    digitalWrite(led_0, false);
    analogWrite(led_1, x);
    digitalWrite(led_3, false);
    analogWrite(led_2, x);
}
void back() {
    digitalWrite(led_0, true);
    analogWrite(led_1, (255 - x));
    digitalWrite(led_3, true);
    analogWrite(led_2, (255 - x));
}
void stop() {
    digitalWrite(led_0, false);
    analogWrite(led_1, 0);
    digitalWrite(led_3, false);
    analogWrite(led_2, 0);
}
void turnright() {
    digitalWrite(led_0, false);
    analogWrite(led_1, x);
    digitalWrite(led_3, true);
    analogWrite(led_2, (255 - x));
}
void turnleft() {
    digitalWrite(led_0, true);
    analogWrite(led_1, (255 - x));
    digitalWrite(led_3, false);
    analogWrite(led_2, x);
}
void middleDistance() {
    servo_0.write(90);
    delay(100);
    M = ultrasound_0.Distance();
}
void leftDistance() {
    servo_0.write(170);
    delay(150);
    L = ultrasound_0.Distance();
}
void rightDistance() {
    servo_0.write(10);
    delay(300);
    R = ultrasound_0.Distance();
}

void setup() {
    pinMode(led_0, OUTPUT);
    pinMode(led_1, OUTPUT);
    pinMode(led_2, OUTPUT);
    pinMode(led_3, OUTPUT);
    servo_0.attach(10);
}

void loop() {
    middleDistance();
    if (M < 20) {
        stop();
        delay(50);
        x = 120;
        back();
        delay(200);
    } else {
        if (M > 40) {
            x = 160;
            forward();
            delay(200);
        } else {
            stop();
            delay(50);
            leftDistance();
            rightDistance();
            if (L > R) {
                x = 160;
                turnleft();
                delay(300);
                stop();
                delay(50);
            } else {
                x = 160;
                turnright();
                delay(300);
                stop();
                delay(50);
            }
        }
    }
}[/mw_shl_code]





点评

恭喜获得树莓派zero一块,点击链接兑换: http://www.arduino.cn/thread-32262-1-1.html  发表于 2017-1-4 10:30
发表于 2016-12-15 15:10 | 显示全部楼层
ntwhq 发表于 2016-12-14 22:06
开发版和教育版都试用了下,开发版和Arduino IDE区别不是太大,最大的亮点是函数名有了联想功能,写 ...

谢谢对我们平台的肯定和支持,也非常感谢您提出的宝贵意见
发表于 2016-12-15 15:26 | 显示全部楼层
18192908029 发表于 2016-12-12 09:13
建议将网页做成能保存到本地,离线开发的样子,这样就方便好多没有WiFi的小伙伴 ...

来来来,寒假你来做
发表于 2016-12-15 17:14 | 显示全部楼层
kenrobot 发表于 2016-12-15 15:26
来来来,寒假你来做

大佬好。。。js玩不来呀~~~
发表于 2016-12-21 12:16 | 显示全部楼层
活动最后10天了~大家再刷一波抽奖了
发表于 2016-12-23 20:36 | 显示全部楼层
Edge不响应
发表于 2016-12-23 20:37 | 显示全部楼层
Edge不响应
发表于 2016-12-27 22:16 | 显示全部楼层

要用chrome浏览器。
发表于 2016-12-31 14:09 | 显示全部楼层

编译的时候,错误提示并不明确,本来就是中国人开发的软件,能不能符合以下国情,尽量将提示信息显示为中文的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 23:39 , Processed in 0.242594 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表