您现在的位置是:网站首页> 硬件

树莓派技术收集

  • 硬件
  • 2024-09-25
  • 1178人已阅读
摘要

树莓派技术收集


树莓派基础使用教程

树莓派智能硬件技术

树莓派来做电视盒子

树莓派pico中文站点

使用fswebcam

go编译树莓派上运行的程序

树莓派上运行python

Python创建ftp



树莓派来做电视盒子

KODI安装

树莓派中我们通过apt安装方式,安装如下:


sudo apt update

sudo apt install kodi



使用fswebcam

视频

在实践过程中,树莓派对 USB 摄像头的支持不如 CSI 摄像头完美。偶尔会出现无法使用 USB 摄像头的情况,自带的摄像头操作命令 raspistill、raspivid 也无法使用。
而 fswebcam 这是一款小型摄像头程序(官网),则可以很好地支持 USB 摄像头。使用方法也很简便。

安装 fswebcam

安装 fswebcam,用于访问摄像头、进行拍照。

sudo apt-get install fswebcam

fswebcam 的用法

fswebcam --help
Usage: fswebcam [<options>] <filename> [[<options>] <filename> ... ]
 Options:
 -?, --help                   Display this help page and exit.
 -c, --config <filename>      Load configuration from file.
 -q, --quiet                  Hides all messages except for errors.
 -v, --verbose                Displays extra messages while capturing
     --version                Displays the version and exits.
 -l, --loop <seconds>         Run in loop mode.
 -b, --background             Run in the background.
 -o, --output <filename>      Output the log to a file.
 -d, --device <name>          Sets the source to use.
 -i, --input <number/name>    Selects the input to use.
 -t, --tuner <number>         Selects the tuner to use.
 -f, --frequency <number>     Selects the frequency use.
 -p, --palette <name>         Selects the palette format to use.
 -D, --delay <number>         Sets the pre-capture delay time. (seconds)
 -r, --resolution <size>      Sets the capture resolution.
     --fps <framerate>        Sets the capture frame rate.
 -F, --frames <number>        Sets the number of frames to capture.
 -S, --skip <number>          Sets the number of frames to skip.
     --dumpframe <filename>   Dump a raw frame to file.
 -s, --set <name>=<value>     Sets a control value.
     --revert                 Restores original captured image.
     --flip <direction>       Flips the image. (h, v)
     --crop <size>[,<offset>] Crop a part of the image.
     --scale <size>           Scales the image.
     --rotate <angle>         Rotates the image in right angles.
     --deinterlace            Reduces interlace artifacts.
     --invert                 Inverts the images colours.
     --greyscale              Removes colour from the image.
     --swapchannels <c1c2>    Swap channels c1 and c2.
     --no-banner              Hides the banner.
     --top-banner             Puts the banner at the top.
     --bottom-banner          Puts the banner at the bottom. (Default)
     --banner-colour <colour> Sets the banner colour. (#AARRGGBB)
     --line-colour <colour>   Sets the banner line colour.
     --text-colour <colour>   Sets the text colour.
     --font <[name][:size]>   Sets the font and/or size.
     --no-shadow              Disables the text shadow.
     --shadow                 Enables the text shadow.
     --title <text>           Sets the main title. (top left)
     --no-title               Clears the main title.
     --subtitle <text>        Sets the sub-title. (bottom left)
     --no-subtitle            Clears the sub-title.
     --timestamp <format>     Sets the timestamp format. (top right)
     --no-timestamp           Clears the timestamp.
     --gmt                    Use GMT instead of local timezone.
     --info <text>            Sets the info text. (bottom right)
     --no-info                Clears the info text.
     --underlay <PNG image>   Sets the underlay image.
     --no-underlay            Clears the underlay.
     --overlay <PNG image>    Sets the overlay image.
     --no-overlay             Clears the overlay.
     --jpeg <factor>          Outputs a JPEG image. (-1, 0 - 95)
     --png <factor>           Outputs a PNG image. (-1, 0 - 10)
     --save <filename>        Save image to file.
     --exec <command>         Execute a command and wait for it to complete.

使用 fswebcam

命令行下查看 /dev/下有video0 的设备。
运行 lsusb 命令,有相关摄像头的信息。
在终端中运行下面的命令来抓去一张来自摄像头的照片。

fswebcam --no-banner -r 640x480 image.jpg

或者你可以直接用:

fswebcam image.jpg

可以直接拍照,-d 用于指定使用哪个摄像头设备。-r 指定图片的分辨率,最后的是照片保存的路径。

如果拍摄出来的照片是一片漆黑,可能和摄像头启动延迟有关,可以通过加 -S 参数来跳过前面几帧解决。例如使用命令:

fswebcam -S 10 image.jpg


go编译树莓派上运行的程序

go编译树莓派上运行的程序

选编译为:cross-arm6

1.png

命令行arm

set GOOS=linux

set GOARCH=arm

set GOARM=6


命令行Windows

set GOOS=windows

set GOARCH=amd64


命令行Mac

set GOOS=darwin

set GOARCH=amd64


GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)

GOARCH:目标平台的体系架构(386、amd64、arm)

交叉编译不支持 CGO 所以要禁用它

禁止用用:

SET CGO_ENABLED=0


树莓派上运行python

准备工作

首先,确保你的树莓派已经正确连接到电源并启动。你还需要连接一个显示器(如果需要),以便查看树莓派的输出。

安装Python

大多数树莓派操作系统都预装了Python解释器,但你可以通过以下命令来确保Python已经正确安装:


python3 --version

```

如果输出显示Python的版本信息,则说明Python已经安装。否则,你可以使用以下命令安装Python

sudo apt-get update

sudo apt-get install python3




Python创建ftp

安装所需库

在开始编写代码之前,我们需要安装一些Python库来帮助我们实现FTP服务器的功能,打开终端,输入以下命令来安装这些库:

pip install pyftpdlib

编写代码

1、导入库


我们需要导入所需的库:


from pyftpdlib.authorizers import DummyAuthorizer

from pyftpdlib.handlers import FTPHandler

from pyftpdlib.servers import FTPServer


2、设置FTP服务器


接下来,我们需要设置FTP服务器的一些参数,例如端口、用户名和密码等:


设置FTP服务器的端口

port = 2121

设置FTP服务器的用户名和密码

username = "admin"

password = "admin"

创建一个虚拟用户授权器

authorizer = DummyAuthorizer()

添加一个匿名用户,并设置其主目录和权限

authorizer.add_anonymous(maindir="/home/pi", perm="elradfmw")

添加一个具有读写权限的用户

authorizer.add_user(username, password, "/home/pi", perm="elradfmw")


3、启动FTP服务器

我们需要启动FTP服务器:


创建一个FTP处理器

handler = FTPHandler

handler.authorizer = authorizer

创建一个FTP服务器实例,并绑定到指定的端口

server = FTPServer(("0.0.0.0", port), handler)

启动FTP服务器

server.serve_forever()

运行代码

将以上代码保存为一个名为ftp_server.py的文件,然后在终端中运行以下命令来启动FTP服务器:


python ftp_server.py

















Top