自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (11)
  • 收藏
  • 关注

原创 Python玩转物联网--《物联网Python开发实战》新书发布

购买链接:京东    天猫   当当项目源码:https://github.com/Python-IoT/Smart-IoT-Planting-System概述物联网项目通常包含传感器、单片机、网关设备、通信模块、网络协议、后台程序、Web端等多个部件,需要多种编程语言以及研发技能的支持。在产品原型验证的初期,尤其对于小团队来说,整合众多的研发力量并非易事。本书通过一个完整的实战项目展示物联网从设...

2018-03-20 17:13:23 23256 21

原创 Micropython加速物联网开发9 - 舵机的控制

舵机经常用在航模、玩具车以及机器人上。通过 PWM 脉冲信号驱动舵机旋转到一个精确的角度从而实现转向、控制器械手臂等功能。 舵机的种类非常多,本文使用的舵机型号如下:舵机引脚描述棕色 - 地线红色 - 电源线黄色 - 信号线(PWM)MicroPython 舵机源码MicroPython 已经实现了对该舵机的支持,源码地址为 /stmhal/servo.c TPYBoard 开发板提供了

2017-08-24 23:07:36 3434 4

原创 移植Python2.7到ARM-LINUX嵌入式平台

笔者长期在ARM-LINUX嵌入式平台使用C语言开发。硬件IO操作只能用C确实没办法,但是应用程序用C简直就苦了个逼了,程序复杂一点,各种越界、指针错误、诡异死机、segment fault、内存泄漏、core dump、编译找不到头文件、依赖库,解析个字符费老劲,轮子太少纯靠白手起家。自从把Python移植到嵌入式平台,用C写完IO的Python扩展库然后用Python写应用程序完全就是摧枯拉朽

2017-06-30 16:43:54 7645 1

原创 树莓派体验14 - wiringpi Python版SPI用法

首先在 /dev目录确认是否有类似 spidev0.0、spidev0.1 的设备节点,如果没有则在配置界面中打开 SPI 接口选项。然后确认 SPI 驱动是否加载,SPI驱动在树莓派中一般编译为模块,通过 lsmod 命令查看, 3代B版是 spi_bcm2835。wiringpi SPI 的 C 语言操作资料,本文不再累述,主要说明其 Python 接口的用法。在Python REPL中 im

2017-06-30 11:25:46 9558

原创 树莓派体验13 - 树莓派3B板载wifi配置方法

树莓派3代B版自带板载wifi和蓝牙,因此想让树莓派通过wifi上网不再需要单独购买wifi模块,通过简单配置板载wifi即可快速实现。配置方法在命令行操作,前提是你需要进入命令行终端,进入命令行终端的方法有多种:串口、SSH、HDMI+显示器。扫描附件wifi热点通过命令sudo iwlist wlan0 scan查看附近所有wifi热点的信息。以下是我截取的片段,每一个Cell代表一个wifi

2017-06-23 16:59:20 14930

原创 Micropython加速物联网开发8 - 2G网络TCP通信

M6220是一款基于eSIM技术的2G模组,支持GSM/GPRS,其2G工作频段有GSM850、GSM900、DCS1800和PCS1900。接下来就体验一下M6220与后台服务器的TCP通信。首先在REPL中一步步敲命令熟悉一下整个流程,M6220模组和TPYBoard的UART4相连。设置串口:>>> from pyb import UART>>> u4=UART(4,115200)>>>

2017-05-25 18:50:07 4573

原创 Micropython加速物联网开发7 - Micropython源码编译与固件更新

在实际开发中,难免会遇到编译Micropython源码的情况:比如当前固件损坏、固件版本升级、需要裁剪固件节省空间等。本文介绍在Linux环境中编译Micropython源码并下载到TPYBoard运行的流程。获取Micropython源码Linux环境下获取Micropython源码非常简单,使用git clone:git clone https://github.com/micropython

2017-05-24 16:37:05 6065 1

原创 Micropython加速物联网开发6 - 通过串口使用2G模组短信功能

集成2G通信、定位模组,赋予物联网特性。本例使用M6220,它是一款基于eSIM技术的2G模组,支持GSM/GPRS,提供GPS+北斗双模定位功能,并具备一定的数据处理能力,其2G工作频段有GSM850、GSM900、DCS1800和PCS1900,内置32Mb Flash、32Mb RAM,提供GPRS数据传输、GSM短信业务,导航部分以UART或者I2C输出,可提供NMEA0183协议输出,支

2017-05-18 17:02:58 5529

原创 Micropython加速物联网开发5 - 定时刷新环境温度

18B20驱动DS18B20是一款非常强大的测温芯片,其体积小、精度高、硬件开销低、抗干扰能力强。引脚示意图如下:通讯指令表:Micropython源码已经实现了18B20的驱动,源码地址为/micropython/drivers/onewire/驱动程序文件为ds18x20.py、onewire.py。ds18x20.py代码片段:#ds18x20

2017-05-17 19:02:08 2463

原创 Micropython加速物联网开发4 - SPI驱动5110LCD屏

5110是84*48点阵LCD屏,其性价比高、接口简单、速度快、功耗低,非常适合电池供电的便携式终端设备。本例使用TPYBoard开发板SPI1接口驱动5110LCD屏。连线图即接口说明LCD驱动程序5110LCD的通信协议是一个没有MISO,只有MOSI的SPI协议,SPI协议可以通过GPIO模拟,本例直接使用SPI1接口驱动。MicroPython提供了SPI的Py

2017-05-12 16:52:45 5755

原创 Micropython加速物联网开发3 - 按键中断和回调

TPYBoard开发板上的USR为用户按键,可以自定义按键触发的事件。想要使用USR按键,首先需要定义对象。>>> import pyb>>> usr_key = pyb.Switch()通过usr_key对象可以获得USR按键的状态:>>> usr_key()False>>>当USR键被按下,状态为True,否则为False。它将产生一个中断,此时MCU将跳转执行中断函数,

2017-05-11 23:14:54 2837

原创 Micropython加速物联网开发2 - Micropython交互式解释器

查看端口号使用REPL(交互式解释器)编写、运行python代码非常方便。Micropython提供了用户和开发板交互式连接的支持。TPYBoard使用USB转TTL连接了STM32 MCU的UART。通过USB线连接Windows PC和TPYBoard开发板,在PC的设备管理器中找到TPYBoard对应的设备信息,以及端口号:使用串口工具putty登录。

2017-05-11 21:57:47 2046

原创 Micropython加速物联网开发1 - Micropython初体验

Mircopython使得用python进行单片机开发成为可能,其基于ANSI C,语法跟Python 3基本一致,拥有自己的解释器、编译器、虚拟机以及类库。目前已支持多款单片机,本例使用基于STM32F405的TPYBoard开发板来探索Micropython开发单片机的神奇世界。TPYBoard是一款遵守MIT协议的Micropython开发板,内置4个LED灯、一个加速度传感器和时钟模块

2017-05-11 16:14:44 8020 1

原创 树莓派体验12 - 树莓派I2C接口获取温湿度

i2c-tools工具安装apt-get install i2c-toolsi2c-tools包含如下命令:i2cdetect  i2cdump    i2cget     i2cset通过raspi-config打开树莓派I2C,执行i2cdetect -l查看:root@raspberrypi:/opt# i2cdetect -li2c-1   i2c      

2017-05-10 09:33:49 9625 10

原创 树莓派体验11 - 串口通信

树莓派3B有2个串口,设备节点分别为ttyAMA0、ttyS0(serial0),ttyAMA0默认用于板载蓝牙,因此串口通信采用另外一个。配置串口,保证两点:1. 开启串口驱动,产生设备节点2. 不要配置为调试串口,才能作为通信串口raspi-config打开配置界面,在此界面选择No:Would you like a login shell to be accessible

2017-05-10 09:32:40 3148

原创 树莓派体验10 - wiringPi for Python(wiringPi2)

RPi.GPIO目前还不支持I2C、SPI等接口,且缺乏高精度定时功能。wiringpi除了提供C语言接口之外,目前已经支持Python等语言的扩展。对于GPIO的操作非常强大。源码地址:https://github.com/WiringPi/WiringPi-Python安装pip:apt-get install python-pip安装wiringpi:pip inst

2017-05-10 09:31:56 5890 4

原创 树莓派体验9 - GPIO中断

使用RPi GPIO库进行中断操作非常简单。定义回调函数def test_callback(channel):    print('In test_callback fuc')定义检测函数add_event_detect(channel, GPIO.RISING, callback=test_callback, bouncetime=200)上升沿检测,关联回调,bounc

2017-05-10 09:30:56 14572 4

原创 树莓派体验8 - RPi.GPIO PWM

创建PWM实例:p = GPIO.PWM(channel, frequency)启动PWM:p.start(dc)  #dc为占空比 修改频率:p.ChangeFrequency(freq)  # freq单位 Hz终止PWM:p.stop()使用BOARD GPIO 22驱动led灯,每隔一秒闪烁一次:#!/usr/bin/pythonimport RP

2017-05-10 09:30:01 3042

原创 树莓派体验7 - GPIO驱动LED灯

命令行操作GPIOcd /sys/class/gpio/echo 25 > export  将博通cpu对应的25号GPIO映射到文件系统cd gpio25echo out/in > direction  将25号GPIO管脚设置为输出/输入模式echo 1/0 > value 将管脚电平设置为 高电平/低电平cd /sys/class/gpio/echo 25 >

2017-05-10 09:28:57 1804

原创 树莓派体验6 - 文件传输方式 - 蓝牙

树莓派和其他设备(PC、手机等)传输文件的方式除了网络和U盘拷贝之外,蓝牙也是一种选择。本文以Android手机和树莓派3B通过蓝牙互传文件为例,简述蓝牙使用方法。手机给树莓派发送文件本例依赖两个应用程序:obexpushd和bluetoothctl,如果缺少则通过apt-get命令安装。apt-get install obexpushdapt-get install blueto

2017-05-10 09:28:03 14036 8

原创 树莓派体验5 - 文件传输方式 - U盘

在某些无法使用网络的情况下,可以使用U盘进行树莓派和其他设备之间的文件传输。1. 将U盘插入树莓派的USB接口,执行命令fdisk -l查看分区信息。fdisk -l从上图可知,插入U盘后在/dev目录产生了sda和sda1两个设备节点,其中sda为设备,sda1为U盘的分区。2. 创建U盘挂载目录mkdir /mnt/udisk3. 挂载U

2017-05-10 09:27:07 8301

原创 树莓派体验4 - 文件传输方式 - 网络

在实际开发工作中,经常需要PC和树莓派开发板之间互传文件。通过网络传输是最为便利的方式之一。SFTPSFTP,Secure File Transfer Protocol的缩写,安全文件传输协议,为传输文件提供一种安全的加密方法。PC和树莓派之间采用该协议进行文件传输,其中树莓派作为服务器,PC为客户端。开启SFTP服务SFTP服务本身并没有单独的守护进程,它是SSH的一个安全文件传

2017-05-10 09:26:02 6182

原创 树莓派体验3 - SSH登录树莓派

如果没有HDMI转接线、显示器、USB转TTL串口线,那么可以通过网络SSH远程登录的方式访问树莓派。无显示器使用SSH访问开启SSH服务首先,通过镜像版本号确认一下SSH是否默认开启。树莓派官网的release  note中说明:2016-11-25版本开始SSH服务默认关闭,之前的版本则默认开启。我使用的版本中SSH默认关闭,因此需要在boot分区创建一个名为‘ ssh

2017-05-10 09:23:35 18207 3

原创 树莓派体验2 - 串口终端访问树莓派

当前外接了显示器、键盘的树莓派已经可以正常使用,但是这种使用方式太过耗费硬件资源,造成我的台式机失去了显示器和键盘而只能在一旁吃灰,于是准备使用串口终端的方式来访问树莓派。1. 配置串口终端查看串口设备节点在/dev目录中查看是否有串口终端设备节点,从树莓派官网可知,串口终端设备节点名为ttyS0。$cd /dev$ls ttyS0我的板子上提示未找到ttyS0这个文件,因此可以确认串口终端未打开

2017-05-10 09:18:49 7606 1

原创 树莓派体验1 - 初次启动树莓派

做嵌入式开发以来,工作期间经历了多种TI、NXP、高通以及其他厂家的arm-linux系列平台,一直对于树莓派这个风靡全球的开发板心驰神往,想要体验一番。最近在做物联网操作系统多平台适配,对于树莓派这种拥有庞大用户量的平台,肯定要优先支持和适配,于是终于有机会体验一把树莓派的软件生态。购买的是3代B板,初次拿到板子感觉比较小巧、精致,迫不及待想要将其启动起来,一探究竟。树莓派是裸板,板子上

2017-05-10 09:16:31 10929 2

原创 自定义组合按键进入Uboot

uboot源码中提供的进入uboot命令行的方式为输入任意键。这样有一个隐患,当串口信号有干扰时,系统会将干扰信号识别为任意键而进入uboot,从而无法正常引导操作系统,这样对产品将是灾难性的影响。 解决或者规避该问题的方法之一是将任意键改为组合键减小异常几率,当然归根结底还是要从硬件的角度避免干扰信号的产生。修改方法:不同版本需要修改的文件不一样,可能是common/autoboot.c或者co

2017-03-23 12:02:09 12413 4

原创 CentOS 6.5一键安装Django

之前一直在Ubuntu环境下进行Django开发,最近将开发工作转移到CentOS的过程中,发现Django开发环境的搭建过程很是不顺,现将Django安装过程以及相关问题的解决方法罗列如下。升级Python2.6.6到Python2.7.9由于CentOS6.5自带的Python版本为2.6.6,该版本不支持Django,因此需要将Python升级到2.7以上。同时,由于yum中最新的Python

2017-03-09 15:49:56 12645 1

原创 Linux UART接口调试技巧

在嵌入式项目中,UART接口的使用频率很高,多种模块(2G通信模组、蓝牙模块,等等)都会通过UART接口与主控MCU相连。本文将梳理UART接口调试流程,为调试工作提供参考,解决调试过程中可能遇到的问题,快速完成UART接口调试,实现模块功能。配置驱动选项首先查看原理图确认串口号,比如UART1,同时查看该串口引脚是否有复用功能,比如用作SD卡接口。如果有复用,需要在内核配置中取消复用功能的选项。然

2017-03-03 10:27:14 11766

原创 嵌入式Linux系统时间设置

Linux系统的很多功能都需要读取时间为基础。比如:日志系统需要时间戳以记录log,为后期的问题排查提供支撑;cron服务需要正确的时间设置以支撑周期性、特定时间点执行某个任务;等等。大多数Linux桌面系统都提供了丰富、友好的时间设置接口,很方便用户进行时间设置,但是在定制化、特殊性很强的嵌入式设备中,时间的设置有时不是那么容易。本文全面剖析linux-arm嵌入式设备的时间设置细节。硬件时间和系

2017-01-11 17:49:43 6745 3

原创 Linux回收站的设计与实现

Linux回收站的设计与实现作为Linux系统管理员或者软件开发人员,当你使用rm命令删除文件之后发现该文件依然有用但无法恢复,或者使用 ‘rm -rf’强制误删了某些文件时,是否为此感到痛苦不堪。是否苦恼于Linux缺乏类似Windows系统的回收站。虽然某些Linux图形界面具有回收站功能,但是在命令行中依然缺乏回收站功能的支持。本文通过shell脚本实现一个回收站命令trash,提供基于Lin

2016-12-27 10:16:03 4371

诺基亚5110LCD屏汉字取模工具

诺基亚5110LCD屏的汉字取模工具,支持12*12、16*16点阵。

2017-05-12

ntp-4.2.4p7源码包

ntp源码包

2017-01-11

sqlite数据库

sqlite数据库

2016-11-22

linux内核编程指南

linux内核编程指南

2016-11-22

linux高性能服务器编程

本书是Linux服务器编程领域的经典著作,由资深Linux软件开发工程师撰写,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux服务器应用的方法、技巧和思想。不仅理论全面、深入,抓住了重点和难点,还包含两个综合性案例,极具实战意义。, 全书共17章,分为3个部分:第一部分对Linux服务器编程的核心基础——TCP/IP协议进行了深入的解读和阐述,包括TCP/IP协议族、TCP/IP协议,以及一个经典的TCP/IP通信案例;第二部分对高性能服务器编程的核心要素进行了全面深入的剖析,包含Linux网络编程API、高级I/O函数、Linux服务器程序规范、高性能服务器程序框架、I/O复用、信号、定时器、高性能I/O框架库Libevent、多进程编程、多线程编程、进程池和线程池等内容,原理、技术与方法并重;第三部分从侧重实战的角度讲解了高性能服务器的优化与监测,包含服务器的调制、调试和测试,以及各种实用系统监测工具的使用等内容。

2016-11-22

架构原理-架构师的修炼

架构原理

2016-11-22

Android wifi对讲机

Android wifi对讲机

2015-07-08

menudrawer

github 开源menudrawer

2015-07-08

Android 图片轮播

Android 图片轮播,获取本机图片,在顶部轮流播放图片

2015-07-08

汉字笔顺Flash

2500个汉字带笔顺、发音flash 动画字帖

2015-03-27

软件技术基础:离散数学、数据结构、C.编程实训

软件技术基础:离散数学、数据结构、C.编程实训

2015-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除