小易发明家——让每个人都能有自己的发明创造-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14585|回复: 15

[项目] 小易发明家——让每个人都能有自己的发明创造

[复制链接]
发表于 2017-8-30 04:35 | 显示全部楼层 |阅读模式
本帖最后由 TonyLianLong 于 2017-10-23 19:41 编辑

说在前面:
作为一个高三学生,为了做这个东西,网页设计部分(JS HTML),CGI,generator,后台前台,亚克力开模+SketchUp的3D设计,这些东西真的花了太多太多时间。在这里也希望大家给予支持,谢谢啦~
在功课之余做的,耗费太多太多精力,可能这个软硬件结合的设备并不是太完美,但是至少能做到教我社团里的同学怎么入门电子制作了。能看到他们使用自己的小发明,真的很开心。毕竟是高三学生了,没有那么多时间常常上论坛发表文章或者回复,但是还是很热衷于参加这类比赛的。我从小学二年级就开始接触电路设计,到现在在《无线电》杂志上也发表了十多篇文章了,也算有一些经验,而且带过社团,知道一些新手入门的痛感,所以才用心认真设计出这样一个创新方案来参加开发大赛。这已经是我第二次参赛了,第一次时高一的时候,但是没获奖挺可惜。如果大家有兴趣可以来看看我的Github: http://github.com/TonyLianLong
一起互相Follow
大家按照开放的PCB板的电路图打出电路板以后,烧写上NodeMCU固件,上传一下Github开源的代码,就可以一起享受发明创造的乐趣啦。
项目源代码地址:https://github.com/TonyLianLong/Yiyi

image9.png
3D设计图

简介

            这是一种简单易行的电子制作设计方式,以图形化的编程和运行界面、积木化的硬件连接和交互式的社区帮有自己创新想法的人把自己的想法化为实在的发明创造。
来由
            我是我们学校电子制作社的社长,经过一年时间的活动我发现很多同学都有自己的想法,但苦于技术原因不能实现。结合我的观察实践,我发现他们大多是因为认为编程很难、电路图看不懂等原因而无法将自己的设想化为现实,因此我使用了开源的NodeMCU软件和ESP8266硬件模块设计了一个简便的制作环境,通过在编程、电路连接、模块重复利用方面加以改进,帮助那些有自己想法的同学把自己的设想实现出来。
创新点概述

图形化设计显示
         小易发明家在软件方面主要简化了程序设计的流程并将其转为图形化设计,界面如图1所示。与其他很多编程方式不同的是,小易采用的是事件驱动形式,就是说每当有一个“事件”发生时,小易才会采取活动。这样带来的效果是比其它入门级编程方式采用循环等待事件的方式更加节约处理器性能,同时能处理多个事件,事件的选择界面如图2。
            每一个事件发生后,紧接着的是一系列“动作”,同时,对于复杂的需要判断的部分,则需要引入结构,进行判断、循环等操作。对这些事件的处理都是图形化的,使用者不需要编写代码,如图3、4。
image1.png 图1
image2.png 图2
image3.png 图3
image4.png 图4
            这些事件和动作都包含在一个个软件模块里面,系统自带了几个模块可以供使用者选择,使用者还可以从网上下载更多模块。
            在设计之后,点击“运行”,所使用的图形模块的界面就会被显示出来,如图5是使用了方向盘模块的小车程序。制作之后,点击方向盘上的按钮就会触发相应的事件,也就会执行动作。
            这样进行设计和制作极大简化了编程所需要的时间和精力,制作者很容易就能把自己的设想变为实践。
小易还使用了前后台分离的形式,在前台(用户设备)运算图形相关数据,后台(小易核心处理器)执行与模块处理相关计算,这样简化传输过程,减少传输延迟造成的影响,提高效率,可以用于实现复杂的总线、结构。同时现在的具有图形化显示功能的软件依赖于用户设备进行运算再将运算结果传回核心处理器,这样就导致了核心处理器必须和用户设备相连,最终导致用户设备必须开启,如远程温度计就必须连接电脑并且电脑实时开启才能运行,一旦电脑关闭,软件就无法运行,这样就极大限制了此类所能起到的作用。而小易通过前后台分离的技术,在前台未连接时仍然可以保持后台运行,这样就做到了不需要连接计算机就能持续运行。就如远程温度计这个制作,作者可以通过与云服务相关的软件模块来上传数据,等需要时再查看,而不需要计算机持续连接并获取信息。

image5.png 图5
积木式模块设计
            在硬件方面,小易分为两种版本,第一种是使用插针连接的小易A版,空间分配灵活,适合入门制作者使用,如图6、7。第二种是正在开发中的方块式的小易B版,通过磁性吸附相连接,容易拆装,适合儿童使用,外壳和电路板如图8、9。

image6.jpeg 图6,小易A版,左下角是五针接口,电路板上连接了内部测试用的调试线
image7.jpeg 图7,小易A版,上面插了一个传感器模块
image8.png 图8,小易B版的外壳,装配时会在四周钻孔
图9,小易B版的电路板
两种小易都使用了模块化设计和通用的五针接口,内部使用I2C协议。因为I2C接口的拓展特性,小易的五针接口可以通过拓展板来拓展数量,其最多可以一次连接127种拓展设备,满足基本需求。模块种类包括传感器模块、电池模块、电机模块等。
对于A版,使用者在连接所需要的硬件时只需要插上,对于B版,使用者只需要将模块和核心板的随意一边靠在一起,让其磁性吸附即可,不需要手动用导线相连,更不需要知道内部电路连接。
小易的接口和电脑的USB接口类似,每一个接口的功能都是相同的,相比以前的模块化设计需要某些设备插特定的接口,使用者在任意一个接口上连接模块效果都一样。这样使用者就能在短时间内不失兴趣地上手制作。
交互式社区环境
            一般的电子制作社区采用的形式是制作者制作后打包上传到网上,而使用者下载下来、将库复制到指定文件夹内再编译文件上传的形式,制作者需要学习复杂的软件操作和应用的知识才能完成。对于小易,这一过程变得直接化了,用户可以直接从社区里选择指定的软件模块和设计程序,点击“我要制作”按钮,所需要的制作就会被下载到连接在本地网络上的小易中。每一个程序在生成的时候都会记录下所需要的软件模块,这样在用户从社区中下载一个需要特定软件模块的程序时,便会跟着下载依赖的软件模块,社区界面如图10所示。
            社区未来的发展计划是增加奖励机制,鼓励更多制作软件模块和设计的使用者上传他们的制作,包括自己的软件设计和硬件连接方式,以此形成一个制作的良性循环。使用者也可以提出自己想制作的物品,在社区里等待其他人回答。
image10.png 图10
软硬件原理及机制整体运行原理
            首先在编写软件时,小易后台会将设计转为Lua编程语言进行运行。小易使用的NodeMCU软件平台可以帮助简化后台程序设计。前台交互界面使用了jQuery和jQueryMobile来设计。后台依照esp-nginx用C编写了Lua运行的httpserver软件模块。在运行时,小易后台和浏览器(或微信)交互目前使用的是AJAX,但是鉴于这样会较为占用资源,以后会考虑换成Websocket技术。在图形化设计中,一个其他同类产品不具备的特点是使用了前后台分离的形式,在前台运算图形相关数据,后台运算执行相关计算,简化过程,减少传输延迟造成的影响,提高效率。
         在硬件方面,小易使用了低成本的无线网络连接方式,采用支持微信硬件平台的ESP8266芯片来提供程序运行支持。五针接口使用的是修改过的I2C接口,可以在一个设备号码上连接多个设备,并且可以兼容使用原协议的设备。
            在社区方面,小易使用的是以百度应用引擎为支撑的后台,采用自主编写的社区制作方式,通过Websocket进行跨域搜索设备以进行编程。
对于不同设备,小易同时使用了mDNS协议,这个协议苹果设备自带支持,不需要另外安装软件,对于Windows系统的电脑,需要安装苹果的Bonjour软件来支持,这样就能通过自己设定的以.local为结尾的地址来访问小易了(之后可能会加上LLMNR和NBNS协议来让Windows用户不用安装Bonjour软件就能直接实现这些功能)。
无线网络连接机制
小易发明家使用了无线网络进行连接。因为使用的开源ESP8266模块支持微信airkiss协议,使用者在将小易连上网时只需要用微信扫描二维码,并不需要另外下载应用程序或其他操作,连接界面由图11、12所示。因为小易发明家使用的是无线网络连接,所以在进行设计时只需要在手机或者电脑上上打开微信进入小易的控制面板就可以了,不需要安装软件和驱动,这样在上课的时候就不需要让学生带电脑并且事先安装好软件,方便学生也降低要求。老师只需要在第一次用手机应用把小易发明家连接到学校的网络,在没有网络的情况下,小易还能创建无线网络供使用者设计。
image11.png 图11
image12.png 图12连接界面
示例
image13.png 图13
            图13是一个闪灯的程序,电路板上自带的LED灯每一秒闪一下。其程序原理是在程序开启时把定时器1设置成每1秒响一次,而定时器想的时候反转LED的状态,就是从亮到暗、从暗到亮。这样就能实现闪灯的效果,而在其他编程平台上,这一操作至少需要十几至几十行的代码。这个程序没有使用和显示有关的软件模块,所以没有特殊显示效果,只是显示制定的字。
和同类产品的对比
            现在图形化编程的产品也不少,但是真正和本制作的功能类似的却只有两种。
第一类是类似于S4A的产品,这类产品很多基于Scratch开发,其工作原理是在计算机上完成计算工作,再把对应的端口操作通过USB接口发送到目标设备上,这种产品的缺点在于计算出的数据只能按引脚数据发送,目标设备上的固件都是一样的,这样因为传输延迟等原因,不能实现精确的时序控制,这样很多如串口传输、硬件I2C都没有办法实现。因为需要依赖电脑运行指定的程序,基于这类产品做出的设计也很难成为实用的制作。
另一类产品是ArduBlock类的产品,这一类产品就是在Arduino等制作平台基础上搭建由图形化到代码的转化,使用这种产品最大的问题在于显示不是图形化的,使用者需要另外连接液晶屏或者LED等用于显示出所需的数据。这类产品的缺点还在于不能真正降低编程难度,使用者还是需要掌握原来的编程概念,包括函数等,只不过形式改变了而已。
上面提到的这两类产品都没有社区服务的功能,也都只是基于其它目的的软件和平台继续开发的插件、衍生产品等,并不能突破原有的如必须要用有线连接、没有办法和社区相连接的问题。小易发明家则可以突破这些问题,达到真正简化设计制作的过程。
前景展望
            目前中国的创新制造业正在蓬勃发展中,前些年的3D打印机流行让个人能制作出自己的小物品。然而,3D打印机打印出来的只能是固定的物品,并不具有实际的操作功能,小易则延续了3D打印机将创造变得简单、融入个人生活的理念,开发出让制作者通过自我设计制作,解决生活中的问题,锻炼创新创造能力的产品。3D打印机和打印耗材的高昂价格让其无法进入每一个人的生活,而小易可以凭借低廉的价格以及丰富的产品模块和社区,让每一个人都能实现自己的发明创造,在现在中国具有广阔的前景、潜力无穷。
参考文献及资料
1.      I2CBus       http://www.i2c-bus.org/
2.      I2C总线信号时序总结          http://www.oschina.net/question/565065_113442
3.      ESP8266ESP12-F模块datasheet 开发文档      http://wiki.ai-thinker.com/lib/e ... les/esp-12_wifi.pdf
4.      NodeMCU文档       https://nodemcu.readthedocs.io/
5.      NodeMCUWiki        https://github.com/nodemcu/nodemcu-firmware/wiki
6.      微信硬件平台Wiki   http://iot.weixin.qq.com/wiki/new/index.html
8.      TheProgramming Language Lua      http://www.lua.org/
9.      esp-ginxProject      https://github.com/israellot/esp-ginx
10.   Websocket.org        http://websocket.org/
11.   SpiffsProject           https://github.com/pellepl/spiffs
12.   http-parserproject   https://github.com/nodejs/http-parser
13.   jQueryMobile API Documentation http://api.jquerymobile.com/
14.   jQueryMobile 教程 http://www.w3school.com.cn/jquerymobile/

最后是图10的护眼神器的视频





发表于 2017-8-30 08:27 | 显示全部楼层
给大神跪了
发表于 2017-8-30 08:54 | 显示全部楼层
很有想法啊,加油!
发表于 2017-8-30 10:05 | 显示全部楼层
现在高中生都这么厉害了~~~
发表于 2017-8-30 10:23 | 显示全部楼层
围观膜拜 6666
发表于 2017-8-30 10:54 | 显示全部楼层
现在高中生都这么厉害了~~~
发表于 2017-8-30 12:02 | 显示全部楼层
希望比机智云搞事情简单
发表于 2017-8-30 16:48 | 显示全部楼层
厉害了,高中生
 楼主| 发表于 2017-9-1 01:23 | 显示全部楼层
hongzailalala 发表于 2017-8-30 12:02
希望比机智云搞事情简单

有空继续把它变得更简单
发表于 2017-9-1 19:59 | 显示全部楼层
6666666666666666(省略10000个字)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-9-20 22:48 , Processed in 0.105033 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表