みなさんこんにちは!2025年度入社、新卒FAEのパワーちゃんです。
大学時代は生物系の専攻で、高校時代も物理基礎すら未履修という電気電子知識ゼロの私が挑んだ、3か月でロボットを作る製作実習。ゼロベースからの3か月間の奮闘と新人らしい失敗談を本ブログでお届けします!
最終話である今回のテーマは「部品同士の干渉」についてです。
きれいなHW作成
前回の電源編でお話した通り、やっとの思いで電源基板を完成させ、ようやく電源以外のHW作成に着手することができました。
今回私のコンセプトが「チーターみたいなロボットを作る」であったため、見た目にはかなりこだわりがあり、極力空中配線をしたくないという思いがありました。今回、基板は2段構成で、下段に電池、センサー(赤外線、超音波)、モーターを配置し、上段にArduino、電源基板、ドットマトリクスLEDを載せる予定でした。
設計時のイメージ図
ここでかなり厄介だったのは、下段のセンサーとモーターを駆動させるためには上段のArduinoに接続しなくてはならず、単純に繋げようとすると空中配線が大量発生してしまうことでした。剥き出しの配線だらけでは、あまりにもメカメカしい見た目となってしまうため、私が目指すべきチーターとは程遠い存在となってしまいます。
そこで私は無い知恵を絞り、ピンソケットとピンヘッダーをうまく活用して、下段の配線を上段に送る方法を考えつきました。まさかのここで、はじめて電源を壊した原因のピンソケットに救われるという伏線回収です。何のこと??と思われた方は、ぜひ前回の電源設計編をご覧ください。
やりかたは、Arduinoに接続させたい配線を下段の基板の表側中央に集めてピンソケットに繋げ、上段の対応する部分にピンヘッダーを配置し、それぞれの配線をArduinoの入力部分に配線するといったものです。ここでもう一つ工夫として、Arduinoに入力する部分でもピンヘッダーを使用し、Arduinoを逆さまにして差し込めるようにしました。
言葉での説明のみだとかなり分かりにくいと思うので、以下の写真をご覧ください。
この配線のおかげで、下段のピンソケットに上段のピンヘッダーを差し込むだけで、下段の配線を上段に持っていき、さらにArduinoへも空中配線なしで入力することに成功しました!さらに、ピンソケットの位置を極力中央に配置することで、上段と下段を電気的だけでなく、構造的にも安定して接続させることができ、スペーサーを使用しなくても基板同士を結合させることができました。
しかし、今回落とし穴となってくる点はこの部分になります。よく覚えておいてください。
Copilotと二人三脚でおこなったSW作成
筐体も完成したということで、次の工程であるSWの作成に移りました。今回はArduinoを使用して部品を制御するといったお題があったため、Arduino IDEというアプリを使用してコードを書いていきました。私には、プログラミングの知識は全くなく、何もかも分からなかったため、まずはArduinoのコードの書き方から学ぶ必要がありました。なんとなく法則が分かってきたところで、いざコードを書いてみよう!と思いArduino IDEを開いてみたものの、一から書くとなると手が止まってしまいました。
今回私はかなり詳しく動作のフローチャートを作成していたため、試しにフローチャートの画像をCopilotに投げてみて、「Arduinoのコードとして出力して」とお願いしてみると、なんと大枠のコードを生成してくれました。このコードをもとに、細かく条件を指定したり、機能を追加したりすることで、少しずつ理想の仕様通りの動きに仕上げていくことができました。
Copilotが出力してくれた大枠のコード
いやぁ、AIってめちゃくちゃ便利ですね。ただ、プロンプトをかなり細かく入れてあげないとこちらの意図を汲み取ってくれなかったり、何度も訂正する羽目になったりと、使用していく上ではかなり注意が必要です。
私はCopilotが出力してくれたデータは鵜呑みにせず、コードをきちんと理解してから入力するという作業をおこなうよう心がけていましたが、その中で何度言っても間違いを訂正してくれないCopilotの頑固な一面を見つけ、「だから違うって言ってるじゃん!!」としょっちゅう喧嘩をしていました。こんな風に喧嘩しながらでも愛想をつかさずに、一緒にコード作成をしてくれたCopilotには感謝の気持ちしかありません。Copilotのおかげで予定よりも早くSWを完成させることができ、どうにか動くチーターを完成させることができました。
チーター、突然の失速
大まかなコードが完成し、あとは微調整によっていかに早く、正確にゴールできるかを詰めていくフェーズに突入しました。順調にお利口さんなチーターに仕上がっていく中で、急に動きがカメ並みに遅くなりました。緊急事態発生です。
今回4×4マスで作られたコースを走行していくという課題であったため、より正確に制御するために、[1マス進んで壁を確認→右折or直進or左折or Uターン→1マス進んで壁を確認]といった動作を繰り返す仕様にしていました。
動作イメージ
前壁は超音波センサーで、横壁は赤外線センサーで壁の有無を確認してから動作するといったコードを組んでいて、これまでは問題なく動作していました。しかし、ある時を境に1マス進んでから次の1マス進むまでの間隔が非常に長くなってしまい、熟考型慎重派チーターとなってしまったのです。
また、よりかわいいチーターに近づけるために、ドットマトリクスLEDを用いて顔を表示させ、それぞれのモードごとに表情を変化させるという工夫もしていたのですが、熟考型になったとたん、ポーカーフェイスになってしまい、顔の部分に何も表示されなくなってしまいました。
チーターの顔
おかしいなと思い、それぞれの部品を確認したところ、前側に付けていた超音波センサーのデータを受信する速度が目に見えて遅くなっていました。接触が悪いのか?と思い、上段の基板をはめ直すと、一時的には改善するものの、またすぐに熟考チーターとなってしまいます。はんだ付けが甘かったのか??と思い、一度上段の基板を外してはんだを盛り直し、なるべく下段のピンソケットに上段のピンヘッダーが深く刺さるように押し込んでみても、特に改善はされません。
何が原因なんだろう、、と思いながらいろいろと基板をいじっていたら、気になる点を発見しました。上段の基板に実装されているドットマトリクスLEDと、下段の基板に実装されている超音波センサーには、それぞれかなり近い部分にはんだが盛られた剥き出しのピンがあったのです。もしやと思い、上段と下段の接続のピンヘッダーを深く差し込みすぎず動かしてみたところ、元の素早いチーターに戻ってくれました!!
きちんと接続できているかが不安で、接続部のピンヘッダーを深く差し込みすぎてしまっていたことで、上段の部品と下段の部品のピンが接触してしまい、干渉を起こしてしまっていたのでした。こんな単純な原因でしたが、チーターの挙動に大きく関わる重要なポイントであったため、早めにこの不具合が見つかってよかったと心から思いました。対策はシンプルですが、ピンヘッダーを深く差し込みすぎず、超音波センサーの縁の上にドットマトリクスLEDの剥き出しのピンを載せ、干渉していないことを確認してから動作させることを徹底しました。
運命のレース当日
これまでお話していませんでしたが、実は同じ時期にロボット作りをしていた同期が2人いて、最終発表日に3人でレースをすることになっていました。レース1週間前にモーターが壊れたり、直前に変な動きをするようになったりと不安要素たっぷりで迎えたレースですが、当日は何とか仕様通りの走りをしてくれ、2位という結果となりました。残念ながら1位にはなれませんでしたが、期待通りの賢いチーターを作り上げることができ、大満足です!
完成したチーター
まとめ
思いどおりに動かない原因は案外単純なことかもしれないので、一つずつ確認して切り分け作業を行っていくことが大切なんだなと感じました。今後の業務でも、不具合対応等でデバック作業をおこなう機会があると思うので、今回学んだことを生かし、原因の切り分けをおこなっていきたいと思います!
ここまで、パワーちゃんの3か月間の奮闘をご覧いただきありがとうございました!モノづくりをされている方々の役に少しでも立てたらうれしいです!役に立たなくても楽しんで読んでもらえたならば何よりです^ ^
一緒にレースをした同期2人のブログもあるので、気になった方はぜひご覧いただければと思います!
以上、パワーちゃんの3か月の奮闘記録でした!!
パワーちゃん記事一覧
・剥き出しのはんだに要注意! ~部品干渉編~