Building libpixyusb as a Python module on Linux - CMUcam5 Pixy
Installing PixyMon on Linux - CMUcam5 Pixy
把 build_libpixyusb_swig.sh 中的
swig -c++ -python pixy.i
改成
swig -c++ -python -py3 pixy.i
atommann
2018年8月18日星期六
2017年10月3日星期二
在 Docbook 中给源代码加语法高亮
想用 Docbook 写一篇编程方面的教程, 并加上 syntax highlighting 方便代码阅读,没想到这个任务并不容易。
GNU/Linux
========
Fedora 24, dnf install saxon 安装的是 saxon-9.4.0.9-2.fc24.noarch
而 saxon 9 只支持 XLST 2 而不是以前的 version 1, 然后我试图安装 docbook xslt20-stylesheets 也不成功。
回到 Windows
=========
按照 [1] 中的方法,在 Windows 7 中实验成功。
回到 GNU/Linux
==========
1. 下载 docbook-xsl-1.79.1
https://sourceforge.net/projects/docbook/files/docbook-xsl/
2. 下载 XSLT 1.0 proccessor
http://saxon.sourceforge.net/#F6.5.5
3. 下载 XSLT syntax highlighting (Java based XSLT Processor extension for syntax highlighting)
https://sourceforge.net/projects/xslthl/
4. 把它们解压放在某个目录里,比如我放到 ~/docbook 目录里。
- ~/docbook/docbook-xsl-1.79.1
- ~/docbook/saxon6-5-5
- ~/xslthl-2.1.3
我把测试的文件放在了 github 上,见 [4].
本文基本是按照链接 [1] 中 Gary 的方法操作,只是他在 Windows 中,我是在 GNU/Linux 中。
另外,saxon 在我电脑上生成 html 的速度很慢,我估计是 java 的原因。要知道 xsltproc 的速度是很快的!
在 my_article.xsl 文件里我加了一句
<xsl:param name="use.extensions" select="1"></xsl:param>
这样在命令行就不需要再加 use.extensions=1 了。
参考
[1] DocBook 的 Line Numbering 和 Code Highlighting
http://garyliutw.blogspot.jp/2013/07/docbook-line-numbering-code-highlighting.html
很有用的文章,我是看了这篇文章才成功了。
[2] https://github.com/docbook/xslt20-stylesheets
[3] Installing an XSLT processor
http://www.sagehill.net/docbookxsl/InstallingAProcessor.html
docbook 的 xml 文件可以用各种处理器来处理,上面的文档讲了安装和使用方法。
[4] https://github.com/atommann/syntax-highlighting-line-no-test-docbook
[5] Show me your highlighted code
http://xmlguru.cz/2006/07/docbook-syntax-highlighting
最后讲了如何定制。
[6] 10.1. Syntax Highlighting
http://www.vogella.com/tutorials/DocBook/article.html
讲如何定制自己的高亮颜色。
2017年9月30日星期六
2017年8月26日星期六
STM8 eforth 实验
在 W1209 温控板上(板上的 MCU 是 STM8S003F3P6)测试了 eForth,可以工作,还需做更多实验。
计算机收到的一些字符显示不正常,原因不明,难道是因为没有用外部晶振导致的 timing 问题?例如,从串口发送 1 out! 到 stm8 后,返回的字符是 b outB ok, 而下面发送的 0 out! 返回又正常。
上图是把串口和 USB to TTL 板连接起来做通讯。STM8 上的 UART 被 NTC 占用了。于是用连接按键的 IO 模拟了一个 UART. 软件里有个目录是 W1209-FD, FD 的意思是 Full-Duplex,就是模拟全双工通讯。
接线:
+--------------+-------------------+----------+
| TTY com port | W1209-FD | comments |
+--------------+-------------------+----------+
| GND | GND | |
+--------------+-------------------+----------+
| TXD | key "+"(PC4, RXD) | 2nd key |
+--------------+-------------------+----------+
| RXD | key "-"(PC5, TXD) | 3rd key |
+--------------+-------------------+----------+
上面是测试 Leo Brodie 的书 Starting Forth 第一章中的例子。
链接
计算机收到的一些字符显示不正常,原因不明,难道是因为没有用外部晶振导致的 timing 问题?例如,从串口发送 1 out! 到 stm8 后,返回的字符是 b outB ok, 而下面发送的 0 out! 返回又正常。
上图是把串口和 USB to TTL 板连接起来做通讯。STM8 上的 UART 被 NTC 占用了。于是用连接按键的 IO 模拟了一个 UART. 软件里有个目录是 W1209-FD, FD 的意思是 Full-Duplex,就是模拟全双工通讯。
接线:
+--------------+-------------------+----------+
| TTY com port | W1209-FD | comments |
+--------------+-------------------+----------+
| GND | GND | |
+--------------+-------------------+----------+
| TXD | key "+"(PC4, RXD) | 2nd key |
+--------------+-------------------+----------+
| RXD | key "-"(PC5, TXD) | 3rd key |
+--------------+-------------------+----------+
上面是测试 Leo Brodie 的书 Starting Forth 第一章中的例子。
链接
2017年8月25日星期五
内置 STM8S003F3 的 ESP-14 WiFi 模块
2017年8月22日星期二
CO2 传感器 MH-Z14A
一开始发现室内读数在1500到1800之间,这太高了。放到阳台上,让它运行超过 20 分钟,读数是 1470,而且数值稳定。
根据使用说明书,把 HD pin 和 GND 短接 7 秒,读数变成了 390 ppm.
孩子在卧室睡午觉,开空调,大概从 13:00PM 到 16:00PM,传感器离地面 15cm 左右,读数 710 ppm. 因为 CO2 比较重,我把传感器放到地上,读数很快变成 735 ppm.
用的 github 上的一份代码(链接 1),通过 PWM 读值。
链接
根据使用说明书,把 HD pin 和 GND 短接 7 秒,读数变成了 390 ppm.
孩子在卧室睡午觉,开空调,大概从 13:00PM 到 16:00PM,传感器离地面 15cm 左右,读数 710 ppm. 因为 CO2 比较重,我把传感器放到地上,读数很快变成 735 ppm.
用的 github 上的一份代码(链接 1),通过 PWM 读值。
链接
2017年8月13日星期日
STM32F103 的 PB3, PB4 和 PA15
上周五给一块板子写代码,PB3 控制一个 BJT,始终没有输出,另一个工程师(赵工)告诉我说是 JTAG 默认使用 PB3,然后另了相应的代码,还是不工作,后来发现少了一行代码,也就是要打开 AFIO 模块的时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
还有一个函数是
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
这会同时关闭 JTAG 和 SWD 功能。
(这是一个草稿,待更新)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
还有一个函数是
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
这会同时关闭 JTAG 和 SWD 功能。
(这是一个草稿,待更新)
订阅:
博文 (Atom)