ESP32 で WebRadio

手元にあった ESP-WROOM-32 マイコンは mp3 を再生するパワーがあることがわかったので、手っ取り早く確認したかったので、WebRadio を再生するプログラムを動作させてみることにしました。

使用した開発ボードは、 ESP32-DevKitC というものですが、他のボードでも同様に動くと思います。スイッチサイエンスの ESPr Developer 32 も定番の開発ボードです。ESP32 マイコンがどのようなものかは、各所で説明されているのでここでは説明しません。

続きを読む


HiLetGo の OLED の動作確認 (続)

先日の HiLetGo の OLED パネルについて、少し間違った情報を書いてしまったようです。 u8glib 側のコードを編集する必要はありませんでした。

採用されているチップが実は SH1106 で SSD1306 ではなかった模様です。

接続

配線を次のようにします。

Adruinoピン OLEDピン
13 CLK
11 MOSI
10 CS
9 DC

OLED の RESET ピンは Vcc と接続しておきます。

GraphicsTest編集

有効にするのは、次の行でした。
(見ての通りリセットピンに対して制御がないので、前節の配線変更が必要になった感じです)。

参考

同じように OLED パネルを使っている事例を見つけたので、上記のような結論へたどり着くことが出来ました。こちらの方は 0.96 inch から 1.3 inch へ使用するパネルを変えた際にこの問題に遭遇したみたいです。


HiLetGo の OLED の動作確認

Amazon で HiLetGo の有機 EL パネルを買ってみました。割と情報が多く見つかるのが 0.96 インチのものですが、買ったのは 1.3 インチのものです。また接続形式は I2C ではなく、 SPI でした。
動作を Arduino UNO を用いて確認したのですが、ちょっとポイントがあったので備忘録と、誰かの役に立つかもと思って、記録&公開しておきます。

接続について

Arduino と OLED との接続は以下のようになります(電源接続を除く)。
Fritzing で配線図を書こうと思ったのですが、 HiLetGo OLED と合う物が見つからず…

Adruinoピン OLEDピン
13 CLK
11 MOSI
10 CS
9 DC
8 RES

続きを読む


技術書典5分入庫完了

この間の技術書典5の冊子が、ようやく BOOTH の倉庫のほうに入庫完了状態となったようです。
これまでに注文してくれた方々、本当にありがとうございました。これからはお待たせせずに発送が出来るようになったと思います。

購入方法

Booth の以下のページにて購入できます。


(BOOTHへの商品リンク)

(BOOTHへの商品リンク)
DirectX9.0 EX 本。
単なる9.0ではなく ”Ex” 対応です。
C++14/17でラムダありです
自分のフレームワーク作りのお供に。
目次&サンプル 目次&サンプル

実物の見本誌を確認したい場合には、今だと Comic ZIN のほうで特集コーナーが設置されているようなのでそちらが利用可能です。

その他


技術書典5の感想など

今回初めて技術書典で本を出す側で参加出来たので、その感想などを残しておこうと思います。
終わった直後に書いておくのがよいのですが、慣れないこともあってか色々と疲れましたし&開放感を満喫していたのでここまで延びました・・・。

続きを読む


VisualStudio の HLSL テンプレートがおかしい

15.8.x のどこかのバージョンから、以下のようにシェーダーの作成の項目が減ってしまいました。
(自分の記憶では、15.8.1 の時点では大丈夫でした)。 この画面は 15.8.5 のものです。
本来ならば、ここに頂点シェーダーやピクセルシェーダー、ハルシェーダーといった項目も出現していなければなりません。

この問題を解決する方法がわかったので、これについて説明します。
なお、Professional 版、 Community 版ともに同じ問題を抱えているようです。

続きを読む


GitLab CI Runner の構築

GitLab を更新したこともあって、ようやくまともに GitLab CI Runner を使うことが出来るようになりました。
基本的に設定で迷うようなところはないのですが、 GitLab が外向きと内向きで使用すべきアドレスが違うといった状況では、 CI Runner をうまく動作させるのに一手間があったので記録として残しておきます。
同じように詰まっている人の助けになれば幸いです。

GitLab CI Runner の準備

とりあえず別の環境で CentOS をインストールして、 GitLab CI Runner の準備を行いました。各ビルドごとに環境を汚さないようにするため、 Docker コンテナで各タスクをこなすような Runner の構築としました。

インストールが完了したら Docker を起動しておきます。

以下のコマンドで、Runner の初期設定を行います。実行すると対話形式で各設定を入力します。

配置しているGitLab のアドレスや、そこに対するアクセストークンが必要になります。executor の設定では、 docker を指定し、 Docker image としては ubuntu:latest を設定しました。

続きを読む


GitLab on Docker を構築する

運用している GitLab が古いこともあって、 CentOS 7 (1803) の上で再構築することにしました。
GitLab 本体のバージョンを更新しやすく&サーバー移動するかも、という2点から、 Docker の上に GitLab を動かすことを考えてみました。

CentOS の準備

使用した CentOS は 7 (1804) 64bit です。これは RHEL 7.5 ベースのものとなります。
最新パッケージにすることや、必要最小限に留めたい理由より、 Minimum の構成でインストールしました。
以降の説明は selinux の無効化や、ネットワーク接続は出来ている前提で話を進めます。

まずは以下のコマンドでパッケージを更新しておきます。

Docker 関連の準備

以下のコマンドで Docker をインストールします。インストール後、バージョンを確認したところ 1.13.1 がインストールされたようです。

続いて Docker-Compose をインストールします。
Docker-Compose のページから最新版をインストールしました。
このページにインストール方法も書いてありますが、以下のようなコマンドを実行しました。

ここで Docker を起動しておきます。

GitLabのインストール

こちら(https://gitlab.com/gitlab-org/omnibus-gitlab/)で公開されている docker-compose.yml を使用します。
適当な場所に docker-compose.yml ファイルをダウンロードしておきます。

docker-compose.yml に構築のパラメータが詰まっているので、先に編集します。

サブディレクトリで GitLab を運用したいので、 external_url を編集します。
ポート番号を指定する場合にはここで必要となります。

以下のコマンドで、コンテナを起動させます。初回には、 公式のリポジトリからイメージを取得するため、時間がかかるものと思われます。
この記事を書いているときには、11.2.3 の GitLab のイメージが取得されました。

この docker-compose.yml により、 gitlab のコンテナが動き出します。自分の環境では実行開始してからアクセスが出来るようになるまではしばらく時間がかかりました。
進行状況などのログを見るには以下のコマンドを実行します。

定常状態になったことを確認できたら、ブラウザでアクセスして期待通りの表示が出るかを確認します。
GitLab のログイン画面が表示されるようであれば成功です。

細かな設定など

細かな設定などは docker-compose.yml ファイルを編集することで出来ると思いますが、
自分は /srv/gitlab/config にある gitlab.rb ファイルを編集することにしました。

編集した後は次のコマンドで設定を反映させます。

まとめ

最近 Docker で環境作りばかりやっている気がします。
しかし、かつてはソースやrpmパッケージを入れてサービスを構築していましたが、それが docker-compose で入るようになってきて導入が色々と楽になってきたように思います。環境が閉じているので、いざというときには稼働インスタンスも変更させやすいですし、いい時代になりました。


Asciidoctor の環境を Docker on WSL にて作る

以前に構築した Docker on WSL の環境に、 Asciidoctor の環境を構築してみたいと思います。
Asciidoctor は AsciiDoc の後継のソフトウェアで、 Markdown よりは表現力が高いドキュメントを作成することが出来るものとなっています。

インストール・セットアップ

スタートメニューから Ubuntu 16.04 を起動して、 WSL の環境で以下のコマンドを実行します。

実行

以下のコマンドを実行して、コンテナの中の bash にて作業を行います。
ここでは、 C ドライブの mydoc フォルダがあると想定して、ここをコンテナの中にマウントさせています。

基本となるドキュメントを sample.adoc のようなファイル名で作成して、 Asciidoctor に処理させるには以下のようにします。

この結果、 html ファイルが生成されます。
adoc の書き方は各所で紹介されているので、そちらを参照してください。

Asciidoctor は PDF を出力することも対応しています。コマンド asciidoctor-pdf を使用すれば、 PDF が生成されます。

数式の対応など

Asciidoctor の拡張として、数式に対応したものがあるので、以下のようにしてインストールします。
Docker コンテナの中で作業する必要があります。

このようにインストールした上で、以下のようなマークアップと Latex 数式の文法によって、見栄えのよい数式を使うことができます。


拡張を有効化して使うには以下のようにオプションを指定して、実行する必要があります。

不満点など

Asciidoctor で、 book タイプで作成したときに、章のナンバリングに不満があります。
PDF 変換の場合では、”:chapter-label:” 変数で、 “Chapter” の代わりの文字を指定出来るのですが、これだと “第 1” のようにしかできませんでした。
“Chapter. 1” ではなく、 “第1章” のように作りたかったので残念でした。

他の見栄えが良さそうなだけに、この点だけが課題だったので asciidoctor-pdf のソースコードを書き換えて対応することにしました。 Asciidoctor のエクステンションとして作成できるようだったら本家にプルリクエストを発行しようと思っていますが、まずは自分一人で使って、問題が出ないかを確認してみようと思っています。