技術書典13 で面白かった本

多くの技術同人誌が発行されました。 そのうち、私が手にした数少ない書籍の中で、私にうけた本を紹介します。

最近の興味がハードウェア寄りになっているため、その本が多くなっています。 しかし、最初に紹介する本は、ソフトウェア寄りの方にもすごくおすすめです。

ハードウェア記述言語NSLで作るオレオレRISC-V CPU (こやまん)

techbookfest.org

タイトルの通りハードウェア記述言語で、RISC-V CPUまで作っちゃう本。

最初がハードウェア記述言語 NSL の解説になっていて、ふむふむと、こんな簡単なコードでハードウェアになるのかと、理解を深めれます。 ハードウェア記述言語といえば Verilog ですごく敷居の高いイメージがありましたが、これをみると、おっ、私にも扱えるんじゃないかと思わされます。

後半、NSL を使って自作CPUの開発に進んでいきます。 RISC-Vの簡単な命令を実装し、これは理解できます。 そこから、パイプライン、アウト・オブ・オーダー実行を実装に進みます。 コードを細かく理解できるまでに読み込めませんでしたが、ブロック図で図解しているため、なんとなくわかった気にさせてくれます。

最後に、RISC-Vのテストを通す、という構成になっています。

簡単なNSL文法からスタートして、実際にRISC-V のCPUの実装を追体験させてもらえることに高揚し、最後テストを通して締める。 それほど厚くない本ですが、60ページにそれが凝縮されており、非常に読み進めやすく、面白く読むことができました。

今回の技術書典13 で個人的に最も刺さった本になりました。

詳説カシオミニ(はどら秘密研究所)

techbookfest.org

生まれたときから電卓が100円で買えた世代なので、カシオミニがどのようにすごいのかわかりません。 しかしこの本を読むと、どのようにカシオミニが誕生し、発売当時どのようにうけ、市場に広まっていったのかを追体験できます。

さらに、安価な電卓とするためにどのような工夫がされているかという解説があります。 いくつものハードウェアの工夫が合って、自作キーボードでハードウェアを作っている自分にはすごく面白く読めました。

最後に、カシオミニの操作法の説明があります。 6桁しかないカシオミニでの、減算の仕方、除算の表示の仕方に、自分の知っている電卓と異なり、面白いと思いました。 表の形で入力順が書かれていて、工夫されていて、読みやすかったです。

これだけの内容が 25 ページと、簡潔にまとまっていて、飽きることなく読み終えることができました。

秋葉原で探すコネクタの選び方(Motomation)

techbookfest.org

紹介している数が41と多いのが、おかしかったです。 様々なコネクタが秋月でも売っていますが、初心者にとっては何を買えばよいのかわかりません。 多数紹介されていますが、これを使う良いという紹介がされていて、非常に助けになります。 では、それ以外のコネクタはどうなのか、それらについても、鉄板のコネクタと同じ分量と熱量で紹介されています。 この大電流をするならコネクタは使えるだろうというような、各コネクタの良いところが細かく書かれているのは、自分は使うことはないだろうけれど、面白く読めました。

あと、表紙の女子高生がコネクタ選びに悩んでいるイラストはウケました。

ハッキング・ラボで遊ぶために辞書ファイルを鍛える本(ミライ・ハッキング・ラボ)

techbookfest.org

自分がハッキングで使う辞書を作ることはないですが、それを作る時に使えるもの、考えること、やってみたことを追体験することができ、非常に面白く読めました。

SSDはHDDの夢を見るか?(犬小屋研究所)

techbookfest.org

SSDは、HDDより壊れにくいというイメージがありますが、それが本当なのかを検証しています。

検証の方法が、実際に著者が動かした結果ではなく、公開されているデータセットを分析して、結論を導き出しています。

そして得られた結論が、著者も書いていますが、思ったものとちがったところにゴールしていて、驚きともに面白かったです。

罪!?詰み?積みボード選手権 Vol.1(野良ハック)

techbookfest.org

IoTLT のパネルディスカッション的な講演を、テキストに描き下ろしたものになっています。

次々とセンサーや、パーツ、マイコンボードが登場し、どうしてそれに惹かれたのか、そして積んだのかを説明されていきます。 面白かったのが、そのパーツについて詳しくない方も参加されていて、その場で解説を読んだり、詳しい人から話を聞いたりして、理解を深めていくのが、一緒にパーツについて詳しくなる追体験ができて、面白く読めました。

すべて会話の描き下ろしのため、読みやすく、内容も浅すぎず、深く難しいところまで行かず、いろいろなものをつまみ食いするように面白く読めました。

私の新刊『土曜日のRaspberry Pi Pico』も

techbookfest.org

Raspberry Pi Picoの本といいつつ、表紙がすでに国内で買える Pico ではない本です。

WiFi対応 Pico W で、BQとAWS IoT につなぐ記事と、 Picoのマイコン RP2040 を使った自作ボードを作って苦しんだ記事です。

RP2040 を手はんだ実装で、自分のガジェットに組み込みたい方におすすめです。 そんな方いるのか?と思われますが、オフラインの時にそんな方2人にお会いすることができました。

物理書籍には、この開発ボードの基板がおまけで付きます!

ESP8266-DevKitS で ESP32-C3-WROOM-02 の書き込みをする

ESP8266 の後継のような、安価なWiFIBluetooth搭載マイコンモジュールESP32-C3 に、手はんだ実装ができる ESP32-C3-WROOM-02 が技適に申請されていいます。 ESP32-WROOM-32 よりも ESP32-C3-WROOM-02 モジュールは小型で安価なこともあり、これでガジェットづくりができるようになったら良いと思いました。 ESP32 を使って、電卓兼Bluetoothテンキーガジェットを作っていて、更に小型のを作りたいと考えています。

ESP32-WROOM32-32 でガジェットキットを販売する時には、以下の安価なライターを使って、イメージを書き込んだ上で販売していました。

ja.aliexpress.com

これと同じことができる ESP32-C3-WROOM-02 用のモジュールを探していました。 上記のリンクの ESP8266 用が使えるのではと期待していましたが、ESP32-C3-WROOM-02 には使えませんでした。

使えそうなモジュールとして、ESP-WROOM-02(ESP8266)用のモジュール、ESP8266-DevKitS を見つけました。こちらも、スプリングピンを採用して、モジュールの取り外しが可能です。

秋月電子通商 ESP8266開発ボード ESP8266-DevKitS

https://akizukidenshi.com/catalog/g/gM-17257/

ESP8266-DevKitS User Guide

https://www.espressif.com/sites/default/files/documentation/ESP8266-DevKitS_user_guide__EN.pdf

そのままでは使えませんでした。

ESP-WROOM-02(ESP8266) では、IO0 を 0(GND)にして Reset することで Download Mode になることができましたが、ESP32-C3-WROOM-02 では以下をする必要がありました。

ESP32-C3 のドキュメントにはさらに、IO2 を1にするように記述がありましたが、ESP8266-DevKitS ではそれを行わなくても書き込みをすることができました。

https://www.espressif.com/sites/default/files/documentation/esp32-c3-wroom-02_datasheet_en.pdf

書き込みしているところ

カインズ工房でレーザー加工機を使って自作キーボード用のプレートを作成した

f:id:j74th:20210627160811j:plain

遊舎工房さんなどの、レーザーカットサービスを使って、アクリルをカットして自作キーボードのプレートを作ることがよく行われます。 私自身もこれまでは遊舎工房さんのレーザーカットサービスを利用してきました。

カインズ工房では、30分2,500円で、レーザー加工機の時間利用ができるサービスがあります。 材料もカインズホームで購入する以外に持ち込むことができ、手軽に利用することができます。 このレーザーカッターの時間利用サービスを使って、試しに自作キーボードパーツを作ってみることにしました。

diy-style.cainz.com

データの準備

このサービスでは、データはIllustratorを使うこととなっています。 しかし、Inkscapeで作成したSVGファイルであってもIllustratorで開くことができたため、問題なく使うことができました。

この時注意していたのは、以下の点です。

  • カットする線のパスはつなげること
  • カットする線の色はRGB: #ff0000 にすること
  • カットする線の太さは0.003pxにすること
  • (2022/03/13追記)1レイヤーのみにし、かつグループ化も解除すること

使用したファイルは以下にアップロードしています。

drive.google.com

2回目の時に問題が発生

意気揚々と、2回目のレーザーカッターを利用した時に、カットとして認識がされない問題が発生しました。 カットではなく彫刻としては認識されているようでした。

Ctrl+A でオブジェクトの全選択をしてみると、「塗りつぶし」の所が「透過(斜線表示)」になっていませんでした。 「塗りつぶし」があるとカットラインとしては認識しないようです。 「塗りつぶし」を「透過」にすると認識するようになりました。

あとからInkscapeSVGファイルを開き直して、全選択をしてみると、確かに「フィル」が「x(なし)」になっていませんでした。

3回目の時に問題が発生

Illustrator で開くと一部の図形が表示されなませんでした。

表示されたものと差をみていくと、グループ化されていると表示されていないようだった。

グループ化を1つ1つ解除することで、カットラインとして使えるようになりました。

プリント設定の準備

基本的には操作マニュアルの手順通り進めれば、利用できるようになっています。

https://diy-style.cainz.com/pdf/lazerprocessing_manual.pdf

注意が必要だったのは以下の部分です。

  1. 「5:プリンターの設定をする」の部分にある印刷設定の、幅、高さが、持ち込んだ素材とは異なるサイズになっていて、変更する必要がありました。
  2. 印刷設定にある、「加工オプション」の「加工モード」が標準以外になっていました(前に使った方の設定)。標準に設定しました。
  3. Illustratorのプリント画面に、プレビューがあるのですが、ここで適用される方向が期待と異なる方向になっていました。用紙サイズ設定の「自動回転」オプションをオフにすると、正しくなりました。
  4. Illustratorのプリント画面のプレビューが、プリンターの設定の後も変更されませんでした。しかし、一度プリント画面を閉じて開くと正しく表示されました。
  5. 「7:材料セット・焦点合わせ・加工開始位置を設定する」にある焦点合わせの作業のやり方を店員から習いました。習わないとわからないです。
  6. 2回目で利用した時に誤って、焦点合わせのパーツを、機械の隙間に落としてしまいました(店員さんに中を開けてとってもらいました)。焦点合わせの時は、端を使わず、少し中央よりに動かしてから、焦点合わせをするようにしましょう。
  7. 「9:データ設定」において、余白付きでファイルを作成していましたが、ジョブをドラッグした時点で、余白が取り除かれてしまい、なかなかアクリルの端ぎりぎりで切断されていました。ここで余白が取り除かれるため、ジョブを配置する時点で、余白を考慮して配置する必要があります。
  8. 材料データベースというところで、ここで色ごとにレーザー加工機の設定ができます。ここにマニュアルの最後に挟み込まれている材料ごとの設定をみて行いました。
  9. (2022/03/13追記) 排気中に片づけのつもりでJobControlアプリを終了したところ排気が終わらなくなりました。排気終了までアプリで制御しているようで、アプリを立ち上げなおしたところ排気が終了しました。

今回、光のスミホリデーの2mmのアクリル可能に利用した設定は以下の通りです。

  • 赤、青両方とも
    • パワー: 100
    • スピード: 0.8
    • Hz: 1000

2回目で問題が

同じ設定にしても切断できませんでした。使用していた三菱ケミカルのアクリライトでした。

以下の設定で切断することができました。

  • パワー: 100
  • スピード: 0.55
  • Hz: 1000

スピード0.6では一部の箇所のみ切断できない(力を加えれば折れるので、使えなくはない)ところがあったので、最終的に0.55にしました。

カットにかかる時間

「9:データ設定」のところに、カットに要する時間が記載されます。私のデータの場合は4分40秒でした。

しかし、このカットを始める前に、「レーザーカットのデータの送信」、「アクリルの設置」、「焦点合わせ」を行う必要があり、データの送信は同一のものを出力する場合には省略できますが、「データの送信」に慣れても3分、「アクリルの設置」、「焦点合わせ」に1分程かかります。

さらに、レーザーカットの後には排気が行われ、材料が取り出せるまでに時間がかかります。さらに切断後の素材のため、いろいろカットした部分がポロポロ落ちるため、取り出して折り曲がらないところに挟み込むまでにも時間がかかります。慣れても1分ほどかかると思います。

よって、1枚あたりの作業は、カット約5分+前後2分で、7分ほどかかる計算になります。すると、30分でできる加工は4枚セット分程度だろうという試算になりました。

今回は初めてだったので、3セット分しか作成することはできませんでした。

次に加工するときに準備したいもの

次に加工する時に準備したいと思ったものは以下のとおりです。

  • 完成部品を入れておくケースを用意しておくこと。今回は厚紙を入れた封筒に入れていましたが、折れてしまわないか心配でした。
  • 端材を入れる袋を用意しておくこと(スイッチの穴があり、大量に小さな端材が出ます)。

レーザーカットサービスか、時間利用で自分で加工するか

このようにレーザー加工機でどのような生産ができるか見積もれるようになりました。

今ボトムプレート10セット分、トッププレート5セット分を作成したいのですが、そのコストは以下と試算できます。

  • レーザ加工機レンタル2時間(16セット分) 2,500円x4=10,000円
  • アクリル材料費 アクリルいた透明2mm 300x450mm(3セット作れるサイズ)x5枚(15セット分) = 2,673円+送料
  • +交通費

自分で加工する方が若干安くなる試算になりますが、若干に過ぎなく、手間がかなり必要です。 失敗したり、壊してしまうリスクもあります。 今後自分で加工するか、レーザーカットサービスを利用するかは決めきれていません。

今回で加工のためのコストと、失敗の可能性を下げるやり方を得ることができました。 やはりDIYするのは楽しいで、次また自分で加工にトライしてみたいと思います。