ホーム > 校長☆副校長
校長☆副校長 Archive
第20回:Raspberry Pi
- 2020-12-04 (金)
- 校長☆副校長
こんにちは。宮元です。
キーボードもマウスも接続できず、ディスプレイモニターですら普通のパソコンのようにはつなげない、Windowsのようなソフトウエアも搭載していないワンボードコンピューターのためのプログラムを書く。理解しなければならないことが多すぎて、心が折れそうになったとき目についたのがRaspberry Pi でした。
LANケーブル、キーボードにマウス、ディスプレイモニターと電源ケーブルがつながっています。赤いケーブル、透明のアクリル板、冷却ファン、ACアダプター等々、全部で1万5千円ほどでした。その全容はこうです。
本体は小さいですが立派なコンピューターです。ディスプレイモニターにはWindowsパソコンで見られるようなものが見えます。このRaspberry Piで動かすプログラムを書いているところです。ここ重要です。
このコンピューターで動かすプログラムは、キーボードもマウスもディスプレイモニターもつながっていて、Windowsのようなソフトウエアも動いているこんな小さなコンピューターで作ることができるのです。
ところが一方、・・・・
- コメント: 0
第19回:CANが動くワンボードマイコンをゲット
- 2020-11-24 (火)
- 校長☆副校長
こんにちは。宮元です。
私たちがインターネットに接続するにあたって、前回紹介したTCP/IPプロトコルに従った通信制御のプログラムを書いたりしませんね。誰かがそれを提供してくれていて、PCやスマホといった通信端末の中でこっそり動いているから、私たちは難しいことを考えることなくネットワークを利用できるのです。
CANプロトコルに従って通信制御をするプログラムを書く技術は私にはありません。そこで、前々回紹介したPICのようなワンボードマイコンに、CANプロトコルに従って通信を制御する機能を搭載したものがあればいいのに、と思い始めました。買える範囲なら買ってもいいな・・・・ そう思ってインターネット上を探しました。そして見つけました。写真の2台を買いました。合わせて5万円でした。2020年1月末のことです。
ワンボードコンピューター2台ですが、それぞれがCANプロトコルに従って通信する機能をもっているので、それぞれをECUとみなしケーブルで接続してECU間通信(CAN通信)を体験してみようというわけです。
しかしその前に、これら2台のコンピューターのためのプログラムはどういう環境で書いて、そのプログラムをどうやってこれらコンピューターに移すのか、具体的なことを何も知りませんでした。あとでもう一度お話ししますが、これらにはキーボードもマウスも接続できません。ディスプレイモニターですら、普通のパソコンのようにケーブルさえつなげば使えるようにはなっていません。
そこで、週末に時間を見つけて、そのあたりのことの勉強を始めました。4月の下旬まではそうしていたのですが、そこにRaspberry Pi(ラズベリー・パイ)が割り込んできたのです。
今回はここまで。
- コメント: 0
第18回:背中を押したもの -その2- CAN(ECU間通信)
- 2020-11-12 (木)
- 校長☆副校長
こんにちは。宮元です。
2、3年前、自動車工学科の教員を含む自動車関係者と話をしていて「ECU」ということばがよく出てくることに気づきました。アルファベット3文字で表されることばが大変多いなか、何か新しい3文字ことばに出会うと、自分が身を置いてきた世界に関係することばで読み替えようとします。
「ECU」もコンピューターに関係したことばだろうと、勝手に「Electronic Control Unit(電子制御ユニット)」などというふうに読み替えます。これはそのとおりだったわけですが、今では100個以上のECUを搭載した自動車も珍しくないと雑誌、たとえば「インターフェース2020年9月号」にあります。
同雑誌によると、ECUは「パワー・トレイン系」「シャシ系」「ボディ系」「マルチメディア系」「運転支援系」の5系統に分けられるのだそうです。私には詳細を説明できる知識がありませんので、これ以上の説明はご容赦ください。ただ驚くべきことは、これら多数のECU同士が車載ネットワーク回線を介して通信をする。すべてのECUが全体として一つの車載コンピューターシステムを構成しているというのです。1台の自動車の中にコンピューターネットワークが形成されているのです。どんな具合に通信しているのだろうなどと興味を駆り立てられませんか。
スマホ、タレット、PC・・・・、私たちがこれらをインターネットにつないで通信を楽しんでいるときは、意識していませんが、いつでもTCP/IPという通信規約(通信プロトコルといいます)に則っています。ECU同士も通信プロトコルに従って通信するわけですが、そのプロトコルとして「CAN(Controller Area Network)」が広く採用されているようです。
私たちが自動車に乗り込んだ瞬間からエンジンを止めて降りるまで、CANによるECU間通信に支えられていることになります。そこで、CANによるECU間通信がどんなものか試してみたい。そんな興味が沸々と湧きあがってきたのです。これが「調べてみようか・・・・、はまってしまいそう」の原因なのです。
では、次回・・・・
- コメント: 0
第17回:背中を押したもの -その1- ワンボードマイコン
- 2020-11-02 (月)
- 校長☆副校長
こんにちは。宮元です。
マイクロプロセッサーとはそれ以降30年間くらい無縁となってしまいます。当時私が勤めていた会社にはマイクロプロセッサーに関連した仕事を請け負う部署がありましたが、私は配属されず、従来の汎用コンピューターを使ったシステム開発部門で働くことになりました。その後、勤め先はいくつか変わりましたが、状況は同じでした。
もちろん趣味としての楽しみ方もあったのですが、なかなか踏み切れませんでした。何だか手を出したらのめり込んでしまいそうで怖かったのです。ただでさえ仕事で忙しいのに、また別のことに時間を割くなんてとんでもないと考えてしまうんですね。でも、ずっと後になって、この考えは取り越し苦労だと気づきます。人間って、本当にしたいことがあったら何とかして時間をねり出すものなのです。
この間何回か「電子工作」のブームはあったように思います。帰宅途中、時間が取れるときは必ず書店に立ち寄るのが習慣になると、「科学」のコーナーにやたら分厚い雑誌が並ぶときがありました。「マイコン」が、付録とは呼べないようなものが付録として付いている雑誌を目にしたときは、買おうかと思ったものですが、そこはぐっとこらえて通り過ごしてきました。
ところが、私もここ1年くらいで認識したことなのですが、1980年代には世に出ていた「PIC(Peripheral Interface Controller)」に加えて、この15年くらいの間に、「Arduino」とか「Raspberry Pi」というようなワンボード(シングルボード)コンピューターが安価で提供されるようになりました。合わせて、周辺のエレクトロニクス機器も安価で手に入るようになって、エレクトロニクス好きにはたまらない環境が整ってきたように思います。
(左から、PICマイコン、Arduino、Raspberry Pi (いずれもgoogle検索した結果からの転載))
第1回目のこの欄に「最近、はまってしまいそうなことに出くわした」と書きました。コンピューターは人間が創り出した最高傑作の一つと思っているとも書きました。パソコンは1984年に初めて購入して以来、買い替えながらずっと使っていますが、その心臓部だけを取り出したようなワンボードコンピューターにはパソコンとは違った美しさを感じます。はまってしまいそうな予感にはもちろんこのことが大きく影響しているのですが、実はもう一つ、お話しておきたいことがあるのです。それは次回以降で・・・・
- コメント: 0
第16回:納品
- 2020-10-23 (金)
- 校長☆副校長
こんにちは、宮元です。
ACOSの扱いにも、クロスアセンブルの方法にも慣れて、アセンブル段階でのエラーはなくなりました。ここからが問題です。このプログラムが正しく動くことを確かめるためには、電子機器メーカーが作った”融雪用散水機制御システム”のハードウエア(実機)を使ってテストする必要があるのです。しかし、それは工場にしかありません。
今だと、アセンブルに使ったコンピューター①と融雪用散水機制御システム②をUSBケーブルでつないで、①から②へひょいとコピーすればテスト準備OKとなるところですが、当時、そうはいきません。
①でできたプログラムをROMライターというものを使ってROMという半導体メモリに書き込んで、これを②まで持って行って装着します。これで②が、私が書いたプログラムに従って動くことを確かめられます。ただ、この確認作業は電子機器メーカーの担当者の役割となっていました。確認結果は、一定時間後に私のところに届くという段取りです。
(“read only memory”でgoogle検索した結果からの転載)
ここがうまく動かないという指摘があると、プログラムの該当部分を確認します。バグ(プログラムエラー)だったら、プログラムを修正して、ACOSでクロスアセンブル、ROMを書き直して実機でテスト。これの繰り返しです。この作業、割とうまくいきました。そして、この作業の最終段階は「受入れテスト」と呼ばれていた最終試験でした。
この受入れテストにパスするということは、発注元から「テスト中のプログラムはこちらが要求する仕様をすべて満たしています。」と認めていただいたということになります。これをもって私個人的にはプレッシャーから一旦解放されました。実際にはこの後、現地でのテストがあったのですが、その対応は電子機器メーカーの担当者がしてくださいました。ここで重大な問題が発覚した場合はもちろん対応する約束になっていましたが、大きなトラブルは出ませんでした。
この仕事のことをことさら覚えている理由は、学生時代に趣味でやっていたことが社会人一年目で実践で使えたからです。こんな面白くない大学なんて辞めてしまおうかとまで考えたことがあったのに、いくつかの幸運との出会いもあってこんなにいい経験ができたと感じ、無茶苦茶うれしかったからです。
ではまた。
- コメント: 0
第15回:仕事から得るもの
- 2020-10-09 (金)
- 校長☆副校長
こんにちは、宮元です。
ACOSでアセンブルしてどうして8080Aで動く機械語プログラムに変換できるのかという疑問を解決しなければいけなかったのですが、スケジュールどおりにプログラムを完成させるのが優先で、それは後回しにしていました。
かつては「コンピューターダイジェスト」という名前の月刊誌があって、いろいろな新聞からコンピューターに関係した記事だけを抜き出して雑誌にしたものでした。入社当時は情報だけでも頭に入れておかなくてはと思って購読していました。
あるとき、その記事の中に”クロスコンパイラー”という言葉を見かけ、「あれっ、どこかで読んだぞ!」 今だとネットで検索すればすぐに分かることですが、当時はそんなものはありません。探し回った結果、情報処理技術者試験の参考書に書いてありました。初めて読んだときにしっかり理解していたら、今回の疑問はたやすく解けたのですが・・・・
二つのコンピューターAとBがあるとします。コンピューターAを使って、FORTRAN(フォートラン)言語で書いたプログラムを普通のFORTRANコンパイラーで翻訳すると、翻訳してできる機械語プログラムはコンピューターA用です。コンピューターAでしか動きません。
ところがこのとき、普通のFORTRANコンパイラーではなくて”クロスFORTRANコンパーラー”を使うと、A自身ではなくコンピューターB用の機械語プログラムに翻訳できるのです。
「クロスコンパイラーというものがあるんだったら、クロスアセンブラーもあるはずだ。」と考えるのが普通ですね。
実はそのとおりだったんです。アセンブリー言語で書いたソースプログラムを、ただのアセンブラーでアセンブルすると、できる機械語プログラムはACOS用です。ところが、8080A用のクロスアセンブラーでアセンブルすると、ACOSを使っているのに8080A用の機械語プログラムができるのです。
書籍だけで勉強していると、分かったようで分かっていないなと思うことがよくあるのですが、こうやって実務の現場で出くわすと、否が応でも分からされて(?)しまいます。こういうふうに、生きた知識が増える、生きた技術が身に付く。これも仕事から得る喜びです。
- コメント: 0
第14回:出くわした疑問
- 2020-09-23 (水)
- 校長☆副校長
こんにちは、宮元です。
第1回で書いたとおり、融雪用散水機制御システムのプログラムはアセンブリー言語で書きました。そして第8回で説明したとおり、アセンブリー言語で書いたプログラムはアセンブラーという言語翻訳プログラムで、コンピューターが実行できる機械語に変換します。(これを「アセンブルする」といいます)
不便なことに、このアセンブラーを実行できるコンピューターが電子機器メーカーの工場にしかないということで、電車とバスを乗り継いで工場に行きました。紙に書いたプログラムは磁気テープで持って来てくれということでしたが、社内ではできないので外注して600フィートのオープンリールの磁気テープにメディア変換してもらいました。今なら、USBメモリにコピーしてというところです。
工場の敷地は広大で、その周囲は田んぼと畑。夜になって工場のラインで働いている人が帰宅して照明が落ちると、数人だけの広-い工場内が不気味な空間になるような所でした。
アセンブル作業のために通された場所には「ACOS」と書かれた小型コンピューターがありました。「ACOS」というのは当時、NECの汎用コンピューターのブランド名でした。ここで疑問がわきます。どうしてACOSなの? 8080Aじゃないの? だって、ACOSでアセンブルしたらACOS用の機械語プログラムになってしまうでしょ? 8080Aじゃ動かないんじゃない? えっ、どういうこと?!
とにかくその日は磁気テープで持って行ったアセンブリー言語のプログラム(ソースプログラム)を、ACOSを使ってアセンブルし、アセンブルエラー(早い話、プログラムの文法エラーのこと)を見つけただけで帰社しました。そして、あのACOSを使ってどうして8080Aで動く機械語プログラムに変換できる?・・・・という疑問の解決です。
- コメント: 0
第13回:復帰
- 2020-09-04 (金)
- 校長☆副校長
こんにちは、宮元です。
ずいぶん長い「割り込み」になってしまいました。第1回で融雪用散水機の制御の話をしていたのに、直後に割り込んでIT技術者としてのルーツの話になってしまいました。割り込みからの復帰です。
唐突ですが、ご家庭の冷蔵庫を想像してください。私たちがドアを開けて物を取り出すとき、冷蔵庫はどんな対応をするでしょうか。
まず、ドアを開けた瞬間に庫内の灯かりを点灯します。と同時に、タイマーのカウンターをスタートさせます。素早くものを取り出してドアを閉じると、灯かりを消灯しタイマー・カウンターをリセットします。物の取り出しに手間取ると、「ピーッ、ピーッ」とドアが開いているという警報が鳴り始めます。さらに庫内の温度が上昇すると、庫内を冷やすための運転を始めます。
通電してドアを閉じた状態が冷蔵庫の「庫内の温度をセンサーで監視しながら庫内を低温に保つ」という本業です。庫内の灯かりの点灯/消灯、タイマーのスタート/ストップ、警報の発信/停止が「割り込み」です。
本業中に割り込まれると本業を中断して割り込みの処理をし、何食わぬ顔で本業に戻る。これがコンピューターの本来の割り込みです。割り込みのほうが長くなってしまうのは設計か使い方が悪いのでしょう。
さて、融雪用散水機制御システムの話を聞くと、まさに割り込み処理システムでした。散水開始ボタンが押されると、散水開始ボタン押下というイベント発生信号がマイクロコンピューターに届くようにハードウエアが設計されています。ソフトウエア屋はイベント発生信号の種類を調べて、それが散水開始イベントなら該当する散水機の弁を開けという信号を出すようにプログラムしてやります。
電子機器メーカーの担当者から話を聞いてから3日ほどで、上司がプログラム設計書を書いてくれました。見てびっくり、個人が趣味で書くプログラムとはその規模と複雑さにおいて桁違いに大きくてややこしいものでした。それでも何とか書き上げました。当時はまだプログラムを紙に書いていました。コンピューターが今ほど自由に使える環境ではなかったためです。同じ理由で、紙に書いたプログラムを読んで間違いを見つけ、訂正する作業(これを机上デバッグといいます)を何回もしました。
これ以降は、コンピューターを使ってのデバッグ作業になるのですが、次回とします。
- コメント: 0
第12回:IT技術者としてのルーツ
- 2020-08-20 (木)
- 校長☆副校長
こんにちは。宮元です。
前回と話が前後します。
したくて仕方がなかったことができた最終学年も半年が過ぎ、就職の二文字が気になり始めたのですが、もうコンピューター関連の仕事しか考えられませんでした。できれば、ハードウエアもソフトウエアもやってみたいと考えていた時に、その頃この世界では超有名だった外資系の会社の求人票が目に留まりました。採用試験を受けましたが、あえなく撃沈。そうですよね。一般的にいう勉強はほとんどしていなかったですからね。妙に納得できた結果でした。
今は大学でも丁寧な進路指導がされているのでしょうか。私のころは、求人票が掲示板に張り出されるだけでした。少なくとも私は就職について誰にも相談した記憶がありません。ただ、両親には「東京に行きたい。」とだけ言いました。
身の程知らずだと知った私は、就職情報誌で東京の小さなソフトウエア会社を見つけました。行ってみると、その会社は従業員30人、4階建てのビルの2階と3階を借りていました。最上階はビルオーナーの住まい、1階が飲み屋さんでした。(でもこの会社、10年後には新宿西口公園の隣の高層ビルに入居できるまでに成長したんですよ。)
今度はその場で採用内定をもらって、意気揚々と東京から戻ってきました。
笑わないでください。会社が大きいと小さいとか、従業員数が多いとか少ないとか、給料が高いとか低いとか、休みが多いとか少ないとか、そんなことまったく考えませんでした。同級生の中には、誰でも知っているような大会社に就職した人が何人もいました。でも私は「これでコンピューター関連の仕事ができる。」 それだけでした。
大学の電子計算機研究会では、本当にいい先輩方に出会えました。いい環境の中に身を置くことができました。いつでも何時間でも自由にコンピューターが使える環境なんて当時は考えられなかったのです。パーソナルコンピューター(PC)と言いますが、まさにこれは、自分が好きなときに好きなだけ使えるパーソナルなコンピューターだからです。
話が逸れそうになりました。中学校の担任の一言で普通科高校・大学に進み、そこでの勉強に絶望しそうになったところ、電子計算機研究会の顧問や先輩、マイクロプロセッサーで希望をつなぎとめることができました。私がいただいてきた給料の対価としての仕事のルーツはここにあります。本当に「感謝」です。
同窓会に寄付しようかなと思うようになったのも、こういう意識が強くなったからだと思います。
- コメント: 0
第11回:無我夢中
- 2020-08-11 (火)
- 校長☆副校長
こんにちは。宮元です。
いいことというのは、何と研究室の教官から、実験装置から得られるデータを直接処理するマイクロコンピューターを製作しないかとお誘いを受けたのです。それまで実験で得たデータはオフラインで大学のコンピューターに入力・処理していたのを、オンライン処理に変えようというのです。
当初から既製のマイクロコンピューターを使ってという発想はありませんでした。実際、採用するマイクロプロセッサーを決めて、回路図を描いたうえで必要なパーツを個別に買い集めるというやり方でした。もしこの研究室が、データの処理を最重要課題、最優先ミッションと位置付けていたら、こんな泥縄式ではなくて、さっさと既製のものでやっていたはずです。学生に何かさせようという意図があったものと考えています。
さて、マイクロプロセッサーは、16ビットで雑誌等で取り上げられることが多かった米国テキサス・インスツルメンツ社の「TMS9900」に決めました。早く入手して技術文書を読まないと全体の回路が描けなかったのです。当時のマイクロプロセッサーは、長方形のセラミックまたはプラスチックの両側に百足のように脚がたくさん出た形をしていました。これら脚一本一本の働きを理解しないと回路図は描けません。
寝る時間も惜しみ(昼間寝て)、無我夢中で回路図を描き上げました。ただし、マン・マシンインターフェースはスイッチとLEDのみ、簡単なプログラムの確認ができるだけというレベルのものです。それでもなかなか意図したとおりには動いてくれなくて、卒業式の日にも何かしていたように思います。どういう状態にして大学を去ったのか今では記憶がありませんが、後を引き継いだ後輩は大変だったでしょう。
なんたって、「コンピューター、ソフトがなければただの箱」というような川柳が読めるくらいにソフトウエアの役割は大きいものです。オペレーティングシステムとまではいかなくても、モニタープログラムと呼べるくらいの機能をもったソフトウエアを用意しないと、ハードウエアの力を発揮させることはできないし、何よりも使いづらくてたまらないと思います。気にはなるのですが、この頃はもう引越しや待っている仕事のことで頭がいっぱいになっていました。
- コメント: 0
ホーム > 校長☆副校長