工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

ホームシアターの構築(13) --- センタースピーカーの製作(2) ---

概要

前回に引き続き、センタースピーカーの外観仕上げを行った。



背景と目的

前回、センタースピーカーの製作を行いエンクロージャーが完成した。今回は、外観の仕上げを行う。



詳細

1. カッティングシート選定

カッティングシートは、サラウンドスピーカーと共通

サンゲツ REATEC TC-5069 (明るめのウォールナット 柾目)

とする。

dekuo-03.hatenablog.jp


2. 貼り付け前の調整

前回組み立てが終わった時点で、少し段差のある部分があったため、貼り付け前にカンナ、サンドペーパーで均した。


3. 貼り付け

サラウンドスピーカーと同様の手順であるバッフルと丸めた端部でつながっている側面を一枚、斜めカットされている方の側面2つと裏面の合計4枚をそれぞれ貼る。

まずは、バッフルと側面。

天面も貼る。

スピーカーユニットを取り付け、バスレフ穴もあける。

裏側に、スピーカーターミナルを取り付けて完成。



まとめと今後の課題

センタースピーカーの製作を完了した。次回は、メインスピーカーの外観を仕上げる。


OpenSearchでREST APIを使ってCSVファイルのデータを書き込むまでのメモ

概要

ローカルPC上のOpenSearchREST APIでアクセスしてCSVファイルのデータを書き込んだ。



背景と目的

以前、ローカルPC上nにOpenSearchを立ち上げた。ちょっとした動作確認のため、使っていこうとしたがちょうどいいデータがないので、手元にあるCSVファイルのデータを挿入したくなった。そこで、REST APIを使って挿入する。



詳細

0. 実施環境


1. opensearch-pyをインストール

まず、以下に従い、

opensearch.org

opensearch-pyをインストールした。

pip install 


2. サンプルコードを探す

コードは、ドキュメントを参考にして自分で書いてもいいが、最近、Chat GPTがサンプルコード生成に使えると聞くので、試しにコードを教えてもらった。

質問文は、

opensearch-pyで、CSVファイルをOpenSearchに挿入するサンプルコード

生成されたコードは、以下。

from opensearchpy import OpenSearch, helpers
import csv

# OpenSearchクライアントを作成します
client = OpenSearch(
    hosts=["https://your-opensearch-endpoint.com"],
    http_auth=("user", "password")
)

# インデックスの定義を作成します
index_definition = {
    "mappings": {
        "properties": {
            "name": {"type": "text"},
            "age": {"type": "integer"},
            "gender": {"type": "text"}
        }
    }
}

# インデックスを作成します
client.indices.create(index="people", body=index_definition)

# CSVファイルからデータを読み込みます
with open('people.csv', 'r') as f:
    reader = csv.DictReader(f)
    # OpenSearchにデータを挿入するためのリストを作成します
    data = [
        {
            "_index": "people",
            "name": row['name'],
            "age": row['age'],
            "gender": row['gender']
        }
        for row in reader
    ]

# OpenSearchにデータをバルク挿入します
helpers.bulk(client, data)

3. root-ca.pemを手元にダウンロード

早速、上のコードを自分の環境に合わせて修正して実行したところ、動かず。どうやら、インデクス作成のところで接続できずという症状だったので、調べたところ、

opensearch.org

にあるように、認証周りの設定が不足しているようで、DockerでインストールしたOpenSearchのセキュリティ周りの設定は一切いじっていない状態からREST APIを使うには、

OpenSearchのノードのファイルシステムから、/usr/share/opensearch/configにあるroot-ca.pemを手元にダウンロード

して、APIを叩く際に指定する必要があるとわかった。具体的には、

client = OpenSearch(
    hosts=[{'host': "localhost", 'port': 9200}],
    http_auth=("user", "password"),
    use_ssl = True,
    verify_certs = True,
    ssl_assert_hostname = False,
    ssl_show_warn = False,
    ca_certs = "root-ca.pem"
)

という感じで、上記参考リンクの例(To connect to the default OpenSearch host, create a client object with SSL enabled if you are using the Security plugin. You can use the default credentials for testing purposes:)の通りである。


4. 動作確認

ダッシュボードで、インデクスが作成されたこと、データが挿入されたことが確認できた。成功。


5. 余談

というわけで、Chat GPTのサンプルコードそのままでは動かなかったわけではあるが、そこそこゴールに近いところまでは行けていた。本題からはズレる話だが、

Chat GPTはうまく使えばとても役に立ちそうだ

ということが、体感できたのはよかった。



まとめと今後の課題

OpenSearchREST APIを使ってCSVファイルのデータを書き込むことがChatGPTの助けを借りながらできた。


ホームシアターの構築(12) --- イネーブルドスピーカーの製作(2) ---

概要

ネーブルドスピーカーの外装仕上げを行った。



背景と目的

前回、サラウンドスピーカーの外装仕上げを行った。今回は、それに引き続きイネーブルドスピーカーについて外装仕上げを行う。



詳細

1. カッティングシート選定

カッティングシートは、サラウンドスピーカーと共通

サンゲツ REATEC TC-5069 (明るめのウォールナット 柾目)

とする。

dekuo-03.hatenablog.jp


2. 貼り付け前の調整

前回組み立てが終わった時点で、少し段差のある部分があったため、貼り付け前にカンナ、サンドペーパーで均した。


3. 貼り付け

サラウンドスピーカーと同様の手順であるバッフルと丸めた端部でつながっている側面を一枚、斜めカットされている方の側面2つと裏面の合計4枚をそれぞれ貼る。

  • トップフロント

  • トップリア


4. ユニット取付

ユニット取付穴のシートをカットし、ターミナル、内部配線、吸音材を入れて完成。密閉型ということもあり、サラウンドスピーカーに比べるとふんわり全体に入っているが、音を聞きながら調整した結果ぎっしりではないところに落ち着いた。

  • トップフロント

  • トップリア


まとめと今後の課題

ネーブルドスピーカーが完成した。次回は、いよいよフロントスピーカーの外装を行う。