随着国内开源硬件与STEAM教育的发展,Mixly由于其开源简单易用的特点被越来越多的学校机构与个人爱好者所使用,不少人都加入了Mixly官方交流群或者Mixly衍生交流群,但大家提问的艺术各不相同,只有极少数有效提问小伙伴可以得到想要的答案,为了小伙伴们问题得到更加高效的解决因此在这里根据DF论坛 taoweng 大神所写的How-To-Ask-Questions一文根据Mixly官方群实际情况进行改写以给各位小伙伴一些群里提问的建议与Mixly常见问题进行解答。
在互联网时代,人们加入各种群组的初衷是为了交流和解决问题。但有时候会遇到一些问题:你的问题无人解答,群慢慢失去意义;或者你提问了很长时间还是没有得到答案;或者你刚刚提问,就马上说自己找到答案了;群里刚开始很活跃,却很快就变得冷清。
为了避免这些问题,我将今天的问题分成三部分介绍:提问之前、提问之时,以及怎么提问。此外,加入任何群组的第一件事就是看群公告和群文件,因为它们通常包含了一些入门教程和常见错误的解决方案,这样能够解决90%的基础问题。
在提问之前,我们应该思考问题的本质和可能的解决方案。也可以在群组内搜索相关问题或参考网上的资料。这样有助于提高问题的质量,增加得到解答的概率。
在提问之时,我们应该用清晰明了的语言描述问题,避免写过于复杂的问题。同时,耐心等待别人的回答,不要仓促宣告问题已解决。此外,谦虚而友善的语气是引起他人关注和帮助的关键。
更好地提问,需要我们遵循一些原则。例如确保问题明确,简洁明了,具体到位;详细解释背景和已尝试过的解决方案;尊重他人时间和精力;友善而诚恳地表达感谢。
最后,我们应该珍惜群组的交流和学习机会,所有人都有责任和义务去营造一个积极活跃,互相学习和帮助的环境。
尝试自己解决问题是个关键的步骤,它能够促进我们的成长。学会使用搜索引擎如百度去查找答案是非常重要的,尤其是对于那些关于某个概念或常识的问题,例如LED是什么、高低电平是什么、Arduino是什么等等。这些问题的答案往往可以直接通过搜索引擎获得,所以在群组里提问这样的问题很可能没人会回答。实际上,频繁提问这些基本问题就像问“1+1等于几”,会让人们感到厌烦。虽然刚开始可能会有一些热心人愿意回答,但经常性地提问这类问题可能会导致后续无人愿意回答。我们可以想象一下,如果邻居家的孩子不断问你无数个问题,你会有多耐心去回答?很难找到人能长时间保持耐心,除非你们之间有非常亲密的关系。
如果经过自己百度仍然没有获取到想要的结果,此时恭喜你此时就可以到相关交流群里面寻求好心人协助了,提问应该养成一个好的习惯,明确自己的问题是什么,做了那些努力,现在遇到的问题是什么准备相关程序截图与编译截图。
在这里先给出一些错误的提问方式
对于此问题无法回答,不知道什么开发板什么环境什么程序,这就好比你要修车,就只是告诉别人你车坏了,没有开车过去检查,又没有说哪里有毛病,对于这种只能表示臣妾做不到,猜不到小主的心思。
如果你想让别人帮你解决问题,建议你用文字加相关截图来描述问题,这样别人能更快地理解你的问题并提供帮助,而不需要花费过多的时间和网络流量去观看视频。虽然视频可以更直观地展示问题,但不是每个人都能或愿意花费时间来观看它们。所以,使用文字加截图是更有效的方式
在进行交流时,应该避免将自己置于中心并以自我为中心的态度来表达请求。这样的交流方式可能被认为是不礼貌的。取而代之,可以使用以下更加客观和尊重他人的表达方式:
我遇到了一个困难,我不确定如何解决它。是否有人能提供一些建议或指导?
有人曾经实现过类似的项目/功能吗?能否分享一些经验或建议?
我在改进一个程序/验证一个东西上需要一些帮助,是否有人有空可以协助一下?
错误方式:谁用Mixly做过平衡车?我这里不会谁来帮帮我?等不礼貌用语。
在面对技术问题时,我们应该保持冷静并珍惜每一个学习的机会。如果我们遇到困难,应该思考自己是否有哪些方面需要改进或加强。请避免将责任归咎于平台或其他人,这样不仅是不负责任的表现,也容易让人感到不舒服。
我发现自己在实现某个功能或理解某个程序块方面存在一些困难,请问有什么方法或资源可以帮助我解决这个问题吗?
我认识到我目前的水平还有很大的提升空间,我正在努力学习提高自己的技能。如果有人能够指导或提供支持,我会非常感激。
通过积极乐观的态度和寻找帮助的方式,我们可以更好地克服困难,并不断地提升自己的技术水平。
当在一个平台上遇到问题时,最好在相同平台的用户群中寻求帮助。因为每个群体通常都使用特定的软件或平台,可能并不熟悉其他平台的工作方式。就像你在Windows群组中提问iOS问题一样,很可能无法得到准确的答案。
此外,平台之间存在竞争关系,并且同时使用两个系统的用户相对较少,因此可能很难获得有效的帮助。
补充的表达方式可以是:
在A平台上遇到了一个问题,我正在寻求A平台用户的帮助。如果有人熟悉A平台的工作方式,能否给予一些建议或帮助?
通过强调寻求相同平台用户的帮助,我们能够更容易得到针对性的答案和支持。
以Mixly群为例,当你在使用某个版本的Mixly,搭配XX主板或XX主控芯片,遇到实现XX功能的问题时,你可以提出以下更加清晰明了的请求:
我正在使用XX版本的Mixly,搭配XX主板或XX主控芯片,在尝试实现XX功能时,程序如图,但实际结果如图所示,并非我期望的。请问是否有人遇到类似问题,并能指导我解决?
我想在XX主板或XX主控芯片上实现XX功能,使用的是XX版本的Mixly,在我的程序中使用了对应的块,但实际上没有得到我期望的结果。请问是否有人可以帮助我找出问题所在,或者提供一些解决问题的方法或建议?
通过详细说明自己的使用环境、代码以及期望的结果,可以让其他人更加容易地理解你的问题,并帮助你解决问题。同时,尊重别人的时间和经验,感谢那些能够帮助你的人给予支持和帮助。
下面是正确的提问方式该提问方式中包含了使用板卡,想要实现的目的以及自己尝试解决的代码等关键信息(温馨提示一定要自己尝试不要不做任何尝试直接求代码,让别人能看到你的努力)
在群组里提问问题时,需要注意问题本身的复杂程度和解决难度。通常而言,简单的问题或者较为简单但需要更长一些时间解决的问题更容易得到解决。而对于一些复杂的问题,或者是具体的项目制作过程,需要耗费更多的时间和经验去解答。
如果我们遇到了这种较为复杂的问题,而在群组里无法得到有效的解决方案,那么我们可以考虑寻求其他的解决途径。其中一种方法是在群组里发布适当的有偿协助,以获得深入的支持和帮助。另一种方案是到相关的平台上寻求资深工程师的帮助,去获得更专业的支持和指导。
但是我们需要注意到,对于这类较为复杂的问题,寻求解决方案的过程中可能需要花费更多的精力和时间,需要避免发问题冷场。因此,在提问之前,我们需要思考几天,或者在群组里面多次提问,以更好地理解问题的本质和可能的解决方案,如果仍然无法解决问题可以考虑向专业工程师去寻求帮助。
对于编译失败大多数情况下,Mixly下方的编译提示区会有编译失败说明,按照提示修改程序即可改正,这个需要有一定的经验才能做到如下图所示,编译器提示了错误的代码行与建议的修改(需要一定的经验与代码基础)
Mixly已经支持Python,Arduino,MicroPython,物联网和人工智能,是一个同时具备软硬件编程开发能力的平台,你可以使用它来学习python语法知识,也可以用来对UNO,Nano等开源硬件进行编程参加各种各样的科创比赛与青少年创新大赛等。
其实在B站与网易云课堂上已经有大量Mixly衍生教程了,但其中教程的质量参差不齐,Mixly本身软件自带案例,打开对应板卡主页在左下角例程即可查看或学习Mixly基础,优先推荐Mixly2.0简明教程,它包含了90%Mixly基础。
这里分为两种情况第一种知道原理,例如声音传感器、或者光线传感器等,可以通过数字输入或模拟输入来获取结果;继电器、LED等数字量或者模拟量控制可以用数字输出或者模拟输出控制;部分串口类模块如蓝牙、LORA透传模块等可直接使用串口分类下程序块通过自由组合实现编程,这类模块不需要额外的图形化第三方库仅需要Mixly系统自带程序块即可编程控制,第二种啥都不知道可以尝试云端库寻找,若云端库也没有想要的模块可以根据模块的芯片型号去GitHub等网站寻找有没有Arduino库,若有则下载该库通过Mixly自定义块实现自己想要的功能,若没有需要向店家需要模块文档自行开发,当然如果你不差钱,你也可以去找相关的工程师定制第三方库。温馨提示如果你本身懂代码编程基础那么你不需要任何图形化第三方库通过Mixly自带的自定义块可以实现任意代码的自定义编写,实现图形化与代码的混合编程,如下图所示通过自定义块实现DS1307时钟模块的使用(自定义块使用需要一点点代码基础,若用到了第三方库文件请将github下载的Arduino库放到Mixly安装目录下的arduino-cli\libraries文件夹下)
此问题一般都是由于安装目录问题导致的,请确保你的软件安装目录没有中文且目录较短,下载的软件安装包或者压缩包可能会有中文请解压后修改为Mixly再一键更新软件,注意事项:Mixly软件不要放中文目录,不要放中文目录!不要放中文目录!重要的事情说三遍!建议把Mixly缩短安装路径放到D盘例如D:\Mixly2.0,或其他盘根目录下然后一键更新(有时候多更新几次就好了)!!!(某些时候C盘可能没有权限执行一般不建议放C盘除非你只有一个C盘)。如果你的情况不属于这些且程序不为空那么请按上面正确提问方式要求群里提问。
Mixly分为Mixly for Arduino(QQ群199124078)与Mixly for Python(253942938),请根据自己的需要加入对应的群,加群需注意进群后需按群公告要求进行实名,实名格式为地区或者单位+姓名(真实名字不要用网名),注意地区不要写省份应当具体到县一级,例如广东张三为实名不合格,广东深圳张三实名合格,因为群名额有限会不定期清理未按要求实名与长期潜水用户,即使被踢也没关系有需要可再次申请加入,一般来说Mixly群里仅讨论Mixly相关问题,其他无关问题可能无法得到答案。Mixly软件下载地址为https://www.123pan.com/s/uAxvTd-8229d,根据自己的系统与需求下载对应的版本,注意2.0及其以上版本不建议Windows10以下版本使用,xp系统可以试试Mixly0.9xx版本(注意Mixly2.0以下版本已停止维护,出现软件bug或者功能建议均无法解决,对此请更新系统或者软件,遇到问题认真看本博客,一般一键更新可以修复软件bug,若更新任然不能解决请向官方交流群进行反馈)
出现该错误是由于使用了旧版Mixly,出现该问题请查看群文件如何使用旧版一键更新工具拉取最新代码.pdf进行解决,最直接的解决办法是重新下载群文件软件重新安装
该问题一般由于选择了错误的板卡或配置例如UNO选为Nano或者Nano旧版本选择了新版本等,又或者是硬件串口被占用(硬件串口有无接传感器执行器?),USB线质量不佳导致请检查以上情况排除后进行重试(请确保按照问与答4要求将mixly安装目录改为mixly,不要有中文目录且路径不要过深,一般不放C盘更不要放桌面)。
任何物联网平台都不允许频繁的向服务器发送数据,会导致服务器主动下线你的服务,如上图中的例子对于向服务器发送数据请使用定时器发送或者按键单击等事件函数进行发送,不要直接将数据发送放到loop里面,这个是所有物联网项目中的大忌,还有另一种情况就是使用了ESPnow,ESPnow仅离线使用不可与其他联网相关程序块共同使用,物联网程序一般需要保证loop主函数没有太多阻塞函数影响物联网主函数的运行,尽量避免如延时函数与while死循环,如以上问题都不是,请向专业工程师寻求帮助。
ESP系列开发板使用网络及其相关的功能例如,MQTT,TCP,UDP等功能时,此类功能需要连接网络方能正常使用,为保证教学简单,因此此类程序块并没有做超时退出或者自动重连的功能,设备正常工作过程当中可能由于网络波动,服务器异常等情况导致这些功能无法正常使用,加上此类程序块大多使用了while循环确保网络或者服务器连接上,当网络或者服务器异常时会导致程序陷入while死循环,体现在程序无法进入下一步从而影响其他程序的执行,对于此类情况请参考ESP8266板卡下简明教程中的MQTT断线反馈重连与网络连接超时优化两个程序结合自己原程序进行优化。
如果你写的程序出现了上述情况,串口打印一堆乱码(打开串口监视器波特率改为115200可以看到输出的信息,乱码是因为波特率不对),那可能是由于你的程序有问题导致的,出现这种现象的原因有硬件资源冲突,看门狗复位等,在UNO下程序可以运行检查无逻辑问题,在ESP系列也仍然会出现这个问题,这个时候只能使用排除法逐一禁用程序进行排除并且优化程序。温馨提示:当你的一段组合程序单独分开两个都正常组合到一起无法编译或者功能异常首先考虑硬件资源冲突(例如UNO下多线程内使用串口打印含有字符串拼接等文本操作函数时便会出现这个情况,不信你试试),这需要想办法去解决这个冲突问题,最需要一定的调试经验。
常见的Arduino开发板如Arduino UNO,Arduino Nano,Arduino MEGA 2560,Arduino UNO R4以及ESP系列开发板,Mixly官方均提供了必要的开发环境(其中ESP32系列含有Arduino C与Python两种类型)此类为官方版本,其中AVR板卡如Arduino UNO,Arduino Nano,Arduino MEGA 2560软件默认安装,其他板卡需要根据自己需求一键安装选择y进行安装,非官方板卡如STM32,LGT328P等Mixly均有各自开发板提供厂家自行提供技术支持,官方群不对该类板卡提供任何形式的技术支持。
此处我们仅讨论硬件开发环境,目前对于Mixly官方支持的板卡来说其提供了Arduino C与micropython两种开发环境这两种开发环境,其中仅ESP32系列板卡支持micropython,所有主板支持Arduino C。Arduino C特点是库资源丰富可以使用大量传感器或执行器与实用算法通讯协议等便于快速创意快速开发,但其编译时间过长;micropython相当于提前烧录一个“万能固件”,python是一门解释的语言,无需编译因此体现在上传速度快“秒上传”,对小白友好。其库资源相对于Arduino C较少能够使用的传感器与执行器不多。
安装请查看苹果MAC安装Mixly
对于某些用户来说可能需要用到自定义板卡或者自定义库满足个性化需求,二次开发教程见Mixly二次开发,该视频教程工程人员自行参考,官方交流群不提供任何解释,参考资料第三方库模板https://gitee.com/mixly2-package/mixly-lib-template去修改,相关示例可以参考:https://gitee.com/mixly2-package/mixly-lib-bemfa、https://gitee.com/mixly2-package/mixly-lib-arduino-fs、https://gitee.com/mixly2-package/mixly-lib-yfrobot,更多扩展库示例见:https://gitee.com/mixly2-package。
原Mixly官方提供的Blynk服务器地址(blynk.mixly.org)已经停服,可以寻找其他服务器(例如齐护机器人提供的182.61.28.31)或者自建服务器,自建服务器教程见本博客的
物联网So easy-M5stack ATOM Lite玩转Blynk或者物联网不求人-服务器搭建So Easy自行搭建服务器。
MixIO是米思齐(Mixly)官方推出的一个类似于Blynk和MQTT结合的开源平台,旨在为自主可控信息科技教育提供物联网服务器端应用,详细使用教程及介绍见MixIO详细教程Mixly图形化编程齐护机器人Arduino与Micropython 物联网平台。
当我们在编写一个功能较多的复杂程序时,通常采用的办法是先逐渐搭建部分子功能,每个功能验证无误后再将其组合到一起,但有时候我们会发现,分开每个功能都正常一旦结合在一起就有问题并且逻辑检查无误,当你遇到这种问题的时候极大概率是由于硬件资源冲突,例如Arduino UNO使用舵机、红外遥控以及PWM时均会出现这类问题,发生冲突的原因是他们都使用了相同的定时器,故而导致另一个功能异常,解决的办法很简单,那就是避免冲突,例如我红外遥控使用了硬件定时器2那么,别的就使用硬件定时器1,换个说法就是使用其它方式实现相同功能。Mixly下相同功能通常提供的不同的解决办法,例如PWM有硬件PWM与软件PWM,舵机有Servo与Timer2ServoPwm两种方式,当你检查程序逻辑没有任何问题时,不妨试试另一种方式实现相同的程序子功能(这一步想要很熟练离不开大量的练习与踩坑)。
出现这种情况一般都是因为没有安装驱动或者驱动程序异常,可以根据实际的开发板实际驱动芯片下载对应的驱动软件(例如FTDI 驱动或者CH340/CH341 驱动)进行安装就可以识别了,如果你啥都不想做也不想在线找驱动,最直接的办法去向你购买硬件的店家要驱动程序然后进行安装。(极少数情况下开发板本身的问题,如果安装驱动仍然不能解决尝试更换开发板)
温馨提示
永远不要把Mixly当做专业单片机开发工具来使用,它仅满足于教育场合,初学者建议使用Arduino UNO或者Mixgo Python系列进行学习,开源硬件的学习是一门实践性很强的技术学科,光看不练习啥也学不会,一定要根据教程亲自动手尝试才能真正学到东西,最后祝愿大家学有所成在知识的海洋中徜徉。
mixly0.99编译时一直转圈,什么原因,请高手帮忙
怎么实名
一般情况下按照本博客要求在Mixly群里面提问,一般都会有热心群友帮助,一般我不解决私信的问题,当然如果你不差钱,你可以在关于页面联系我进行有偿一对一“专家级”服务解答疑惑,建议认真看完本博客按要求群里提问,三言两语能解释清楚的会有好心人的。
实名认证这题我会,群备注改成地区➕名字
求助:编写mixly程序控制LED模块,调节旋钮电位器,控制红色LED,绿色LED和蓝色LED亮度依次变化。
stm32板子没有加入吗?
怎么实名认证