标签: raspberry-pi3

使用脚本而不是麦克风向谷歌助手发送命令

我已经在 Raspberry Pi 3 中配置了 Google Assistant SDK,并且演示应用程序运行良好。有没有办法使用 Python 脚本将“OK Google,示例命令”发送到 Google Assistant SDK?或者它只会接受来自 Mic 的输入?

我打算编写一个微型移动应用程序,它将向我的 Raspberry Pi 谷歌助手应用程序发送命令。

google-assist-api raspberry-pi3 google-assistant-sdk

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

在 Raspberry PI 3 上使用 Android Things 关闭 HDMI 输出

我正在使用 Raspberry Pi 3 创建一个 Android Things 设备,它将连接到监视器。显示器应该一直开着,但我想要一种“关闭”设备的方法(关闭 HDMI 输出,以便显示器可以进入低功耗待机模式),以便我可以打开设备远程或使用计时器打开和关闭,而不必手动按下显示器的电源按钮。

有没有办法在 Android Things 项目中控制 Raspberry Pi 的 HDMI 输出(打开或关闭显示器)?

hdmi raspberry-pi3 android-things

5
推荐指数
0
解决办法
703
查看次数

无法在没有 X11 的 $DISPLAY 的情况下自动启动 dbus 守护程序。网豆。Pi作为远程主机

我正在尝试使用我的 NetBeans IDE 运行以下示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dbus/dbus.h>
 
int main() {
    DBusConnection *connection = NULL;
    DBusError error;
    char buffer[1024];
 
    dbus_error_init(&error);
    connection = dbus_bus_get(DBUS_BUS_SESSION, &error);
    if (dbus_error_is_set(&error)) {
        fprintf(stderr, "%s", error.message);
        abort();
    }
 
    puts("This is my unique name");
    puts(dbus_bus_get_unique_name(connection));
    fgets(buffer, sizeof(buffer), stdin);
     
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

来自一个优秀的教程: DBUS TUTORIAL USING THE LOW-LEVEL API

我为 SSH 设置了无头 Pi,并安装了 dbus 开发所需的所有库。

但是,在 Netbeans 中运行程序时,我收到以下错误

无法在没有 X11 的 $DISPLAY 的情况下自动启动 dbus 守护程序

/usr/bin/dbus-launch 异常终止并出现以下错误:自动启动错误:X11 初始化失败。

请注意,我在 Netbeans 上的远程主机属性中启用了 X11 转发

我可以看到,如果我自己通过 …

c dbus raspbian netbeans-8 raspberry-pi3

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

如何使用 QEMU 为 Raspberry Pi 3 模拟 Ubuntu Core?

我正在尝试使用 QEMU为 Raspberry Pi 3模拟Ubuntu Core,但它不起作用。

我找到了有关使用 QEMU 模拟 Raspbian 的教程,并尝试将它们应用到 Ubuntu Core:

我找不到合适的内核,所以我使用了Raspbian Kernel。这没用。然后我安装了 Ubuntu Core Image 并提取了 kernel.img 它也没有工作。

我用这个命令启动 qemu

qemu-system-arm -kernel ./kernel.img \
-cpu arm1176 \
-m 256 \
-M versatilepb \
-no-reboot \
-serial stdio \
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" \
-drive "file=pi3.img,index=0,media=disk,format=raw" \
-redir tcp:2222::22 
Run Code Online (Sandbox Code Playgroud)

QEMU 启动但不加载 Ubuntu Core。

有人用 QEMU 模拟 Ubuntu Core(用于 Raspberry Pi 3)吗?

virtualization qemu emulation raspberry-pi3

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

如何捕获 subprocess.call 的输出

我制作了一个脚本来告诉我 Raspberry Pi 3 的温度,但该脚本有问题。结果输出是机器人说“您的 RPI3 温度当前为 0”。我的代码有什么问题吗?

@bot.command(pass_context=True)
async def vcgencmdmeasure_temp(ctx):
    if ctx.message.author.id == "412372079242117123":
        await bot.say("OK....")
        return_code = subprocess.call("vcgencmd measure_temp", shell=True)
        await bot.say("KK done")
        await bot.say("Your RPI3 temp is currently: {}".format(return_code))
    else:
        await bot.say("Error user lacks perms(only bot owner can run this)")
Run Code Online (Sandbox Code Playgroud)

编辑:我知道想要运行任何命令。当前脚本

@bot.command(pass_context=True) 异步 def rpicmd(ctx, *args):

if ctx.message.author.id == "412372079242117123":
    mesg = ''.join(args)
    mesg = str(mesg)
    command_output = subprocess.check_output(mesg, shell=True, universal_newlines=True)
    await bot.say(command_output)
else:
    await bot.say("No noob")
Run Code Online (Sandbox Code Playgroud)

我收到错误:

raise CommandInvokeError(e) from e
discord.ext.commands.errors.CommandInvokeError: Command raised an …
Run Code Online (Sandbox Code Playgroud)

python bots python-3.x raspberry-pi3 discord.py

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

在树莓派上使用 Opencv 显示视频流时出错

我正在尝试从连接了 PiCam 的 Raspberry Pi 访问实时视频源。我在界面设置中启用了相机,甚至通过使用 PiCam 库拍摄一些图片和视频来测试它。但是,OpenCV 给我带来了麻烦。我按照本教程安装了 open CV (向 Adrian Rosenbrock 大喊大叫)。

查看下面的屏幕截图以获取代码和错误消息。我正在安装 OpenCV 的虚拟环境中运行所有内容,就像 Adrian 建议的那样。

代码和错误信息

视频错误:V4L:无法通过索引 0 打开相机

根据我从人们遇到的其他问题中读到的内容,有时可以通过使用索引值来解决此错误。如果我将索引值更改为 -1 或 1,就像大多数解决方案所建议的那样,我要么得到相同的东西,要么得到稍微不同的“无法访问相机”错误。

我对 OpenCV 和 RPi 比较陌生,所以我可能只是缺少一些简单的东西。任何建议都非常感谢,谢谢!

python opencv python-3.x raspberry-pi raspberry-pi3

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

gst-launch-1.0 和 GStreamer 版本不匹配

我正在使用此脚本在 Raspberry Pi 上安装 GStreamer 1.14 版。

https://gist.github.com/Swap-File/d8511128930c93281f36f18d634f6748

在运行脚本之前,我从 pi 中完全卸载了 GStreamer。

脚本克隆gstreamer和一堆其他相关的 repos ( gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-omx gst-python gst-rtsp-server) 签出分支 1.14 并安装它们。脚本完成没有问题。

脚本完成后,我检查安装的 GStreamer 版本

gst-launch-1.0 --version
Run Code Online (Sandbox Code Playgroud)

它给出了输出

gst-launch-1.0 version 1.14.2
GStreamer 1.10.4
Unknown package origin
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 为什么 gst-launch-1.0 和 GStreamer 版本不匹配?
  2. 如何将 gst-launch-1.0 升级到 1.14 版?

PS:本练习的目的是让 webrtcbin 插件在 Pi 上工作。

gstreamer raspberry-pi3

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

如何防止 WKWebView 对象崩溃?

设想

我正在用 Swift 构建一个 iOS 应用程序。一项功能是将实时视频源作为应用程序背景。视频源来自本地网络上的 Raspberry Pi,使用sudo motion. Motion 已成功在默认端口上托管提要8081

Swift 应用程序有一个WKWebView对象,其源指向我的 Raspberry Pi 的运动端口。

疑似问题

端口的网页8081不断刷新以从相机加载最新的帧。

问题

运行应用程序时,Feed 连接成功并加载第一帧,偶尔加载第二帧,但随后切断。

有几次我在终端中收到以下错误:[ProcessSuspension] 0x282022a80 - ProcessAssertion() Unable to acquire assertion for process with PID 0让我相信这是与网页不断刷新性质相关的内存管理问题。

当前配置

目前,我对 .load() 的WKWebView调用是在ViewController.swift> 中 override func viewDidLoad()

提议的决议

我是否需要构建某种形式的循环结构,在其中加载帧,暂停执行,然后在WKWebView几秒钟后调用重新加载新帧。

我对 Swift 非常陌生,因此非常感谢对我的问题格式的耐心。

ios swift wkwebview raspberry-pi3

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

OpenCV imshow 分段错误

我今天按照本指南在最新版本的 Raspbian 上安装了 OpenCV 4.0:https : //docs.opencv.org/4.0.0/d7/d9f/tutorial_linux_install.html

我准确地遵循了每个必需的步骤,跳过了所有可选的步骤,并且cmake不带参数地运行。我还安装了精简版,因为我在安装完整版时遇到了问题。

之后我跑去sudo apt-get install libopencv-dev解决一些链接器问题。

我现在正在尝试运行一个简单的程序来显示图像,但它在到达imshow.

全文如下:

#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    cout << "hello" << endl;

    Mat src = imread("test_img_1.jpg", IMREAD_COLOR);
    if (src.empty()) {
        cout << "read error" << endl;
    }

    namedWindow("Source", WINDOW_AUTOSIZE);
    imshow("Source", src);

    waitKey(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在编译 g++ -I/usr/local/include/opencv4 main.cpp `pkg-config --cflags --libs opencv`

使用gdb运行会给出以下输出:

Thread 1 "a.out" …
Run Code Online (Sandbox Code Playgroud)

c++ opencv raspbian raspberry-pi3

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

为什么我的长时间运行的 python 脚本在运行大约 3 天后会因“无效指针”而崩溃?

我写了一个 python 3 脚本来测试到 FPGA 的 SPI 链接。它在 Raspberry Pi 3 上运行。测试的工作方式如下:将 FPGA 置于测试模式(一个按钮开关)后,发送第一个字节,该字节可以是任何值。然后无限期发送更多字节。每一个都增加发送的第一个值,截断为 8 位。因此,如果第一个值为 37,则 FPGA 需要以下序列:

37, 74, 111, 148, 185, 222, 4, 41 ...

一些额外的 IO 引脚用于在设备之间发送信号 - RUN(RPi 输出)开始测试(这是必要的,因为如果 FPGA 需要一个字节,它会在大约 15ms 内超时)并且 ERR(FPGA 输出)发出错误信号。因此可以在两端计算错误。

此外,RPi 脚本会在每百万字节中写入一行发送的字节数和错误数的摘要。

所有这些都很好。但是运行大约3天后,我在RPi上收到以下错误:

free(): 无效指针: 0x00405340

我在两个相同的测试设置上得到完全相同的错误,即使是相同的内存地址。最后一个报告说“发送了 4294M 字节,0 个错误”

我似乎已经证明了 SPI 链接,但我担心这个长时间运行的程序会无缘无故地崩溃。

这是我的测试代码的重要部分:

def _report(self, msg):
        now = datetime.datetime.now()
        os.system("echo \"{} : {}\" > spitest_last.log".format(now, msg))

    def spi_test(self):
        global end_loop
        input("Put the FPGA board into SPI test mode (SW1) …
Run Code Online (Sandbox Code Playgroud)

python python-3.x raspberry-pi raspberry-pi3

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