标签: raspberry-pi

如何在 Python 中使用 cd 终端命令

如何使用cd和更改 raspberry pi 上的活动目录subprocess module

背景

因为我非常讨厌使用命令行,所以我正在尝试创建一个基本的 GUI 文本编辑器,它也可以编译我的程序。现在,我只是想将目录更改为Desktop. 为此,我正在使用该subprocess模块。这是我当前的代码:

from subprocess import *
call(["cd","Desktop"])
Run Code Online (Sandbox Code Playgroud)

在终端中,这一行 ( cd Desktop) 会将活动目录更改为Desktop. 奇怪的是,当我运行它subprocess时,出现以下错误:

OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

技术规格

树莓派 B 型

树莓派“Wheezy”操作系统

python linux subprocess cd raspberry-pi

1
推荐指数
1
解决办法
5550
查看次数

RuntimeError:您必须首先设置()GPIO通道

当我用sudo python3 program.py执行并按下de switch 1时抛出下一个异常:

Taking picture...
Picture takeng...
Traceback (most recent call last):
  File "main.py", line 21, in <module>
    if GPIO.input(switch1):
RuntimeError: You must setup() the GPIO channel first
Run Code Online (Sandbox Code Playgroud)

我为这个项目使用了覆盆子凸轮库和rpi.gpio库.任何人都知道我的代码中发生了什么?

import RPi.GPIO as GPIO
import time
import picamera

# initial config for gpio ports
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

# input switches
switch1 = 22
switch2 = 23
switch3 = 24

# setup
GPIO.setup(switch1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(switch2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(switch3, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# main loop
while True:
    if GPIO.input(switch1):
        print ("Taking picture...") …
Run Code Online (Sandbox Code Playgroud)

python camera gpio raspberry-pi

1
推荐指数
1
解决办法
9414
查看次数

维护硬件设备远程服务连接的最佳方法?

这是一个尴尬的问题,但这里有.

我正在尝试使用Raspberry Pi构建一个门解锁系统.我希望Pi保持与远程服务器的开放连接,这样我就可以测试存在(即Pi是否存活),并发送命令.我还希望减轻典型的家庭路由器NAT和动态IP问题.

我的问题是:什么协议最适合这个?

我在想的是使用类似网络套接字的东西,这样我就可以连接到像Pusher这样的服务或我自己的服务器.这个问题是我将从直接Python中完成它,因此中间没有Web浏览器.我不知道我有什么其他选择,如果有的话.

对这个问题的开放式性质表示道歉,但我不知道还能在哪里问.

websocket raspberry-pi

1
推荐指数
1
解决办法
417
查看次数

在RaspberryPi上添加wiringPi lib到cmake

对于我在c ++中的项目,我想创建一个cmake文件来编译并将所有内容链接在一起.
到目前为止这是我的目录结构:

"quadro/minimu9-ahrs" alias home
|-build
|-include
|-src
Run Code Online (Sandbox Code Playgroud)

在我的家里,我有这个'CMakeLists.txt'文件:

cmake_minimum_required (VERSION 2.6)
project(minimu)

set(HEADER_FILES $("include/*.h")
include_directories(include)
file(GLOB SOURCES "src/*.cpp")

add_executable(minimu ${SOURCES})
add_definitions(-std=c++0x -lwiringPi -lpthread)

#install(TARGETS minimu DESTINATION /usr/lib)
Run Code Online (Sandbox Code Playgroud)

在我的'src'目录中,我获得了所有.cpp文件,并且在'include'中包含了所有标题.当我正在编辑时,我进入我的构建目录,删除那里存在的所有内容(来自之前的版本)并输入

cmake ..
make
Run Code Online (Sandbox Code Playgroud)

我现在的问题是,src中的main.cpp使用'#include wiringPi.h',但是当我创建项目时,它给出了以下错误:

pi@raspberrypi ~/quadro/minimu9-ahrs/build $ make
Scanning dependencies of target minimu
[ 20%] Building CXX object CMakeFiles/minimu.dir/src/L3G.cpp.o
[ 40%] Building CXX object CMakeFiles/minimu.dir/src/LSM303.cpp.o
[ 60%] Building CXX object CMakeFiles/minimu.dir/src/main.cpp.o
[ 80%] Building CXX object CMakeFiles/minimu.dir/src/I2CBus.cpp.o
[100%] Building CXX object CMakeFiles/minimu.dir/src/MinIMU9.cpp.o
Linking CXX executable minimu
CMakeFiles/minimu.dir/src/main.cpp.o: In function …
Run Code Online (Sandbox Code Playgroud)

c++ cmake raspberry-pi

1
推荐指数
3
解决办法
6673
查看次数

获取 IOError: [Errno Invalid number of channels] -9998 在 Raspberry Pi 上使用带有 PyAudio 的麦克风时

坏消息,大家!

我尝试通过 PyAudio 在我的 Raspberry Pi 上使用麦克风,但没有成功。麦克风连接到 USB 声卡。

当我通过“arecord”时麦克风工作:

pi@raspberrypi ~ $ arecord -D plughw:0,0 -f cd test2.wav
Recording WAVE 'test2.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Run Code Online (Sandbox Code Playgroud)

但是,当我在 PyAudio 中执行 test record.py 时,出现错误。Python 中使用 PyAudio 的所有程序的错误都是相同的:

pi@raspberrypi /usr/src/pyaudio/test $ python record.py 
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown …
Run Code Online (Sandbox Code Playgroud)

python pyaudio raspberry-pi raspbian raspberry-pi2

1
推荐指数
1
解决办法
2万
查看次数

如何从Raspberry Pi上的Node.js应用程序执行shutdown命令

我有一个无头的Raspberry Pi运行一个简单的NodeJS应用程序.

我附加到Pi的唯一界面是一个按钮,用于启动和停止间隔拍摄视频录制.

我知道在没有正确关闭的情况下切断Pi的电源并不好,所以我想向Node添加一个shutdown命令.

使用ShellJS,我可以非常简单地做到这一点 - 如果用户按住按钮五秒钟,我可以打电话

shell.exec('sudo shutdown -h now');
Run Code Online (Sandbox Code Playgroud)

这将关闭Pi.当我通过ssh连接到Pi并且我自己调用node命令('node app.js')时,这可以正常工作.但我的目标是让我的Node应用程序在启动时自动运行.我是通过使用'/etc/rc.local'在启动时调用脚本来做到的:

su pi -c 'node /path/to/app.js'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,shutdown命令不起作用,我甚至不知道如何访问节点控制台以查看它抛出的错误类型.有人能指出我在正确的方向吗?

javascript linux node.js raspberry-pi

1
推荐指数
1
解决办法
3989
查看次数

TypeError:JSON对象必须是str,而不是Python 3.4的"Response"

我收到此错误,我无法弄清楚问题是什么:

Traceback (most recent call last):
  File "C:/Python34/Scripts/ddg.py", line 8, in <module>
    data = json.loads(r)
  File "C:\Python34\lib\json\__init__.py", line 312, in loads
    s.__class__.__name__))
TypeError: the JSON object must be str, not 'Response'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import requests, json

search_q = input('Enter query: ')

r = requests.get('https://api.duckduckgo.com/?q=%s&format=json&pretty=1' % search_q)

if r.status_code == requests.codes.ok:
    data = json.loads(r)
    node = data['RelatedTopics']['Result']
    print (str(node))
else:
    bad_r.raise_for_status()
Run Code Online (Sandbox Code Playgroud)

python json python-3.x raspberry-pi

1
推荐指数
1
解决办法
1万
查看次数

正在运行哪个 python 脚本

我有几个同时在 Raspi 上运行的 python 脚本。根据当前时间,每个可能开始运行或停止运行。如何找出正在使用 Python 运行的脚本?

python raspberry-pi

1
推荐指数
1
解决办法
1万
查看次数

启用Docker Remote API - raspberry pi/raspbian

我的出发点是:

所以我编辑/etc/init/docker.conf并更新了2次DOCKER_OPTS变量:

DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'

然后,列出泊坞窗图像的简单测试失败:

$ service docker restart
$ curl -X GET http://10.143.0.218:4243/images/json
curl: (7) Failed to connect to 10.143.0.218 port 4243: Connection refused
Run Code Online (Sandbox Code Playgroud)

Docker版本是:

$ sudo docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 19:06:36 2016
OS/Arch:      linux/arm

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 19:06:36 2016
 OS/Arch:      linux/arm
Run Code Online (Sandbox Code Playgroud)

remoteapi raspberry-pi docker

1
推荐指数
1
解决办法
1163
查看次数

Raspberry Pi 3B和RFID RC522-Python TypeError

我一直在弄乱Raspberry Pi和RFID,发现了本教程:

https://pimylifeup.com/raspberry-pi-rfid-rc522/

安装一切正常,但是当我运行脚本时出现错误。

这就是问题:

pi@raspberrypi:~/MFRC522-python $ sudo python Write.py
/home/pi/MFRC522-python/MFRC522.py:115: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(25, GPIO.OUT)
Traceback (most recent call last):
  File "Write.py", line 6, in <module>
    reader = SimpleMFRC522.SimpleMFRC522()
  File "/home/pi/MFRC522-python/SimpleMFRC522.py", line 14, in __init__
    self.READER = MFRC522.MFRC522()
  File "/home/pi/MFRC522-python/MFRC522.py", line 117, in __init__
    self.MFRC522_Init()
  File "/home/pi/MFRC522-python/MFRC522.py", line 390, in MFRC522_Init
    self.MFRC522_Reset();
  File "/home/pi/MFRC522-python/MFRC522.py", line 120, in MFRC522_Reset
    self.Write_MFRC522(self.CommandReg, self.PCD_RESETPHASE)
  File "/home/pi/MFRC522-python/MFRC522.py", line 123, in Write_MFRC522
    spi.transfer(((addr<<1)&0x7E,val))
TypeError: …
Run Code Online (Sandbox Code Playgroud)

python rfid typeerror python-2.7 raspberry-pi

1
推荐指数
1
解决办法
5006
查看次数