PIC AVR 工作室->TopPage->執筆した本

執筆した本

私が執筆した本や、関わった本についてご紹介します。

基礎からのOpenSCAD

公式サポートページ

https://www.kohgakusha.co.jp/books/detail/978-4-7775-1961-3

概要

OpenSCADの使い方、言語仕様、各種ライブラリ、および3Dプリンタ関係などの周辺情報を解説した本です。

OpenSCADは、PovRayのように、プログラムを記述することで、立体の造形を行うCADソフトです。

文法自体は、C言語にそっくりなので、C言語系のプログラムをいじったことのある人なら、すぐになじむと思います。 ポインタもオブジェクト指向も出てこないので、RubyやPHP、JavaScriptなんかの経験があれば、障壁はほとんどないとおもいます。

操作系が、一見GUI操作のCADのように見えつつ、移動も回転も変形も、すべてプログラミングによって操作するので、 その点だけ最初は戸惑うと思います。なので、付録のムービーで、その辺の操作系についての導入を解説しています。

立方体/直方体や、球、円柱のような簡単な立体(プリミティブ)を元にしてくみ上げることもできます。 また、2D図形を元に「押し出し」や「回転」といった操作で立体を作ることもできます。 この辺は、普通の3D-CADと変わりません。

でも、なんと言っても違うのは、世界中で作られているたくさんの「ライブラリ」でしょう。 「ライブラリ」を使うことで、インボリュート歯車のような複雑な立体がさくっと作れるんですが、 そのライブラリ自体も、普通のプログラムの文法で書かれているので、普通の3D-CADに比べて、拡張が容易なのがOpenSCADです。

ポリへドロンや、ミンコフスキー和のような、ちょっと複雑な機能については、pdfのダウンロード付録で解説しています。 また、関連ファイルの特徴や、3Dプリンタ/CNCフライス関係の情報なども、123D Design本のように一通り触れています。

123D Designは、かゆいところに手が届かない部分がありますが、OpenSCADなら、そういうところにも手が届きます。

そうそう。2D図形(SVGやDXFファイル)を作るときにも使えます。レーザーカッターで、板や紙などをカットするためのSVGやDXFを作るときに、 inkskapeとかだとちょっと融通が利かないよな…なんて思うことあると思います。 そんなときに、ちょこっとスクリプト書いて、自由度高い図形描画ができます。

Edison&ArduinoではじめるIoT開発

公式サポートページ

http://www.kohgakusha.co.jp/support/edison_arduino/index.html

概要

Intel Edisonで、「Arduino環境」や「node.js/MRAA」を使って、電子機器やネット接続を行う方法について触れた本です。

Arduino言語自体は、オリジナルのArduinoとほとんど変わりませんが、Arduino互換基板の電源電圧設定とか、 PWM Swizzlerの設定・使い方、電源配線などでオリジナルと異なる部分なども触れています。

node.js/MRAAは、node.jsやJavaScriptを使った事がない人でも大丈夫なように解説しています。 node.js、MRAA、JavaScript、jQueryを連動して、Edisonに接続したセンサやモータなどを、 ネット越しにブラウザ画面から操作することができます。

また、WICED Senseを題材に、BLE(Bluetooth Low Energy)との接続も行います。

ダウンロードのpdfデータで、OSが起動できなくなった場合のリカバリ方法、Linuxコマンド、ファイルシステム経由のGPIO制御、 などなどについて説明しています。

Ajax、jQueryなどを使うと、こんな感じで、web画面からスライダでサーボを操作したり、 ADCからセンサーの値を読み取ったりする事ができます。(ダウンロードのpdfにプログラムなどを掲載)

Yocto Linux、MRAAライブラリ、Arduino環境…、出版した当初時点では、頻繁にバージョンアップが行われていて、 バグなども逐次修正が行われてきています。が、小さなバグなどもまだ多少残っているようで、 色々実験を通しながら、それらを回避する方法なども探してきました(紙面やpdfで触れています)。

はじめてEdisonに触ってみるという方などが、環境面でハマったりするのを避けられるかと思います。

Edisonを使ってみた個人的な感想としては、Galileoなどのノウハウを元にしてIntelが本気で作ったマシンといった感じ。 本当にLinuxが動くマシンなの?と思うほどの省電力と、作りこまれたArduino環境(ソフト、ハード)を使った、扱いやすいお試し環境、 Yocto Linuxなどを通してネットと電子デバイスを簡単に接続できるIoTのプラットホームとして、程よいパッケージといった印象。 Raspberry Piが練習や教育用に向いているとしたら、やはりEdisonは実用向けといった感じです。

はじめての123D Design

公式サポートページ

http://www.kohgakusha.co.jp/support/123d/index.html

概要

123D Designの使い方の解説本です。一通りの機能を、紙面上と、ムービー(サポートページからダウンロード)でゼロから解説します。

「3D-CAD系」のソフトは、文字や図だけだと、なんとなく理解しにくいところがあるので、解説ムービーも使って、 各機能をできるだけ容易に使いこなせるように、 と考えたコンテンツになっています。(解説ムービー:1280×784ドットの大画面 × 38本)

メーカーの公式ページや、youtubeの公式ムービーの機能解説も、各機能の詳細までは解説していないので、 諸々の機能を使いこなすには足りないかんじです。この本では、各機能について、一つ一つ詳細に紐解きました。

特に、スケッチ関係の使い方(スケッチの加工や再編集)は、2D系CADソフトとはまた少し違う概念でもあり、 複雑な立体を正確な寸法で造形する上で大事な部分なんですが、公式サイトを含め、纏まった情報はあまり情報が見当たりません。 その辺りの使い方、考え方も掲載しています。

また、3DプリンタやCNCフライスとの連係についてや、扱えるファイルの種類(入出力の可否など)など、周辺事情についても纏めてあります。

補足

こんなのとか、

こんなを作るための、操作方法が解ります。

「3D系のソフト」というと、私はWindows95の時代から、マイクロネット「3Dアトリエ」シリーズから始まり色々なソフトを使ってきました。 が、「3D-CAD」は操作などが少し毛色が違う(2D-CADともずいぶん違う)ので、とっつきにくく、なんとなく避けてきました。

しかし、最近の3Dプリンタ普及の流れを受けて、個人的にも「使ってみたい、色々作ってみたい」、と思うように。 でもフィギュアみたいな有機的な造型物を作りたいわけじゃなく、寸法とかちゃんと指定して、「カチッとしたもの」を作りたいなと。

例えば、電子工作で作った作成物の箱とか、周辺部品とか、カメラ関係の撮影器材パーツとか。 そういった厳密に寸法を指定するようなものを…

「3D-CG系」ではなく、「3D-CAD系」のソフトを試してみることに。で、作りたいものがそれなりにちゃんと作れる機能があって、 使いやすくて、できれば安いソフト…ということで使ってみたのが123D Design。

当初は、無料ソフトだし、操作系が凄く簡略化されてるし、有料の「3D CAD」ソフトに比べると、機能を削りすぎてたりして、 もの足りないんじゃないの?と思ってました。でも、使い込んでみると、案外そうでもなく、作りたいものをちゃんと作れる機能を搭載しつつ、 解りやすい操作系でまとめられている、いい感じのソフトだなぁと。

では、使ってみたら、誰でもすぐにすべての機能を使いこなせるかというと…やっぱりその背景にある「3D-CAD」って何? みたいな、基本的な概念を押さえないと、搭載されている機能を使いこなせず、それなりに苦労する部分もあります。 特に、複雑な加工をしたり、作ったものを再編集したりするときには、モロモロの知識や概念の理解も必要に。

ゼロから使い始めることを前提に、それなりに自由自在に造型できるようになるために、どういうことを理解して、 どんな風に扱ったらいいかを、私なりに頭の中で整理してまとめてみました。

「3D-CADって使ったことないんだよな」、とか、「123D Designって、機能削りすぎてて使い物にならないんじゃないの?」 などと思っている方に、特に試してみていただきたいと思ってます。

Raspberry Piでつくる電子工作

公式サポートページ

http://www.kohgakusha.co.jp/support/raspberrypi/index.html

概要

Raspberry Piに電子回路を繋いで、ネット越しにアクセスしてみるところまでを、一つ一つ紐解いた内容の本です。

Raspberry Piは、Linux搭載機として一通りの機能を持ったコンピュータです。ただし、PC用Linuxと比べると、 CPUがARMコアで少し遅めだったり、BIOS(もしくはUEFI)に相当する機能がなかったりといった違いもあり、 インストールやブート時の動作などに差異があります。

その辺りの違いも踏まえて、導入(インストール)から、Linux OSのイロハ(基本的なコマンドや端末操作など)、 GUI環境の使い方など環境設定、Python言語での簡単なプログラムの知識といったことを一通り触れた上で、GPIO端子の使い方、 GPIO端子にLEDやモータの接続と制御、SPI通信デバイスやI2C通信デバイスをPythonで制御する方法、 CGIを使ってネット越しに制御する方法、WebIOPiでAjax通信を使った制御などを解説しています。

出版社のサポートページから、pdfテキストをダウンロードしていただくと、Wiring Piライブラリを使ったGPIO制御の方法や、 WebIOPiライブラリのAjax通信の詳細も解説してるので、そちらもご覧頂ければと思います。

補足

例によって、個人的に「最初にこういう本があったらよかったのにな」、という内容を盛り込んであります。

Raspberry Piは、サイズやCPU処理速度は小さいものの、ビデオ出力や音声出力、USB端子などを備えた、 一つの立派なLinux PCとしての機能を持っています。しかも、消費電力は、Windows機と比較にならないほど小さいので、 モバイルブースターなどでも長時間動かすことができます。

また、Linuxのディストリビューションに、Debian(のカスタマイズ品)を採用しているので、ApacheやMySQLなど、 メジャーなパッケージは一通り動かすことができます。

Linux周りなんかは、「Linuxの専門書を読んでください」で済ますことも出来るんですが、 たくさんの本を買ってようやくRaspberry Piを動かすことが出来る…では意味が無いし、 そもそもRaspberry Piを使ってWindows機の代わりにPCとしてバンバン使うとか、商用サイトの構築をしてみよう、という人は皆無でしょう。 「電子工作」という使用目的に照らして、必要な情報を1冊に纏めました。

Raspberry Piで「電子工作」という使用目的としては、「小型のマイコン基板」のように、GPIOを使って各種電子デバイスを制御しつつ、 Linux OSや各種高級言語を使い、ネットを介して制御する、といった使い方が主だったものでしょう。

RESTインターフェースやJSONなども使っていますが、面倒な部分はWebIOPiが覆い隠しているので、比較的簡単にその辺りを利用できます。

そうした用途を念頭に、必要となる技術情報を整理して纏めています。Linux OSもコマンドもPythonもhttpアクセスもcgiもAjaxもよく知らないし、 GPIOや電子部品のこともよく知らないんだよなぁ、という方でも、1冊で仕組みを理解しながら手を動かして、 さらに応用出来るようになっていると思います。

Arduinoではじめる電子工作

公式サポートページ

http://www.kohgakusha.co.jp/support/arduino/index.html

概要

Arduino IDE 1.0に対応した、Arduinoの解説書です。

Arduinoを使用する環境のインストール、どんなことが出来るか、Arduinoの開発用言語の解説、プログラム(スケッチ)の組み方、 電子部品の使い方と回路図、各種電子部品を繋いでプログラムから制御、開発の流れ、Arduinoの内部(AVRマイコン)、 ライブラリと使い方、といった内容を掲載しています。

LEDチカチカから始まり、モータを緩急つけて回してみたり(Hブリッジによる正転逆転)、キャラクターLCDに文字を表示したり、 音程をつけて音を出してみたり(音声用パワーアンプなど)、簡単なデバッグ方法などについて触れています。

使用する電子部品について、その働きと使い方などを説明しているので、基礎知識無しでもArduinoが使えるようになるかと思います。

補足

ネット上のArduino情報サイトや、各種書籍などを眺めていると、「こうすれば、こうなる」という「結果」については触れられているのですが、 なぜそれで良いのか、というところについては、あまり言及されていないものが多いと思います。

特に、デジタル入出力端子にLEDを繋いで光らせるだけでも、なぜそういう回路でいいのか、回路の定数をいじったらどうなるのか (動くのか動かないのかだけでなく、壊れてしまわないかなど)を考えるのに必要な情報、 例えば、デジタル端子の内部回路はどのような形になっているのか、壊さないためにはどんな計算をすればいいのか、といったことを整理しています。

また、複雑なものを作っていく場合に、どんな流れで進めて行けばいいのかといったことなども触れています。

「ロボット」がわかる本(共著)

公式サポートページ

http://www.kohgakusha.co.jp/books/detail/978-4-7775-1793-0

概要

様々なロボットや、それを支える技術、コンピュータについての本です。メカトロ関係のところなどをお手伝いしています。

補足

実例もまじえて、ロボットとそこに関わる技術などを平易に解りやすく解説されている本です。