1月 10

我的用 raspberry pi 手工制作的小车(一)

  首先切割了一块,20x20cm的2mm厚的亚克力板。也许是手磨速度问题,切割时比较粘刀,所以切得很不整齐。
image

  我用边角料给超声波测距模块做了个架子。
image

  底层方的东西还不是很多。包含TT电机和H桥驱动,步进电机驱动板,红外测距模块和接线板。

raspberry_pi_auto-1.jpg

我的raspberry pi小车下层。包含TT电机和H桥驱动,步进电机驱动板,红外测距模块。

  上层东西也不多,raspberry pi的板子占了一大块。剩下的摄像头,步进电机和超声波测距模块。

我的raspberry pi 小车的上层。包含步进电机,和raspberry pi的主板。

我的raspberry pi 小车的上层。包含步进电机,和raspberry pi的主板。

  来张正面照。摄像头拍的照片可以通过浏览器访问。

我的raspberry pi小车的正面照。

我的raspberry pi小车的正面照。

  当前程序已经测试完成,在桌子上跑问题也不大。但是存在一个问题。使用电池驱动时,程序一启动系统就重启了,应该是电压或电流不稳定。正在改进中。
  当前费用统计。

成本统计
产品名             数量    单价(元)   总价(元)
raspberry pi 2.0      1      341       341
2mm厚200x200mm 亚克力板   1      7        7
HC-SR04超声波测距模块    1      7.3       7.3
1/16 5V 4相 5线步进电机   1      5.8       5.8
五线四相步进电机驱动板    1      3.2       3.2
万向轮 尼龙轮子        1     4         4
TT马达+车轮套装        2     8.1       16.2
usb接口            1     1        1
SYB-170 面包板        1     2.8       2.8
两路H桥IO口电机驱动板     1     8        8
红外壁障模块          2     8        16
摄像头             1    利旧设备   0
总计:412.3

小配件大约数量
螺丝部分均为M3
6mm铜柱   12个
20mm铜柱  4个
15mm铜柱  4个
螺丝1mm   12个
螺丝10mm  2个
螺母    20个

线才大约数量
双母头杜邦线20CM  20根
双公头杜邦线20CM  10根
公母头杜邦线20CM  10根
排插端子      1组

小配件加线材大于25元

3月 23

strace记录

ltrace用于跟踪库调用的情况,strace用于系统调用的情况,strace是ltrace的一个功能子集。
对于优化和处理问题有很大帮助。

命令格式
strace [ mid sid level ] …
mid 指定 STREAMS 模块的标识号。
sid 指定子标识号。
level 指定跟踪优先级别。

主要参数
-c — 统计对系统时间、呼叫、错误的次数
-f — 跟踪fork产生的子进程
-ff — 输出报告文件
-F — 尝试跟踪vforks
-i — 输出系统调用的入口指针.
-q — 禁止输出脱离的信息
-r — 打印每个系统调用的相对时间
-t — 在输出中的每一行前加上时间信息
-tt — 在输出中的每一行前加上时间信息,微秒级.
-T — 显示每一调用所耗的时间.
-v — 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.
-a column — column 设置返回值的输出位置.默认 为40.
-e expr 指定一个表达式,用来控制如何跟踪
-e trace=set 只跟踪指定的系统调用.例如:-e trace=open,close,rean,write表示只跟踪
这四个系统调用.默认的为set=all.
-e trace=file 只跟踪有关文件操作的系统调用.
-e trace=process 只跟踪有关进程控制的系统调用.
-e trace=network 跟踪与网络有关的所有系统调用.
-e strace=signal 跟踪所有与系统信号有关的系统调用.
-e trace=ipc 跟踪所有与进程通讯有关的系统调用.
-e abbrev=set 设定strace输出的系统调用的结果集.-v 等与 abbrev=none.默认为abbrev=all.
-e raw=set 将指定的系统调用的参数以十六进制显示.
-e signal=set 指定跟踪的系统信号.默认为all.如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号.
-e read=set 输出从指定文件中读出的数据.例如-e read=3,5
-e write=set 输出写入到指定文件中的数据.
-o file — 将strace的输出写入文件
-O overhead — set overhead for tracing syscalls to OVERHEAD usecs
-p pid — pid进程
-s strsize — 指定输出的字符串的最大长度.默认为32.文件名一直全部输出.
-S sortby — 按照时间,呼叫、名字进行排序,默认使用时间(time, calls, name)
-u username — 运行所使用的用户id

输出格式

应用:
学习中还没有用过。

参考资料:
http://study.chyangwa.com/IT/AIX/aixcmds5/strace.htm#a136c1238
http://www.yuanma.org/data/2007/0201/article_2213.htm