数据专栏

智能大数据搬运工,你想要的我们都有

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

这是论坛网友hbzjt2012的作品:
http://www.micropython.org.cn/forum.php?mod=viewthread&tid=408&extra=
这次使用PYB Nano驱动0.96寸OLED显示屏,此次参考了国外网友的例程,OLED可以使用SPI或者I2C均可。
【1】硬件连接:
这里以SPI连接方式为例,使用PYB Nano的SPI1:
【2】程序源码:
库文件:SSD1306 import pyb from ssd1306 import SSD1306 # SPI display = SSD1306(pinout={'dc': 'Y9', 'res': 'Y10'}, height=64, external_vcc=False) # I2C connected to Y9, Y10 (I2C bus 2) # display = SSD1306(pinout={'sda': 'Y10', # 'scl': 'Y9'}, # height=64, # external_vcc=False) led_red = pyb.LED(1) led_red.off() try: display.poweron() display.init_display() display.draw_text(1,1,'PYB Nano OLED Test',size=1,space=1) display.draw_text(1,10,'Hello MicroPython!',size=1,space=1) # Write display buffer display.display() pyb.delay(10000) x = 0 y = 0 direction_x = True direction_y = True while True: # Clear the previous lines prev_x = x prev_y = y # Move bars x += (1 if direction_x else -1) y += (1 if direction_y else -1) # Bounce back, if required if x == 128: direction_x = False x = 126 elif x == -1: direction_x = True x = 1 if y == 64: direction_y = False y = 63 elif y == -1: direction_y = True y = 1 # Draw new lines for i in range(64): display.set_pixel(prev_x, i, False) display.set_pixel(x, i, True) for i in range(128): display.set_pixel(i, prev_y, False) display.set_pixel(i, y, True) # Make sure the corners are active display.set_pixel(0, 0, True) display.set_pixel(127, 0, True) display.set_pixel(0, 63, True) display.set_pixel(127, 63, True) # Write display buffer display.display() except Exception as ex: led_red.on() print('Unexpected error: {0}'.format(ex)) display.poweroff()
【3】显示效果:


硬件开发
2016-12-05 21:09:00
Linux下查看系统版本号信息的方法
一、查看 Linux 内核版本命令(两种方法):
1、cat /proc/version [root @localhost ~]# cat /proc/version
Linux version 2.6.18-194.8.1.el5. centos .plus (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Wed Jul 7 11:50:45 EDT 2010
2、uname -a [root @localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.8.1.el5.centos.plus #1 SMP Wed Jul 7 11:50:45 EDT 2010 i686 i686 i386 GNU/Linux
二、查看Linux系统版本的命令(3种方法):
1、lsb_release -a,即可列出所有版本信息: [root @localhost ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final
这个命令适用于所有的Linux发行版,包括 Redhat 、SuSE、 Debian …等发行版。
2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux: [root @localhost ~]# cat /etc/redhat-release
CentOS release 5.5 (Final)
3、cat /etc/issue,此命令也适用于所有的Linux发行版。 [root@localhost ~]# cat /etc/issue
CentOS release 5.5 (Final)
Kernel \r on an \m
硬件开发
2016-12-05 16:29:02
查询linux系统版本提示bash:lsb_release:command not found错误解决
查询linux系统版本的时候提示错误,发现lsb_release这个没装,没办法,装一下吧。这里,分享一下查询linux系统版本提示bash:lsb_release:command not found错误解决办法,也就是安装lsb_release:
1.先检查有没有lsb_release
[root @test ~]# lsb_release -r
-bash: lsb_release: command not found
2.使用yum安装lsb
yum install -y redhat-lsb
3.验证lsb是否已经安装上了 [root@unfvo ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.5 (Final) Release: 6.5 Codename: Final [root@unfvo ~]#
这里不再提示错误,即说明已安装成功
硬件开发
2016-12-05 16:27:00
近期ThinkSNS发布了V4.5版本,更新迭代的同时推出了今年如火如荼的直播版,社交+直播的整合为抢占直播市场的企业和创业者提供快速盈利通道。 近日,ThinkSNS电商系统强势入驻v4.5版本。打开APP,粉丝们可以发现,官方在“发现”板块中增加了“极铺商城”,一键社交,一键购物完美整合。对于广大商贸企业和创业者来讲,真的可以说是杨枝甘露也不为过。 社交+电商一直是人们津津乐道的社群经济必要的出发点,通过社交积累流量,引流消费的商业模式是传统企业向互联网电商转型的必经之路。ThinkSNS作为社交系统研发的开拓者和行业标杆,稳定的性能,即时的通讯,简约的界面自然是毋庸置疑,能够快速实现社区建设和圈子拓展,超高的性价比和售后服务也是众多用户和采购方青睐的对象。 中小型创业者或企业品牌拥有优秀的产品,但缺少品牌营销机会,客户来源积累,无法承担高昂的系统管理人工费用,运营推广费用。想要拥有独立完善的电商系统开发成本高,但研发周期长,功能繁重,操作复杂,购销管理紊乱是众多电商系统的通病。 ThinkSNS此次在2016年终,压轴推出电商系统整合,从专业的角度迎合了市场需要和商贸行业痛点,更为中小型创业者突破了资金难关。全平台同步上线的极铺商城电商系统,不仅仅是快捷的一键购物,线上交易。更是为广大企业或创业个人服务,进行品牌营销,建立粉丝系统,用户管理整合客户管理,打造电商产业链,达到社交资源利用最大化。 直接一套系统,解决社群经济的互联网环境构建难题。中小型企业或创业团队,微商代理等,使用ThinkSNS+电商版,再毋需担心入驻各大电商平台带来的同业竞争,自主开发APP+网站+微信店铺的高昂研发费用,多套系统交叉使用的管理困扰。过了激进白热化时期,电商已经进入成熟期,也为众多优秀产品方和品牌方敞开了怀抱,抓住社群经济的核心,小品牌走上商贸康庄大道,大品牌打造粉丝营销,未来的电商模式和环境一定和社交息息相关。 ThinkSNS作为大品牌社交系统,此次的电商系统入驻,也是给予了广大关注者福利。想要即刻拥有社交+电商APP/网站/微信版只需要在原版授权基础上增加部分授权费用就可以购买获得,永久有效。已经购买了ThinkSNS系列产品的用户,只需增加少量费用即可加购。 想要了解详情,建议访问ThinkSNS官网,关注官方最新动作,人工咨询产品经理,说不定还有活动小惊喜哦。官方入口请戳: ThinkSNS Demo站:demo.thinksns.com; ThinkSNS官网产品页面:thinksns.com ThinkSNS产品下载二维码: ThinkSNS微信公众号: ThinkSNS今日头条企业号:
硬件开发
2016-12-05 15:41:00
自从2015年政府工作报告里出现“创客”一词,创业者们的春天就到来了,整个市场围绕中央鼓励大众创业的政策,各种相关产品如雨后春笋,破土而出且琳琅满目。在这样的浪潮及其催生的环境下,创业者们的甄别能力就显得十分重要了,选对一个平台对一个初创企业毫无疑问是事关生死的。本人作为一个工作多年、恰好在此时计划创业的创业新人,跟大家讲讲我的见解。 做电子商务方面的业务多年,一直想要做一款自己的社会化电商产品,自从有了创业的想法,就开始寻找合适的社交产品平台,众所周知,现在互联网产品最重要的就是用户,缺少用户的产品,无论体验、业务逻辑再好,也只是一个花瓶,无法被市场接受。作为互联网产品的核心,用户就是资源、用户就是资本、用户就是一切,于是在去年发现了这样一款以用户为核心的社交产品——ThinkSNS。 可以看到,ThinkSNS的更新迭代是紧随当下流行趋势的,其平台包含IOS端、Android端、H5端和PC端,功能也相当完善,可以满足不同用户在各种场景下的需求: 可以说ThinkSNS的规划与我的创业计划有一种不谋而合的默契,但是关注ThinkSNS快两年了,一直没有下手的主要原因是当时的ThinkSNS没有完善的电商功能,这也是市场上众多社交产品一直欠缺的功能,在我看来,原因有以下几点: 社交产品出现较早,发展较为平稳,电子商务产品出现较晚,发展迅猛,良好的发展趋势让人们忽略两类产品的融合问题 2.电商产品逻辑复杂、成本较高 前后台逻辑复杂,在国内环境下,对部署硬件要求较高,涉及较多行业、尤其是实体行业,对产品的架构、逻辑和运营团队的线上线下协调能力要求苛刻。 3.国内电子商务平台和社交平台大头居多,主流平台难以在核心业务层面上进行用户打通和融合 显而易见的例子就是阿里的电商平台和腾讯的社交平台,腾讯2016年的QQ和微信用户量均达到8亿,对于腾讯来说,做电商不是没有钱,也不是没有客户群,而是要从自身找原因。腾讯的很多资源和能力在做QQ社交的时候是优势,而到了电子商务就成了劣势,同理,阿里巴巴也一样。社交与电商跨界当配角容易,当主角很难。 这也是我想做社交化电子商务模式的原因,现阶段国内除去阿里外各大主流电商平台方向均为垂直电商领域,虽然可以看到一些社交方向的尝试,但均是效果平平,而对于一般的创业者不存在已有的业务对现有尝试的限制,可以在一开始就进行社交和电商的融合,突破社交化电商的壁垒指日可待,在这样的现状和支持创业的政策下,必将催生出一款称得上“Great”的产品来打破现状,帮助众多创业者快速起步,就在刚刚到来的12月,集成了成熟的电子商务功能模块的老牌社交平台ThinkSNS电商版发布了! ThinkSNS电商版的最大优势是,消费者可以在选购产品前就被熟知的人或交际圈影响。尽管只是一小众人通过社交平台交易,但可以精准定位目标客户,社会化网络又可以使得商品信息病毒化传播。电商版ThinkSNS的社交化电商模式是未来电商的发展趋势。该模式可以将社交平台海量的用户资源与电子商务的便捷高效性高度融合,能凸显社交平台互动分享性鲜明和商家注重品牌推广的主动性强的集成优势,可以产生1+1>2的营销效果。 电商版ThinkSNS依托其完善的社交功能模块(微博、微吧、论坛、资讯等)可以满足各个目标方向的创业者的需求,同时满足各类用户的社交、购物需求,并且可以对目标客户进行精准的引导,增加效益,如: 1.依托微博,进行新品的宣传和分享扩散; 2.依托微吧(圈子:摄影圈、妈妈圈、驴友圈等),可以将用户进行分类,对接CRM系统,可以针对性引导和宣传; 3.依托论坛,可以帮助入驻平台进行用户培养和产品反馈; 4.依托活动,可以进行促销和商品试用、评测; 5.即时聊天,快捷的客服系统; 6.频道,精华信息发布,社会化营销的利器; 7.资讯,媒体信息发布平台,集中发布新闻、广告、评测。 最最重要的是,新增的电商模块和存在已久的社交模块均为ThinkSNS原班人马开发,在架构布局的融合上是通过集成第三方服务的产品所无法比拟的。ThinkSNS电商版可以为创业者做的不仅仅是这些,这只是我个人的一些观点,更多的惊喜还要等待敢于第一个吃螃蟹的人来发现,不多说了,吃螃蟹去了... PS:ThinkSNS官网现在在做活动,优惠蛮大,嘘... 官网地址:thinksns.com 社区地址:demo.thinksns.com 活动地址: http://t.cn/RVeJj0H
硬件开发
2016-12-05 15:36:00
setup
镜像下载和SD烧录
待补充
无显示器 安装
待补充
更换国内镜像源
默认的更新源 archive.raspberrypi.org,更新会很慢。需替换国内的镜像源。
中国科技大学开源镜像站 提供了raspbian的软件包镜像,国内的用户可以选择改用科大镜像站作为更新源。
科大镜像站官方已经提供了一份 帮助文档 ,用于指导用户如何使用科大镜像更新raspbian。 但这份文档是基于 wheezy 的,最新的jessie版可以参考本文。 具体做法
修改之前,最好先备份原始的配置文件。例如,使用如下命令将两个源配置文件拷贝到HOME目录。 cp /etc/apt/sources.list ~ cp /etc/apt/sources.d/raspi.list ~
或者直接在原来配置文件的基础上修改,但将原有的配置全部注释掉(使用#注释) 修改 source.list
更新后的/etc/apt/sources.list: #deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi # use ustc mirror: deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
实际修改是,将mirrordirector.raspbian.org替换为mirrors.ustc.edu.cn/raspbian/ 修改 raspi.list
更新后的/etc/apt/raspi.list: #deb http://archive.raspberrypi.org/debian/ jessie main ui # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://archive.raspberrypi.org/debian/ jessie main ui # use ustc mirror: deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ jessie main ui
实际修改是,将archive.raspberrypi.org替换为mirrors.ustc.edu.cn/archive.raspberrypi.org
上诉内容转自: http://xusiwei.github.io/post/2016/raspberry-pi-use-ustc-mirror/
硬件开发
2016-12-05 15:19:00
无论是社交还是电商运营者,其核心都是用户,最大优势是与用户建立更加紧密的连接以及对用户的深度管理。2016年,随着以papi酱为代表的社交红人成功获得融资,也开启了社交经济商业变现的模式,各大投资巨头也纷纷将目光投向社交+电商的诸多项目中来。虽然papi酱不可复制,但papi酱背后所代表的社交+电商行业的发展潜力却是可以无限放大的。 社交让电商更有价值,社交+电商符合互联网未来发展的新趋势,通过社交群体的分享互动满足越来越
小众化个性化的用户需求。作为普通消费者,电商“社交化”会使我们体验到更多更好玩有趣的社交购物活动。 一、ThinkSNS系统是什么 ThinkSNS作为国内最大的开源社群系统和移动社交引擎,以最专业化的社交类产品服务于企业和创业者,并致力于社交SNS在商业领域的应用,帮助互联网创业者和企业快速搭建SNS社交产品。是国内外知名企业:华为、奔驰、西门子、北京电视台、蓝鲸传媒、证券时报、高教出版社等众多企业的社区产品解决方案首选。 二、ThinkSNS电商系统(社交+电商)是什么
ThinkSNS凭借在社交系统领域9年的技术沉淀以及对互联网经济的敏锐感知,在用心研发社交系统的同时,更是倾注大量心血,专注于开发在社交系统基础上接入电商系统。ThinkSNS电商系统是研发融合电商系统中的分销系统、数据统计、营销方案等先进思想,打造出以客户营销为中心的电商系统解决方案。
三、社交+电商合二为一的巨大优势 1.低成本的营销,高回报的收益 社交的最大红利来自于流量能够二次,三次,甚至多次再分发。很多时候我们看到一篇好的文章或一款好的产品,会在各类社交渠道被多次转发、裂变,这也是社交+电商的特点,传播裂变的过程帮助运营商获得更有效的推广,更低成本的流量。 2.社交+电商,购物形式更多样 利用社交系统的朋友圈功能,可进行购物圈晒单,好友代付,SNS红包等让购物变得更有创意。社交好友间可以看到自己的好友或关注的人在买什么,用什么,喜欢什么,然后享受同样的商品和服务,购物的过程变得更好玩、更新鲜。 3.社交流量及电商流量,建立强大的营销闭环 传统购物没有任何生态圈,更多依靠流量的带入,社交购物则是有生态圈的。例如京东作为国内最大的自营式电商平台,接入了国内最大的社交平台微信和手机 QQ,使京东在微信及手机QQ内的电商购物行为形成“社群流量-口碑推广-电商流量”的全新商业逻辑。通过社交系统推荐信息内容化、推广渠道媒体化、流量场景碎片化和用户管理大数据化等方式,使用户更加便捷地通过社交平台完成电商购物过程。 4.实现购物的快捷性、分享性、无地域限制 由于移动互联网实现了24小时online,用户可以随时随地上网,这大幅提高碎片化时间的利用,而社交平台的接入,让更多电商购物信息渗透到碎片化社交场景中,移动电商购物也就有了随时随地的可能。翻翻好友圈、聊聊天的功夫,我们就可以看到好友分享的购物信息,并直接下单;完成购买后,还可以将我们的商品分享在朋友圈或者购物圈,直接通过评论点赞的方式实现互动。电商购物成为了社交的一种手段,社交+电商真正实现了“在购物”的24小时状态。 四、ThinkSNS电商版年终钜惠 社交+电商,势不可挡,ThinkSNS为助力企业营造一个更高效的营销闭环,持续发力为企业带来更大商机,针对ThinkSNS老客户,以及新客户特别推出ThinkSNS电商版年底优惠促销活动:
ThinkSNS更多活动信息,请关注:
ThinkSNS Demo站:demo.thinksns.com
ThinkSNS官网产品页面:thinksns.com
ThinkSNS产品下载二维码:
ThinkSNS微信公众号:
ThinkSNS今日头条企业号:
硬件开发
2016-12-05 13:59:00
U buntu16.04 下解决“no java virtual machine was found after searching the following locations:” 方法
先装JDK(Oracle官网),之后检查安装是否成功
如图:
下载好mars版的Eclipse后,发现无法正常打开,提示错误信息如下图所示:
A Java Runtime Environment (JRE) or Java Development Kit (JDK)
must be available in order to run Eclipse. No Java virtual machine
was found after searching the following locations:
/home/leblancs/Software/eclipse/jre/bin/java
java in your current PATH
分析错误得知,Eclipse没有找到jre,所以报错。
解决方法:
cd到eclipse的安装目录下,建立软连接,连接到 jre,
ln -s / 此处为jdk的安装目录 /jre jre 即可。
如图所示:
顺利启动eclipse
硬件开发
2016-12-03 16:35:00
#背景 Ember库在RTL8196的Linux上运行不正常。经我们的小伙伴精密地排查,问题不在硬件板子、串口驱动、EM3581固件上。因为我们自己写的串口硬件流控Demo在嵌入式Linux上是正常的。那么,问题只能定位为Ember库在处理硬件流控中,由于平台的原因导致的异常。
#正文 对于这个问题,我的首先能想到的就是Ember代码关于串口的配置部分。首先找到程序入口:
这个函数 emberAfMain() 函数的参数,实际是: emberAfMain(5, "emberAfMaim -n 0 -p ttyS1") 。
进入该函数,在文件 protocal/zigbee_5.7/app/framework/util/af-main-host.c 文件中:
其中L519是在解析 MAIN_FUNCTION_PARAMETERS (其实就是 int argc, char *[]args ) 中参数的。然后再在L525对串口进行配置。
进入 emberAfMainStartCallback() 函数去看: emberAfmainStartCallback(int *ret, int argc, char **argv) ` ezspProcessCommandOptions(argc, argv) `ezspInternalProcessCommandOptions(argc, argv, errStr)
最终是在 ezspInternalProcessCommandOptions(int argc, char *argv, char *errStr) 中对参数进行解析,在 protocal/zigbee_5.7/app/ezsp-host/ash/ash-host-ui.c,代码如下:
其中我们很关心的两个参数的处理分别为:
从代码可以看出"-n" 这个参数只作为第一个参数,它调用了 ashSelectHostConfig(cfg) ,cfg就是"-n"的参数,这里我们填的是0。
去看 ashSelectHostConfig() ,定义在 protocal/zigbee_5.7/app/ezsp-host/ash/ash-host.c:
ashSelectHostConfig() 的功能是选择一个配置模板。这也是为什么"-n"参数一定要排在最前面的原因了,后面的参数是对这个模板进行修改。 在L157~159,如果 cfg 小于 ashHostConfigArray 数组的长度,那就 ashHostConfig = ashHostConfigArray[cfg] 。
我们去看看 ashHostConfigArray 数组的定义:
L95是 ashHostConfigArray[0] ,被定义成了宏 ASH_HOST_CONFIG_DEFAULT ;L97~116为 ashHostConfigArray[1] 。
我们去看 ASH_HOST_CONFIG_DEFAULT 定义:
在L69行的值为true,即开启硬件流控。
从L87来看, ashHostConfig 的默认值就是 ASH_HOST_CONFIG_DEFAULT ,即开启了硬件流控的。
AshHostConfig 的定义如下:
其中L53定义了硬件流控字段 rtsCts 。为了查问题,我们直接去找 rtsCts 的引用处,找到如下:
protocal/zigbee_5.7/app/ezsp-host/ash/ash-host-io.c
readConfig(rtsCts) 其实就是个宏,它展开为: ashHostConfig.rtsCts ,就是我们上面看到的设备。
我们要注意两个变量: rtsCts , flowControl ,因为下面引用到了:

它设置了两个串口配置参数: tios.c_iflag , tios.c_cflag 。这个是重点排查对象!!
好,通过打调试信息来区别我们Demo与Ember库之间的差异。
硬件开发
2016-12-03 12:13:00
IT人会利用各种方法去充电,大家常会选一些常逛的地方进行学习呢?今天小编就给大家推荐一些实用的网站和论坛,一起来看吧~
一、IT类视频教学网站汇总: 1、传课网
针对人群:广泛
综合类的视频教育网站包含了各种开发语言、数据库方面的IT培训,特点是平台成熟,允许免费、收费观看,各种流程比较完善。但是IT类的课程都偏基础,初学者可以看下。
2、51CTO学院: http://edu.51cto.com
针对人群:IT从业者
提供的是课程播放,录播的形式。讲师都是业内比较有名的培训机构的老师,经验丰富,听了几场课,效果还不错。课程有免费和收费,相对于在职人群不用脱产学习是很大的便利,另外利用碎片化的时间学习提高学习效率。 最近“微职位”受到学员的欢迎,按职位的专业要求设置课程体系,采取随到随学、通关式学习、一对一辅导的模式,保证学习效果, 适合碎片化学习,旨在解决模块化技能提升、项目实际问题、了解新技术的需求,采取在线视频、课件资料、师生答疑的模式,同时提供Android手机/平板客户端、iPhone客户端、iPad客户端,实现随时随地自由学习。
3、EOE在线课程
针对人群:Android开发者
前期好像也是使用多贝平台,后期貌似独立了。主要针对安卓开发者,不定期推出。垂直领域的课程,比较容易深入。据说老师也是EOE内聘的,人气貌似一般。
4、itercast
针对人群:IT从业者
针对Linux方面做视频教育,现在改为IT从业者了。但是,最强的应该还是Linux方面。课程量不多,初级的偏多,但是将问答和视频学习结合了,能很好的交流掌握。
二、IT类论坛汇总:
1、CSDN论坛
针对人群:开发者
CSDN号称全球最大的中文it社区,也是国内最早的一批IT社区,实际用户主要是开发类用户。论坛里的开发技术也全面,特别是C/C++、Java、.NET版,人气较旺,提出的问题也基本会有人解答。程序员里不乏幽默者,有时候也会有愤青,你懂的。
2、51CTO技术论坛
针对人群:网络管理员、系统工程师等
51CTO是一个比较综合的IT论坛,其最强的版块是网络管理类及微软技术相关版块。这几个版块都有业内比较牛逼的版主,几乎有问必答。目前,开发版块也有所发展。特点就是氛围比较好,是我见过最和谐互助的论坛。
3、ChinaUnix技术论坛
针对人群:系统工程师
Linux的操作系统版比较知名,但近年来也有所下滑。Linux版有很多牛人,不乏著书作者,业内有名气的牛人几乎都有在CU泡版的经历,比较热心,灌水能力也不弱。
4、ITpub论坛
针对人群:数据库开发者
ITpub论坛版块众多,但最NB的版块还是数据库技术,特别是Oracle版,人气旺。版主当中也有很多业内名人。
5、PHPChina论坛
针对人群:PHP开发者
业内PHP相关的论坛真不多,PHPChina算是公认的了,但人气一般。
6、开源中国
针对人群:开发者
严格意义上说,开源中国是个网站,不是论坛,但实在不知道开源的论坛还有哪些。氛围一般,但是对开源社区更重要的是精神。 怎么样,上面的这些分享是不是对你有所帮助呢,IT学习永无止境,愿大家发展的越来越好。
硬件开发
2016-12-01 19:28:00
01.魔力盒 魔力盒是一款休闲娱乐应用,旨在帮助你度过公交地铁中,没信号时百无聊赖的时光。它会在wifi环境下自动为你缓存三部优秀短片,不消耗任何移动网络流量;看完自动删除,不浪费储存空间。最新最时尚的精彩视频,这里都可以找到~
02.Mr. Mustachio 一款以大胡子为主题的益智类数字游戏。初次见面,Mr. Mustachio会向你介绍自己和他富得流油的砖石宝地。砖石由许多数字组合封锁着,挑战者通过加减乘运算得到相应密码解锁之后方可获得大胡子先生奖励的砖石。在每次任务开始,Mr. Mustachio 会提供一个数字密码,挑战者可以通过由左到右相加、由右到左相减、由上到下相乘的方式来得到该数字并且进入下一关卡。
03.V电影 V电影每天都会推荐几部优质的小视频,类型各不相同,但总有一部是你喜欢的。它推荐的电影都是一些来自全世界的,非常惊艳或者很有创意的小短片,让你足不出户就看遍整个世界,内容也是相当新奇,包罗万象,并且涵盖的话题也足够丰富,可以随时随地充实碎片时间。
04.Quora 全球知名社交问答网站,类似国内知乎网站,但在问题的回复专业性和问题涉猎宽度均比知乎强数倍,所有问题和回答基本采用英语,有成千上万主题,你可以关注你喜爱的主题,同时还有众多热门英语学习方面主题,如 “Learning English”, “English as a Foreign Language”。每天抽闲暇时间阅读大家的问题和回答,也可亲身参与讨论,结识不同行业的大牛,提高英语的同时,又增长了知识,一举两得。
05.Drinkspiration 第一次进入应用,会先让你进行口味设置,就会根据你的口味推荐饮品。调酒小白可以掌握基本的调酒知识。如果在酒吧里喝到一款特别好喝的调味酒,只要记得名字,就能开始搜索,然后查看图文+视频教程。如果不想那么麻烦,也可以选择家里现成的原料,看看能制作什么饮品。如果你完全不知道喝什么,只是觉得就是想喝一杯,在收藏里,提供各种酒单供你挑选,同样每种饮品都提供图文+视频教程。
06.Artomaton 作为一款具有“人工智能”的图片处理应用,它带来的不仅仅是逼真的手绘效果,更给你完整呈现清晰的作画过程。不会画画星人可以通过使用Artomaton培养一些绘画的感觉。它对照片进行渲染的过程是分色渲染的,你可以将渲染速度减慢,以便看清上色步骤。你还可以亲自涂抹上色,以感受局部的色彩细节。最赞的一点,整个绘画过程可以生成视频保存下来!
07.51CTO学院 51CTO学院是51CTO旗下的职业IT在线教育平台,依托于11年行业品牌、1400万技术用户,目前已成为中国最大的IT技能学习平台。 51CTO学院 秉承“学以致用”、 “因材施教”、“有教无类”的教育理念,提供辅导式“微职位”和自学式“视频课程”两种在线学习模式,帮助广大IT技术人员实现技能提升、高薪就业的职业梦想。采取随到随学、通关式学习、一对一辅导的模式,保证学习效果,学员必须通过每个阶段的考试才能进入下个阶段学习,每个学员都会经历“学习-答疑-考核-总评”的学习过程。
08.网易云课堂 既公开课之后,网易又开发出云课堂这样一款 MOOC 应用。网易云课堂选择了与公开课强烈学术范儿不同的「草根」路线。云课堂提供很多实用价值很强的技能类课程,比如 Photoshop 小技巧、手绘系列教程等,很像一个百度经验的合辑版。此外,你还能在分类中找到一些四六级、公务员等应试类课程,更加重了实用的功利性。
09.Popping Poppong 的游戏规则很简单,点击两个相同的方块的交叉处,会消除这两个方块,当所有方块消除后,进入下一关。这是个很考验观察及反应能力的游戏,方块会随着时间变得越来越多,长时间不点击或者点击失误,方块出现的速度也会变快。所以游戏最后,经常会出现手忙脚乱的情况,等 game over 后再来一局吧朋友们。
10.ARGUS ARGUS 不仅仅是一个计步器,你还可以用它来记录每天的饮食和每日的睡眠时间,并且可以获知你消耗的卡路里,进行全方位的健康管理。除了可以记录每天行走的步数,还可以添加更多活动模块,比如每天喝茶的杯数,睡眠时间,体重,以及一些运动模块,最后根据你运动的类型和时长记录你消耗的卡路里。除了运动,你还可以用 ARGUS 来记录自己每天吃的食物,使自己健康管理的内容更为完整。
硬件开发
2016-11-28 16:36:00
Getting Started:Eclipse:Installing Eclipse on Ubuntu
(Redirected from Installing Eclipse on Ubuntu )
Contents
[ hide ] 1 NEW way of using Eclipse for OpenDaylight 2 OLD CONTENT, no longer applicable 2.1 Installing Eclipse the easy way 2.1.1 When something goes wrong 2.2 Installing Eclipse the hard way 2.2.1 Creating new workspaces in Eclipse installed the hard way
NEW way of using Eclipse for OpenDaylight
Please see GettingStarted: Eclipse instead of below now.
OLD CONTENT, no longer applicable
The recommended way to install Eclipse on Ubuntu is using the distribution's package manager. But unfortunately the Ubuntu distribution contains Eclipse version is 3.8.1-5.1 which does not support Maven integration because the required package org.eclipse.m2e.core requires Eclipse Luna (see this question on Stack Overflow for more details ). The Luna is not packaged for Ubuntu (yet) so the manual installation is the only option.
Installing Eclipse on Ubuntu manually can become a peculiar task that can irreparably damage your Ubuntu installation if done improperly. Additionally, the Eclipse Luna exhibits bugs which may confuse new users into thinking it is broken while in reality it is not. The following installation instructions were tested with package eclipse-java-luna-SR1-linux-gtk-x86_64.tar.gz, MD5 b2ccdb8be4588c79b9ed8b7a80ebf8b0, SHA1 161640688a8d4c0523e14ecb7017813dd33a99cd installed on Ubuntu 14.04.1 running on a Oracle VM VirtualBox virtual machine.
Installing Eclipse the easy way Open a terminal (Ctrl-Alt-T) and switch it to root permissions by entering:
$ sudo su Make sure Eclipse Indigo is NOT installed in your Ubuntu. You may need to remove both "eclipse" and "eclipse-platform" packages to get rid of it. If it still gets into way when trying to install Luna using this easy way, you may need to look at the "hard way" below.
# apt-get remove eclipse eclipse-platform Install a Java 1.7 JDK:
# apt-get install openjdk-7-jdk Install Maven:
apt-get install maven Get rid of the root access as you won't need it anymore:
# exit Download Eclipse. The "for Java EE Developers", "for Java Developers" and "for RCP and RAP Developers" versions all seem to work. Currently the file which was tested to work is (note that it is for 64 bit Ubuntu version) available at this page Extract the Eclipse installation tarball into your home directory:
$ cd
$ tar -xzvf Increase the memory for the Eclipse installation by modifying the ~/eclipse/eclipse.ini file. Change the -Xmx setting (line 20) to be AT least 1G, recommended 2GB. (i.e. -Xmx2048m). Change the -XX:MaxPermSize (line 18) to at most 512m. If you have the -Xmx setting set to 1G, then I suggest to use a lower value, for example 300m. Run the Eclipse:
$ ~/eclipse/eclipse If everything seems to work, return back to GettingStarted: Eclipse and continue from step 5 in the section "Installing Eclipse". The Maven Integration software packages as installed in the step 4 are already installed in the Luna so that step can be safely skipped.
When something goes wrong
Normally, everything should go OK and there should be no problem using the Eclipse Luna installed this "easy way". However in a few cases the eclipse fails to work properly, especially if you tried to use Eclipse Indigo that is supplied by the Ubuntu Package Manager. Here are some tips how to try to recover your Eclipse installation: Uninstall both "eclipse" and "eclipse-platform" packages:
# apt-get remove eclipse eclipse-platform Eclipse Luna can usually pick up workspaces from Eclipse Indigo and upgrade them "on the fly" but sometimes things get screwed up. If your Eclipse is doing strange things after you load the workspace, try deleting the workspace (after you exit Eclipse) and then creating it from scratch. Sometimes bad workspace can damage the Eclipse installation. If you tried to reuse the workspace and after that failed, you have troubles recreating it from scratch, try deleting both, the "eclipse" directory in your home directory and also the workspace directory. Only AFTER both are gone, proceed with the extraction of the eclipse installation tarball. Make sure you have the Java JDK you intend to use BEFORE you try to run Eclipse for the first time. Your Eclipse installation could also get damaged by a misbehaving plugin. In that case deleting the Eclipse installation and creating a new one from scratch will usually do the trick.
Installing Eclipse the hard way
Usually, extracting the Eclipse Luno into your home directory shall be enough to allow you to work with it. But sometimes the package requires to be installed into "/opt" and refuses to work properly or to work at all when installed elsewhere. In that case (if you are not a Linux guru) it is often easier to just reinstall the OS from scratch (remember to back up your data first). However sometimes reinstallation of the OS is not feasible.
The following workflow was used to install Eclipse Luno on one such misbehaving system, however it is not guaranteed that this type of misbehavior will be exactly the same in your case so your mileage may vary. These instructions assume you already have the JDK and Maven packages installed and the installation package downloaded as described in the "easy way" installation instructions. Open a terminal (Ctrl-Alt-T) and switch it to root permissions by entering:
$ sudo su Extract the Eclipse installation package into /opt:
# cd /opt
# sudo tar -xzvf Increase the memory for the Eclipse installation by modifying the /opt/eclipse/eclipse.ini file. See the "easy way" for instructions. Create a startup script for the Eclipse:
# cd /usr/local/bin
# echo 'ECLIPSE=/opt/eclipse/eclipse' >eclipse
# echo 'exec $ECLIPSE "$@"' >>eclipse
# chmod +x eclipse Now exit the root mode and start the installed eclipse:
# exit
$ eclipse Confirm the dialog box asking you to create a workspace. This instance of eclipse has problems integrating into the Ubuntu's window manager. Examples include the menu not working properly (the submenus won't show up at all when the main menu items are clicked, preventing the user from using any commands from the menu). To fix the problem first close the introductory tab that was opened and then exit the eclipse. After you start it again, it should work without problems. Now go back to GettingStarted: Eclipse and continue from step 5 in the section "Installing Eclipse". The Maven Integration software packages as installed in the step 4 are already installed in the Luna so that step can be safely skipped.
Creating new workspaces in Eclipse installed the hard way
The integration problem mentioned in the installation instructions will show its ugly head each time you create a new workspace in the Eclipse Luna. This can happen either when you specify nonexistent/empty directory in the dialog box asking you for a pointer to workspace or you delete or rename the default workspace (to start from scratch). When this happens, restart Eclipse to finalize the freshly created workspace and fix the behavior.
硬件开发
2016-11-28 13:31:00
移动 Ubuntu16.10 桌面左侧的启动器到屏幕底部
与其他 Linux 发行版不同,Ubuntu 多年来一直使用 Unity 做桌面环境,该环境的最突出特点就是桌面左侧有一个启动器栏(Launcher)。从 16.04 版本开始,Ubuntu 提供了一个命令行选项,可以将 Launcher 启动器移动到屏幕的底部。
据说此新特性的添加,源自于中国程序员的贡献;尽管笔者本人认为,Launcher 位于屏幕左侧更加合理。然而新特性总要尝试一下,如果你也对此感兴趣,那就一起探索。

工具/原料 Ubuntu 16.10。

方法/步骤 传统的 Unity 桌面环境,其应用程序启动器的容器——Launcher,一直坚定地待在屏幕的左侧。
其实笔者一直认为,应用程序启动器位于左侧更加合理一些,因为当前低分辨率的宽屏显示器还是大多数,在这种屏幕中,上下内容越少、左右内容越多,越有利于工作对象的显示,比如文档、表格软件中会显示更多的行,图像处理软件会让工作区的面积更大。 即使在 Ubuntu 的设置中心里,也找不到移动 Launcher 启动器的任何设置。
打开“设置”窗口,在“外观”一节里,有 Launcher 的大小、自动隐藏等选项,但是没有位置选项。 按下 Ctrl + Alt + t 键盘组合键调出终端,在终端中输入以下命令:
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
按下回车。
命令中最后的 Bottom 就是底部的意思。 再次调出终端,输入以下命令:
gsettings set com.canonical.Unity.Launcher launcher-position Left
注意无论是上一步骤中的 Bottom,还是本步骤中的 Left,首字母都要大写。
会发现 Launcher 启动器又重新回到了屏幕左侧。
如果将上述命令的最后一个参数更改成 Right ,则 Launcher 不会发生任何位置移动。看来上述命令只能将 Launcher 的位置在屏幕左侧和底部之间切换。
硬件开发
2016-11-28 09:47:00
我们的目标是生成zedboard的启动文件首先需要工具和输入文件: Tools Required Xilinx SDK Input Files Required FSBL u-boot uImage uRamDisk.image.gz devicetree.dtb Output Files Produced boot.bin
首先需要安装一些必要的软件包 sudo apt-get install device-tree-compiler openssl-devel libncurses5-dev libncursesw5-dev u-boot-tools
一、uboot编译 第一步:下载uboot源代码,( https://github.com/Xilinx/u-boot-xlnx/releases/tag/xilinx-v2016.3 ) 我已经上传百度云盘( https://pan.baidu.com/s/1dE4jOm1 )
第二步:su 进入超级权限 sudo tar -zxvf xilinx-v2016.3.tar.gz cd u-boot-xlnx-xilinx-v2016.3/tools/ export PATH= pwd :$PATH
第三步:返回u-boot-xlnx-xilinx-v2016.3目录下 make ARCH=arm zynq_zed_config make ARCH=arm 编译后得到的u-boot无后缀名,其实为zedboard可执行文件elf格式,供FSBL生成boot.bin使用,u-boot.bin为二进制格式 二、linux内核编译 第一步:然后下载xilinx的linux源代码( https://github.com/Xilinx/linux-xlnx/releases ) 我已经上传百度云盘( https://pan.baidu.com/s/1jIykq5g ) 第二步:su 进入超级权限 make ARCH=arm xilinx_zynq_defconfig make ARCH=arm menuconfig (exit) make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage 三、devictree编译 在当前目录下执行make ARCH=arm dtbs
未完待续。。。。。。。。。。。。。。。。 最后于u-boot-xlnx-xilinx-v2016.3目录下将u-boot复制到/home目录下 最后于linux-xlnx/arch/arm/boot目录下,将uImage复制到/home目录下下; 最后于linux-xlnx/arch/arm/boot/dts/目录下,将zynq-zed.dtb是复制到/home目录并改名为devicetree.dtb;
硬件开发
2016-11-27 22:54:00
fio(Flexible IO Tester) FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎, 包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
参数说明: filename=/dev/sdb1 #测试文件名称,通常选择需要测试的盘的data目录 direct=1 #测试过程绕过机器自带的buffer。使测试结果更真实 rw=randwrite #测试随机写的I/O rw=randread #测试随机读的I/O rw=randrw #测试随机写和读的I/O rw=read #测试顺序读的I/O rw=write #测试顺序写的I/O bs=16k #单次io的块文件大小为16k bsrange=512-2048 #同上,提定数据块的大小范围 size=5G #本次的测试文件大小为5g,以每次4k的io进行测试 numjobs=30 #本次的测试线程为30个 runtime=1000 #测试时间1000秒,如果不写则一直将5g文件分4k每次写完为止 ioengine=psync #io引擎使用psync方式 rwmixwrite=30 #在混合读写的模式下,写占30% group_reporting #关于显示结果的,汇总每个进程的信息 lockmem=1G #只使用1g内存进行测试 zero_buffers #用0初始化系统buffer nrfiles=8 #每个进程生成文件的数量
常用参数使用举例: #顺序读 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #顺序写 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #随机读 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #随机写 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #混合随机读写 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
测试结果分析: bw:磁盘的吞吐量,这个是顺序读写考察的重点 iops:磁盘的每秒读写次数,这个是随机读写考察的重点 read : io=948896KB, bw=9475.1KB/s, iops=592, runt=100138msec write: io=380816KB, bw=3802.1KB/s, iops=237, runt=100138msec
硬件开发
2016-11-06 15:43:00
#背景 博主从事的是智能家居领域的网关研发工作。
由于我们的网络是Zigbee,所以博主不得不学会抓包。
会抓包,这个很重要。做我们这行不会抓包,就等同于电子工程师不会示波器、程序员不会GDB。
#正题
抓包器介绍
我司用的抓包软件是Ubiqua,是花了重金买的。主界面如下:
添加抓包器
首先,插上我们的抓包器,博主为 NXP 的 JN5168,用 FTDI 串口转USB 的 Dangle。
点击菜单栏:Device -> Add Device ... ,弹出设备添加框:
选 “NXP”,然后选重 "NXP FTDI Device",再点 “Add Device”,如下:
设置信道
然后点击设备上的开关按钮即可。
正常情况下,主界面就会出现大量的数据显示:
其中如下显示的,表示未解密包:
需要遇到 Transport Key 包方可解密。最简单的方法就是入一个设备进网络。
常用工具
在抓包器中一有些常用的工具:
保存当前数据 滚动显示 单包分解窗显示最新包 清空所有 当前过滤器 启用与关闭过滤器 新建过滤器 编辑当前过滤器 删除过滤器
过滤器
过滤器是必要的,不然人眼受不了。
新建过滤器
点击(7)所示的按钮,弹出如下框:
如果是Zigbee新手,用起来都比较麻烦。还有另一种简单的方法。
比如博主要抓 PANID=5FCC的包,即同一个网络的数据包。 先选中一个数据包样本。然后:
Zigbee包结构
ZCL包
如下为ZCL包,开关的属性报告:
Zigbee的协议很多与我们以太网络很像: MAC NWK APS ZCL
不详讲,只想提一下几点: PANID 在 MAC 层里 MAC层与NWK层都有Source Address 与 Destination Address,MAC层的是当前包的源地址与目标地址,而NWK的是指真正的源地址到目标地址。类似以太网的IP层与MAC层的关系 Frame Information中有包的信息,包括信号强度 Cluster id 是在 APS 层
##常见的数据包介绍 如下数据包: Management Permit Joining Request 开启与关闭组网 Beacon Request 请求信标 Beacon 信标 Acknowledgement (MAC) 点对点确认包 Acknowledgement (NWK) 目标到源确认包 Association Request 请求关联 Association Response 关联回复 Transport Key 传输密钥 Device Announce 设备通告 Active Endpoints Request 请求端点个数 Active Endpoints Response 回复端点个数 Simple Descriptor Request 请求端点简单描述 Simple Descriptor Response 回复端点简单描述 Data Request 终端结点向父结点获取数据 Bind Request 请求绑定 Bind Response 回复绑定 Configure Reporting 配置属性报告 Configure Reporting Response 配置属性报告回复 Read Attributes 读属性 Read Attributes Response 读属性回复 Write Attributes 写属性 Write Attributes Response 写属性回复 Report Attributes 属性报告
结语
本文就到介绍到这里,博主以后再一一介绍设备入网与控制的流程分析。
硬件开发
2016-11-19 17:36:00
树莓派设置固定IP
之前根据度娘找到的资料,大部分修改方式都是 sudo nano /etc/network/interfaces . 希望linux新手就不要再爬坑了。
- 修改/etc/network/interfaces 设置IP是不可行的 .

设置树莓派固定IP的正确方法
修改此文件(/etc/dhcpcd.conf),添加下面红色内容.
这里eth0代表板子上的RJ45口的地址 。
IP 地址要根据自己的子网掩码修改,而且后面的"/24"也需要带上 (去掉是不行的,自己可以测试).
domain_name_servers后面还可以添加dns地址 , 比如 :
domain_name_servers=192.168.1.1 8.8.8.8
如果需要设置无线网 . 可以再添加一套配置 (wlan0) :

官网解决方案
点击连接 : Raspberry IP Set
硬件开发
2016-11-17 17:55:00
MicroPython中文教程 V2.0正式发布了!
这次教程与V1版本相比,增加了ESP8266的内容,以及很多其它开发板的内容,此外还补充和修正了官方库内容。
中文教程V2版分为四个格式:pdf、chm、epub、exe。chm适合PC上使用,epub适合手机和平板,而exe格式全局查找非常方便,pdf则是万能格式,基本适合所有系统。这个版本针对pdf仔细调整了参数,界面看起来比第一版要好多了。
中文教程可以到 MicroPython社区 下载,也可以到 码云 下载。
硬件开发
2016-11-17 11:17:00
随着社交网络、直播的兴起,电商营销的逻辑正在发生改变,不仅电商们正在玩直播,因社交网络兴起的网红们也纷纷玩起电商,
社交网络经济变现正在成为电商新的突破口。ThinkSNS凭借在社交系统领域8年的技术沉淀以及对互联网经济的敏锐感知, 在用心研发直播功能同时,更是倾注大量心血,专注于开发在社交及直播的基础上如何插入电商功能。研发融合分销系统、 数据统计、营销方案等先进思想,打造出以客户营销为中心的电商系统解决方案。值得庆幸的是ThinkSNS已经将电商系统 成功加入到ThinkSNS中了,目前还在内部测试阶段,ThinkSNS电商版(社交+电商)具体上线时间请关注ThinkSNS官网 (www.thinksns.com)!
ThinkSNS V4.5社交系统版
ThinkSNS V4.5直播系统版
那么下面,小编先介绍下,ThinkSNS电商版的技术支持、主要功能及优势(这里只介绍电商的功能优势,因为ThinkSNS的社交系统的功能相信大家已经非常熟悉了):
一、技术支持:
前端:Bootstrap响应式布局,跨平台体验更流畅,管理方便直接
程序:PHP语言开发,高性能、高安全、更稳定。后期开发人员易上手。
二、ThinkSNS+电商,功能主要包括:
①、商品管理:商品管理(商品上架、活动商品、分类设置、商品属性,商品规格)更流畅、高效、安全、
易操作,商品分类随意移动合并,更方便。
②、供应商物流系统:
(a)、供应商(多供应商自主上传商品及发货,快速上传及管理商品,新订单短信提示及快速发货处理)
(b)运费模板(根据不同供应商设置不同的运费模板,多供应商设置多个物流模板,分别管理及展示相应信息)
(c)物流进程(微信直接对接物流,动态直接显示到消息,物流跟踪,快速查询物流最新动态)
③、订单发货:下单--付款---付款交易/取消订单---发货---交易成功/退款(直接退款、退货退款)---交易完成
④、用户管理: 包含:总管理、栏目管理、供应商、普通用户; 平台对于企业存在的目的是减少人工操作,提高工作效率。合理安排用户角色,提高平台运营商的工作效率。栏目分类化管理,更安全更高效; 供应商可用户发布商品及订单发货处理。
⑤、文章管理:文章分类+文章内容发布(展示用户问题,快速帮助用户熟悉凭条内服务流程、注册流程、问答帮助、企业信息等文字类信息介绍。并在相应的位置做好展示效果)
⑥、营销管理:
A、秒杀(设置秒杀时及秒杀价格。通过秒杀增加平台的流量及客源,提高平台和商品的知名度)
B、拼团:凑人头、低价购。病毒式销售方法,让用户在享受低价的恩同事为您拓展用户,增加平台流量。
C、红包:微信红包金额随机抢,以用户喜闻乐见的游戏方式,满足用户炫耀的心理。
D、满减:设置满减金额,以凑单走量的方式,提高用户消费的单价金额。
E、分销:通过分销方式,人人都能开分销店铺获取返现。代理售卖平台商品。让用户主动传播平台。
F、买赠:通过买商品赠送商品的方法刺激产品销售。实在看得见的商品链,易给客户产生得到实惠的感觉。
G、折扣:设置第二件商品购买折扣。助力提高用户购买数量,让积压货物得到及时清仓。
H、卡券:礼品卡可用于线下用户发展,用户通过账号密码进行礼品卡消费。优惠券可用于平台领取直接消费。
⑦、数据统计:
⑧、其他设置:网站配置、公众号配置及管理、支付配置、短信配置、积分设置、钩子管理、数据备份。
三、ThinkSNS+电商的优势:
①、技术优势:
高安全:PHP脚本语言与mysql数据库,在开发过程中充分考虑安全问题。比如:输入过滤、表单令牌、防止sql注入和防止xss攻击、上传安全 跨平台:适用于Linux/Unix及微软Windows2000/2003/2008/XP/NT等多种操作系统; 高性能:PHP语言进行开发,支持命名空间、多层MVC、模块设计、同时支持伪静态、url重写、数据缓存、静态缓存、性能调试等,并且配合通用的设计模式,达到代码可重用和低耦合,更容易修改和维护。
②、系统优势:
流畅(逻辑以及UI体验的流畅性) 稳定(商城系统自身的稳定性) 安全(交易体系下的安全考虑) 电脑端、手机端、微信端商城三端一站式管理,思路清晰操作简单易上手,提高工作效率
③、UI风格:
规范(设计符合用户使用习惯,详细到按钮的位置以及文字信息的显示) 简约(简约大气的风格更适合品牌类商城。内容上简约而不简单) 全面(颜色+风格+信息等内容全面更容易被用户接受) 清晰(逻辑清晰,给用户更简单的结构。更快上手使用) 更多ThinkSNS产品功能介绍(包括社交功能、直播功能、电商功能) 请访问:
http://www.thinksns.com/product.html
ThinkSNS在线体验地址: http://demo.thinksns.com/ts4/
ThinkSNS最新更新动态及活动信息请关注:“ThinkSNS”公众号,扫描下方二维码即可关注
硬件开发
2016-11-17 10:52:00
pycom终于宣布将ESP32的MicroPython开源。
https://forum.pycom.io/topic/262/open-source-licence
只是许可不是MIT,而是GPL3。这一点上,受到众多网友的热议
http://forum.micropython.org/viewtopic.php?f=12&t=2632
代码
https://github.com/pycom/pycom-micropython/tree/master/esp32
硬件开发
2016-11-15 11:13:00
解决Win7&Win8 64位下Source Insight提示未完整安装的问题
网上的破解版的注册表文件都是针对32位系统的,所以在64位系统里运行根本无法破解。下面分别贴出这俩系统里的破解文件。
使用方法:
分别复制对应系统的内容,新建文本文档,将内容粘贴进去,重命名为.reg文件,双击运行,弹出提示窗口,点击“确定”,整个世界都清净了。
Win7&Win8 64bit:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Source Dynamics\Source Insight\3.0] [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Source Dynamics\Source Insight\3.0\Install] "SetupAdminOK"="1" "SerialNumber"="SI3US-802287-90702" "UName"=hex:76,6e,03 "UNameData"=hex:00,00,61,61 "UOrg"=hex:76,6e,03 "UOrgData"=hex:00,00,61,61 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Source Dynamics\Source Insight\3.0\Paths] "CmdShell"="C:\\Windows\\system32\\cmd.exe" "InitDir"="D:\\SourceInsight" "BackupDir"="D:\\SourceInsight\\Backup"
WinXP 32 bit:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Source Dynamics\Source Insight\3.0\Install] "SetupAdminOK"="1" "SerialNumber"="SI3US-802287-90702" "UName"=hex:7a,7a,79,62,7b,66,6d,6c,17 "UNameData"=hex:00,00,67,6e "UOrg"=hex:60,66,6d,71,7f,6a,6d,6c,31,6c,71,78,7c,76,03 "UOrgData"=hex:00,00,79,6b
硬件开发
2016-11-14 14:09:00
在linux嵌入式系统开发中,我们需要登陆linux虚拟机和linux服务器进行开发。常用登陆工具 putty和sourceCRT,用vi进行编辑。对于一些习惯使用IDE的开发人员不是很方便,我们可以通过设置samba服务器来实现,linux和 window的文件共享。这样就可以在windows下用图形画的工具进行,编辑代码。
1-首先保证Ubuntu能连入Internet(虚拟机通过桥接),XP与Ubuntu能互相ping通。
2-安装 samba和smbfs(ubunt12.04 无需安装,跳过)
ubuntu 12.04已经安装了最新版本的samba服务器,无需安装。
如果使用12.04以前的版本,最好是按下边的方法升级一下samba(12.04版本无需下列操作)
卸载samba,smbclient,samba-common
$sudo apt-get remove samba-common
$sudo apt-get remove smbclient
$sudo apt-get remove samba
安装Ubuntu samba服务器:
sudo apt-get install samba
sudo apt-get install smbfs
3-创建共享目录 此处我是在默认用户linux下添加文件夹。
终端执行:mkdir /home/linux/sambatest 在默认目录下创建名为sambatest的共享文件夹。
终端执行:chmod 777 /home/linux/sambatest 改变sambastest文件 属性。
(否则xp下不能创建文件夹)
4-开始配置(用图形界面)
samba配置文件: /etc/samba/smb.conf 可以修改配置文件来设置samba共享和用户
如果不习惯使用配置文件,也可以使用图形界面
安装Ubuntu samba图形管理界面
sudo apt-get install system-config-samba
5-设置共享用户(用图形界面)
启动samba图形管理界面
sudo system-config-samba 也可以选择菜单:
点击 preferences--samba users 添加samba用户
点击adduser 选择 ubuntu中已存在的用户,填写win下用户名和密码。
6-添加samba共享文件夹(用图形界面)
file-addshare 或者 点击 绿色大加号
选择文件夹sambatest,填写win下显示名称sambatest-1,勾选,可见,可写。
点击access选择可登录的samba用户。
点击ok
7-重启samba
sudo service sambd restart
或是 sudo /etc/init.d/samba restart (老的版本可能不可用)
8-Windows 上访问 samba
在“运行”中输入: \
硬件开发
2016-11-14 12:00:00
Ubuntu 12.04 LTS 版本
由于 Ubuntu 12.04 LTS 自带的 Fcitx 版本较旧,需要先通过 PPA 升级,才能安装下载的 deb 软件包。
1.系统补丁update更新
2. 点击左上角的图标打开Dash,输入update-manager,点击更新管理器。
3. 在更新管理器中,选择菜单:编辑->软件源,点击添加...按钮,在弹出的窗口中输入ppa:fcitx-team/nightly, 点击添加源。
4. 然后点击重新载入。
5. 打开Ubuntu软件中心,在搜索栏输入fcitx,将会搜出fcitx,然后按照一般软件安装步骤安装即可完成升级。
6. 下载搜狗输入法安装包http://pinyin.sogou.com/linux/?r=pinyin
7. sudo dpkg -i 下载的deb 软件包安装搜狗输入法。
8. 出错需要修复依耐关系 sudo apt-get install -f
硬件开发
2016-11-14 10:11:00
从MicroPython的1.8版本开始,因为固件越来越大,超过了512K,所以就不在支持512K的ESP8266模块,如ESP-01。
在1.8.6版本中,ESP8266的SDK升级到了2.0版本,API作出了很多调整。现在又可以重新支持512K的模块了。
具体方法是:
更新MicroPython的源码到1.8.6 更新编译器 在esp8266目录下 先要清理以前编译的内容
make clean 然后在命令行指定512k参数
make 512 如果在512K模式和正常模式之间切换,也需要先clean
编译后产生的bin文件,就小于512k了,但其实剩余的也不多(23k),放不下多少程序了。

硬件开发
2016-11-13 10:55:00
请勿转载。谢谢。
###1.函数主体内容 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) { uint32_t *tmp; /* Check that a Tx process is not already ongoing */ if(huart->gState == HAL_UART_STATE_READY) { if((pData == NULL ) || (Size == 0U)) { return HAL_ERROR; } /* Process Locked */ __HAL_LOCK(huart); huart->pTxBuffPtr = pData; huart->TxXferSize = Size; huart->TxXferCount = Size; huart->ErrorCode = HAL_UART_ERROR_NONE; huart->gState = HAL_UART_STATE_BUSY_TX; /* Set the UART DMA transfer complete callback */ huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; /* Set the UART DMA Half transfer complete callback */ huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; /* Set the DMA error callback */ huart->hdmatx->XferErrorCallback = UART_DMAError; /* Set the DMA abort callback */ huart->hdmatx->XferAbortCallback = NULL; /* Enable the UART transmit DMA Stream */ tmp = (uint32_t*)&pData; HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t*)tmp, (uint32_t)&huart->Instance->DR, Size); /* Clear the TC flag in the SR register by writing 0 to it */ __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); /* Process Unlocked */ __HAL_UNLOCK(huart); /* Enable the DMA transfer for transmit request by setting the DMAT bit in the UART CR3 register */ SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); return HAL_OK; } else { return HAL_BUSY; } }
如上就是HAL_UART_Transmit_DMA 函数全部的代码。除去些初始化的代码,可以提炼到比较重要的代码如下
设置memory 到 periphery 的地址,并且开启中断 并使能DMA通道 HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t*)tmp, (uint32_t)&huart->Instance->DR, Size);
清除串口 TC 中断 FLAG __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC);
使能发送 SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
2.调用HAL_DMA_Start_IT
设置memory 到 periphery 的地址,并且开启中断 并使能DMA通道 函数内容如下 HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) { HAL_StatusTypeDef status = HAL_OK; /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; /* Check the parameters */ assert_param(IS_DMA_BUFFER_SIZE(DataLength)); /* Process locked */ __HAL_LOCK(hdma); if(HAL_DMA_STATE_READY == hdma->State) { /* Change DMA peripheral state */ hdma->State = HAL_DMA_STATE_BUSY; /* Initialize the error code */ hdma->ErrorCode = HAL_DMA_ERROR_NONE; /* Configure the source, destination address and the data length */ DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; /* Enable Common interrupts*/ hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME; hdma->Instance->FCR |= DMA_IT_FE; if(hdma->XferHalfCpltCallback != NULL) { hdma->Instance->CR |= DMA_IT_HT; } /* Enable the Peripheral */ __HAL_DMA_ENABLE(hdma); } else { /* Process unlocked */ __HAL_UNLOCK(hdma); /* Return error status */ status = HAL_BUSY; } return status; }
设置memory 到 periphery 地址 DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength);
打开中断 hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME; hdma->Instance->FCR |= DMA_IT_FE;
开启通道 __HAL_DMA_ENABLE(hdma);
关于开启通道的的这个marco 可以在这条语句中得到解答 #define __HAL_DMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= DMA_SxCR_EN)
###3.结尾 那么HAL_UART_Transmit_DMA 函数主要做的事情顺序如下 设置memory 到 periphery 的地址,并且开启中断 并使能DMA通道 清除串口 TC 中断 FLAG 使能发送
硬件开发
2016-11-13 03:24:00
昨天(11月10日),micropython升级到1.8.6版本。
主要更新: v1.8.6 ESP8266 port uses SDK 2.0, has more heap, has support for 512k devices This release brings some code size reductions to the core as well as more tests and improved coverage which is now at 94.3%. The time.ticks_diff(a, b) function has changed: the order of the arguments has been swapped so that it behaves like "a - b", and it can now return a negative number if "a" came before "b" (modulo the period of the ticks functions). For the ESP8266 port the Espressif SDK has been updated to 2.0.0, the heap has been increased from 28k to 36k, and there is support for 512k devices via "make 512k". upip is included by default as frozen bytecode. The network module now allows access-point reconnection without WiFi credentials, and exposes configuration for the station DHCP hostname. The DS18B20 driver now handles negative temperatures, and NeoPixel and APA102 drivers handle 4 bytes-per-pixel LEDs. For the CC3200 port there is now support for loading of precompiled .mpy files and threading now works properly with interrupts. A detailed list of changes follows. py core: - py.mk: automatically add frozen.c to source list if FROZEN_DIR is defined - be more specific with MP_DECLARE_CONST_FUN_OBJ macros - specialise builtin funcs to use separate type for fixed arg count - {modbuiltins,obj}: use MP_PYTHON_PRINTER where possible - modbuiltins: add builtin "slice", pointing to existing slice type - add "delattr" builtin, conditional on MICROPY_CPYTHON_COMPAT - sequence: fix reverse slicing of lists - fix null pointer dereference in mpz.c, fix missing va_end in warning.c - remove asserts that are always true in emitbc.c - fix wrong assumption that m_renew will not move if shrinking - change config default so m_malloc0 uses memset if GC not enabled - add MICROPY_FLOAT_CONST macro for defining float constants - move frozen bytecode Makefile rules from ports to common mk files - strip leading dirs from frozen mpy files, so any path can be used extmod: - vfs_fat_file: check fatfs f_sync() and f_close() returns for errors - vfs_fat_file: make file.close() a no-op if file already closed - utime_mphal: ticks_diff(): switch arg order, return signed value - utime_mphal: add MP_THREAD_GIL_EXIT/ENTER warppers for sleep functions - utime_mphal: implement ticks_add(), add to all maintained ports - utime_mphal: allow ticks functions period be configurable by a port lib: - utils/pyhelp.c: use mp_printf() instead of printf() - utils/pyexec: add mp_hal_set_interrupt_char() prototype - libm: move Thumb-specific sqrtf function to separate file drivers: - add "from micropython import const" when const is used tools: - upgrade upip to 1.1.4: fix error on unix when installing to non-existing absolute path - pip-micropython: remove deprecated wrapper tool - check_code_size.sh: code size validation script for CI - replace upip tarball with just source file, to make its inclusion as frozen modules in multiple ports less magic tests: - extmod/vfs_fat: improve VFS test coverage - basics/builtin_slice: add test for "slice" builtin name - basics: add test for builtin "delattr" - extmod/vfs_fat_fsusermount: improve fsusermount test coverage - extmod/vfs_fat_oldproto: test old block device protocol - basics/gc1: garbage collector threshold() coverage - extmod/uhashlib_sha1: coverage for SHA1 algorithm - extmod/uhashlib_sha256: rename sha256.py test - btree1: fix out of memory error running on esp8266 - extmod/ticks_diff: test for new semantics of ticks_diff() - extmod/framebuf1: test framebuffer pixel clear, and text function minimal port: - Makefile: split rule for firmware.bin generation unix port: - Makefile: remove references to deprecated pip-micropython - modtime: use ticks_diff() implementation from extmod/utime_mphal.c - mphalport.h: add warning of mp_hal_delay_ms() implementation - modtime: switch ticks/sleep_ms/us() to utime_mphal - fix symbol references for x86 Mac - replace upip tarball with just source file windows port: - enable utime_mphal following unix, define mp_hal_ticks_* - fix utime_mphal compilation for msvc - implement mp_hal_ticks_cpu in terms of QueryPerformanceCounter qemu-arm port: - exclude ticks_diff test for qemu-arm port - exclude extmod/vfs_fat_fileio.py test - exclude new vfs_fat tests - enable software floating point support, and float tests stmhal port: - modutime: refactor to use extmod's version of ticks_cpu - refactor pin usage to use mp_hal_pin API - led: refactor LED to use mp_hal_pin_output() init function - Makefile: use standard rules for frozen module generation - modutime: consistently convert to MP_ROM_QSTR/MP_ROM_PTR - enable SD power save (disable CLK on idle) cc3200 port: - use mp_raise_XXX helper functions to reduce code size - mods/pybspi: allow "write" arg of read/readinto to be positional - enable loading of precompiled .mpy files - fix thread mutex's so threading works with interrupts teensy port: - update to provide new mp_hal_pin_XXX functions following stmhal esp8266 port: - Makefile: use latest esptool.py flash size auto-detection - esp_init_data: auto-initialize system params with vendor SDK 2.0.0 - esp8266.ld: move help.o to iROM - esp8266.ld: move modmachine.o to iROM - esp8266.ld: move main.o to iROM - add MP_FASTCODE modifier to put a function to iRAM - main: mark nlr_jump_fail() as MP_FASTCODE - modules/webrepl: enforce only one concurrent WebREPL connection - etshal.h: add few more ESP8266 vendor lib prototypes - modesp: add flash_user_start() function - add support for building firmware version for 512K modules - scripts: make neopixel/apa102 handle 4bpp LEDs with common code - modutime: consistently convert to MP_ROM_QSTR/MP_ROM_PTR - modnetwork: config(): fix copy-paste error in setting "mac" - scripts/port_diag: add descriptions for esf_buf types - modnetwork.c: allows AP reconnection without WiFi credentials - main: bump heap size to 36K - etshal.h: add prototypes for SPIRead/SPIWrite/SPIEraseSector - etshal.h: adjust size of MD5_CTX structure - modules: fix negative temperature in ds18x20 driver - rename "machine" module implementation to use contemporary naming - rework webrepl_setup to run over wired REPL - espneopixel.c: solve glitching LED issues with cpu at 80MHz - include upip as a standard frozen bytecode module - update docs for esptool 1.2.1/SDK 2.0 (--flash_size=detect) - modnetwork.c: expose configuration for station DHCP hostname zephyr port: - implement utime module - use board/SoC values for startup banner based on Zephyr config - initial implementation of machine.Pin - zephyr_getchar: update for recent Zephyr refactor of console hooks - support time -> utime module "weaklink" - README: update for the current featureset, add more info - mpconfigport.h: move less important params to the bottom - Makefile: allow to adjust heap size from make command line - Makefile: update comments to the current state of affairs - Makefile: allow to override Zephyr config from make command line - Makefile: add minimal port - Makefile: add -fomit-frame-pointer to reduce code size - mphalport.h: update for new "unified" kernal API (sleep functions) docs: - machine.SPI: bring up to date with Hardware API, make vendor-neutral - machine.SPI: improve descriptions of xfer methods - library/builtins: add docs for delattr and slice - library/network: reword intro paragraph - library/network: typo fixes, consistent acronym capitalization - library/index: update TOCs so builtins sorted before modules - utime: document ticks_cpu() in more detail - utime: describe new semantics of ticks_diff() (signed ring arithmetics) - utime: add docs for ticks_add(), improvements for other ticks_*() - esp8266: update for new WebREPL setup procedure - */quickref.rst: use new semantics of ticks_diff() - library/machine.Pin: update Pin docs to align with new HW API travis: - integrate tools/check_code_size.sh - minimal: Use CROSS=1, for binary size check examples: - http_server_simplistic: add "not suitable for real use" note - hwapi: example showing best practices for HW API usage in apps - hwapi: add hwconfig for DragonBoard 410c
硬件开发
2016-11-11 11:31:00
cortex-M3
__vector_table
下述指cortex-M3 中断服务程序 进入和退出方式和普通函数一样 vector table 实现作为一个数组 __get_CPSR __set_CPSR 不可用,需用inline 汇编
section
code     Executable code
readonly    Constant variables
readwrite    Initialized variables
zeroinit     Zero-initialized variables
硬件开发
2016-11-09 17:25:00
我们和云汉社区合作,开展PYB Nano开发板试用活动了,有兴趣的网友可以去申请一下。
http://bbs.ickey.cn/e/try/detail?pid=66
如果等不及试用,也可以参加我们的团购活动。
开发板团购
硬件开发
2016-11-09 14:34:00
LED(light-emitting diode),即发光二极管,俗称 LED 小灯,它的种类很多,参数也不尽相同,我们板子上用的是普通的贴片发光二极管。这种二极管通常的正向导通电压是 1.8V到 2.2V 之间,工作电流一般在 1mA~20mA 之间。其中,当电流在 1mA~5mA 之间变化时,随着通过 LED 的电流越来大,我们的肉眼会明显感觉到这个小灯越来越亮,而当电流从5mA~20mA 之间变化时,我们看到的发光二极管的亮度变化就不是太明显了。当电流超过20mA 时,LED 就会有烧坏的危险了,电流越大,烧坏的也就越快。所以我们在使用过程中应该特别注意它在电流参数上的设计要求。那么下面我们来看一下这个发光二极管在开发板上的设计应用。首先来看图 2-3。(不喜欢看文字?登录乐搏学院官网,里面有海量的免费在线课程等你来学习)
图 2-3 是我们开发板上的 USB 接口电路,通过 USB 线,电脑给我们的开发板供电和下载程序以及实现电脑和开发板之间的通信。从图上可以看出,USB 座共有 6 个接口,其中 2脚和 3 脚是数据通信引脚,1 脚和 4 脚是电源引脚,1 脚是 VCC 正电源,4 脚是 GND 即地线。5 脚和 6 脚是外壳,我们直接接到了 GND 上,大家可以观察一下开发板上的这个 USB座的 6 个引脚。我们现在主要来看 1 脚 VCC 和 4 脚 GND。1 脚通过 F1(自恢复保险丝)接到右侧,在正常工作的情况下,保险丝可以直接看成导线,因此左右两边都是 USB 电源+5V,自恢复保险丝的作用是,当你后级电路哪个地方有发生短路的时候,保险丝会自动切断电路,保护开发板以及电脑的 USB 口,当电路正常后,保险丝会恢复畅通,正常工作。右侧有 2 条支路,第一条是在+5V 和 GND 接了一个 470uF 的电容,电容是隔离直流的,所以这条支路是没有电流的,电容的作用,我们下节课再介绍,这节课我们主要看第二条支路。我们把第二条支路摘取出来就是如图 2-4
这个样子。 单片机开发——点亮你的LED小灯 发光二极管是二极管中的一种,因此和普通二极管一样,这个二极管也有阴极和阳极,习惯上也称之为负极和正极。原理图里的 LED 画成这样方便在电路上观察,方向必须接对了才会有电流通过让LED 小灯发光。刚才提到了我们接入的 VCC 电压是 5V,发光二极管自身压降大概是 2V,那么在右边R34 这个电阻上承受的电压就是 3V。那么现在我们要求电流 范围是 1~20mA 的话,就可以根据欧姆定律 R=U/I,把这个电阻的上限和下限值求出来。U=3V,当电流是 1mA 的时候,电阻值是 3K;当电流是 20mA 的时候,电阻值是 150欧,也就是 R34 的取值范围是 150~3K 欧姆。这个电阻值大小的变化,直接可以限制整条通路的电流的大小,因此这个电阻我们通常称之为“限流电阻”。在图 2-3 中,我们用的电阻是1K,这条支路电流的大小,我想大家可以轻松计算出来了,而这个发光二极管在这里的作用, 是作为电源指示灯的,使用 USB 线将开发板和电脑连起来,这个灯就会亮了。同理,我们在板子后级开关控制的地方,又添加了一个 LED10 发光二极管,作用就是当我们打开开关时,这个二极管才会亮起,如图 2-5 所示。

单片机开发——点亮你的LED小灯大家注意,这里的开关虽然只有一个,但是是 2 路的,2 路开关并联能更好的确保给后级提供更大的电流。电容 C19 和 C10,都是隔离断开直流的,作用我们下节课介绍,这里大家可以忽略。那么下面呢,我们把图 2-4 进行一下变化,把右侧的 GND 去掉,改成一个单片机的 IO口,如图 2-6 所示。 单片机开发——点亮你的LED小灯 图 2-4 由于电源从正极到负极有电压差,并且电路是导通的,所以就会有电流通过,LED小灯因为有了电流通过,所以就会直接发光。我们把右侧的原 GND 处接到单片机 P0.0 引脚上,那么如果我们单片机输出一个低电平,也就是跟 GND 一样的 0V 电压,就可以让 LED 小灯和图 2-4 一样发光了。因为我们的单片机是可以编程控制的,我们可以让 P0.0 这个引脚输出一个高电平,就是跟 VCC 一样的 5V 电压,那么这个时候,左侧 VCC 电压和右侧的 P0.0 的电压是一致的,那就没有电压差,没有电压差就不会产生电流,没有电流 LED 小灯就不会亮,也就是会处于熄灭状态。下面,我们就用我们的编程软件来实现控制小灯的亮和灭。 单片机开发——点亮你的LED小灯登录乐搏学院官网,免费学习单片机开发精品课程。
硬件开发
2016-11-08 15:55:00
聚焦2016年“松湖杯”创新创业大赛 系列报道2
莞企欲打通物联网创业生态链
比派科技借开源硬件产品,打造从创客到创业的产业生态圈
如果你是一个年轻的创客,你想设计开发一款智能产品,那么,你或许会用到开源硬件产品,帮助你做出产品的雏形。许多人不知道的是,松山湖的一家公司,其自主研发生产的开源硬件产品,销量已经高居全球前列。
广东比派科技有限公司去年落户松山湖,在首届“松湖杯”创新创业大赛的决赛中,比派科技荣获第三名。明年,这家为创客服务的创业型公司,业绩也将迎来爆发,预计订单金额将达到7000万元。
产品销量位居全球前列
比派科技总经理王赞梅从通讯行业起家,2003年,他在深圳创立了源创通信公司,开始第一次创业。如今,这家公司在深圳已经拥有1万平方米的工厂。
电子行业瞬息万变,传统的加工生产模式已经遇到瓶颈。于是,王赞梅想到了转型。彼时,开源硬件、物联网方兴未艾,而这个板块与原有的通讯实业是息息相关的,王赞梅毅然决定投身这个领域。
2013年,公司与鸿海集团联合研发开源硬件,并于2014年正式推出“香蕉派”。香蕉派这款开源硬件产品一经推出,旋即引爆了市场。
去年,比派科技从源创通信独立,在松山湖开始创业之路,同年获得首届“松湖杯”创新创业大赛的三等奖。比赛阶段,比派科技已签下5000万合同订单。如今公司产品月销3至5万片,销往176个国家及地区,其出货量已高居全球前列。
在首届“松湖杯”创新创业大赛上,比派科技凭借其新颖的产品和商业模式,受到评委的一致好评。王赞梅向记者介绍,比派科技专注于开源硬件和物联网项目,推出香蕉派系列开发板,为全世界范围的创客提供了基础的技术平台。
在这个平台上,创客们可以充分发挥自己的才能,将自己的奇思妙想变成现实。只要与智能制造相关的创意,从开发板到传感器,这个开源硬件平台上一应俱全,“我们帮助创客完成前期的50%产品研发工作,也是最难的那一部分,创客在此基础上进行创意开发。”王赞梅说。
令王赞梅自豪的是,在上个月举行的全国双创周上,他了解到,至少有20家企业用了比派科技的产品做主控板。看着现场那些酷炫的产品,想到这些产品的问世也有自己的功劳,王赞梅着实兴奋了一阵。
“为创客服务的创客”
王赞梅一直将他自己形容为“为创客服务的创客”。比派科技要做的并不只是生产销售开源硬件产品,而是要打造一个物联网的创业生态圈。在这个生态圈中,会有众多的创意公司,而比派科技会为他们提供服务。
除了推出开源硬件产品外,比派科技还搭建了香蕉派线上社区。王赞梅向记者介绍,产品连接创客,香蕉派社区已经成为全球知名的开源硬件社区。活跃的创客生态,引来微软、谷歌的关注,联合在平台上作应用开发,为创客提供云服务,激活物联网板块。
除了搭建基础技术支持平台外,王赞梅还想培育一批优质的公司。通过香蕉派培育的用户群,王赞梅寻找到许多优质的团队,这些刚刚起步的公司,受限于资源的缺乏,往往陷于困境中,王赞梅要做的就是帮助这些公司快速成长。
现在,王赞梅已经投资了近10个创业项目了,“我自己本身有丰富的创业经验,既有技术支持平台,还有的传统的加工厂,在松山湖,我们还能对接各种创投机构,这些都能帮助初创公司成长。”
满足开发者的创作同时,比派科技背靠强大的供应链,也正致力于帮助创业公司的产品批量化生产,以此打造完整的从创客到创业的产业生态链。
试水物联网产品高端定制
随着智能产品和移动互联网的普及覆盖,智能硬件创新的飞速发展,各种开发平台应运而生,开源硬件越来越受到广大开发者的推崇,国内厂商也瞄准了开源硬件板这个市场。
毋庸置疑的是,物联网时代已经来临,互联网巨头也开始加紧布局这一市场。而比派科技所搭建的开源硬件平台,已经引起不少互联网巨头的关注。除了服务年轻的创客群体外,与互联网巨头的合作也成为比派科技的又一战略规划。
“现在,我们的平台推出一块板,微软等互联网巨头就可能会支持。我们跟国内外的一些互联网巨头已经有了合作,通过我们的产品,去完善他们的开发平台。”王赞梅说。
现在,比派科技的另一个商业模式是物联网产品的高端定制环节,这也是如今松山湖公司的主营业务,“为企业解决批量化生产问题,这也是比派区别于一般开源硬件公司的特点,也将是公司最大的盈利点。”王赞梅向记者介绍。
王赞梅表示,比派科技背靠完善的供应链、品质管控、海外销售网络,这些均为产品商业化过程提供了支撑。通过试水物联网产品高端定制,比派科技也将从中赚取利润。王赞梅介绍,今年执行合同金额达1000万元,产品涉及家庭网关,机器人控制,精密仪器控制等,“预计明年可以获得10个以上的订单,金额约7000万”。
本报记者 于长洹/文 原文链接:
http://epaper.timedg.com/index.php?date=20161108&page=5
硬件开发
2016-11-08 14:51:00
树莓派——Cron和Crontab(定时任务)

Cron是Unix系统的一个配置定期任务的工具,用于定期或者以一定的时间间隔执行一些命令或者脚本;可执行的任务范围可以是每天夜里自动备份用户的home文件夹,也可以每个小时记录CPU的信息日志。
crontab(cron table)命令用于编辑执行中的定期任务列表,并且操作是基于每个用户的,每一个用户(包括root用户)都拥有自己的crontab。
EDITING CRONTAB(编辑crontab)
运行crontab和-e选项来编辑cron table: crontab -e
SELECT AN EDIROR(选择一个编辑器)
第一次运行crontab命令的时候会提示你选择一个编辑器。如果你不确定使用哪一个,你可以直接回车选择默认的nano编辑器。
每一项cron实体的内容都包含六个部分:分钟、小时、月份中的哪一天、年份中的哪一月、星期中的哪一天,还有定时执行的命令。 # m h dom mon dow command # * * * * * command to execute # ┬ ┬ ┬ ┬ ┬ # │ │ │ │ │ # │ │ │ │ │ # │ │ │ │ └───── 星期中的哪一天(0-7)(从0到6代表星期日到星期六,也可以使用名字;7是星期天,等同于0) # │ │ │ └────────── 月份 (1 - 12) # │ │ └─────────────── 月份中的日 (1 - 31) # │ └──────────────────── 小时 (0 - 23) # └───────────────────────── 分钟 (0 - 59)
例如: 0 0 * * * /home/pi/backup.sh
这项cron实例将会在每一天的午夜执行backup.sh脚本。

原文地址:http://www.raspberrypi.org/documentation/linux/usage/cron.md
硬件开发
2016-11-06 21:58:00
Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。Iperf在linux和windows平台均有版本供自由使用。
参数说明: -s 以server模式启动,eg:iperf -s -c host以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23 # 通用参数 -f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K -i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2 -l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16 -m 显示tcp最大mtu值 -o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o ciperflog.txt -p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999 -u 使用udp协议 -w 指定TCP窗口大小,默认是8KB -B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数) -C 兼容旧版本(当server端和client端版本不一样时使用) -M 设定TCP数据包的最大mtu值 -N 设定TCP不延时 -V 传输ipv6数据包 # server专用参数 -D 以服务方式运行iperf,eg:iperf -s -D -R 停止iperf服务,针对-D,eg:iperf -s -R # client端专用参数 -d 同时进行双向传输测试 -n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000 -r 单独进行双向传输测试 -t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5 -F 指定需要传输的文件 -T 指定ttl值
常用参数使用举例: #服务端: iperf -s -p 8008 #客户端: iperf -c 192.168.199.123 -i 2 -t 60 -p 8008
硬件开发
2016-11-06 16:28:00
dd是一个Unix和类Unix系统上的命令,主要功能为转换和复制文件。dd的名字可能来源于IBM的工作控制语言(JCL)中的DD语句,意为“Data Description”(数据描述)的缩写,它也被用来在Linux和类Unix系统下对硬盘设备进行写性能的检测。
参数说明: if=FILE 从FILE文件中读数据而不是标准输出(dd命令默认从标准输入读数据) of=FILE 输出到FILE文件而不是标准输出(dd命令默认输出到标准输出) ibs=BYTES 设置输入的块大小为BYTES字节,即dd命令一次读多少个字节。(默认大小是512 bytes) obs=BYTES 设置输出的块大小为BYTES字节,即dd命令一次写多少个字节。(默认大小是512 bytes) bs=BYTES 同时设置输入和输出的块大小为BYTES字节,这个设置会覆盖ibs和obs设置。另外,如果没有设置conv选项,每一个输入块会拷贝为每一个输出块。 cbs=BYTES 设置转换的块大小为BYTES字节,即dd命令一次转换多少个字节。 skip=BLOCKS 拷贝跳过输入文件开头的BLOCKS个块,块的大小由ibs指定。 seek=BLOCKS 拷贝跳过输出文件开头的BLOCKS个块,块的大小由obs指定。 count=BLOCKS 从输入文件拷贝BLOCKS个块,块的大小由ibs指定。(默认拷贝整个输入文件) conv=CONVERSION[,CONVERSION]... 按照CONVERSION指定的参数转换文件。CONVERSION参数后面有说明。 iflag=FLAG[,FLAG]... 以FLAG参数指定的方式试问输入文件。FLAG参数后面介绍。 oflag=FLAG[,FLAG]... 以FLAG参数指定的方式试问输出文件。FLAG参数后面介绍。
CONVERSION参数 ascii 从EBCDIC转换为ASCII, 这是1:1的转换。 ebcdic 从ASCII转换为EBCDIC, 这是1:1的转换。 ibm 从ASCII转换为交替的EBCDIC编码,这不是1:1的转换。acsii, ebcdic和ibm这3个参数是互斥的。 block 对输入的每一行,输出为cbs参数指定的字节数。不够的部分以空格填充。该选项与ascii, ebcdic, ibm, 和unblock选项冲突。 unblock 在的每一个cbs大小的输入块上,去除多余的尾随空格。该选项与ascii, ebcdic, ibm, 和block选项冲突。 lcase 将所有字母转换为小写。 ucase 将所有字母转换为大写。 swab 交换输入的每对字节。 noerror 当读取错误时继续转换。 nocreat 不创建输出文件,即命令执行前输出文件必须存在。 excl 创建输出文件,如果输出文件已经存在,则发生错误。该选项与nocreate冲突。 notrunc 不截断输出文件。 sync 用zero字节将每个输入块填充到由ibs值指定的长度,如果指定了block或者unblock选项,则用改用空格填充。 fdatasync 在命令结束之前将数据写入磁盘。 fsync 在命令结果之前将数据和元信息写入磁盘,与fdatasync的区别是fdatasync只影响文件的数据部分,而fsync还影响文件的属性部分。
FLAG参数 append 以append方式写文件。 cio 以并发的I/O方式操作数据。 direct 以直接的I/O机制操作数据,避免进行数据缓存。 directory 如果文件不是一个目录,则失败。大多数的操作系统不允许I/O到一个目录,所以这个参数被限制。 sync 使用同步的I/O方式对数据和文件属性。 nonblock 使用非阻塞的I/O方式。 noatime 不更新文件的访问时间。 nofollow 不进入符号链接。 nolinks 如果文件是multiple硬连接,则失败。 binary 二进制I/O。 text 文本I/O。
常用参数使用举例: #写测试: dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync #读测试: dd if=/tmp/test1.img of=/dev/null oflag=dsync
硬件开发
2016-11-06 16:17:00
##1. 下载RTOS SDK代码 git clone https://github.com/espressif/esp_iot_rtos_sdk.git
##2. 下载编译器 http://bbs.espressif.com/viewtopic.php?f=5&t=2 ##3. ubuntu下安装编译器 将xtensa-lx106-elf.tar.bz2解压缩到/opt/下 tar -xvf xtensa-lx1060-elf.tar.bz2
##4. 编译代码 ###4.1设置编译器环境变量 export PATH=$PATH:/opt/xtensa/bin/
###4.2 编译 cd ./esp_iot_rtos_sdk-master/app ./gen_misc.sh
执行脚本会会提示选择,按照如下选择: STEP 1 boot version选择2(none) STEP 2 bin generate选择0(eagle.flash.bin+eagle.irom0text.bin) STEP 3 spi speed选择2(40M) STEP 4 spi mode选择0(QIO) STEP 5 flash size&map选择4(4M,512K+512K) 选择完成后会开始编译,完成后会提示:
##5.下载程序: ###5.1 下载下载器 http://bbs.espressif.com/viewtopic.php?f=5&t=433 ###5.2 根据编译时候的选择和提示设置下载器 将eagle.flash.bin的地址设置在0x00000 将eagle.irom0test.bin的地址设置在0x40000
###5.3 将小黄板的跳线短接后,连接串口上电,然后点开始,稍等片刻完成下载。
注意:下载串口的RX,TX直接连上位机的RX和TX,不用做交叉。 ###5.4 去掉跳线,重新上电后开始运行刚才下载的程序。
#串口波特率问题: rtos sdk直接编译后尝试各种波特率都是乱码,在user_init的最开始加入如下代码可将波特率修改为115200: uart_div_modify(0, UART_CLK_FREQ / (115200)); SET_PERI_REG_MASK(UART_CONF0(0), UART_RXFIFO_RST | UART_TXFIFO_RST); CLEAR_PERI_REG_MASK(UART_CONF0(0), UART_RXFIFO_RST | UART_TXFIFO_RST);
硬件开发
2015-07-23 23:31:00
Cura在Linux上的版本总是下载不了,准备自己从源码进行编译。
下面是从 https://github.com/ultimaker 上下载的编译脚本。原始的脚本有一些问题,自己做了一些修改,如下:
#!/bin/bash # This is a script which get the latest git repo and build them. # # Tested under ubuntu 15.04, lower versions don't have PyQT 5.2.1 which is required by cura cd ~ if [ ! -d "cura_dev" ]; then mkdir cura_dev fi cd cura_dev sudo apt-get install -y git cmake cmake-gui autoconf libtool python3-setuptools curl python3-pyqt5.* python3-numpy qml-module-qtquick-controls git clone https://github.com/Ultimaker/Cura.git git clone https://github.com/Ultimaker/Uranium.git git clone https://github.com/Ultimaker/CuraEngine.git git clone https://github.com/Ultimaker/libArcus git clone https://github.com/Ultimaker/protobuf.git cd protobuf ./autogen.sh ./configure make -j4 sudo make install sudo ldconfig cd python python3 setup.py build sudo python3 setup.py install cd ../.. cd libArcus if [ ! -d "build" ]; then mkdir build fi cd build cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages make -j4 sudo make install cd ../../ cd CuraEngine if [ ! -d "build" ]; then mkdir build fi cd build cmake .. make -j4 cd ../../ cd Uranium if [ ! -d "build" ]; then mkdir build fi cd build cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages -DURANIUM_PLUGINS_DIR=/usr/lib/python3.4/dist-packages sudo make install cd ../.. cp -rv Uranium/resources/* Cura/resources/ sudo ln -s $PWD/CuraEngine/build/CuraEngine /usr/bin/CuraEngine cd Cura python3 cura_app.py #export PYTHONPATH=/usr/lib/python3/dist-packages
运行了很长时间,但结果不太妙啊。
编译结果出错: QWidget: Must construct a QApplication before a QWidget ./ubuntu-15.04-build-script.sh: 行 62: 29168 已放弃 (核心已转储) python3 cura_app.py
嗯,这可是最新的开发代码呀!出点错是很正常的。
到https://github.com/ultimaker/Cura上去创建了个issue,提交上去,看谁能解决这个问题。
等了两天,有其他人报同样的错误,但没有解决办法。只好自己再进一步研究。
进python控制台,一步一步运行源码。发现主要是缺少UM这个对象,这是Uranium的支持库,发现被安装到了/usr/local/lib/python3/dist-packages里面。
设置: export PYTHONPATH=/usr/local/lib/python3/dist-packages
再次运行,出现OpenGL的错误,可能是VirtualBox虚拟机的问题。后面再继续。
更新所有的库,可以用这个脚本: #!/bin/bash # This is a script which get the latest git repo and build them. # # Tested under ubuntu 15.04, lower versions don't have PyQT 5.2.1 which is required by cura cd ~ cd cura_dev cd protobuf git pull ./autogen.sh ./configure make -j4 sudo make install sudo ldconfig cd python python3 setup.py build sudo python3 setup.py install cd ../.. cd libArcus git pull cd build cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages make -j4 sudo make install cd ../../ cd CuraEngine git pull cd build cmake .. make -j4 cd ../../ cd Uranium git pull cd build cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages -DURANIUM_PLUGINS_DIR=/usr/lib/python3.4/dist-packages sudo make install cd ../.. cp -rv Uranium/resources/* Cura/resources/ sudo ln -s $PWD/CuraEngine/build/CuraEngine /usr/bin/CuraEngine cd Cura python3 cura_app.py
libgl出错,可能是虚拟机的问题,下次用物理机试试。
将Virtualbox的“显示-三维加速”去掉,libgl就不再报错了。

硬件开发
2015-07-23 15:11:00
你是否有过这种感觉,当你绘制 思维导图 的时候,绘制到一半感觉到无从下手,不知道如何继续进行下去了,其实归根结底都是由于你没有按照思维导图创始人 东尼博赞先生谈到的思维导图的基本规则来画图 。所以你会有疑惑,你会感到无从下手,脑洞无法继续打开,今天我们就来谈谈哪些 思维导图规则 制定的原因:
  第一,是这些绘制思维导图的规则,非常符合大脑的思考模式和学习模式,可以提高我们的学习和工作效率。
  第二,就是如同上面讲的大家都按照一定的规则来,这样就彼此交流起来就会更加的方便、直观,便于理解和记忆。
  第三,是在学习初期我们必须严格按照老师的要求来做,这样才可以保证复制的是正确的,为后期应用过程中不断地创新和突破,奠定坚实的基础。
另外很重要的一点就是在学习初期我们一定学习正确的,只有这样的才不至于在后期要花更多的时间和精力来修正错误。说得严重点,吃了不该吃的东西,我们可以到医院里去洗胃; 那么我们学习错误的东西,需要靠什么来解决呢 ? 所以前期的正确的学习和选择非常的重要。
  尽管思维导图这些规则很简单,但是真正能够做到的人却是不多,究其原因,就在于知道了一回事,真正的去做了,能够做到了是另一回事。在外出培训的过程中,曾和好多朋友交流过,发现其存在的问题:
  第一,极少用手绘,过多的依赖计算机,只要需要做图的时候就使用软件。对于这一点,我的看法是再好的软件也是需要我们的大脑来思考。在手绘的过程中,需要我们的大脑做出更多的思考,特别是对于里面的关键词语的选择和精简,因为手绘纸的大小是固定,所以要在有限的空间里面,把更多的思想内涵的东西表现出来,就迫使我们的大脑要不断的思考和反思。
  另外就是通过手绘更加建立大脑内部的神经链接,更容易建立良好的思考模式和思考习惯。所学习过的内容更容易得到进一步的巩固和掌握。
  第二,就是《思维导图》和《开动大脑》这两本书,没有看过,或者仅仅是翻了翻而已。《思维导图》是我看得遍数,最多的一本书,后来书被我用线重新装订。因为我觉得每一次看它都会有新的体会和收获,里面的很多内容都值得我们进一步的学习和借鉴。这两本书是无论是作为初学者的入门教材或是作为进修班的提高教材,我都觉得再合适不过。
  “ 书读百遍其意自显 ” ,特别是一门好书,它绝对值得你反复去玩味,去品味。
  第三,完成后的图,线条和文字都是黑色的。颜色也可以增强我们的记忆,刺激我们的大脑,所以在绘图的过程中尽可能的多用几种颜色,最少要准备一支四色笔。还有就是里面尽可能多用图,多用和所表达的主题有关的图,这样也可以起到帮助理解,提高记忆的目的。别忘了我们中国汉字有将近1/2 的文字是象形文字。中国的汉字的是来源自于我们自然界的万事万物的影像,这是象形文字的起源。
  还有一点做过的图,在闲暇的时候可以重新拿出来,再一次的修改和完善,这样我们对图的理解会进一步的加深,也许还会有更多的创新的点子和主意出来,因为经过了一段时间的积累和沉淀,我们的思路进一步得到了拓展。
  第四,思维导图是用来玩,让自己玩得开心点。只有我们的精神放松了,我们的心门才打开了。心门打开了,我们才可以更快更有效的接受新的东西。所以无论是在日常的生活,工作还是在学习,都可以拿思维导图来玩一下。谈而言之,就是要把思维导图变成一种思考问题的习惯,培养一种这样的生活方式。
  第五,分享的越多,收获就越大。思维导图的本身就是一个放射状的开放架构,所以对于思维导图我们要经常的与别人分享。这也是我每次培训后的感触,每次培训课程收获最大的不是参加培训的学员们,而是作为培训师的自己。因为我从他们的身上学到了更多的东西。我们每一个人都是一个蓄水池,只要不断的有水流进来,又有水流出去。才可以保证自己池子里的水是新鲜,是有生命力的活水。
  而且每一次我们和别人分享了自己思维导图后,都会发现自己的图里面又可以加入一些新鲜的东西。所以我也常常和朋友谈起思维导图是一个具有生命力的,它可以不断的生长,只要你投入你的时间和精力,还有你的爱心,你可能在一开始的种下的一棵种子,但是最后你收获将是一棵参天大树,如果你愿意和你身边的朋友们一起分享,那么你收获就将是一片浓郁的森林。
硬件开发
2015-07-23 12:02:00
###简介 小黄板是安信可针对ESP-12模块开发的一个IOT演示板,可以通过andriod应用控制小黄板上的LED灯。 官方的资料可以在 http://www.ai-thinker.com/forum.php?mod=viewthread&tid=476&extra=page%3D1找到。 目前我使用的小黄板上的ESP-12是蓝板
###原理图 安信可官方网站上没有找到小黄板的原理图,也没有详细的硬件,通过看PCB和测量实际电路画出了原理图,不能保证完全正确,但对于使用小黄板还是足够了
###资源说明 6颗单色LED --GPIO/PWM控制
1颗三色LED --GPIO/PWM控制
1个光敏电阻 --ADC
1个TTL UART ESP-12模块引脚全引出
关于小黄板上ESP-12的SPI Flash大小 安信可官方的资料上没有找到关于ESP-12使用SPI Flash的大小,在QQ群中问FAE也未得到答复,在小黄板上运行乐鑫官方的SDK并通过spi_flash_get_id获得ID为0x1640EF,这应该对应的是华邦的W25Q32。 EFh: MANUFACTURER ID Winbond Serial Flash 4016h:Device ID W25Q32
###目的 研究小黄板的原理图和资源的目的,是为了在小黄板上不使用AT指令,而直接使用乐鑫官方的rtos sdk,让esp8266做为一个IOT节点的主CPU来控制外围资源完成应用。
硬件开发
2015-07-22 23:47:00
###简介 ESP8266是乐鑫espressif设计的wifi芯片,主要有以下特点: 801.11 b/g/n 2.4G~2.5G 32bit CPU Tensilica L106 80M&160M RAM 32K+80K 10bit ADC 电源管理,深度睡眠10uA,关断电流小于5mA 天线分集 SDIO2.0 HSPI/SPI,UART,I2C,I2S,HW IR Remote,PWM,GPIO 工作温度-40~125 工作电压3.0~3.6V GFN32
ESP8266的详细信息可以访问 http://espressif.com/ 。 相关资料和问题可以访问论坛 http://bbs.espressif.com/ 。
###现状 esp8266已经上市一段时间,目前还没找到有大批量用于实际产品的消息。
乐鑫主要以生产芯片为主,有方案商(安信可等)基于esp8266有不少种类模的块在卖。现在看来国内外的玩家还是比较多,官方的论坛比较活跃,在安可信的交流群中也有不少工程师打算用esp8266的模块开发产品,但普遍反映不是很稳定。 乐鑫提供较为完整的解决方案,官方提供的sdk已经支援TCP/IP,SSL,IOT演示,云平台,AT指令控制等,看起来是想做一个生态圈出来。但sdk的开源程度很低,大多数重要的部分都没开源。从目前乐鑫提供的SDK和安可信的提供的模块来看,猜测原厂和方案商都偏向于用户直接通过串口或者其它接口使用模块,而不希望用户直接使用芯片做方案级开发,也就是说是要用主MCU+ESP8266 moudle的方式。
乐鑫官方提供的文档比较散乱,相比大厂还是有一定距离。
###观点 esp8266很便宜,资料还算齐全,论坛和交流环境也不错。
做平台需要资源太多,乐鑫能先集中精力先做好SDK的稳定和优化,提升用户的信心,将对推广芯片有很大好处。另外esp8266的玩家中不缺大牛,开源代码也可以帮助sdk尽快稳定,如果出于保密考虑可以部分开源,例如rtos的移植部分,lwip移植部分等都可以开源,有问题玩家可以帮助解决。
分析乐鑫的rtos sdk以及芯片的硬件资源,可以说是比较丰富,对于一个物联网节点是绰绰有余,即使做一个轻server也是足够,希望官方能关注这方面,SDK上完善的让esp8266可以单独一个mcu就完成控制,而不只是大力推AT控制。单esp8266做为物联网节点主muc,比起AT模式搭配其它主CPU省下的成本是非常有吸引力的。
以上一家之言,偏颇难免,仅作抛砖,静待美玉。
硬件开发
2015-07-22 00:41:00
香蕉派 BPI-M2 在linux Fedora 22 上运行 docker 1.7.1, 还有什么物联网应用不能方便开发呢,BPI 团队完全基于开源的环境运行的docker. 谁还能说全志的A31S芯片没有办法做开源 :)
www.banana-pi.org www.banana-pi.org.cn
优酷视频链接
http://v.youku.com/v_show/id_XMTMwMjkwMTg4MA==.html?from=y1.7-1.2


硬件开发
2015-08-07 16:51:00
显示器一般都带 VGA 口,直接用 VGA 线接在显卡 VGA 口上即可。但现在更多显卡取消了 VGA,只保留 HDMI 或 DVI。为了能够让老显示器发挥余热,需要将 DVI 转接到 VGA 上,接法如图:



左侧为显卡 DVI-I 口,右侧为 VGA 接头。本着 DIYer 精神,纯手工连接六根线,完成显卡 DVI 母口到 VGA 公头的转接。(嫌麻烦可以上街买转接头,或直接换带 DVI 的显示器~~~)

以 VGA 为标准,请注意上宽下窄方向。第一行 123 三根分别为: R G B 信号线,第二行 1 为 RGB 共用地,第三行 3 为水平同步,4 为垂直同步。

现已验证接法正确无误, 如有缺色问题,请检查第一行三根是否有问题; 如果出现模糊,请使用更短的线连接以减少干扰,或串上 0.47uf
电容; 如果显卡没有十字槽,或者没有十字槽对应的四个孔,则为 DVI-D,纯数字信号不能直接转 VGA,请放弃。
硬件开发
2015-08-06 13:31:00