LoginSignup
4
3

マイコン開発での失敗談・成功談 過去、現在、未来&名古屋のIoTは名古屋のOSで

Last updated at Posted at 2018-07-15

マイコン開発での失敗談

を拝見し、過去、現在、未来に渡って記録する。

ここでは、マイコン開発とは、CPUを1つ以上含むシステムとする。
組み込みであるとか、パソコンであるとかは問わない。

電源(power supply)

対象システムの電源の仕様が、ハードウェアに明確に記載していない場合がある。
付属文書がある場合には、付属文書には必ず記載があるはずである。

付属文書がついていないシステムを入手した場合には、ハードウェア記載の製造企業、型番などからネットに文書がないか検索する。

箱に製造企業、型番がついていない場合は、箱を開け、基盤についている製造企業、型番から検索する。

失敗談1

電源の仕様を文書で明確に確認しないまま、合いそうなな電源を接続した。

結果、ボード状のICから炎が上がった。

すぐに、電源を切り離した。

もっとやばいのは、電源を入れたときに、測定するため、測定機器も繋いでいた。

すぐに電源を切り離したため、測定機器は壊れなかった。

界面(interface)

失敗談2

SCSIという刻印のある箱があった。
電源の仕様の記載もあった。

記載の電源を接続し、パソコンのSCSIIと接続した。

箱から煙が上がった。

SCSIという記載は、間違いで、SCSIIと同じ幅のパラレルIFを、出荷の際に、添付文書でその出荷分はパラレルIFのものもSCSII表示の箱で出荷したらしい。

幸い、パラレルIFケーブルを接続したら動作した。

箱の記載だけではなく、付属文書を確認しよう。
付属文書がない場合には、箱をバラして、回路を確認しよう。

IFに接続しているICの仕様を見れば、SCSIIかパラレルかは確認できるかもしれない。

失敗談3

ある電動機の制御をしようとした。
付属回路には、特定の製造会社のICがついていた。

製造会社に問い合わせをした。
特定の会社向けに出荷したものであるため、仕様は開示できないとのこと。
入手先を聞かれた。

当方は、問い合わせを受けて借り受けただけであるため、入手元は不明であると回答した。

結果として、仕様がわからなかった。類似の機器から推定できる制御プログラムを動作させてみた。必要十分な動作が得られなかった。

全体を問い合わせ先に返答した。

動作しなかったという意味での失敗。無茶なことをして炎は発生させていない。

停止機能(stopper)

失敗談4

電動機の制御プログラムを作成していた。
動作させたら、実験装置が壊れた。
実験装置が壊れないような停止機能(stopper)をつけていなかった。

実験装置の設計には、停止して欲しい範囲を物理的に決め、物理的に止める機能をつけることの重要性を知った。

電気回路、電子回路としても、制限を設け、止めるような機能の設計を検討した。

ソフトウェアでも、状態を監視し、止めるようなソフトウェア機能を検討した。

三段階の停止機能の設計により、装置を壊す動作はしなくなる。

電動機制御算譜(プログラム)設計における3つの罠6つの教訓(実機)
https://qiita.com/kaizen_nagoya/items/b39b6b7ba0d90dff471d

予備保存(back up)

失敗談5

アセンブラで電動機の制御プログラムを組んでいたときのこと。
装置はFD軌道のMS-DOS 2.11。マイクロソフトのMASMである。

アセンブルして、実行したところ、FDのフォーマットを始めた。
何か、アセンブラの記述を間違えて、フォーマットする命令を呼び出してしまったらしい。

教訓5

教訓5.1 予備の作成

 実行する前に、ソースコードは、実行する機材以外のところに予備を造る。
 GitHub, bitbucketなどのネットワーク上にソースコードを掲載してから、実機で動かせば、少なくとも実機だけにソースコードがあるという状態ではなくなる。

教訓5.2 実機での動作の前に模擬試験または試験

 実機で実行する前に、模擬試験環境で実行するか、
不正な実行をしないかどうか試験をすることが大事。

開発用OSの版

失敗談6

開発用OSの指定のある開発環境を、手元にある開発OSの異なる版に導入しようとして、丸1日費やして断念した。

コンパイルするたびに、不足するヘッダファイル、不足するライブラリが次々に出てきて、都合、30種類くらいのヘッダファイル、ライブラリを導入した。

もっと早めに見切りをつければよかったが、
経験のために、やってみた。

開発用クロスコンパイラのコンパイル

失敗談7

クロスコンパイラの導入の失敗は枚挙するときりがない。

主な原因だけ記載する。
1) 複数のコンパイラを導入していて、ヘッダファイル、ライブラリ、Path指定の順番が悪さをする
2) 複数のクロスコンパイラを導入していて、ヘッダファイル、ライブラリ、path指定の順番が悪さをする
3) 複数のOSを切り替えて使用するように導入した。他のOSのファイル、ヘッダーファイル、ライブラリ等が悪さをする。
4) 

初めての制御用IC

失敗談8

あるネットワーク制御用ICを搭載しているシステムで, Linuxを動作させようとした。

ネットで検索したらSUSI Linuxだけ、ドライバのα版を公開していた。

導入したがうまく動作しなかった。

真っさらな状態からの導入

成功談1 真っさらな状態からの導入(ハードウェア編)

ポルトガル語OS上で、動画配信システムの構築。

うまく導入できないという相談。

対応する仕様にあった機器のハードディスクをフォーマットして初期状態から導入。

手順通りに導入していったら、順調に動作。

うまく導入できなかったのは、目的以外のソフトウェアとの衝突の可能性がある。

教訓

何かうまく行かないことがあれば、ハードウェアを初期化してやり直す

成功談2

Macintosh で Scilabの導入に何度も失敗した。

そこで、ある企業のある技術者(複数)に、作業診断を依頼した。

依頼後、作業を記録しながら、途中で不必要な作業をせずに(作業記録以外の)導入したら、導入に成功した。

作業診断を依頼した技術者も、同時に導入に成功した。

作業の途中で、他の作業をした内容が衝突していた可能性がある。

教訓

ソフトウェアの導入時に、別のソフトウェアを導入したり、起動したりしない。

文書履歴(document history)

ver. 0.10 初稿 20180715
ver. 0.11 20180716

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3