スピーカーボックス?
ネットワークスピーカー用の安価なケースを探していたところ、100円ショップ Seria で良いものを発見!
この大きさならば、良い音を期待できる。ちょっと本気のスピーカー用。
スピーカー 8Ω8W: パーツ一般 秋月電子通商 電子部品 ネット通販
直径3cmのスピーカだとこの箱だと小さい感じがする。
もっとお手軽用にはもう少し小さいほうがよさそう。
ESP8266 と LPC1114 の UART 最大通信速度
通常は 115200 bps 以下で通信しているが、音声データや画像データ(!)を送信可能か検討するため、実現できる最大通信速度について調査する。
まずはググった。
ESP8266
ESP8266 は 20Mbps まで動くらしい。
ESP8266 max baud rate - Everything ESP8266
もちろん、基準となる動作クロックに依存するわけで、UARTのクロックが 80MHz の場合に I/Oピンの最大クロックが 20 Mbps らしい。
ESP8266 の SDK ドキュメントの uart init の章に書いてあるらしい。
あった。
2c-esp8266_non_os_sdk_api_reference_en.pdf
-----------------------------------------------------------------------------------------------------
8.2. UART Related APIs
By default, UART0 is a debug output interface. In the case of a dual UART, UART0 works as data receive and transmit interface, while UART1 acts as the debug output interface. Please make sure all hardware is correctly connected.
8.2.1. uart_init
Function:
Initialize baud rates of the two UARTs
Prototype: void uart_init(
UartBautRate uart0_br,
UartBautRate uart1_br )
Parameters:
UartBautRate uart0_br : uart0 baud rate UartBautRate uart1_br : uart1 baud rate
Baud Rates: typedef enum {
BIT_RATE_9600 = 9600, BIT_RATE_19200 = 19200, BIT_RATE_38400 = 38400, BIT_RATE_57600 = 57600, BIT_RATE_74880 = 74880, BIT_RATE_115200 = 115200, BIT_RATE_230400 = 230400, BIT_RATE_460800 = 460800, BIT_RATE_921600 = 921600
} UartBautRate;
Return: none
------------------------------------------------------------------------------------------------
用意されているライブラリのAPIでは 921600 が最高速度らしい。
ハードウェア的にはどうか?
テクニカルリファレンスにある。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
11.3.1. The Baud Rate
The serial of ESP8266 can support the baud rate range from 300 to 115200 * 40.
ハードウェアフロー制御
安定した通信を行うには、ハードウェアフロー制御をしたほうが有利なはず。
ESP8266 と LPC1114 はハードウェアフロー制御に対応しているか?
ESP8266 technical reference によると
---------------------------------------------------------------------------------------
11.1. Functional Overview
11. UART Introduction
Espressif
78/ 104 2016.08
There are two group ESP8266 UART interfaces, respectively:
-
UART0:
-
- U0TXD: pin26 (U0TXD)
-
- U0RXD: pin25 (U0RXD)
-
- U0CTS: pin12 (MTCK)
-
- U0RTS: pin13 (MTDO)
-
-
UART1:
- U1TXD: pin14 (GPIO2)
----------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
11.3.10.Flow Control
Espressif
Configuration process:
• Configure pin12, pin13 of UART0 pin as U0CTS and U0RTS functions.
#define FUNC_U0RTS 4
#define FUNC_U0CTS 4 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_U0RTS);
------------------------------------------------------------------------------------------
LPC1114
ハードウェアフロー制御
ユーザマニュアルにかいてあった。対応していた。
-----------------------------------------------------------------------------------------------------
UM10398
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
nucleo の電源
nucleo シリーズは外部電源として、3.3V, 5V, 7 - 12V に対応している。
外部電圧として、1.2V x 8 = 9.6V を与えるとき、どんな回路にすべきか?
単純に 7-12V の設定にした場合、電池が消耗して 7V 以下になった場合、CPUが動作不能になりそう。本来 3.3V あれば動くのに 7V で動かなくなるのは不本意。
自動的に電源を切り替えるような回路はあるのか?(ツェナーダイオードとか?)
思いつく方法としては、DCDCコンバータで 3.3V を生成する方法。
超高効率DC−DCコンバーター(3.3V0.5A) M78AR033−0.5: 電源一般 秋月電子通商 電子部品 ネット通販
これなら必ず動くはず。デメリットは余計な部品が必要になること。
このDCDCコンバータは外付けの部品は必要なのだろうか?3端子レギュレータならば、入力側/出力側に電解コンデンサが必要なはず。パッケージ内にコンデンサが入っているのか?
raspberry pi で bluetooth
手持ちの raspberry pi と bluetooth USBアダプタがあったので、使えるかどうか試してみた。
- raspberry Pi2
- OS : raspian jessie
- bluetooth USBアダプタ:Planet 社の BT-MicroEDR2X
jessie には最初から bluez が入っていたっぽい。raspberry 3B 対応済ということか。
無線スピーカの音量制御
通常は、オペアンプで増幅するので、可変抵抗でボリューム調整できる。
しかし、今回は無線で外部から音量調整したいはず。また、スピーカの手元でも音量調整したいかも。
リモート制御と手元のボリュームを矛盾なく制御するのは難しい。
ところが。ネット検索していて面白い例を見つけた。可変抵抗ではなくロータリーエンコーダを使う。何回転でもできる。ユーザの指示を受け取るデバイスとして使えそう。
あくまで相対的な音量の増減をするために使えそう。