Go言語未経験の僕が、TinyGoでマイコン開発に夢中になった3ヶ月

41xhoK1Fh2L._SL1000_

📝 この記事のポイント

  • 「Go言語って聞いたことあるけど、具体的にはどんな言語なの?」「マイコン開発なんて、なんかめちゃくちゃ難しそう…」4ヶ月前の僕は、まさにそんな疑問と不安でいっぱいでした。
  • 普段はWeb系の開発ばかりで、いわゆる組込み開発は完全に未経験。
  • Go言語も「名前は知ってる」くらいのレベルで、正直、自分には縁のない世界だと思っていました。

「Go言語って聞いたことあるけど、具体的にはどんな言語なの?」「マイコン開発なんて、なんかめちゃくちゃ難しそう…」4ヶ月前の僕は、まさにそんな疑問と不安でいっぱいでした。普段はWeb系の開発ばかりで、いわゆる組込み開発は完全に未経験。Go言語も「名前は知ってる」くらいのレベルで、正直、自分には縁のない世界だと思っていました。

でも、ある日、Go言語関連の大きなイベントが日本で開催されるというニュースを目にして、「これは新しいことに挑戦する絶好のチャンスかも!」と直感したんです。今までと全く違う技術領域に飛び込むのは、ちょっとドキドキするけど、それ以上にワクワクする気持ちが大きくて。この小さな一歩が、まさかこんなに楽しい世界への扉を開くことになるとは、当時の僕は知る由もありませんでした。

目次

最初の印象

※本記事にはアフィリエイト広告が含まれます

SeeedStudio Wio Terminal 102991299

詳細を見る

初めてTinyGoやマイコン開発という言葉を聞いたとき、「うわ、なんか専門的で難しそう…」というのが正直な感想でした。C言語とかアセンブラとか、そういうゴリゴリのプログラミング知識がないと無理なんじゃないかって。Web開発でJavaScriptやPythonを触っていた自分からすると、ハードウェアを直接制御するなんて、まるで魔法の世界みたいで、とても敷居が高いものに感じていましたね。

Go言語自体も、名前は知っていても実際に触ったことはなく、学習コストも心配でした。新しい言語を覚えるだけでも大変なのに、さらにハードウェアの知識もとなると、果たして自分にできるのか、始める前は不安でいっぱいだったのを覚えています。

実際に使ってみて

実際にTinyGoとマイコンに触れてみると、僕が抱いていた「難しそう」という印象はあっという間に吹き飛びました。最初に手にしたのはWio Terminalというボードだったんですけど、これを使ってLEDをチカチカさせる簡単なプログラムを動かしたとき、「うわ、本当に光った!」って、思わず声が出ましたね。画面上の文字が変わるだけのWebアプリとは違って、プログラムが物理的な世界に直接作用する感覚が、本当に新鮮で感動的でした。

次にセンサーの値を読み込んでディスプレイに表示させたり、小さな絵を描画してみたり。プログラムを書き換えるたびに、目の前のデバイスがコロコロと表情を変えるのが面白くて、夢中になって時間を忘れるほどでした。まるで子どもの頃にブロック遊びに熱中したような感覚。これまでの開発とは全く違う、体感的な面白さがそこにはありました。

良かったところ

TinyGoでマイコン開発を始めてみて、特に「これは最高!」と感じた点はいくつかあります。

  • Go言語のシンプルさでサクサク書ける

Go言語の文法が非常にシンプルで分かりやすいおかげで、未経験の僕でもすぐに基本的なコードが書けるようになりました。エラーメッセージも親切なので、つまづいても解決しやすいのが本当に助かりましたね。他の組込み言語だと、もっと複雑な記述が必要なイメージがあったので、この手軽さは大きな魅力です。

  • ハードウェアを直接操る喜び

これまで画面の向こう側のロジックばかりをいじってきた身としては、LEDを光らせたり、モーターを動かしたり、センサーのデータを読み取ったりと、物理的なモノを直接制御できるのは本当に楽しいです。自分の書いたコードが現実世界で動くのを見ると、これまでにない達成感が得られます。

  • 新しい視点と仕事への応用

この体験を通して、普段のWeb開発では見えてこなかったハードウェア側の視点や、IoTといった分野への理解が深まりました。週末の趣味として始めたことですが、今ではIoTデバイスのプロトタイプを作ったり、センサーデータを可視化するプロジェクトに挑戦したりと、仕事にも活かせるスキルが着実に身についていると実感しています。

気になったところ

もちろん、良いことばかりではありません。使い始めて「うーん」と感じた点もいくつかありました。

  • まだまだ情報が少ないと感じる時がある

メジャーなWebフレームワークやArduinoなどと比較すると、TinyGoに関する日本語の情報やサンプルコードは、まだ限られていると感じることがあります。特に、少し複雑なことをしようとすると、英語のドキュメントを読み込んだり、自分で試行錯誤する場面が多かったです。

  • Web開発とのデバッグの違いに戸惑う

Web開発ではブラウザのデベロッパーツールやコンソールログでサクサクとデバッグできますが、マイコン開発ではそうはいきません。ログを出力するのも一苦労だったり、接続の問題で動かないのか、コードの問題で動かないのかの切り分けが難しかったりして、最初はかなり手こずりました。この辺りは慣れが必要だと感じています。

どんな人に向いてる?

僕自身の経験から考えると、TinyGoでのマイコン開発はこんな人には特におすすめしたいです。

  • 新しい技術領域に挑戦してみたいWebエンジニア
  • ハードウェアに興味はあるけど、C言語やアセンブラはちょっと苦手だと感じている人
  • 自分のアイデアを物理的な形で具現化してみたいクリエイター
  • 週末にじっくりと没頭できる、達成感のある趣味を探している人

特に、Go言語のシンプルさに魅力を感じていて、これから組込み開発の世界を覗いてみたいと思っている人には、TinyGoは最高の入り口になるはずです。

使い続けて12週間の今

TinyGoでのマイコン開発を始めておよそ12週間。今では週末のたびにWio Terminalを引っ張り出してきては、新しいプロジェクトに挑戦するのがすっかり習慣になりました。最近では、自宅の温湿度をモニターしてデータをクラウドに飛ばすIoTデバイスの試作や、小さなディスプレイに情報を表示させるガジェット作りなんかに夢中です。

最初はGo言語もマイコンも「知らない」状態だった僕が、こんなにも楽しく、そして実用的なスキルを身につけられるなんて、3ヶ月前には想像もできませんでした。プログラミングの面白さを再認識させてくれただけでなく、物理世界とのつながりを感じられるこの新しい趣味は、僕の日常を本当に豊かにしてくれています。

まとめ

Go言語もマイコン開発も未経験だった僕が、TinyGoというツールに出会って、こんなにも楽しく夢中になれる世界を見つけることができました。最初は漠然とした不安があったけれど、一歩踏み出してみれば、そこには想像以上の面白さと、新しい発見が待っていました。

もしあなたが、何か新しいことに挑戦したいと思っているなら、あるいはWeb開発とは一味違うプログラミングの楽しさを味わってみたいなら、ぜひTinyGoでのマイコン開発に触れてみてほしいです。きっと僕のように、新しい世界の扉が開くはずですよ!

SeeedStudio Wio Terminal 102991299

詳細を見る

📚 あわせて読みたい

 AIピック AI知恵袋ちゃん
AI知恵袋ちゃん
価格以上の価値がありそう!

続きをみる

Go言語未経験だった私が、TinyGoでマイコン開発にハマるまでの3ヶ月間

「TinyGoって聞いたことあるけど、普通のGoと何が違うの?マイコン開発って難しそう...」4ヶ月前の私もまったく同じ不安を抱えていました。Web開発の経験はあるけど、組込み開発は完全に未経験。Go言語も「名前は知ってる」程度。続きをみる...

note(ノート)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次