プログラミング 電子工作

Arduinoを使っての電子工作は意外と簡単で超絶楽しい

 Arduinoを使った電子工作は思っていたよりも数倍簡単で超絶楽しい!

 あと、エンジニアになりたいと考えている、かつての僕のようなFラン私立文系学生にも電子工作はオススメです!!

 

自分のスキルを証明するための電子工作

 先月から始めたArduinoを使った電子工作。

 なぜ電子工作を始めたかについては以前の記事で詳しく書いてはいるのですが、ここで簡単に説明すると

 「普段僕は本職でC言語を使った組み込み開発を行っているのですが、少し前に行っていた転職活動でどうやら自分は『C言語が全く出来ない』と世間的に思われていることが発覚。自分にはちゃんとC言語と組み込みのスキルがあることを証明するために電子工作を始めた」

 からなんです。

 

 僕は組み込み開発の中でも仕様検討と呼ばれる業務に携わっていて、普段の業務の中ではゴリゴリにコードを書くわけではないのですが、自分が開発している家電製品の試作品が最低限動くだけのソフトは完成させることが出来ます。

 

 「じゃあコードを書けるの?

 

 と問われてしまうとそれも微妙なラインで、面接の場で口ごもっていたら結局C言語が全く出来ない人間とジャッジされてしまったわけです。

 

 そこで「あー、これは面接の場でうまいこと取り繕うとしてもダメだな。ならさっさと現物作って、面接の場でそれを見せた方が早いわ」と考え、一つ自分でシステムを作ってみることにしました。

 

フィードバック冷却システムの完成

 自分のC言語(および組み込み)に対する知識を証明するために『フィードバック冷却システム』というものを制作することにしてみました。

FBcool

 上の機能要件書を見ると仰々しい感じですが、一つ一つのやっていることは極めて単純で、単純に温度センサから温度情報を入力して、それに応じてどこまで温度を下げたいかという目標温度を決め、そしてファンを回転させる。

FBsystem

 追加機能として温度センサが断線、ショートした場合の異常検出や、2台のArduinoでCAN通信というデータ送受信を行っているのですがそちらの通信線の断線も検知。更には一定以上の出力でファンを回しているのに温度が下がらない場合は、ファンの風がちゃんと温度センサに当たっていないとしてそちらの異常検出も行っています。

 また異常検出に合わせて3色LEDの温度も変化して、正常時で、異常検出中で、異常確定でと変化させます。

greenlignt

 

 これで僕の普段の仕様検討の仕事を説明するとなると

 「仕様検討の仕事は、『そのシステムを実現するための仕様を考えること』です。例えば温度計の温度を目標まで下げるというシステムを実現したいのであれば、それに付随して『温度計の断線ショート検出も必要だよね』『通信線が断線した場合はフェールセーフとしてファンを最大回転させておかないといけないよね』であるとか、その他必要にとなる機能も考えます。そして考案した機能が最低限動作するような実装も行います

 と説明します。

 ただし、現状のソフトからもっとROM容量を削減したいであるとか、もっと処理速度の早いシステムを構築したいとなると、それは仕様担当の領分ではなく、実装担当の仕事となります。

 

モノを作っている実感がある電子工作

 このArduinoを使った電子工作は一旦始めてみると超絶に楽しくて、ほぼノンストップで最後まで作り上げることが出来ました。

 電子工作をやっている間はあまりにも楽しすぎて、朝早く起きてはArduinoにとりかかり、また会社でも仕事が終わるとそのまま直帰で家に着くなりコーディングをやっていました。

 僕は今まで「俺は1日1時間しか勉強しないぞ! 絶対だ!!」を掲げて活動してきたのですが、Arduinoを始めてからは毎日2~3時間は勉強しており、8月の勉強時間はトータルで80時間にものぼりました。

 このフィードバック冷却システムの実装はスクールに通っていた時間も含めると総工数100時間も満たないのですが、やっている最中はとにかく楽しくてワクワクして、まさか自分が「勉強が楽しい!」だなんて思う日が来るとは思ってもいませんでした(笑)

 

スキルを実感できる電子工作

 このArduinoを使った電子工作の何が楽しいって、「自分にはスキルが身についている」ということを実感できるからなんですよね。

 普段の業務ではあまりにも分業が進みすぎているため、自分が一つプログラムを完成させたところで何か開発をした! という実感が得られにくいのと、「ほんとに俺にはスキルが身についていってるのか?」と疑問に思ってしまうところがあるのですが、いざ電子工作を始めてみると手が進むこと進むこと!

 自分にはモノを作るスキルが身についているんだなと体感することができました。

 

初心者でも簡単に扱えるArduino

 さてこのArduinoですが、先程の機能要件書を見ていると、さぞかし大層なことをしていそうですが、実際のコーディングとしてはほぼif文ぐらいしか使っていません。

 恐らくは『これならわかる! C言語入門講座』程度のC言語入門書を1冊通しでやれば理解可能で、40時間も勉強すれば十分だと思います。

 

 ただ何が難しいかと言うと、初心者にはトラブルが起きた時の解決(トラブルシュート)が困難で、モノが動かないときはそれがマイコンが悪いのか、ジャンパー線が断線してるのか、それとも接続先部品が故障してるかの切り分けが非常に難しいんですね。

 だから電子工作を初めてやるときは、なるべく経験者と一緒にやるといいのかなと思います。

 

エンジニア就職したいFラン文系はArduinoをやれ!

 今回Arduinoを触っていて非常に強く思ったのは、

 「エンジニア就職したいFラン文系はArduinoをやれ!」

 ということです。

 

 僕もかつてはFラン文系卒からのエンジニア就職をした身で、就活していた当時はFラン文系のあまりの就職口の無さに絶望した覚えがあります。

 その時一瞬だけ「エンジニアもいいなぁ」と思ったりもしましたが、当時はプログラミングもほとんど触ったことがなく、まして文系からエンジニア職になれるとも思っていませんでした。

 結局僕はIT企業の事務職で3年修行をしてからエンジニアに転職するわけですが、一度世に出てみると、意外と世の中には文系卒でも採用してくれるIT企業もあったりするんですよね。

 もちろん何の実績のもなく、丸裸の状態で採用してくれるところなど大概がブラック企業なのですが、その時に自分で作った電子工作を持っていければ、それなりに話は聞いてもらえるはずです。

 というのも、SONYや三菱のような最大手のIT企業なら話は別ですが、中小のIT企業だと本気でエンジニアになりたいのかどうかいまいち分からない人間が結構来るんです。

 面接をしていても

 「私はモノ作りが好きでー」

 と言うので

 「じゃあ普段どんなものを作るんですか?」

 と聞くと

 「料理をよく自分で作ります」

 と自信満々に答える人もかなりいます。

 これ、冗談に思えるでしょ? いや、ほんとにこんな人ばっかりなんですよ。

 そんな中で自分で作った電子工作一つ持ってこられると、相当にやる気が伝わります。

 上にも書いたとおり、Arduinoを使った電子工作なんて40時間もあればいいし、必要な機材だって1万円もかかりません。

 文系からエンジニアになりたいなら自分で一度電子工作をやってみて、それで楽しいと思えば面接を受けてみればいいし、楽しくなかったら辞めればいい。

 それに未経験からプログラミングをキッチリ教えてくれるのって新卒の時だけですからね。

 文系事務職なんていつでもできるんですから、ちょっとでもモノ作りに楽しさを覚えたらエンジニア就職してみましょう。

 

 

 最初は「俺には無理かな~」と思っていたら結局ドハマリしてしまった電子工作(Arduino)。

 もしちょっとでもC言語をやったことがあって興味ある人がいれば、ぜひやってみてください。

 

 そして名古屋に住む文系大学生で電子工作を教えてほしいという方がいれば、Twitterでご連絡ください。

 場所代だけなんとかしてもらえれば電子工作ぐらい教えますので!

 

<僕が電子工作に使用したもの>

-プログラミング, 電子工作

© 2022 名古屋とエンジニアリング