问题标签 [raspberry-pi-zero]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
580 浏览

bash - 是否有 shell 命令可以更改树莓派零的 SPI 时钟?

我想用 SSD1306 驱动程序编写一个 bash 文件来点亮一个 OLED 屏幕,使用下面的代码我可以将 SPI 命令发送到屏幕,但似乎 CLK 速度非常快,所以 SSD1306 不起作用,有没有办法在外壳中更改 SPI 接口的 SCLK(如设置为 4Mhz)?我正在使用 Raspberry Pi 零 W。

0 投票
1 回答
91 浏览

c++ - Why does the raspberrypi not send the requested serial output?

I want to send some serial output through the pins of my raspberrypi for serial communication with a drone flight controller. The controller only operates at a strange 100000 baudrate.

  1. My code does not always set the baudrate correctly. Sometimes I have to reboot and restart the code 5 times to get the right baudrate.

  2. The code does not send the requested data. It sends much more. The serial output of the console is disabled (by raspi-config).

I tried writing it in python, but the code is running too slow (I need image processing with OpenCV too) so I switched to C++. The python code was working fine. I already tried the serial library by wjwood : http://wjwwood.github.com/serial/ but it is also not working correctly whit the strange baudrate. Setting the baudrate with the stty command failed too. I tried setting the baudrate with the setispeed functions and the old termios structure. This didn't work too.

This is my code:

Expected is a serial output like: 0x00 0x02 0x04 ... 0x30. But I get: 0x5E 0x4F 0x5E 0x40 ... 0x00 0x02 0x04 ... 0x30.

The more I send the more additional useless bytes are blocking the bus and confusing the flight controller.

0 投票
1 回答
1939 浏览

python - 将传感器数据从 Pi 保存到 csv 文件中

我正在设置一个树莓派零来感知空气质量、温度和湿度。我能够运行脚本以每 60 秒获取一次检测到的数据。如果我需要定期将数据保存在 csv 文件中该怎么办?

我希望程序将数据保存在带有日期、时间、温度、湿度等标题的 csv 文件中。

0 投票
0 回答
667 浏览

python - Pygame 在无头 Raspberry Pi Zero(Raspbian Buster Lite)上显示初始化

我有 Pi Zero 运行 Raspbian Buster Lite,没有连接显示器。它在启动时运行一个 python 程序(crontab @reboot 条目),如下所示:

@reboot sudo su username /home/username/launcher.sh >> /home/username/crontab.log 2>&1

我必须初始化 pygame 显示,因为我需要处理 Sound 对象结束事件。如果不初始化显示,则不会触发事件。

代码在这一行中断,出现错误“pygame.error:无法打开控制台终端”

我的代码曾经在以前的 Raspbian (Stretch) 版本中工作。我已经尝试过各种驱动程序,添加/删除pygame.display.set_mode((1, 1)),但没有运气。

我知道其他解决相同问题的帖子,但我已经用尽了所有这些方法 - 将驱动程序更改为 fbcon,跳过 set_mode 行等。唯一有效的是以 root 身份运行程序:

@reboot /home/username/launcher.sh >> /home/username/crontab.log 2>&1

但从安全的角度来看,这是一个坏主意。我宁愿以非特权用户身份运行它。

有没有一种新的破解方法可以让它过去display.init()

0 投票
1 回答
1260 浏览

python-3.x - 无法使用python发送电子邮件

我正在运行 Rasbian Buster 并使用 Msmtp 从命令行发送电子邮件,它工作得很好。

当我尝试使用 Python 发送电子邮件时,它惨遭失败,我尝试了来自网络的各种 python 示例,例如

...但不幸的是,我总是收到以下错误:

作为新手,任何提示将不胜感激。

谢谢!

0 投票
0 回答
136 浏览

python - 如何以尽可能少的开销测量多个 GPIO 端口之间的时间变化

我有几个 GPIO 端口都为低电平,并且想测量每个端口变为高电平所需的时间。我有一段工作代码可以提供可靠的读数,但只是看着它就让我觉得“必须有一种更有效的方法”。

代码在整个过程中应该保持不变,这样清除端口的数量就不会影响开销时间。(它应该尽可能恒定。)

这种排除使用以下方法的可能性,我都尝试过:

使用 GPIO.RISING 事件。使用线程处理端口更改。两者都会导致较差的结果,因为它涉及更多的代码和变量来处理状态更改时间,并将结果从事件处理程序/线程传递回主代码。

我意识到这本身并不是获得绝对准确测量的好方法,但结果已经足够好。(后台进程运行等影响 python 性能,举个例子。)我当然愿意接受更准确的解决方案,但是优化 python 代码将是一个很好的开始。

我希望在开销上浪费更少的时间,这样结果就会变得更准确一些。

0 投票
3 回答
13684 浏览

regex - 尝试使用 pihole 正则表达式 YouTube 广告

尝试正则表达式网址,例如:

我试过了:

但没有任何效果

我可能错误地使用了正则表达式,因为我没有太多经验,但是在网上看有些人说这可能是 Pihole 的问题。

0 投票
0 回答
206 浏览

java - 使用来自 Raspberry Pi Zero W 的自定义数据广播 BLE 广告,将其用作外围设备

好的,我知道我的问题太宽泛了,但我真的被卡住了。为了 POC,我试图通过蓝牙每秒从 Raspberry Pi Zero W 广播一些自定义消息,例如“HELLO BLE WRLD”。我失败得很惨。我不需要能够连接到 RPi,只需检测广告数据并阅读其中的消息即可。

有没有办法通过正在运行的 Java 应用程序实现这一点?

0 投票
1 回答
466 浏览

python - Raspberry Pi Zero W 上的 Python pySerial:检测断开的串行设备

在我的项目中,有一个 Raspberry Pi Zero W,通过串行 TX/RX 线(通过 5 - 3.3V 逻辑电平转换器)与 Arduino Pro Micro 链接。开机时,Arduino 开始通过串口发送“你在吗”命令,直到 Pi 完成启动并启动一个侦听串口的 python 程序,它回复“是”。然后 Arduino 继续发送带有传感器数据的定期更新。

出于某种尚未理解的原因,Arduino 可以断开连接并重新启动,而 Pi 仍在运行。connection.in_waiting并且,出于某种原因,Python 端的连接以一种在读取时不会引发异常的方式被切断。

我已经用这个简单的代码进行了测试,但是在我的测试中,如果我断开 Arduino 并将其重新连接,则ser.is_open永远不会False,并且旧连接也适用于重新连接的 Arduino。因此,不幸的是,当数据在断开连接后停止出现时,我无法完全复制连接丢失的情况。但是,为了进一步调查,我想添加一些监控代码,将串行断开事件记录在文件中。但是有办法吗?如果 connection.is_open 始终为真,即使没有连接 Arduino,那么如何检测是否没有连接?

0 投票
1 回答
464 浏览

python - Python在按钮释放而不是按钮按下时播放声音

当我按下 GPIO 27 上的按钮时,GPIO 17 上的 LED 亮起,但声音文件不播放。

当按钮被释放时它出于某种原因播放?

我试过 pygame.mixer.music.load 和 pygame.mixer.Sound

我需要它,所以按下按钮 LED 亮起并播放声音