楼主: luna
|
[活动] pi-day知乎?提问树莓派大神级玩家,赢树莓派开发板! |
本帖最后由 pATAq 于 2019-3-3 23:27 编辑 王筱丰 发表于 2019-3-3 14:55 相关新闻感谢dbc0301提供的信息。放狗搜了一下,大概获取了以下信息(WoA = Windows on Arm):
安装方法建议参考WoA Project的工具,注意以下问题:
运行效果从目前的反馈来看,
|
pATAq 发表于 2019-3-3 23:23 https://www.windowscentral.com/h ... -iot-raspberry-pi-3 但是我觉得windows iot 并不是非常友好,还是建议用raspbian操作系统。 |
szjuliet 发表于 2019-3-3 03:17 树莓派做实时语音如果不借助外部设备是不太可能的。 RPi的板载芯片组有一些局限性。它只进行音频播放,因为它的设计不适合实时,低延迟的音频处理。它虽然具有MMAP支持,但是不要指望它在较低的延迟时间内工作的很好,模拟音频输出的其他缺点: 由于RPi的设计,它可以产生咔嗒声和砰砰声,而且板载音频仅为11位。。。因此,需要借助外部设备完成,你的想法挺好的,你有没有尝试过那种支持音频的sim900A或者800a, 通过串口就可以拨打电话,树莓派找到人以后可以通过AT指令开启sim900a的通话模式,然后你在sim900a上接上话筒和喇叭,就构成了一个类似电话的设备,电话信号走电话网更稳定一些。 |
szjuliet 发表于 2019-3-3 03:17 当然,你想到的也有人尝试过,但是5分钟内基本上就失败了。 gst-launch -v alsasrc device=hw:1 do-timestamp=true ! audioconvert ! queue ! audioresample ! queue ! alsasink device=hw:0 他尝试用的就是这条命令,利用gst-launch去传输低延迟的语音信号,5分钟就挂了。。。 |
question 发表于 2019-3-12 16:21 黄大神,你也来寒颤我了啊?你TM周末才跟我一起调试完香蕉派,就又要尝试树莓派了啊? 这么要么? 树莓派如果要使用串口,要先关闭蓝牙。 CPU内部有两个串口: 一个是硬件串口(官方称为PL011 UART) 一个是迷你串口(官方成为mini-uart) 在树莓派2B/B+这些老版本树莓派上,官方设计时都是将“硬件串口”直接分配给GPIO中的UART(GPIO14&GPIO15),因此可以独立调整串口的速率和模式。 而树莓派3B/3B+的设计上,官方在设计时将硬件串口分配给了新增的蓝牙模块上,而将一个没有时钟源,必须由内核提供时钟参考源的“迷你串口”分配给了GPIO的串口, 这样一来,由于内核的频率本身是变化的,就会导致“mini-Uart”的速率不稳定,这样就出现了无法正常使用的情况。 目前解决方法就是,关闭蓝牙对硬件串口的调用,将硬件串口重新恢复给GPIO的串口使用,也就意味着树莓派3的板载蓝牙和串口,只能二选一使用。 编辑一下/boot/config.txt sudo vim.tiny /boot/config.txt 然后添加:dtoverlay=pi3-miniuart-bt-overlay 接着,最后一行添加:enable_uart=1 保存重启,然后就可以通过GPIO使用串口了,如果不知道是哪个pin脚,就用gpio readall看一下。 获取数据就用python的pyserial模块,读取原始数据,然后根据手册对数据解析一下就好了。 |
yoyojacky 发表于 2019-3-12 16:47 pi@raspberrypi:~ $ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import serial >>> rd=serial.Serial('/dev/ttyAMA0',130400,timeout=0.1) >>> rd.write(b'a') 1 >>> rd.read() b'a' >>> rd.write(b'b') 1 >>> 好像可以用啦 但是激光雷达没反应 |
question 发表于 2019-3-12 16:49 你是说HC-SR04超声波模块么? 记得接个电阻,这样接一下。 然后代码你懂的。 [mw_shl_code=python,true]#!/usr/bin/python import RPi.GPIO as GPIO import time try: GPIO.setmode(GPIO.BOARD) PIN_TRIGGER = 7 PIN_ECHO = 11 GPIO.setup(PIN_TRIGGER, GPIO.OUT) GPIO.setup(PIN_ECHO, GPIO.IN) GPIO.output(PIN_TRIGGER, GPIO.LOW) print "Waiting for sensor to settle" time.sleep(2) print "Calculating distance" GPIO.output(PIN_TRIGGER, GPIO.HIGH) time.sleep(0.00001) GPIO.output(PIN_TRIGGER, GPIO.LOW) while GPIO.input(PIN_ECHO)==0: pulse_start_time = time.time() while GPIO.input(PIN_ECHO)==1: pulse_end_time = time.time() pulse_duration = pulse_end_time - pulse_start_time distance = round(pulse_duration * 17150, 2) print "Distance:",distance,"cm" finally: GPIO.cleanup()[/mw_shl_code] 就是利用trigger引脚发送数据开始计时,然后到echo接受到数据结束,通过声波在空气中传播速度为340米每秒来算出从trigger发出信号到echo接受到信号走过的路程,然后取一半,就算出了距离了。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed