楼主: syl312

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

[复制链接]
  • TA的每日心情
    擦汗
    2017-2-15 13:03
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2016-12-14 11:48 | 显示全部楼层
    元件的黄色引线连接Arduino管脚时最好能有显示管脚的编号
    打赏作者鼓励一下!
  • TA的每日心情
    郁闷
    2019-5-25 14:52
  • 签到天数: 169 天

    [LV.7]常住居民III

    发表于 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
    下面是自动生成源码:

    kittenblock中小学创客名师推荐的图形化编程软件

    /**
     * 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);
                }
            }
        }
    }






    点评

    恭喜获得树莓派zero一块,点击链接兑换: http://www.arduino.cn/thread-32262-1-1.html  发表于 2017-1-4 10:30
    打赏作者鼓励一下!
  • TA的每日心情
    郁闷
    2017-7-5 15:10
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2016-12-15 15:10 | 显示全部楼层
    ntwhq 发表于 2016-12-14 22:06
    开发版和教育版都试用了下,开发版和Arduino IDE区别不是太大,最大的亮点是函数名有了联想功能,写 ...

    谢谢对我们平台的肯定和支持,也非常感谢您提出的宝贵意见
    打赏作者鼓励一下!
  • TA的每日心情
    郁闷
    2017-7-5 15:10
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2016-12-15 15:26 | 显示全部楼层
    18192908029 发表于 2016-12-12 09:13
    建议将网页做成能保存到本地,离线开发的样子,这样就方便好多没有WiFi的小伙伴 ...

    来来来,寒假你来做
    打赏作者鼓励一下!
  • TA的每日心情

    2018-8-8 20:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

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

    大佬好。。。js玩不来呀~~~
    打赏作者鼓励一下!
  • TA的每日心情
    郁闷
    2017-7-5 15:10
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2016-12-21 12:16 | 显示全部楼层
    活动最后10天了~大家再刷一波抽奖了
    打赏作者鼓励一下!
  • TA的每日心情
    无聊
    2017-10-7 11:35
  • 签到天数: 128 天

    [LV.7]常住居民III

    发表于 2016-12-23 20:36 | 显示全部楼层
    Edge不响应
  • TA的每日心情
    无聊
    2017-10-7 11:35
  • 签到天数: 128 天

    [LV.7]常住居民III

    发表于 2016-12-23 20:37 | 显示全部楼层
    Edge不响应
  • TA的每日心情
    郁闷
    2019-5-25 14:52
  • 签到天数: 169 天

    [LV.7]常住居民III

    发表于 2016-12-27 22:16 | 显示全部楼层

    要用chrome浏览器。
    打赏作者鼓励一下!
  • TA的每日心情
    慵懒
    2016-12-31 14:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-12-31 14:09 | 显示全部楼层

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

    本版积分规则

    热门推荐

    求助灯带怎么用
    求助灯带怎么用
    买了灯带,不知道怎么用,点不亮啊,求大师指导
    【Arduino】168种传感器系列实验(136)---2路I2C电平转换模块
    【Arduino】168种传感器系
    【Arduino】168种传感器模块系列实验(136)---2路I2C电平转换模块 37款传感器与模块
    大家好,我叫Bunny Code
    大家好,我叫Bunny Code
    大家好,我叫Bunny Code,是新来的朋友,现在正式上线了,happy birthday to you,真
    【Arduino】108种传感器模块系列实验(104)---MAX30102手腕心率
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    呼吸灯实验
    呼吸灯实验
    本文节选自《Arduino程序设计基础》 之前的章节已经介绍了多种方法控制LED,但单是开
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表