tag 标签: espruino

相关博文
  • 热度 28
    2014-12-11 18:21
    976 次阅读|
    0 个评论
    // initialise the WebCam – see https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getUserMedia if(navigator.webkitGetUserMedia!=null) { var options = { video:true,audio:false }; navigator.webkitGetUserMedia(options, function(stream) { var video = document.querySelector(‘video’); video.src = window.webkitURL.createObjectURL(stream); }, function(e) { console.log(“error”); } ); } // Every 5 seconds… setInterval(function() { // find the video and canvas elements var video = document.querySelector(‘video’); var canvas = document.getElementById(‘canvas’); var ctx = canvas.getContext(’2d’); // resample the WebCam image down to 16×16 pixels ctx.drawImage(video,0,0,16,16); var data = ctx.getImageData(0,0,16,16); // Now build a string from the image data. There are better ways, // but all we do here is for each pixel’s red, green and blue values // we store a character between A (char code 65) and P (char code 80) var s = “”; for(n=0; n s += String.fromCharCode(65+data.data /16); s += String.fromCharCode(65+data.data /16); s += String.fromCharCode(65+data.data /16); } // finally send the data down HTTP, using the ‘special’ webpage ‘/set’ var xmlHttp = new XMLHttpRequest(); xmlHttp.open( “GET”, “/set?rgb=”+s, false ); xmlHttp.send( null ); }, 5000);
  • 热度 22
    2014-12-11 18:16
    1154 次阅读|
    0 个评论
    介绍 在现代Web浏览器中,JavaScript公开了一些非常强大的特性。其中之一就是webkitGetUserMedia 功能,它可以让你访问一个电脑的webcam(在允许的情况下) 在这个例子中,我们将用Espruino板子来将服务器连接一个可以访问Webcam的页面,并发送一个低像素的图片给Espruino板,然后就可以显示在一个LED矩阵屏上。 你将需要 一个 RGB123 矩阵 — 我用的是16*16的 一个 WIZnet W5500模块 一个带有Webcam的笔记本/平板电脑 连线 连接 RGB123 如 RGB123 页所示 连接  WIZnet W5500如  WIZnet  页所示 软件 第一步是做一个页面,可以获取从webcam来的图像。如下的代码是比较基础的,基本没有错误。 html body !– The video element that will contain the WebCam image – video autoplay/video !– The canvas that we’ll use to make the WebCam image smaller – 16×16 because that’s the size of the RGB123 matrix – canvas id=’canvas’ width=’16′ height=’16′/canvas !– The script to handle the processing – script language=’javascript’ // initialise the WebCam – see https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getUserMedia if(navigator.webkitGetUserMedia!=null) { var options = { video:true,audio:false }; navigator.webkitGetUserMedia(options, function(stream) { var video = document.querySelector(‘video’); video.src = window.webkitURL.createObjectURL(stream); }, function(e) { console.log(“error”); } ); } // Every 5 seconds… setInterval(function() { // find the video and canvas elements var video = document.querySelector(‘video’); var canvas = document.getElementById(‘canvas’); var ctx = canvas.getContext(’2d’); // resample the WebCam image down to 16×16 pixels ctx.drawImage(video,0,0,16,16); var data = ctx.getImageData(0,0,16,16); // Now build a string from the image data. There are better ways, // but all we do here is for each pixel’s red, green and blue values // we store a character between A (char code 65) and P (char code 80) var s = “”; for(n=0; ndata.width*data.height; n++) { s += String.fromCharCode(65+data.data /16); s += String.fromCharCode(65+data.data /16); s += String.fromCharCode(65+data.data /16); } // finally send the data down HTTP, using the ‘special’ webpage ‘/set’ var xmlHttp = new XMLHttpRequest(); xmlHttp.open( “GET”, “/set?rgb=”+s, false ); xmlHttp.send( null ); }, 5000); /script /body /html 并保存在Espruino中。你可以保存成一个文件,放在一个SD卡中,但是将页面存成一个字符串意味着Espruino不需要一个卡来操作。我简单的删除了评论(为了节省空间)并在le Converter] 页打开文件。 这是用于Espruino本身的代码 — 看到内联注释: // The webpage from above   继续阅读:http://www.iwiznet.cn/blog/?p=6673
  • 热度 12
    2014-5-28 11:57
    1212 次阅读|
    0 个评论
    【 Espruino 】 NO.01  介绍 本文属于个人理解,能力有限,纰漏在所难免,还望指正! 简介 最近一段时间开源硬件非常火爆,比如Arduino、Leaflabs的maple都非常火爆,它们都可以让用户可以在不了解底层硬件的情况下轻松编写出应用程序。 Espruino是2013年发起的众筹项目,为微控制器提供了一个交互式的JavaScript解释器,方便用户快速编程。在Arduino或者Maple上你需要下载到你的开发板上才能观察到程序运行结果,但是Espruino可以随时进行代码的修改与调试,当调试好后下载进去就OK了。 Espruino的相关命令与Arduino的非常相似,因此如果你用过Arduino的话将会更容易上手,当然没用过Arduino的也会被他深深吸引住的。 Espruino的交互式特点使得其与其他板子相比更强大,其他板子比如Arduino需要在每次更新代码后重启才能运行,而Espruino在你敲下回车键的那一刻就已经开始执行代码了。 特别之处 目前运行于微控制器的解释器不是很多,他们中的大部分运行比较简单的BASIC解释器。JavaScript是一门高级脚本语言,拥有强大的功能,且有众多的粉丝和网站开发者,他们可以很快上手。 Espruino开发板拥有较小的身材( 62mm x 47mm ),使用stm32作为主控制器,板载蓝牙模块、SD卡、支持锂电池、可以省去添加外围模块的麻烦. 由于是开源的,本人对源文件进行了部分修改,加入蓝牙模块、锂电池充电、加速度计、温度传感器、三个按键、3个LED,引出所有引脚,体积也缩小到( 52mm x 33mm ),对于一些日常应用,应该可以轻松一板搞定,省去添加模块的麻烦。 Espruino基于事件驱动机制,可以帮助节省更多电力。如果有太阳能电池并配合充电模块就无敌了,嘿嘿! 与Arduino不同,Espruino不需要安装软件和驱动,只需要连上开发板后就能正常工作了。 如何使用它 将你的Espruino板与PC、MAC或者Raspberry Pi连接,使用串口终端开始编写JavaScript即可。 当Espruino按着你的设定功能开始工作后,只需要键入save(),在它下一次上电后就会执行设定的功能。 同时还可以使用蓝牙模块对你的Espruino板进行 无线编程 ,非常诱惑吧,设想你有个支持蓝牙的手机,不用电脑,就顺利完成想要的功能。 ESPRUINO 官网 HTTP://WWW.ESPRUINO.COM/  
  • 热度 15
    2014-5-28 11:57
    1018 次阅读|
    0 个评论
    【 Espruino 】 NO.0 2   快速入门 本文属于个人理解,能力有限,纰漏在所难免,还望指正! 连接Espruino开发板 将你的Micro USB数据线插入你的开发板,(目前市面上的大部分智能手机应该都是这种数据线吧,嘿嘿),由于板载的USB接口比较脆弱,插拔数据线的时候请保持冷静。 1.对于WIN 8.1和XP用户,由于系统不具有通用的USB CDC设备驱动,因此你需要从ST的官网下载此驱动, http://www.st.com/web/en/catalog/tools / PF257938 2.对于其他WIN用户,系统已经自带了USB CDC驱动,但是需要等待几分钟来完成更新。 3.对于Linux用户,你需要向“dialout”组添加用户。键入   sudo adduser $USER dialout ,然后注销并重新登录。 4.对于Mac OS X和 Chromebook用户,插入板子即可运行。   建立终端应用 我们建议用户使用我们的Chrome Web App,它含有一个固件更新和许多优势,用过就知道了。当然你也可以使用其他终端程序来调 试你的Espruino板,这里附带一些示例 http://www.espruino.com/Alternative+Terminal+Apps 。 安装 Chrome Web Browser 安装 Espruino Web IDE ,然后点击   + FREE 来安装它 现在可开始使用这个终端程序了: 运行Chrome首页的Espruino Web IDE 点击左边的Connect/Disconnect图标 此刻会弹出一个窗口,选择你需要的串口号 如果你没有看到串口,或者不能正常工作,请看这里 Troubleshooting 请点击“tour”按钮来进行入门演示。   软件更新 这里有两种方法,一种是使用Espruino Web IDE来更新板子的固件,另一种是使用调试下载工具将   Download 页面的bin文件下载 到你的板子上。   开始写代码 现在你可以在Espruino Web IDE的左半边(终端窗口)敲入命令了。   1+2   然后会返回   = 3 ,每次敲入命令并按下回车后,代码会立即运行,并显示等号   = 和结果。如果执行的代码没有返回值,则会显示 = undefined   。
  • 热度 17
    2014-5-28 11:57
    1064 次阅读|
    0 个评论
    【 3   从 点灯开始 本文属于个人理解,能力有限,纰漏在所难免,还望指正! 点灯程序应该是每个入门者都经历过的第一个程序吧,当然“hello world”算是鼻祖了。看到板子上的LED小灯亮灭变化,心里应该充满了幸福感,对于新手来说额,大侠就更不用多说了,一天一小步,慢慢积累。 板载的LED使用了A13、A14、A15三个I/O引脚:                 根据图示,当I/O输出高电平时,LED亮;反之,LED灭;此刻高电平为3.3V,低电平为0,因为是数字方式驱动。 这里要介绍一个函数digitalWrite(),函数原型如下: 描述:设置给定引脚的高低状态,无返回值; 1   function  digitalWrite(pin,value)   代码示例: 2   /* 对单一引脚进行操作 */    3   digitalWrite(LED1,1); // 点亮 LED1    4   digitalWrite(LED2,1); // 点亮 LED2    5   digitalWrite(LED3,1); // 点亮 LED3    6   digitalWrite(LED1,0); // 灭掉 LED1    7   digitalWrite(LED2,0); // 灭掉 LED2    8   digitalWrite(LED3,0); // 灭掉 LED3      9   /* 对多个引脚进行操作 */    10   digitalWrite( ,0b111); // 点亮 LED1 、 LED2 、 LED3    11   digitalWrite( ,0b000); // 灭掉 LED1 、 LED2 、 LED3    12   digitalWrite( ,0b010); // 灭掉 LED1 、 LED3 ,点亮 LED2    当然也可以将函数中的LED1换成其他引脚,只要改动为相应的引脚号就可以了,如果你身边有万用表之类的测量工具就能看到电平的变化了。比如将引脚A1设置为高电平,操作代码如下: 13   digitalWrite(A1,1); // 设置 A1 为高电平