树莓派学习资源汇总

作者: afbbcde7fa3e | 来源:发表于2017-11-09 16:39 被阅读243次

软件与工具资源

树莓派操作使用

  • 配置文件
    /boot/config.txt

  • ip地址配置文件
    /etc/network/interfaces

  • DHCP配置文件(如果采用静态ip,需要使用下列命令清除)
    sudo rm /var/lib/dhcp/*

  • 网络名称配置文件
    /etc/hosts

  • 配置命令
    sudo raspi-config

  • 使用摄像头拍照
    rapistill -o xxx.jpg

  • 使用摄像头录像(ms)
    raspivid -o video.h264 -t 10000

  • 将树莓派作为网络存储服务器
    sudo apt-get install samba
    sudo apt-get install samba-common-bin
    为samba添加用户 sudo smbpasswd -a xxx
    修改 /etc/samba/smb.conf 第一行的工作组
    最下方添加

[USB]
path=/media/NAS
comment= NAS driver
valid users=xxx
writeable=yes
browseable=yes
create mask=0777
public=yes

samba restart

  • 网络打印服务器 CUPS
    sudo apt-get install cups
    sudo usermod -a -G lpadmin xxx
    //增加一个浏览器用于界面管理,使用631端口
    sudo apt-get install iceweasel
    管理界面

  • 屏幕截图 scrot
    sudo apt-get install scrot

  • 延时截图
    scrot -d 5

  • 鼠标截屏
    scrot -s

  • I2C通讯工具
    sudo apt-get install i2c-tools
    sudo i2cdetect -y 1//如果是旧版本的话把1改为0

  • 串口检测工具 minicom
    sudo apt-get install minicom
    minicom -b 9600 -o -D /dev/ttyAMA0
    首先要启用local echo功能才能看到反馈,按Ctrl+A,Z,E

树莓派硬件

  • 安全规范
  • GPIO引脚上的电压不能超过3.3V
  • 每个输出电流不超过3mA
  • 电源不高于5V
  • 5V供电电源输出总电流不超过250mA
  • 最简单的电压转换办法,利用470欧和220欧电阻串联分压,也可以按比例放大到47k,22k以降低电流损耗
    -GPIO输出能力汇总参考文章
  • 树莓派配件
  • Raspberry Squid,内置了电阻的LED灯和按钮配件。有pyton squid库
  • 可以采用电机驱动装置RasPiBobot Board 为树莓派供电,电机驱动板python库raspirobotboard
  • 传感器接口板[SenseHAT],python库为sense-hat或者SenseHAT pro, explorerhat
  • [计算模块](https://www.raspberrypi.org/blog/raspberry-pi-compute-module-new-product/)
  • Pi Plate原型版用于焊接元件以快速开发
  • 自行设计符合HAT标准的原型板,在config文件中启用 dtparam=i2cvc=on,烧写EEPROM工具
  • 树莓派HAT标准硬件设计指南
  • 开关交流电配件 PowerSwitch Tail II(光隔加继电器模块)
  • 精确控制伺服电机,可以使用Servo Blaster库
  • 同时控制多台伺服电机,可以使用Adafruit的伺服电机HAT(hardware at top),Adafruit文档
  • 控制直流电机,可以通过L293D类似芯片搭建H桥,或者使用SparkFun的H桥模块。
  • 控制步进电机可以使用RaspiRobot
  • 监测移动可以使用被动红外运动检测模块PIR
  • 测量电阻值可以通过连接电容通过测量电容充电时间的方法来实现
  • 树莓派没有内置模拟量输入,采集模拟量可以通过MCP3008类似的ADC模块实现
  • 测量温度可以采用不精确的TMP36或者高精度的数字温度传感器DS18B20
  • 测量温湿度与气压的Sense HAT
  • aLaMode板(带GPIO接口的Arduino平台),由于aLaMode设计缺陷,需要在树莓派的以太网口缠一点绝缘胶带处理。
  • 树莓派控制硬件视频

树莓派快速使用

  • 媒体中心,安装OpenELEC_Pi2系统,使用kodi
  • Office办公软件 abiword gnumeric
  • 浏览器 chromium-browser
  • 网络摄像头服务器,安装motion
  • 配置
sudo vim /etc/motion/motion.conf
#将 daemon off改为on
#webcam_localhost=on改为off
sudo vim /etc/default/motion 
#将sart_motion_daemon=no 改为yes
  • 启动 service motion start

  • 运行老式模拟器游戏 安装 stella

  • 安装JDK,运行minecraft(在树莓派3中该软件已经安装了)

    sudo apt-get install openjdk7-jkd(版本可能需要更新到8)
    wget http://getspigot.org/spigot18/spigot_server.jar
    java -Xms512M -Xmx800M -jar spigot_server.jar nogui
    #sudo vim eula.txt 
    #修改版权文件eula=false 改为true
    
  • 运行游戏 Open Arena (很暴力)

  • 无线电发射器 安装pifm库,需要在GPIO引脚4上面接根短导线当天线

    mkdir pifm
    cd pifm
    wget http://www.icrobotics.co.uk/wiki/imagies/c/c3/Pifm.tar.gz
    tar -xzf Pifm.tar.gz
    sudo ./pifm sound.wav 103.0 (待播放文件和频率)
    
  • 图像处理 GIMP
    sudo apt-get install gimp

  • 收听互联网广播 vlc

  • gps模块 gpsd 和gpsd-clients ,命令,cgps -s,xgps

  • 与arduino通讯可以采用pyserial串口或者给arduino 安装 PyFirmata固件

Linux命令参考

  • 查看ip地址
    ifconfig (书中这个命令已经过期了)
    ip a

  • 在系统启动时自动执行脚本
    修改 /etc/rc.local
    在第一行添加例如
    /user/bin python /home/pi/my_program.py &
    ** & 符号用于指示后台运行,否则将无法进入系统,非常重要**

  • 让脚本自动运行
    /etc/init.d/my_server(my_server为自定义的脚本文件)

sudo chmod +x /etc/init.d/my_server (为文件添加运行权限)

  • 定期自动运行脚本 crontab -e

  • 搜索功能 find /home/pi (启动目录) -name abc.py

  • 查看历史记录命令history !x(执行历史记录中第x条)

  • 列出usb设备 lsusb

  • 将命令输出到文本 ls ->abc.txt ->为重定向

  • 连接文件 cat a.txt b.txt->c.txt

  • 管道与正则表达式 ls *.py | grep Jun

  • 隐藏输出 ls -> /dev/null

  • 后台运行 abc.py &, 回到前台 fg

  • 别名 alias l='ls -a'

  • 使文件立即生效 source .bashrc

  • 修改时间 sudo date 010203042031(MMDDHHMMYYYY)

  • 存储空间 df -h

Python机器视觉

  • 安装SimpleCV
sudo apt-get update
sudo apt-get install ipython python-opencv python-scipy
sudo apt-get install python-numpy python-setuptools python-pip
sudo pip install svgwrite
sudo pip install https://github.com/sightmachine/SimpleCV/zipball/master
运行simpleCV
  • 使用python和树莓派摄像头的程序示例

import picamera
from SimpleCV import *

def get_camera_image():
    with picamera.PiCamera() as camera:
        camera.resolution=(1024,768)
        camera.awb_mode='off'
        camera.capture('tmp.jpg')
    return Image('tmp.jpg')

  • python的picamera文档资料
  • 边缘检测,边缘和方法 canny边缘,thresh确定边缘所需长度,distance圆形之间的距离
SimpleCV:1>c=Camera()
SimpleCV:2>i=c.getImage()
SimpleCV:3>i.show()
SimpleCV:4>i2=i.invert()
SimpleCV:5>i2.show()
SimpleCV:6>coins=i2.findCircle(canny=100,thresh=70,distance=15)
SimpleCV:7>coins
SimpleCV:8>coins.draw(width=4)
SimpleCV:9>coins.show()
from SimpleCV import *
c=Camera()
while True:
    i=c.getImage().invert()
    coins=i.findCircle(canny=100,thresh=70,distance=1)
    print(len(coins))

python 控制树莓派硬件

  • 开闭LED,首先需要python有超级用户权限以调用RPi.GPIO库,sudo python led_blink.py才能运行
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.OUT)
try:
    while(True):
        GPIO.output(18,True)
        time.sleep(0.5)
        GPIO.output(18,False)
        time.sleep(0.5)
finally:
    GPIO.cleanup() #安全模式,使GPIO端口处于输入状态以避免短路
  • **PWM输出 **
import RPi.GPIO as GPIO

led_pin=18
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin,GPIO.OUT)

pwm_led=GPIO.PWM(led_pin,500)
pwm_led.start(100)

while True:
    duty_s=input("Brightness input (0-100):")
    duty=int(duty_s)
    pwm_led.ChangeDutyCycle(duty)

  • ** 带有GUI的PWM控制程序**
from tkinter import *
import RPi.GPIO as GPIO
import time

led_pin=18

GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin,GPIO.OUT)

class App:
    def __init__(self,master):
        frame=Frame(master)
        frame.pack()
        self.check_var=BooleanVar()
        check=Checkbutton(frame,text='Pin 18',
            command=self.update,variable=self.check_var,
            onvalue=True,offvalue=False)
        check.grid(row=1)
    def update(self):
        GPIO.output(led_pin,self.check_var.get())

root=Tk()
root.wm_title('On/Off Switch')
app=App(root)
root.geometry("200x50+0+0")
root.mainloop()

  • ** PWM输出**
import RPi.GPIO as GPIO
import time

led_pin=18

GPIO.setmode(GPIO.BCM)

#回调函数
def my_callback(channel):
    print('You pressed the button')

GPIO.setup(led_pin,GPIO.IN,pull_up_down=GPIO.PUD_UP)
#bounce time是GPIO库内置的防抖功能
GPIO.add_event_detect(led_pin,GPIO.FALLING,callback=my_callback,bouncetime=100)

i=0
while True:
    i=i+1
    print(i)
    time.sleep(1)

from rrb3 import *
import time

rr=RRB3(12.0,12.0) # battery,motor

try:
    while True:
        delay=input("Delay milliseconds between steps:")
        steps=input("How many steps forward?")
        rr.step_forward(int(delay)/1000.0,int(steps))
        steps=input("How many steps backward?")
        rr.step_reverse(int(delay)/1000.0,int(steps))
finally:
    GPIO.cleanup()
  • 使用pygame检测键盘和鼠标移动
import pygame
import sys
from pygame.locals import *

pygame.init()
screen=pygame.display.set_mode((640,480))
pygame.mouse.set_visible(0)

while True:
    for event in pygame.event.get():
        if event.type==QUIT:
            sys.exit()
        if event.type==KEYDOWN:
            if chr(event.key)=='q':
                sys.exit()
            else:
                print("Code: "+str(event.key)+ " Char: "+chr(event.key)+"\n")
        if event.type==MOUSEMOTION:
            print("Mouse:(%d,%d)"%event.pos)

物联网与程序示例

相关文章

  • 树莓派学习资源汇总

    软件与工具资源 操作系统官方下载地址: windows下的SD卡格式化软件 SD Formatter wondow...

  • 树莓派资源整理(转载)

    树莓派资源整理 科技爱好者关注 本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介...

  • 软件安装卸载命令汇总

    文章转自:树莓派上的软件安装和卸载命令汇总 | 树莓派实验室 仅供本人自己学习记录。 基础命令 安装软件 apt-...

  • 树莓派资源整理汇总(2018年10月14日更新)

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓...

  • 树莓派资源整理

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓...

  • 树莓派资源整理汇总(2020年2月18日更新)

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓...

  • 树莓派系统烧录和环境配置

    最近开始学习树莓派wiringPi库的使用,首先就是树莓派的系统烧录和环境配置~ 树莓派简介 Raspberry ...

  • mac下: 树莓派4B-8G安装64位操作系统

    一.资源下载 1.下载64位树莓派操作系统 64位树莓派操作系统 官网下载64位树莓派操作系统 百度云下载 密码:...

  • 树莓派初识及系统安装

    树莓派背景 树莓派是什么?树莓派是为学习计算机编程教育而设计,只有信用卡大小的微型电脑。 树莓派各硬件版本对比 图...

  • 树莓派针脚图

    树莓派40Pin引脚对照表 本表格适用于树莓派B+、树莓派2B、树莓派A+,并且兼容树莓派B,树莓派B为26Pin...

网友评论

  • 19b79c9adecf:在17版的raspberry系统中,设置静态ip不能从interface,而是从dhcpcd,conf中配置

本文标题:树莓派学习资源汇总

本文链接:https://www.haomeiwen.com/subject/lvhmmxtx.html