【发布时间】:2022-03-07 23:30:21
【问题描述】:
硬件
- 阿杜诺乌诺
- 电位器
- 树莓派 3
- 树莓派操作系统
- Hifiberry DAC Pro2
设置
电位器在 Arduino 上运行,我通过 USB 串行端口将信号发送到 Raspberry Pi。代码已完成并在 Arduino 上运行,我能够获取信号并使用 Pi 上的 python 脚本打印它。
我在 Arduino 端重新映射了 0-100 的信号范围,我希望使用这个值来控制我正在创建的音乐盒的树莓派上的音量。
问题
我目前正在使用here 找到的这个答案作为指导。但是,当我运行 python 脚本时,我在终端中收到以下错误。
“amixer:找不到简单的控件'Master',0”
但是,当我运行命令(amixer scontrols)时,我会显示一个 Master,0 列出。见下文
"pi@raspberrypi:~ $ amixer scontrols 简单的混音器控制'Master',0 简单的混音器控制'Capture',0"
为什么脚本看不到硬件或我做错了什么?这是我当前形式的脚本。一旦我可以改变音量,我将努力制作循环,我是 python 的新手并试图学习一些东西,但我已经坚持了几个星期。非常感谢任何帮助。
#import serial adapter library and asla audio library
import subprocess
import serial
import alsaaudio
#Variables
ser = serial.Serial('/dev/ttyACM0', 9600)
ser.flush()
volume = ser
command = ["amixer", "sset", "Master", "{}%".format(volume)]
subprocess.Popen(command)
#Imports serial value and prints to monitor
while True:
read_serial=ser.readline()
print(read_serial)
【问题讨论】:
-
直接在 Pi 上运行命令有效吗?
-
是的,它确实可以正常工作。
-
为了更清楚地说明,键入“amixer sset Master 50%”将正确更改值。我正在运行我编写的脚本,当它抛出错误时,在终端中输入“sudo python volcon.py”。
-
发现一些不同的命令似乎可以工作。 os.system("amixer sset 'Master' volume%") 现在只是让它与变量一起工作。
标签: python raspberry-pi alsa