首页 >>  正文

random+wipe

来源:baiyundou.net   日期:2024-07-13

作者:白芝麻狐

前言:

最近购入了一个ATOM Matrix,挺喜欢。模块化设计,方便使用的同时也很迷你。买入它的原因是为了使用他自带的mpu6886陀螺仪模块,同时他使用的esp32,方便我使用esphome进行接入。

产品细节:

东西到手后发现做工一般般,总体上说的过去,但是略有瑕疵。提供的资料也有限。自带有测试程序,按键会自动变换显示内容。灯珠如果长时间处于高亮状态会略微发烫。背后以及低端有io口,可以和其他模组直接插接组合使用,非常方便。

官方说支持Arduino,以及他们提供的图形化编程软件UIFlow,看起来挺有意思。不过既然核心是esp32,那么应该也支持esphome。所以我决定用esphome把他接入homeassistant。

产品资料

接入homeassistant:

花了一点时间尝试使用esphome接入,大部分成功。包括:按钮,加速度仪、角速度仪,5*5灯板,均可在homeassistant中进行操作。

以下为提供模板:

注意:由于zdm不支持代码块,粘贴yaml代码会导致缩进错误 ,我将yaml代码转换成了json代码。如需使用则将json代码转换为yaml代码即可粘贴进esphome。

yaml,json互转工具

=================================代码=================

{ "esphome": { "name": "gradienter", "friendly_name": "gradienter" }, "esp32": { "board": "esp32dev", "framework": { "type": "arduino" } }, "logger": null, "api": { "encryption": { "key": "" } }, "ota": { "password": "homeassistant" }, "wifi": { "ssid": null, "password": null, "ap": { "ssid": "Gradienter", "password": "homeassistant" } }, "captive_portal": null, "i2c": { "sda": 25, "scl": 21, "scan": true, "id": "bus_a" }, "sensor": [ { "platform": "mpu6886", "i2c_id": "bus_a", "id": "gradienter_info", "address": 104, "update_interval": "1s", "accel_x": { "name": "MPU6886 Accel X" }, "accel_y": { "name": "MPU6886 Accel Y" }, "accel_z": { "name": "MPU6886 Accel z" }, "gyro_x": { "name": "MPU6886 Gyro X" }, "gyro_y": { "name": "MPU6886 Gyro Y" }, "gyro_z": { "name": "MPU6886 Gyro z" }, "temperature": { "name": "MPU6886 Temperature" } } ], "binary_sensor": [ { "platform": "gpio", "pin": 39, "name": "user_button" } ], "light": [ { "platform": "esp32_rmt_led_strip", "rgb_order": "GRB", "pin": 27, "num_leds": 25, "rmt_channel": 1, "chipset": "ws2812", "name": "My Light", "effects": [ { "random": { "name": "My Slow Random Effect", "transition_length": "30s", "update_interval": "30s" } }, { "random": { "name": "My Fast Random Effect", "transition_length": "4s", "update_interval": "5s" } }, { "pulse": { "name": "Fast Pulse", "transition_length": "0.5s", "update_interval": "0.5s", "min_brightness": "0%", "max_brightness": "100%" } }, { "pulse": { "name": "Slow Pulse", "update_interval": "2s" } }, { "random": { "name": "Random Effect With Custom Values", "transition_length": "5s", "update_interval": "7s" } }, { "strobe": { "name": "Strobe Effect With Custom Values", "colors": [ { "state": true, "brightness": "100%", "red": "100%", "green": "90%", "blue": "0%", "duration": "500ms" }, { "state": false, "duration": "250ms" }, { "state": true, "brightness": "100%", "red": "0%", "green": "100%", "blue": "0%", "duration": "500ms" } ] } }, { "flicker": { "name": "Flicker Effect With Custom Values", "alpha": "95%", "intensity": "1.5%" } }, { "addressable_rainbow": { "name": "Rainbow Effect With Custom Values", "speed": 10, "width": 50 } }, { "addressable_color_wipe": null }, { "addressable_scan": { "name": "Scan Effect With Custom Values", "move_interval": "100ms", "scan_width": 1 } }, { "addressable_twinkle": { "name": "Twinkle Effect With Custom Values", "twinkle_probability": "5%", "progress_interval": "4ms" } }, { "addressable_random_twinkle": { "name": "Random Twinkle Effect With Custom Values", "twinkle_probability": "5%", "progress_interval": "32ms" } }, { "addressable_fireworks": { "name": "Fireworks Effect With Custom Values", "update_interval": "32ms", "spark_probability": "10%", "use_random_color": false, "fade_out_rate": 120 } } ] } ], "remote_transmitter": { "pin": "GPIO12", "carrier_duty_percent": "50%" } }

============================代码结束===============

接入成功后效果:按钮以及灯光控制。

总结:

使用中的个人主观感受。

优点:

设备整体小巧,集成度高,造型还算美观,不需要再弄个外壳。配合其他零件插接方便,很喜欢这种模块化设计。

缺点:

使用中任务重的时候发热较大,灯光不建议长时间工作在高亮度,红外范围较小,io接口相对较少。

阅读更多其他数码配件精彩内容,可前往什么值得买查看

","gnid":"915ca8ed0c9b4f09a","goods_list":[{"goods_channel":"淘宝精选","goods_cover":"https://p0.ssl.img.360kuai.com/t013ee9410f442c1e8c.jpg?size=600x600","goods_link":"https://go.smzdm.com/f67981e621d52964/ca_fz_0_0_0_0_0_0_0","goods_name":"官方M5StackATOMMatrixESP32嵌入式开发套件MPU6886Arduino","goods_pos":1,"goods_price":"99"}],"img_data":[{"flag":2,"img":[{"desc":"","height":"1440","title":"","url":"https://p0.ssl.img.360kuai.com/t01cf3df852e4e35f51.jpg","width":"1080"},{"desc":"","height":"806","title":"","url":"https://p0.ssl.img.360kuai.com/t01e6002e8f959d6785.webp","width":"1080"}]}],"original":0,"pat":"otherc,art_src_1,fts0,sts0","powerby":"pika","pub_time":1691126069000,"pure":"","rawurl":"http://zm.news.so.com/e2658868c40fe6172274a4106e173c92","redirect":0,"rptid":"7abdd482022c9329","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"M5Stack ATOM Matrix体验以及使用esphome接入homeassistant模板

翁薛显1987批处理系统变量random的用法有哪些 -
魏韦恒13896444990 ______ 当有随机处理问题的时候,就会用到random.比如随机一个时间,随即一个长度的序列、字符串等.我曾经在批处理下用random写了一个猜大小的游戏,计算机给出随机值,然后人来猜.不过用random您可以再加上一个时间种子,就是%time%的毫秒位,每次这样:set /a r=%random%*%time:~-2% 然后要是取到某个范围的比如要80~150之间的随机数,就这样:set /a r=%r%%70+80 希望对您有帮助.

翁薛显1987帮忙看看这个程序是什么意思a=random;while -
魏韦恒13896444990 ______ while语句格式为: while(表达式) 语句;/*循环体*/ 这里的表达式是循环能否继续下去的条件,而语句是循环体.只要表达式为真,则执行循环体内语句.否则终止循环,执行循环体外语句.题目中循环条件为(!++a),即先判断!++a的真假,再执行相应语句.循环第一遍时,a=-1,表达式++a的值为0,变量a的值经加1后为0,则(!++a)应为真,因此执行循环体(即打印a的值0);循环第二遍时,表达式++a的值为1,变量a的值经加1后为1,则(!++a)应为假,所以终止循环,执行循环体外语句.

翁薛显1987网站设计中random函数的作用 -
魏韦恒13896444990 ______ var x=Math.random(); //生成一个0-1的随机数 var y=Math.round(x* 400); //得到一个0-400的随机数, 并进行四舍五入, 得到一个 0-400 的随机整数

翁薛显1987zigbee中random函数干什么用 -
魏韦恒13896444990 ______ 在zigbee的CSMA/CA算法中为了防止数据传输的时候发生碰撞,由于以太网中的CSMA/CD 算法不能用,所以用CD模式来避免冲突,处理的时候如下:当检测到链路中有冲突时,就随即延时一段时间再发送数据.random函数的功能也就在这里体现.源代码中很多的地方可以看见的

翁薛显1987如何用Flash代码得到幻灯片效果? -
魏韦恒13896444990 ______ 这是我写的一个简单例子.代码是as2.0.直接新建一个as2.0另存一下,然后将代码复制到主时间轴的第一帧上.再复制几个jpg图片到你存这个flash的文件夹下,取名为1.jpg,2.jpg,3.jpg ....然后ctrl+enter运行测试即可.修改代码中的defaultNum ...

翁薛显1987C语言中 random() 函数怎么用? -
魏韦恒13896444990 ______ random() 这个函数在VC下面是用不了的,必须在Turbo上面才可使用,你只能使用rand函数了.

翁薛显1987c#中的random函数怎么用? -
魏韦恒13896444990 ______ 【Random Rnd = new Random(); k = Rnd.Next(1, 12);】 每次都是新建一个Random对象,而Random是从随机库里按顺序取出数来的,所以每次都一样.稍改动一下,用同一个Random对象即可. static void Main(string[] args) { int k1 = 0, k2 = 0;...

翁薛显1987Java中的Random()用法. -
魏韦恒13896444990 ______ java.util.Random b=new java.util.Random(); 因为你的类名跟Jdk自带的Random重复,导致优化引入你定义的Random,如果你想强制引用Jdk的Random需要使用包名.类型形式

翁薛显1987c++中的RANDOM()函数怎么使用?
魏韦恒13896444990 ______ C++中有RANDOM函数吗? 如果是Rand到时可以 srand( (unsigned)time(NULL)); //生成种子 r = rand()%100;

翁薛显1987求c#中random函数的说明? -
魏韦恒13896444990 ______ C++ Builder中random()函数说明: random 所在的头文件:stdlib.h 原型:int random(int num); random函数返回一个0~num-1之间的随机数. random(num)是在 stdlib.h中的一个宏定义. num和函数返回值都是整型数.语法:在arduino中 random(max) random(min, max) min - 随机数的最小值,随机数将包含此值. (此参数可选) max - 随机数的最大值,随机数不包含此值.( 数据类型为 long )

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024