硬件
- Arduino Uno
- 电位计
- 树莓派3
- 树莓派
- Hifibery DAC Pro2
设置
电位计在Arduino上运行,我通过USB串行端口将信号发送到树莓派。代码已经完成,正在Arduino上工作,我可以在Pi上使用python脚本获取信号并打印它。
我已经在Arduino一侧重新映射了0-100的信号范围,我希望使用这个值来控制我正在创建的音乐盒的树莓派的音量。
问题
我目前正在使用这里的答案作为指南。然而,当我运行python脚本时,我在终端中收到以下错误。
">amixer:找不到简单控件"Master",0">
但是,当我运行命令(amixer-scontrols)时,我会显示一个Master,列出了0。见下文
">pi@raspberrypi:~$amixer烤饼简单混音器控件"Master",0简单的混音器控制"捕获",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)
问题来自"sudo">
如果你在你的shell中尝试amixer sset Master 100%
,它会在中工作
但如果你尝试sudo amixer sset Master 100%
,你就会得到amixer: Unable to find simple control 'Master',0
我的建议:不要写sudo python volcon.py
,而是写python volcon.py
来执行你的代码
如果它不起作用,或者您确实需要sudo的权限,您可以使用其他命令。例如amixer cset numid=1 100%
PS:我唯一确定的是amixer sset Master 100%
用"sudo"有不同的响应,对于解决方案,你可以尝试我建议的,但我不确定的结果
编辑:
请尝试amixer scontrols
和sudo amixer scontrols
。如果结果不同,请从"sudo…"中选择一个在我的树莓上,我有
Simple mixer control 'Master',0
Simple mixer control 'Capture',0
对于第一个和
Simple mixer control 'Headphone',0
对于第二个