查看: 2734|回复: 0

【S4A】编程小白的玩具,电位器起落杆的实验

[复制链接]
  • TA的每日心情
    慵懒
    2015-4-27 14:19
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2015-3-24 11:13 | 显示全部楼层 |阅读模式
    本帖最后由 千年风雅 于 2015-3-24 11:13 编辑

    生活中常能看到起落杆,比如停车场出入口,高速公路收费站等,这些起落杆都是通过按钮控制,按一下抬升,按一下又放下来,原理就是按钮给出信号,控制器接收信号,动力系统工作,我们今天就来做一个比之更高端的起落杆。

    一.实验简介:

    在这个项目中,我们将同时设计输入和输出,由电位器输入信号,舵机作为输出设备与舞台上的起落杆同步运动更好的理解S4A带给我们的互动体验。

    二.材料清单:

    180°舵机*1,电位器(滑动电位器或旋转电位器均可)*1
    1.jpg

    三.接线说明:


    180°舵机接到数字接口8,电位器接到模拟接口0
    1.jpg

    四.角色列表:

    首先将默认角色(Arduino1)更改为一根黑色的起落杆,注意,画起落杆时注意右端起落杆运动的轴心点位于画面正中心并向左延长至合适长度,这样,起落杆运动起来将更加真实。其次是不会运动的起落杆支撑,同样我们直接画一个黑色的竖杆,调整好大小摆放到合适的位置。
    1.jpg

    五.参考脚本:

    由于起落杆的支撑是不会运动的,所以我们只需要编写起落杆的脚本。
    图片6.png

    六.实验分析:


    首先我们来分析一下这个脚本。第一步我们要做的是先定义一个变量,新建一个“起落角度”的变量,并将它的值设定为 图片9.png ,为什么要这样设置呢?因为我们都知道起落杆一般都只需要抬升90°就够了,所以我们这里的起落角度即为90°,又因为我们连接的传感器为电位器,模拟口0读取到的数据为0~1023,要把0~1023转换为0~90,我们需要用到 图片8.png 命令,运用数学公式,组合命令得到 图片7.png ,这样电位器传回的0~1023就刚好转换为0~90了。接下来就是输出了,使用 图片10.png 命令可以直接达到使舵机转动的效果,而其中的变量“起落角度”又是随着模拟口传回的电位器数据变化而变化的,这样就达到了用电位器控制舵机转动的效果。最后就是使用命令 图片11.png 使舞台上的角色随着舵机运动,因为“起落角度”的值是0~90°,所以起落杆初始位置是向上的,随着数值变大,方向向下运动,为了改变其运动方向,我们使用 图片12.png 来颠倒它的运动方向。

    七.实验扩展 :


    上述脚本已经可以使舵机和舞台上的动画一起运行,但因为舵机的功率较大,会出现Arduino带不动的情况,电流过高,Arduino的cpu会停止工作,使得Arduino和S4A之间断开,舞台上会出现searching borad的字样,需要拔掉usb再重新连接才能找到Arduino,所以在选择舵机时最好选择功率较小的舵机,如果是功率较大的舵机,建议使用外接电源供电。另外因为舵机转动需要时间,所以要达到同步效果,可以在舵机运动命令之后加上一点延时。最后这个作品中我们做到了用电位器控制180°舵机,同样的原理我们可以使用红外测障传感器模块组合搭建智能起落杆,即检测到有车在前方,起落杆自动抬升这样的作品,有兴趣可以自行研究完成。

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    点灯·blinker-1物联网初次尝试-Arduino物联网控制LED灯-零基础篇
    点灯·blinker-1物联网初
    疫情期间,待在家中在抖音上看到“暴改车间”分享的手机小爱同学物联网控制电脑开
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    萌新跪求arduinoUNO板对接无线模块(如何接和程序)
    萌新跪求arduinoUNO板对接
    哪位dalao能帮帮我啊???急!!! (提供有偿服务可加我QQ3285396460)
    DHT11温度模块写不了
    DHT11温度模块写不了
    Arduino:1.8.11 (Windows 10), 开发板:"Generic ESP8266 Module, 80 MHz, Flash, ck,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表