月份:2016年10月

MicroPython:将开发板连入物联网云平台

MicroPython和一般的python一样,也有很多第三库,多亏了这些类库,使得我们能使用少量语句,就可以完成其他语言大量代码才能完成的工作,大家可以到 www.github.com/micropython/micropython-lib , 查看,下载这些类库,使用工具传到板子上,一个import 就可以使用了。

本次,我们使用搭载ESP8266模块的MicroPython开发板,导入了umqtt.simple.py模块,该模块是对MQTT协议的封装,我们使用MQTT协议,接入中国移动ONENET物联网平台,我们的目的是在物联网平台上发送命令,控制开发板上自带的LED,我们发送‘on’,使得LED亮起,发送‘off’使得LED熄灭。

Continue reading

MicroPython:开发板的模拟I/O操作

ADC:

模数转换(ADC)是一个常见的单片机外设,它能将模拟的电压值转换为二进制数据,它非常适合用来读取传感器的物理值,一般的传感器经过一些电路的转换就可以将生活中的物理量转化为电信号,从而被单片机这样的控制设备读取.

对于MicroPython,感谢乔治-达明(Damien George)做了大量的工作,使我们只用使用一条Python语句就可以控制ESP8266的各种外设,值得注意的是MicroPython支持很多芯片,ESP8266只是其中之一而每种芯片的特性是不同的,拿ADC来说:

ESP8266的ADC是十位精度的,并且读取的电压值最大不能超过1v,如果电压值过大很有可能会损坏开发板.

官方出的Pyboard,使用的是STM32芯片,它的ADC是12位精度的并且能读取的最大电压值是3.3v.

下面我们将演示如果读取ADC的值:

import machine
adc = machine.ADC(0)
adc.read()

Continue reading

制作:安卓手机遥控小车

市面上的智能小车已经很多了,循迹的,避障的,手机遥控的,种类繁多,我们芝麻DIY终于也推出一款小车,很遗憾,它只有一个功能,那就是手机wifi遥控,本文介绍该小车的组成部分,解释部分源码。

虽然我们的功能很简单,但这同时也是我们最大的优点,我们的电路结构非常简易,十分适合手工操作,硬件包括:STC15单片机一块,ESP8266串口转WIFI模块一个,L9110s两路电机驱动模块一个,还有电阻,排针插座,线缆等其他一些小部件。

Continue reading

MicroPython:导入第三方模块

Python语言之所以如此受欢迎原因之一就是由于他有许多第三方包和类库,大大简化了编程难度,MicroPython也是如此,对于MicroPython自带的诸如OS,sys,time等我们只需要一个import就可以很轻松的将其导入,但是如果使系统不存在的模块就需要我们自己将其导入进去了。
本文探讨将包导入到开发板的方法,抛砖引玉,如果有意见或建议可以到下方评论区留言或者到论坛发帖。
就像普通的python版本一样,MicroPython也支持直接import脚本,我们可以自己编写一个.py脚本文件,然后传入开发板。
下图演示了,将自己的代码文件传入开发板的过程:

Continue reading

简易的单片机时钟

今天我们分享一个8051单片机的小制作。
这次的制作之所以说他简单,是因为它的电路简单,程序简单,当然功能也很简单,只能显示时和分,没有按键,通过串口调时间。
下面,我们将单片机程序,原理图,和实物图发布上来,注意,本制作使用STC89C52单片机,不保证对其他型号51单片机的兼容:
单片机程序:

#include
#include
//unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共阳数码管数字码
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管数字码
int time=2115,qian,bai,shi,ge,miao,num,time_shi=22,time_fen=31;

void delay()
{int a=500;
while(a--);
}

void display() //数码管动态扫描
{
qian=time_shi/10; //数码管个位
bai=time_shi%10; //十位
shi=time_fen/10; //百位
ge=time_fen%10; //千位
P0=table[ge];
P2=0xf7;
delay();
P2=0xff;

P0=table[shi];
P2=0xfb;
delay();
P2=0xff;

P0=table[bai];
P2=0xfd;
delay();
P2=0xff;

P0=table[qian];
P2=0xfe;
delay();
P2=0xff;

}

void main()
{
TMOD = 0x21;
SCON = 0x50;
TH1 = 0xd0;
TL1 = TH1;
EA = 1;
ET0 = 1;
TI=1;
ES = 1;
TR1 = 1;
TH0=(65536-45872)/256; //定时器初始化
TL0=(65536-45872)%256;
TR0 = 1;
while(1)
{
display();
if (time_fen==60) //如果分=60,时+1
{time_shi++;
time_fen=0;}
if(time_shi==24) //如果时=24,分时归零
{
time_shi=0;
time_fen=0;
}
} }

void inter() interrupt 1 //定时器中断
{
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
num++;
if(num==20)
{
num=0;
miao++;
P1=miao;
if (miao==60)
{
time_fen++;
miao=0;
} }
}

void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
if(SBUF==1){time_shi++;} //收到‘1’,时+1
if(SBUF==2){time_fen++;} //收到‘2’,分+1
ES=0;
TI=1;
printf("NOW TIME IS %d : %d \n",time_shi,time_fen); //当串口收到信息时,输出消息
ES=1;
TI=0;
}
else
TI=0;
}

原理图:
原理图省略了时钟,复位和供电电路。
Continue reading

和你的单片机聊天

在《无线电》杂志上读到过很多关于手机连接单片机的文章,比如手机控制智能小车,手机显示传感器信息等,毕竟现在是物联网时代,业余时间玩单片机的过程中,我突然想到能否使用智能手机来和单片机聊天呢,于是便有了聊单片机的这个项目。

本制作硬件部分主要由单片机/Arduino,ESP8266无线串口模块(图1)两大部分组成,单片机负责运行用户自己的程序,ESP8266主要处理单片机和外部网络的通讯。

2             1

Continue reading

警惕外来入侵!打造联网的门窗监控设备

随着物联网进程的不断加速,许多传统的设备被接入网络,在以前,防盗报警器(图1)主要通过电话网络达到报警效果,比如主人不在家的时候,在家里设置好报警设备,当传感器检测到人员走动或门被开关,就会向主人手机拨打电话或发送短信,这种报警设备主要由一个报警主机和多个检测器组成,成本较高,随着开源硬件的普及,我们可以自己动手打造一款这样的设备。


Continue reading