谈谈系统级I/O 对于I/O每个程序员并不陌生,但从菜鸟入门阶再到进阶,每个阶段对I/O都会有新的认识见解,从最开始的printf函数到Linux中的管道再到多线程使用中读写I/O,网络I/O的概念,每个地方都感觉有I/O的身影,但模模糊糊,含义好像都不太一样,困惑也渐渐增多… 1. Unix I/O1.1 输入/输出输入/输出(I&# 2020-12-08 Linux Linux C I/O
在esp32上使用micropython的一些心得 其实老早之前买了物联网Python开发实战这本书的时候就注意到了Pyboard(基于stm32),还买了个板子实践了下,但是感觉micropython这个东西有点冷门,像个半成品一样(狭隘了),就把板子丢一边,继续用Arduino个树莓派了。最近在寻找单片机的时候,发现了esp32以及micropython,发现好像有点厉害,某宝店铺什么的的热度都不错,就买回来些许测试一波,发现很好用,顺便记录一 2020-09-16 micropython esp32 micropython
Golang数据初始化,零值以及一些陷阱 基础不牢,地动山摇 不像Python这种动态语言,遇见对象就是一言不合的赋给变一个变量,然后查看;而Go语言是静态类型语言,因此变量是有明确类型的,编译器也会检查变量类型的正确性。 1. 变量的初始化1.1 声明声明变量的一般形式是使用 var 关键字:var name type,其中,var 是声明变量的关键字,name 是变量名,type 是变量的类型。也可以进行批量声明: 1234567 2020-07-07 Go Go
Golang代码工具使用 工欲善其事必先利其器 在学习golang的过程中,经常遇到教程让代码遵循gofmt,golint,govet等,而我虽然有Goland的加持,但对其中的区别也是稀里糊涂,在这里做一个简单的总结,主要参考的官方的CodeTools专栏。感谢Google! 1. 什么是 Linting?Linting是自动检查源代码中是否存在编程错误和样式错误。这可以通过使用lint 工具(也称为linter)来 2020-07-01 Go Go
Arduino温控PC风扇以及信息显示思路总结 温控风扇的一个总所周知的例子就是CPU上的散热风扇,风扇速度会随着CPU负载上升的同时增加,达到及时散热的目的,然而这次要捣鼓的东西也跟这个差不多但是是在放在大机柜里,四路温控风扇,并带有温度风扇速度显示,以及通过触摸显示屏设置上下温度阀值,我毫不犹豫选择了Arduino,这在油管上也有很多类似的项目,不过也杂而不全,翻来覆去,测试了各个部分然后确定了自己想要的方案。 1. 温度传感器选择温度传感 2020-05-13 Arduino C Arduino
Python rsyslog日志集中化 下位机十多台树莓派,就开始考虑将日志集中在一起方便调试查看,其实一开始我对这个不太熟悉,对集中化这个词不太敏感,只是想要把日志发送到同一个主机上,后来网上查了查,这叫日志集中化,名气最大的是ELK,日志一把梭上面说的 ELK 都比较复杂,其实用一台服务器作为日志收集服务,使用 Linux 自带的 rsyslog即可,Python 日志库也自带了 SysLogHandler. 简单配置一下即可使用。 2020-04-02 Python Python Linux rsyslog
Linux的信号以及Python处理 初次接触信号这个概念实在gpiozero库文档中的这么一个专题,How do I keep my script running?,我最最开始是在button.when_pressed = hello用一个while True的无限循环保持脚本运行,后来发现有个个内置库的signal.pause()函数可以保持脚本运行,直到按下Ctrl+C程序才会退出,我当时仅仅认识到这个地步,没往下深究,直到后来 2020-03-31 Python Python Linux
Invoke与Fabric注意事项详解教程 说到远程部署利器,那就不得不讲讲Fabric,Fabric 是一个 Python 的库,同时它也是一个命令行工具。它提供了丰富的同 SSH 交互的接口,可以用来在本地或远程机器上自动化、流水化地执行 Shell 命令。使用 fabric 提供的命令行工具,可以很方便地执行应用部署和系统管理等操作。因此它非常适合用来做应用的远程部署及系统维护刚实习那会,也遇到这种需求,但是不知道Fabric,自己在 2020-02-28 Fabric Python Linux Fabric Invoke
Python并发之异步I/O(async,await) 前面关于yield,yield from的语法说了好多,其实大多是铺垫,算是python在通往异步大道上的一些探索,但是将异步完整融入python整个过程并非都是顺利的,创建修改替换修改,反反复复,直到最新几版的python,趋于平稳,用其优雅特性来给人们展示异步,我们一起来看看! 1. 背景Python有很长一段的异步编程历史,特别是twisted,gevent和一些无堆栈的Python项目。异 2020-02-13 Python Python asyncio
树莓派几种不同的PWM及其应用 树莓派上PWM其实应用的不多,很多例子都是简单地用代码控制小灯地闪亮黯淡过程,这在我之前刚接触硬件时充满懵懂的脑子面前显得十分新奇,后来慢慢懂了PWM,很多时候用在步进马达上,后来,慢慢过了半年后,我才发现一个问题,当树莓派有发热现象,传统地调用树莓派PWM功能时,步进马达总是怪怪的,转的不是很规律,有点性能跟不上的感觉。深入进去,发现PWM有多东西,这次就趁机总结一下,方便以后使用。 1. 树莓 2020-02-10 RaspberryPi Python Linux PWM