前言
感谢论坛,感谢 LinkSrite,论坛活动申请了一个 LinkNode,体验了一下 mbed。
翻看完官方 wiki,大概了解了一下 mbed 的开发,然后做了 blink 和 pwm 的测试,发现 mbed 和熟悉的 arduino 极像,并且功能更强大的样子,在线 IDE 用起来倒是方便,库的引用也是随用随引,就是网络对操作响应速度上有一些影响,体验上会略差一点,真要经常用的时候,还是比较倾向于本地的 IDE 更顺手。
测试
那么闲话不多说,试一下官方 wiki 上的 blink 吧,程序略过,视频奉上:
然后升级一下 blink,既然有两个颜色,红和蓝,不如 blink 成警车灯一样的效果吧,顺带测试串口:
// 像警车灯一样红蓝闪烁的 blink 实验 #include <mbed.h> DigitalOut LED_R(P0_20); DigitalOut LED_B(P0_19); Serial pc(P0_23, P0_25); int main() { while (true) { LED_R=1; LED_B=0; wait(0.5); LED_R=0; LED_B=1; wait(0.5); pc.printf("Blink!\n"); } }
视频:
然后就是 PWM 呼吸灯,直接来双色渐变呼吸效果吧:
// pwm 两个 LED 测试 #include <mbed.h> Serial pc(P0_23, P0_25); PwmOut LED_R(P0_20); PwmOut LED_B(P0_19); float delta = 0.05; float deltaR = delta; float deltaB = 0; int main() { LED_R.write(0); LED_B.write(0); while (true) { LED_R = LED_R + deltaR; LED_B = LED_B + deltaB; wait(0.02); if (LED_R.read() >= 0.999) { deltaR = -deltaR; } else if (LED_R.read() <= 0.001) { deltaR = 0; deltaB = delta; LED_R = 0.002; } if (LED_B.read() >= 0.999) { deltaB = -deltaB; } else if (LED_B.read() <= 0.001) { deltaB = 0; deltaR = delta; LED_B = 0.002; } pc.printf("LED_R: %f, delta: %f, LED_B: %f, delta: %f\n", float(LED_R), deltaR, float(LED_B), deltaB); } }
视频:
参考文档
- LinkNode wik:http://linksprite.com/wiki/index.php5?title=Mbed_BLE_Sensors_Tag
- LinkNode 官方文档:https://www.gitbook.com/book/yaoq/linknode/details
- mbed 在线 IDE:https://www.mbed.com/zh-cn/
时间: 2024-10-10 08:09:11