編集履歴一覧に戻る
pmanのアイコン画像

pman が 2020年03月02日02時07分02秒 に編集

初版

タイトルの変更

+

Lチカ、最初の一歩

タグの変更

+

Leafonyプレゼントキャンペーン

+

Lチカ

記事種類の変更

+

セットアップや使用方法

本文の変更

+

# とりあえず動かしてみよう、始めてみよう ## "Hello,World!" 20年近くプログラムエンジニアとしてやってきましたが、己の才能の限界を感じ、見識を広げるためにもハードウェアの世界も覗いてみよう、といろいろ手をつけて5年くらいになります。といってもなにができるようになったわけでもないです‥ この elchika というサービスを知る機会があり、何か自分も残すことができれば、と思い記事を書いてみることにしました。 はんだ付け回路からブレッドボード、マイコン、ラズパイ、mbed、FPGA‥数々の「Lチカ」を経験してきました。 ハードウェアを学ぶのに最初にやるのがこの「Lチカ」。 ソフトウェアでは、初めてのプログラミング言語として画面にメッセージを表示する、"Hello, World!" があります。 ## ソフトウェアでの "Hello, World!" "Hello, World!" なんて出来たって楽しくない‥のはそうなのですが、"Hello, World!"は次の要素から成り立っているのです。 1. ソースコードの編集 3. メッセージを画面出力するAPIの呼び出し 2. コンパイル・ビルド 4. 実行 スクリプト言語だと 3. は省略して実行、というようになるかもしれません。もしくは実行環境を整える、ということになるかもしれません。 また 2. が用意されたAPIを呼び出すだけなのか、また場合によってはそのAPIから実装する場合もありますし、画面でないこともあります。 たかがメッセージとして”Hello, World!"が画面に出るだけですが、解説やリファレンスと首っ引きになって自分の手でメッセージが出てくる、またそのメッセージを自分で好きなものに変更できる、というのは苦労した本人にしかわからない充実感が得られるものです。(ただ、やっぱり結果としては面白くないんですけど) ## ハードウェアでの「Lチカ」 ハードウェアで「Lチカ」を実現しようとすると、これもいろいろな要素が組み合わされています。 1. 回路設計 2. 実装 3. 指差し確認 4. 電源ON 回路設計、はどんな手段を用いるのかでやることが全然違いますし、実際 2. や 3. もよりけりです。マイコンやFPGA使う時では回路の実装というよりはプログラムを書いてターゲットに転送する、というようなことが必要になります。 "Hello, World!" では間違って実行してもエラーだったりするだけで修正して動くまで繰り返せばいつか正解できますが、ハードウェアでは間違った実装をしてしまうと最悪機器が故障して二度と動かすことができなくなることがあります。 ソフトウェアも間違うと取り返しがつかないことはありますが、ハードウェアでは入門期にそういう機会が出てくると思います。 なので、ソフトウェア以上に、ハードウェアを扱うときは、3. の確認が重要になると思います。 初めてのときは指示通りにやっているかどうかの確認ですが、自分で設計する段になると、その設計が正しいかどうか、を動かす前に検証することになります。 「Lチカ」と言いながら、点滅じゃなくて点灯するだけだったりもしますが、やっぱり机上の理論だけじゃなくて実際に手を動かしてみて得られるものは大きいと、思います。 ## まずは手を動かしてみよう! ぶっちゃけ、「Lチカ」出来ても誰も褒めてくれないです。自分ですら褒められない‥ でも何も出来なかった自分が、LEDを点けることができるようになりました。次はLEDを点滅させたり、複数のLEDを交互に点灯させたり、はたまた色を変えてみたりなど、できること・知ってることを増やせばいいのです。 子供の頃は電子工作というとカウンターや7セグLED使っての時計、明かりで小鳥が鳴くアラームなど、そういったものでも自分の手で作ったものが動くことで感動できたものですが、今どきはどうなのでしょう、と不安になります。 100円払えば完成品が手に入りますし、ガチャガチャの景品でも昔1000円で買えなかったような多機能だったりもします。せっかく自分でやるんだから、100円でやれることが出来ても、もっとすごいものを、と思って大きな目標を立てがちになります。 ただ、困ったことに目標の大きさ・高さが実感しづらいのかもな、と思うことがしばしばあります。大きな目標をいきなり掲げても規模が大きいものは成果が出る前に挫けてしまって辞めてしまうリスクが高いと思うのです。 今の自分でゴールできる目標を設定し、小さな成果をでもいい、自分の手で何かを成し遂げて得られる達成感をエネルギーにしてさらに一つ大きな目標に進むというサイクルを回せるエンジンを自分の中にまず持つこと。 それを少しずつ大きな馬力に・強力にできるようになれば、いつか自分もびっくりするような大きな成果を挙げられるんじゃないでしょうか。 ということでいろんな世界の「Lチカ」、まずは自分の手でやってみませんか?