搜索
bottom↓
回复: 13

树莓派学习笔记From BOB,只能传文本。

[复制链接]

出0入4汤圆

发表于 2016-12-5 09:42:12 | 显示全部楼层 |阅读模式
本帖最后由 gmyu 于 2016-12-5 09:52 编辑

一早上整理不少资料,可是不知为何上传总是403。只有把以前下载的网友的学习笔记上传,文本的,总没有问题吧。
====================================================
【树莓派2B学习笔记】 - Bob总结

----------------------------------------------------------------------------
1.        【开启root用户】

        a>        输入命令 sudo passwd root ,回车
        b>        输入root密码两次,回车
        c>        输入su回车,输入上一步设置的密码即可进入root用户
        d>        用su pi可切换回pi用户
       
----------------------------------------------------------------------------
2.        【播放音视频】

        a>        omxplayer 音/视频文件名
                ps1.        默认音频从hdmi口输出,在omxplayer后加入-o hdmi表示从hdmi接口输出音频,加-o local表示音频从audio接口输出
                ps2.        连续播放的实现方法:omxplayer 音/视频文件名1; omxplayer音/视频文件名2
               
----------------------------------------------------------------------------
3.        【串口控制】(树莓派串口速率 115200)

        a>        将USB转串口板的RX,TX,GND分别接入树莓派的TX,RX,GND引脚即可
       
----------------------------------------------------------------------------
4.        【用windows远程桌面连接到树莓派】

        a>安装RDP服务:sudo apt-get install xrdp
        b>打开windows远程桌面连接,输入树莓派IP地址,然后输入账号和密码即可
       
----------------------------------------------------------------------------
5.        【查看树莓派主板温度】

        a>        sudo /opt/vc/bin/vcgencmd measure_temp
       
----------------------------------------------------------------------------
6.        【英文转语音服务】

        a>        安装festival软件:sudo apt-get install festival
        b>        使用示例:
                1> 说出终端打印的内容: echo "hello everyone" | festival --tts
                2> 说出终端打印的内容: cat xiaoshuo.txt | festival --tts
                3> 说出本机IP地址:hostname -I | festival --tts
                        ps. 如果需要开机自动语音输出本地IP地址,可将此命令添加至 /etc/init.d/rc.local文件中,可重复添加三行,这样会读三次IP,方便用户记录。
                       
----------------------------------------------------------------------------
7.        【命令行界面下使用wpa_cli命令配置wifi无线网络】

        wpa_cli是命令行界面下的无线网连接工具。
        通过wpa_cli管理备选的网络列表。在备选网络中启用的网络,树莓派会自动试图连接。

        输入sudo wpa_cli启动wpa_cli的命令行界面(必须sudo)。常用的指令如下:

        status                                                                                        #列出目前的联网状态。
        list                                                                                        #列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。
        scan                                                                                         #启动搜索附近所有无线网络
        scan_results                                                                         #显示搜索到的所有无线网络
       
        add_network                                                                                #增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。
        set_network [network_id] ssid “Your SSID”                #设置无线网的名称(SSID)
        set_network [network_id] key_mgmt WPA-PSK                #设置无线网的加密方式为WPA-PSK/WPA2-PSK
        set_network [network_id] psk “Your Password”        #设置无线网的PSK密码
        enable_network [network_id]                                                #启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。
        save_config                                                                                #保存配置(若不保存,以上设置重启会失效)
       
        disable_network [network_id]                                        #禁用对应网络。
        remove_network [network_id]                                                #删除对应网络



        举个栗子:

        > add_network
        1
        > set_network 1 ssid "Bob-Mi4"
        OK
        > set_network 1 key_mgmt WPA-PSK
        OK
        > set_network 1 psk "24202420"
        OK
        > enable_network 1
        OK
        > save_config
        OK
       
        重要提示:        wpa_gui命令可调出wifi配置界面,更方便直观;
                                如果进入Raspbian系统图形界面,请也可以用menu菜单中的Wi-Fi Configuration工具进入wifi配置界面。
                               

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入4汤圆

 楼主| 发表于 2016-12-5 09:42:41 | 显示全部楼层
----------------------------------------------------------------------------
8.        【让树莓派开机自动将自己IP地址发到指定邮箱的方法】

        (这里是利用inkdot11@163.com这个邮箱将树莓派IP发给inkdot11@163.comshuangfeiyanworld@163.com这个邮箱里)

        只需下面两步:
        1. 建立Python脚本(脚本内容请看附录):sudo nano /home/pi/send_ip.py
        2. 设置开机自启动:在/etc/rc.local中加入下面一行
                /usr/bin/python   /home/pi/send_ip.py


        附录(Python脚本内容)(只需根据需要修改最后一行''之间的部分即可,注意:单引号符号不能删掉):

#/bin/env python
# -*-coding:utf8-*-
import socket
import fcntl
import time
import struct
import smtplib
import urllib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

#发送邮件的基本函数,参数依次如下
# 'smtp服务器地址','发件人邮箱用户名','发件人邮箱密码','发件人邮箱地址',['收件人1邮箱地址','收件人2邮箱地址'],'邮件主题',邮件html内容
def sendEmail(smtpserver,username,password,sender,receiver,subject,msghtml):
        msgRoot = MIMEMultipart('related')
        msgRoot["To"] = ','.join(receiver)
        msgRoot["From"] = sender
        msgRoot['Subject'] =  subject
        msgText = MIMEText(msghtml,'html','utf-8')
        msgRoot.attach(msgText)
        #sendEmail
        smtp = smtplib.SMTP()
        smtp.connect(smtpserver)
        smtp.login(username, password)
        smtp.sendmail(sender, receiver, msgRoot.as_string())
        smtp.quit()

# 检查网络连同性
def check_network():
        while True:
                try:
                        result=urllib.urlopen('http://baidu.com').read()
                        print result
                        print "Network is Ready!"
                        break
                except Exception , e:
                   print e
                   print "Network is not ready,Sleep 5s...."
                   time.sleep(5)
        return True

# 获得本级制定接口的ip地址
def get_ip_address():
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(("1.1.1.1",80))
        ipaddr=s.getsockname()[0]
        s.close()
        return ipaddr

if __name__ == '__main__':
        check_network()
        ipaddr=get_ip_address()
        sendEmail('smtp.163.com','inkdot11','24202420','inkdot11@163.com',['shuangfeiyanworld@163.com','inkdot11@163.com','562949252@qq.com'],'主人您好,小派给您请安了,请点击查看我当前的IP地址',ipaddr)

----------------------------------------------------------------------------
9.        【VNC远程登录树莓派的图形界面】

        a>        安装tightvncserver:sudo apt-get install tightvncserver
        b>        设置vnc远程登录密码:vncpasswd        (先输入操作密码两次,然后会询问是否设置一个查看(view-only)密码,按自己喜欢,一般没必要。)
        c>        设置开机启动:sudo nano /etc/init.d/tightvncserver
                内容如下:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          tightvncserver
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop tightvncserver
### END INIT INFO

# More details see:
# http://www.penguintutor.com/linux/tightvnc

### Customize this entry
# Set the USER variable to the name of the user to start tightvncserver under
export USER='pi'
### End customization required

eval cd ~$USER

case "$1" in
  start)
    # 启动命令行。此处自定义分辨率、控制台号码或其它参数。
    su $USER -c '/usr/bin/tightvncserver -depth 16 -geometry 800x600 :1'
    echo "Starting TightVNC server for $USER "
    ;;
  stop)
    # 终止命令行。此处控制台号码与启动一致。
    su $USER -c '/usr/bin/tightvncserver -kill :1'
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

        d>        加执行权限,并更新开机启动列表:        sudo chmod 755 /etc/init.d/tightvncserver
                                                                                sudo update-rc.d tightvncserver defaults
        e>        开启vnc服务:vncserver
        f>        已经可以vnc远程登录.

出0入4汤圆

 楼主| 发表于 2016-12-5 09:44:11 | 显示全部楼层
10.        【实现VLC串流实时输出网络视频流】(利用官方CSI摄像头)

        a>        更新软件列表:sudo apt-get update
        b>        安装vlc:sudo apt-get install vlc
        c>        建立脚本:sudo nano vlc.sh
                内容为:sudo raspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264
        d>        添加执行权限:sudo chmod +x vlc.sh
        e>        执行脚本:./vlc.sh
        f>        利用手机端或电脑端vlc软件输入这个地址即可查看摄像头实时监控视频:http://树莓派IP:8090
       
        ps. 摄像头模块工作的时候其红色的led灯会一直亮,要想禁用它的话,在/boot/config.txt文件中加入这句话即可  disable_camera_led=1
       
----------------------------------------------------------------------------
11.        【安装中文输入法】

        sudo apt-get install scim-pinyin
       
----------------------------------------------------------------------------
12.        【官方CSI摄像头拍照录像的命令】
       
        [拍照片]

        延迟2s拍摄一张.jpg格式的图片:  
        sudo raspistill -o raspi.jpg  -t 2000

        延迟2s拍摄一张.raw格式的图片:  
        sudo raspiyuv   -o raspi.raw  -t 2000


        [录视频]

        拍摄10000ms时长的.h264格式视频:
        sudo raspivid   -o raspi.h264 -t 10000

        安装gpac软件包:
        sudo apt-get install -y gpac

        利用gpac软件包中的MP4Box工具将H.264格式的视频流转换为每秒30帧的.mp4格式视频:
        sudo MP4Box -fps 30 -add raspi.h264 raspi.mp4

        利用omxplayer软件播放.mp4格式视频:
        sudo omxplayer raspi.mp4

出0入4汤圆

 楼主| 发表于 2016-12-5 09:45:35 | 显示全部楼层
13.        【USB摄像头安装与测试】

        a>        将USB摄像头插入树莓派USB接口
        b>        查找USB摄像头设备:ls /dev/video0
                如果能找到video0这个设备,说明系统已经识别到USB摄像头并安装好了驱动;如果找不到video0这个设备,请更换USB摄像头。
        c>        安装mplayer软件:sudo apt-get install mplayer
        d>        查看USB摄像头实时图像:sudo mplayer  tv://
       
----------------------------------------------------------------------------
14.        【树莓派+USB/CSI摄像头+Yeelink 实现远程监控】
       
        【对于USB摄像头】(下文脚本中的1280x800是拍照的尺寸,对于USB摄像头,这个参数不能太小,例如设置为320x240的时候,拍到的图片会非常模糊,什么都看不清)
        a>        将USB摄像头插入树莓派USB接口
        b>        查找USB摄像头设备:ls /dev/video0
        如果能找到video0这个设备,说明系统已经识别到USB摄像头并安装好了驱动;如果找不到video0这个设备,请更换USB摄像头。
        c>        安装fswebcam用来抓取图像:sudo apt-get install fswebcam
        d>        创建上传图片的脚本文件:sudo nano /home/pi/yeelink_usb_camera.sh
                内容为(请根据需要更改U-ApiKey的值和后面的那个传感器地址):
sudo fswebcam -d /dev/video0 -r 1280x800 --bottom-banner --title "RaspberryPi @ Yeelink" --no-timestamp /home/pi/yeelink_usb_camera.jpg
curl --request POST --data-binary @"/home/pi/yeelink_usb_camera.jpg" --header "U-ApiKey: 513ab8334265d536c3e7151cd70bb550" http://api.yeelink.net/v1.1/device/21532/sensor/37983/datapoints
        e>        给脚本添加执行权限:sudo chmod +x /home/pi/yeelink_usb_camera.sh
        f>        添加定时任务:crontab -e 回车,填入如下内容:
                */1 * * * * /home/pi/yeelink_usb_camera.sh
                这样就可以了,每分钟上传一次照片,注意间隔不能小于10秒,Yeelink不认
        g>        然后在我的Yeelink账号上找到对应设备里的摄像头传感器,即可看到每分钟上传的照片了!
       
        【对于官方CSI摄像头】
        a>        将CSI摄像头安装到树莓派上
        b>        创建上传图片的脚本文件:sudo nano /home/pi/yeelink_csi_camera.sh
                内容为(请根据需要更改U-ApiKey的值和后面的那个传感器地址):
sudo raspistill -w 1280 -h 800 -o /home/pi/yeelink_csi_camera.jpg
curl --request POST --data-binary @"/home/pi/yeelink_csi_camera.jpg" --header "U-ApiKey: 513ab8334265d536c3e7151cd70bb550" http://api.yeelink.net/v1.1/device/21532/sensor/38262/datapoints
        c>        给脚本添加执行权限:sudo chmod +x /home/pi/yeelink_csi_camera.sh
        d>        添加定时任务: crontab -e 回车,填入如下内容:
                */1 * * * * /home/pi/yeelink_csi_camera.sh
                这样就可以了,每分钟上传一次照片,注意间隔不能小于10秒,Yeelink不认
        e>        然后在我的Yeelink账号上找到对应设备里的摄像头传感器,即可看到每分钟上传的照片了!

出0入4汤圆

 楼主| 发表于 2016-12-5 09:45:55 | 显示全部楼层
15.        【树莓派+CSI摄像头+百度云盘 实现远程监控】

        a>        将CSI摄像头安装到树莓派上
        b>        下载 https://github.com/houtianze/bypy/archive/master.zip
        c>        解压上一步的压缩包
        d>        在树莓派上创建脚本存放目录:sudo mkdir /home/pi/baiduyun
        e>        将前一步解压出来的文件夹里的这三个文件(bypy.py,bypygui.pyw,setup.py)拷贝至/home/pi/baiduyun目录下
        f>        添加执行权限:sudo chmod +x /home/pi/baiduyun/*
        g>        安装Python环境: ① 安装python:sudo apt-get install python-dev python-setuptools
                                                 ② 执行更新:sudo easy_install -U distribute
                                                 ③ 安装python-pip:sudo apt-get install python-pip
                                                 ④ 安装python的GPIO库:sudo pip install rpi.gpio
                                                 ⑤ 安装python requests库:sudo pip install requests
        h>        cd /home/pi/baiduyun/
        i>        sudo python bypy.py help (如果不行,用 sudo python bypy.py cleancache

                执行此命令后勿动键盘,用鼠标复制给出的那个网址到剪切板。
        j>        打开浏览器,登陆百度账号
        k>        用浏览器打开前一步复制的那个网址,点击“授权”二字,会生成一个授权码之类的字符串(这个字符串有效期为十分钟),复制一下,粘贴到前一步的命令行终端,回车,稍后即可授权成功。
        l>        建立文件夹:sudo mkdir /home/pi/baiduyunpan
        m>        建立脚本:sudo nano /home/pi/baiduyunpan_csi_camera.sh
                内容如下:
sudo raspistill -w 1280 -h 800 -o /home/pi/baiduyunpan/baiduyunpan_csi_camera.jpg
sudo python /home/pi/baiduyun/bypy.py syncup /home/pi/baiduyunpan
var=$(date +%y.%m.%d_%H.%M.%S)
sudo python /home/pi/baiduyun/bypy.py -d mv baiduyunpan_csi_camera.jpg ${var}.jpg
echo ${var}.jpg
echo "${var}".jpg
echo "${var}.jpg"
        n>        添加执行权限:sudo chmod +x /home/pi/baiduyunpan_csi_camera.sh
        o>        执行脚本: ./home/pi/baiduyunpan_csi_camera.sh
        p>        添加定时任务: crontab -e 回车,填入如下内容:
                */1 * * * * /home/pi/baiduyunpan_csi_camera.sh
                这样就可以了,每分钟上传一次照片
        q>        打开百度云盘,在“我的应用数据” --> "bypy"目录下看是不是已经有刚才拍的照片。
       
----------------------------------------------------------------------------
16.        【树莓派Raspbian系统实现PPPOE上网的方法】

        a>        安装三个工具:sudo apt-get install pppoe pppoeconf pppstatus
        b>        终端运行命令 pppoeconf
        c>        在弹出的操作步骤中,除了填写宽带服务商给的PPPOE账号和密码步骤外,其余步骤全部直接回车按默认设置,完成所有步骤后即可正常上网。

出0入4汤圆

 楼主| 发表于 2016-12-5 09:46:34 | 显示全部楼层
17.        【将树莓派配置成无线路由器】

        参考此文: http://shumeipai.nxez.com/2014/0 ... ireless-router.html
        ps1. (此方法实现了树莓派的无线AP功能,若要实现联网功能,还需连接到树莓派有线网口的有线宽带具备DHCP功能,
                由于家里使用的宽带是PPPOE上网方式,所以只能实现树莓派无线热点,无法成功联网)
        ps2. 按照此方法设置后,通过 ssh 192.168.1.1 即可远程连接到树莓派对其进行控制。
       
----------------------------------------------------------------------------
18.        【树莓派首次使用时,无显示器状态下的配置方法】(此方法基于官方Raspbian系统的树莓派)

        a>        网线直连树莓派到电脑
        b>        电脑端打开dos窗口,输入 arp -a 回车
        c>        在列表中找到已“动态”类型结尾的那些IP地址,一个一个的通过ssh去连接,其中有一个是树莓派的IP。
        d>        由于树莓派有线网口默认设置为动态IP,所以会经常变动,此时可以更改 /etc/network/interfaces的内容将树莓派IP固定,方法如下:
                将
                auto eth0
                allow-hotplug eth0
                iface eth0 inet manual
                这三行改为如下内容
                iface eth0 inet static
                address 192.168.1.134        #树莓派静态IP地址
                netmask 255.255.255.0
                gateway 192.168.1.253        #网关IP地址,即进入无线路由器设置页面的那个IP地址
                dns-nameservers 8.8.8.8
               
               
        e>        这一步可以让树莓派具备联网功能:
                按照上面的步骤已经可以ssh连接到树莓派了,如果是笔记本(一般都是无线网卡和有线网卡的双网卡配置),并且已经通过wifi连接到网络,
                此时,在电脑端进入 控制面板→网络和Internet→网络连接,找到无线网络连接,右键点击属性,在共享下面,选择“允许其他网络。。。”,然后选择“本地连接”,点击确定,
                稍等几秒钟,树莓派即可实现上网,可ssh到树莓派,然后ping www.baidu.com进行测试。
               
ps1.        如果是基于官方Raspbian系统的树莓派,其开机信息会通过GPIO中的RX,TX串口打印出来,可将USB转串口板的RX,TX,GND分别接入树莓派的TX,RX,GND引脚,
                即可通过电脑端的超级终端或者xshell软件查看打印信息并进入树莓派终端命令行界面。
ps2.        如果树莓派已经设置好连接到了wifi网络,并且手机也连接到了同一个wifi网络,可以在手机端安装RasPi Check软件来查看树莓派的状态,其中包含有线网络eth0的IP地址。

出0入4汤圆

 楼主| 发表于 2016-12-5 09:47:29 | 显示全部楼层
19.        【获取CPU和GPU温度的Python小程序】
        a> 建立python脚本:sudo nano cpu_gpu_temp.py
                内容如下:
import commands

def get_cpu_temp():
    tempFile = open( "/sys/class/thermal/thermal_zone0/temp" )
    cpu_temp = tempFile.read()
    tempFile.close()
    return float(cpu_temp)/1000
    # Uncomment the next line if you want the temp in Fahrenheit
    #return float(1.8*cpu_temp)+32

def get_gpu_temp():
    gpu_temp = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' )
    return  float(gpu_temp)
    # Uncomment the next line if you want the temp in Fahrenheit
    # return float(1.8* gpu_temp)+32

def main():
    print "CPU temp: ", str(get_cpu_temp())
    print "GPU temp: ", str(get_gpu_temp())

if __name__ == '__main__':
    main()
       
        b> 使用:sudo python cpu_gpu_temp.py ,即可返回CPU和GPU温度
       
----------------------------------------------------------------------------
20.        【在树莓派上利用讯飞语音将文字转化为语音保存并读出】

        方法详见 “树莓派应用案例”文件夹下的“在树莓派上利用讯飞语音将文字转化为语音保存并读出(Bob亲测好用)”文件夹。
        (另外,Bob已将源码和方法打包上传至inkdot账号的百度云盘,文件名为“在树莓派上利用讯飞语音将文字转化为语音保存并读出(Bob亲测好用).rar”  )

出0入4汤圆

 楼主| 发表于 2016-12-5 09:48:02 | 显示全部楼层
21.        【无显示屏无USB无线网卡,无需wifi,无需移动网络,仅需一根手机数据线,通过手机USB共享实现树莓派ssh登陆】
       
        a>        找一根USB数据线(仅带充电功能的手机线不行),将microUSB一端插入手机(这里采用的是小米4,miui6系统),标准USB端插入树莓派
        b>        给树莓派上电
        c>        听到手机发出叮叮一声的提示音后,打开手机的”USB共享网络“开关(在”设置“--”其他连接方式“--“网络共享”下面)(如果还想让树莓派使用手机移动网络或手机连接的wifi网络,则可打开对应网络开关)
        d>        打开 Network Scan 这个手机端软件对手机同一网络下的设备进行扫描(可通过手机百度助手搜索到此软件,同时也已经上传至账号为inkdot的百度网盘中)
        e>        在扫描的结果中,有一项"USB Network", 第一个是自己手机的IP,另外一个即为树莓派自动获取到的IP(后面带 ports:22 ssh 字样)
        f>        打开 JuiceSSH 这个手机端软件,使用刚才那个树莓派IP进行SSH登录,账号pi,密码为11111111(根据自己的设置而定)
        e>        另外,还可以使用手机端”VNC Viewer“登录树莓派图形界面(需树莓派安装tightvncserver之类的软件),
                          还可以使用手机端”RasPi Check”软件查看树莓派内存占用、存储空间使用量等信息,
                          还可以使用手机端”ES文件浏览器”软件,添加SFTP对树莓派的文件系统进行浏览查看,也可以往里面拷贝文件。
       
----------------------------------------------------------------------------
22.        【安装BerryIO工具 -- 用于浏览器控制树莓派】(可以查看树莓派IP/CPU温度.速率/存储空间大小等信息;可以控制GPIO端口/SPI/Camera/LCD等等)

        a>        安装BerryIO:
                sudo wget -N https://raw.github.com/NeonHoriz ... /berryio_install.sh
                sudo chmod +x berryio_install.sh
                sudo ./berryio_install.sh        (会提示设置邮箱什么的,目前还不知道做什么用)
        b>        使用:
                方法一、在终端直接执行 sudo berryio,回车会显示所有功能(如 sudo berryio system_status 可查看系统整体状态)
                方法二、浏览器输入树莓派IP回车(默认使用80端口),输入树莓派登陆的账号密码即可打开图形控制界面
       
        ps1.如果其他功能需要使用80端口,可以用 sudo berryio shutdown 命令关闭此功能
        ps2.更多内容详见 https://github.com/NeonHorizon/berryio

出0入4汤圆

 楼主| 发表于 2016-12-5 09:49:24 | 显示全部楼层
23.        【树莓派GPIO控制工具Python GPIO和WiringPi的安装方法与示例】

        工具一、Python GPIO
                        安装步骤:         a> 安装python-dev:                        sudo apt-get install python-dev
                                                b> 安装python-rpi.gpio:        sudo apt-get install python-rpi.gpio
                        示例1:                 实现闪烁LED
                                                a> 编写Python脚本:                 sudo nano led.py (功能:树莓派第11引脚电平每秒变换一次,可驱动LED闪烁)
                                                        内容如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-  

#功能:树莓派第11引脚电平每秒变换一次,可驱动LED闪烁
#运行方法:sudo ./gpio_11_blink.py

import RPi.GPIO as GPIO  
import time  

# 设置GPIO编号为BOARD编号方式,即基于树莓派插座引脚编号  
GPIO.setmode(GPIO.BOARD)  

# 设置GPIO输出模式  
GPIO.setup(11, GPIO.OUT) #将GPIO第11引脚设置为输出
  
while True:  
    GPIO.output(11, GPIO.HIGH)  #将GPIO第11引脚输出高电平
    time.sleep(1)                              #延迟1s
    GPIO.output(11, GPIO.LOW)   #将GPIO第11引脚输出低电平
    time.sleep(1)                              #延迟1s
       
                                                b> 执行:sudo python led.py

                        示例2: 实现按键控制LED
                    a> 编写Python脚本: sudo nano btn_led.py    (功能:让树莓派板端第40引脚的输出电平等于38引脚的输入电平)
                                                                                内容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-  

#功能:让树莓派板端第40引脚的输出电平等于38引脚的输入电平
#运行方法:sudo ./btn_led.py

import RPi.GPIO as GPIO
import time

# 设置GPIO编号为BOARD编号方式,即基于树莓派插座引脚编号  
GPIO.setmode(GPIO.BOARD)

# 设置GPIO输出模式  
GPIO.setup(38, GPIO.IN)                #对应板端GPIO第38引脚
GPIO.setup(40, GPIO.OUT)        #对应板端GPIO第40引脚

while True:
        value = GPIO.input(38)
        if value:
                GPIO.output(40, GPIO.HIGH)
        else        :
                GPIO.output(40, GPIO.LOW)

                b> 执行:sudo python btn_led.py


        工具二、WiringPi
                        安装步骤:        a>克隆源码:                 sudo git clone git://git.drogon.net/wiringPi
                                                b>进入源码目录:         cd wiringPi
                                                c>安装:                        sudo ./build
                                                d>测试wiringPi是否安装成功:        gpio -v                 可显示版本信息
                                                                                                                gpio readall          可显示I/O引脚对应关系表
                        示例1:         实现闪烁LED
                        a> 编写C程序:  sudo nano led_blink.c(功能:树莓派第40引脚电平每秒变换一次,可驱动LED闪烁)
                                                                        内容如下:

/****************************************************
功能:树莓派第40引脚电平每秒变换一次,可驱动LED闪烁
用法:使用gcc -Wall -o led_blink led_blink.c -lwiringPi编译后,直接通过 sudo ./led_blink 运行
****************************************************/                                               
#include <wiringPi.h>  
int main(void)  
{  
  wiringPiSetup() ;                  //初始化wiringPi工具
  pinMode (0, OUTPUT) ;          //设置GPIO模式,wiringPi的GPIO_0对应树莓派GPIO的第11引脚
  for(;;)                                   //死循环,实现树莓派GPIO的第11引脚电平以1hz的频率进行变化
  {  
    digitalWrite(0, HIGH) ; delay (500) ;  
    digitalWrite(0,  LOW) ; delay (500) ;  
  }  
}  

                                        b> 编译:        gcc -Wall -o led_blink led_blink.c -lwiringPi
                                        c> 执行:         sudo ./led_blink

                        示例2:     实现按键控制LED
                                                a> 编写C程序:  sudo nano btn_led.c(功能:让树莓派板端第40引脚的输出电平等于38引脚的输入电平)
                                                                        内容如下:
                                                                       
/****************************************************
功能:让树莓派板端第40引脚的输出电平等于38引脚的输入电平
用法:使用gcc -o btn_led btn_led.c -lwiringPi编译后,直接通过 sudo ./btn_led 运行
****************************************************/       

#include <wiringPi.h>  
int main(void)  
{   
  wiringPiSetup() ;                   //初始化wiringPi工具
  pinMode (28, INPUT) ;          //对应板端GPIO第38引脚,设置为输入
  pinMode (29, OUTPUT) ;    //对应板端GPIO第40引脚,设置为输出
  for(;;)   
  {  
        if(digitalRead(28))                //如果板端GPIO第38引脚输入电平为高,则第40引脚输出为高
                digitalWrite(29, HIGH) ;
        else                                        //如果板端GPIO第38引脚输入电平为低,则第40引脚输出为低
                digitalWrite(29,  LOW) ;
  }  
}
                                            
                                        b> 编译:        gcc -o btn_led btn_led.c -lwiringPi
                                        c> 执行:         sudo ./btn_led

出0入4汤圆

 楼主| 发表于 2016-12-5 09:51:30 | 显示全部楼层
后面的都有代码,文本过长也不能上传,回头看看能不能在别的电脑穿附件。上面的就当入门技巧吧。凑合看。

出0入0汤圆

发表于 2016-12-5 10:17:59 | 显示全部楼层
很好的资料,楼主有心了

出0入25汤圆

发表于 2016-12-5 12:11:43 | 显示全部楼层
gmyu 发表于 2016-12-5 09:51
后面的都有代码,文本过长也不能上传,回头看看能不能在别的电脑穿附件。上面的就当入门技巧吧。凑合看。 ...

lz 你很多 是   颜色 代码?  能不能编辑一下 在发。 不然  ctrl+v  太乱了

出0入0汤圆

发表于 2016-12-5 14:10:17 来自手机 | 显示全部楼层
我竟然都看完了........

出0入4汤圆

 楼主| 发表于 2016-12-5 15:16:15 | 显示全部楼层
rei1984 发表于 2016-12-5 12:11
lz 你很多 是   颜色 代码?  能不能编辑一下 在发。 不然  ctrl+v  太乱了

不好意思啊,我这不知道是公司封锁还是怎么的,不能发附件,早上准备了一些东西上传不了,amo开了这个版块总要贡献一下,就手动copy了。

这里没有一个是颜色代码的,很多是linux提示符,字母序号。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 05:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表