简单两步实现树莓派定时运行程序或命令

Linux下有一个定时运行的程序命令叫“crontab”,是任务调度的crond常驻命令,是Linux系统下的定时任务触发器 。
限制用户使用crontab的文件有:/etc/cron.allow /etc/cron.deny 。
当使用crontab建立工作排程后,将被记录到/var/spool/cron里。
cron执行的每一项工作都被记录到/varlog/cron里去。

crontab参数:
-u:只有root才可能,帮其他用户建立或移除工作排程。
-l:查阅crontab的工作内容
-r:移除所有的crontab的工作内容,移除一项,用-e编辑。

每项工作有六个字段分别是:
分钟    小时    日期    月份    周    指令
0-59    0-23    1-31    1-12    0-7    指令         #0和7都代表星期天

辅助特殊字符:
* (星号)代表任何时刻
,(逗号)代表分隔时候。如3点与6点 就是3,6
-(减号)代表一段时间范围内。如:3点到6点 就是3-6
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5

以下我们举个例子,比如每晚定时23:50分需要关机
1.编辑crontab 任务:

$crontab -e
2.再文件的最后一行添加以下这行内容
50 23 * * * /sbin/shutdown -h now

注:50 23 代表 每天的23:50,执行的命令就是“shutdown -h now”

购买地址:http://item.taobao.com/item.htm?id=37682925971

其实这款板子已经做了很长时间了,只不过一直没有时间发布,最近有点时间,就分享给大家。

这是一款针对树莓派和arduino设计的16路舵机控制扩展板,使用这个扩展板后用户可以方便的外接驱动多路舵机或者LED,实现多自由度机械臂,多轴控制等应用。

功能描述:
1.  使用I2C接口,不占用GPIO接口(默认地址0x6F)
2.  同时支持树莓派(3.3v电平)和arduino(5v电平),但两种主控不能同时控制
3. 支持16路PWM通道输出,可以控制16路舵机或者LED灯
4. 12位分辨率,可调PWM频率高达1.6KHz,可配置的推挽或开漏输出
5. 3P标准接口,方便连接舵机和LED灯
6. 4位可调地址(A0-A3),方便级联扩展板,最大可级联16个扩展板(可以控制256路舵机或LED灯)

7.提供树莓派和arudino的参考例程(购买后请和客服联系)
产品参数:
1.舵机部分供电范围:4.5V~5.5V的DC直流(电压与舵机的参数有关,一般使用5V DC)。
2.控制通道:同时控制16路。(舵机速度精确可调,机器人动作流畅自如)
3.通讯输入:I2C
4.信号输出:PWM(频率高达1.6KHz)

接口定义图

应用示意图:(仅仅示意图,扩展板不含配件)

14

发布树莓派专用红外线扩展板

购买地址:http://item.taobao.com/item.htm?id=37526197545

功能说明:

1.  红外线接收功能

工作频率:38K HZ

接收距离:18-20m

接收角度:+/-45度

2.  红外线发射功能

波长:940nm

发射距离:7-8m

3.  支持红外线双LED发射,发射效果更强(需要用户自行焊接备用发射管D2,并断开SJ1)

4.  支持强大的LIRC软件,利用LIRC和扩展板,用户几乎可以用来复制所有的红外线遥控器功能(电视,功放,DVD等等电器遥控器),并通过命令来控制你的各种电器设备。

5.  支持XBMC系统,用户可以在XBMC环境下使用扩展板的红外功能

6.  支持双个GPIO按键,用户可以通过编程配置按键功能

扩展板接口图:

管脚对应关系图:

LIRC软件安装和配置:

1.  安装LIRC软件

注:LIRC (Linux Infrared remote control)是一个linux系统下开源的软件包。这个软件可以让你的Linux系统能够接收及发送红外线信号。

sudo apt-get install lirc

2. 编辑config.txt ,并添加配置。B+/2B版本扩展板的接收器=26;红外控制扩展板的红外发射器=17,红外接收器=18(参考管脚对应图);

sudo sudo nano /boot/config.txt

添加以下一行内容到config.txt 中

dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17

 

注意 raspbian-02-05以下版本请参考下面步骤2,新版本跳过下面步骤2!!!

2. 编辑modules ,并添加配置。

sudo nano /etc/modules

添加以下两行内容到modules中

lirc_dev

lirc_rpi gpio_in_pin=18 gpio_out_pin=17

 

3.  编辑LRIC的配置文件使能红外线功能

sudo nano /etc/lirc/hardware.conf

修改以下行

LIRCD_ARGS=”–uinput –listen”

DRIVER=”default”

DEVICE=”/dev/lirc0″

MODULES=”lirc_rpi”

注意这里的”–uinput”,是两个“-”

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果lirc中没有hardware.conf文件,或者hardware.conf文件,请自行添加hardware.conf文件,内容为:

LIRCD_ARGS=”–uinput –listen”
LOAD_MODULES=true
DRIVER=”default”
DEVICE=”/dev/lirc0″
MODULES=”lirc_rpi”

注意这里的”–uinput”和“ –listen”,都是两个“-”

并编辑/etc/lirc/lirc_options.conf文件,

修改相应的两行内容:

driver = default
device = /dev/lirc0

4. 重新开启LIRC功能

sudo /etc/init.d/lirc stop

sudo /etc/init.d/lirc start

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意如果运行以上两行提示找不到命令,可能是新版本lirc,请改为以下命令

sudo /etc/init.d/lircd stop

sudo /etc/init.d/lircd start

到此LIRC软件和扩展板的配置就完成了

 

红外线接收功能:

1.  关闭LIRC软件

sudo /etc/init.d/lirc stop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意如果运行时提示找不到命令,可能是新版本lirc,请改为以下命令

sudo /etc/init.d/lircd stop

2.  执行一下命令

mode2 -d /dev/lirc0

3.  使用任何红外线遥控器,对着扩展板按下任意按键,如果没按下键时屏幕都打印类似一下的内容,就说明红外线接收功能正常。

space 16300

pulse 95

space 28794

pulse 80

space 19395

pulse 83

space 402351

pulse 135

space 7085

pulse 85

space 2903

红外线发射功能:

1.  关闭LIRC软件

sudo /etc/init.d/lirc stop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意如果运行时提示找不到命令,可能是新版本lirc,请改为以下命令

sudo /etc/init.d/lircd stop

2. 输入命令‘irrecord –list-namespace‘. 参数表示将会提示可用的按键名。(最好记下来,后面录制的时候会让你手动输入这些名字)

irrecord –list-namespace

3.  执行红外线编码录制命令

irrecord -d /dev/lirc0 ~/lircd.conf

4. 根据软件的提示操作即可,这个程序会自动算出你按下的遥控器按键的编码和时长,并录制下来记录在~/lircd.conf文件中。

注:列出几个常用的按键名

KEY_VIDEO_PREV

KEY_VIDEO_NEXT

KEY_VOLUMEUP

KEY_VOLUMEDOWN

KEY_POWER

5. 将录制好的~/lircd.conf文件覆盖lirc软件的相应文件

sudo cp ~/lircd.conf /etc/lirc/lircd.conf

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意是新版本lirc,请改为以下命令覆盖

sudo cp ~/*.lircd.conf  /etc/lirc/lircd.conf.d/

6. 复制配置文件后,重启LIRC软件

sudo /etc/init.d/lirc restart

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意如果运行时提示找不到命令,可能是新版本lirc,请改为以下命令

sudo /etc/init.d/lircd restart

7. 可以使用irsend命令,来查看录制好可以使用的按键名

irsend LIST /home/pi/lircd.conf “”

将会看到类似一下的内容

irsend: 000000000000c837 KEY_VOLUMEDOWN

irsend: 00000000000048b7 KEY_VOLUMEUP

irsend: 00000000000008f7 KEY_VIDEO_PREV

irsend: 0000000000008877 KEY_VIDEO_NEXT

8. 现在就可以使用红外线发射器,发射之前录制好的遥控器按键编码了,用户利用这点将扩展板作为一个转台工具。发射命令参考一下命令:

irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV

irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_NEXT

irsend SEND_ONCE /home/pi/lircd.conf KEY_VOLUMEDOWN

irsend SEND_ONCE /home/pi/lircd.conf KEY_VOLUMEUP

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意是新版本lirc,请直接使用录制时给文件取的名字,比如录制时取名“TV”,录制后的文件就是TV.lircd.conf,发射时只需要输入名字“TV”就行了

irsend list TV KEY_POWER

或者

irsend SEND_ONCE TV KEY_POWER

附:

1.LIRC官网http://www.lirc.org/

2.通过web红外控制应用http://alexba.in/blog/2013/11/02/lirc-web-nginx-and-upstart/

3.通过手机红外控制应用http://www.datscharf.dk/amote/

4. XBMC下只用红外接收应用http://my.oschina.net/funnky/blog/147094

 

按键使用:

请参考树莓派GPIO的使用方式