Slide 1

Slide 1 text

©2024 connectome.design inc. / ITO Akihiro Software + Hardware = Fun++ 2024.5.15 Nagono Tech in Touch #1 ITO Akihiro

Slide 2

Slide 2 text

©2024 connectome.design inc. / ITO Akihiro 伊藤明裕/ITO Akihiro ● connectome.design inc.:シニアアーキテクト [ https://connectome.design/ ] ● AIプロダクト開発・導入コンサルティング、AI人材育成支援 自己紹介 情報処理 安全確保支援士 第007287号 G検定 E資格 生成AI DS検定 GX検定

Slide 3

Slide 3 text

©2024 connectome.design inc. / ITO Akihiro 今昔話を少し。 昔 ● IBM3090 / MVS / Assembler(証券オンライン) ● HP / HP-UX / C, C++(FS-X空戦シミュレータ開発用のCASEツール) ● NeXT / NeXTSTEP / Objective-C(購買管理、給与計算システム) ● Open系 / Linux / PHP + PostgreSQL, MySQL(各種webDBシステム) ● その他、Sun Spark、IBM System88、DEC VAX-11、SGI…… ● よく使うエディタ:vi 今 ● Cloud系 / kintone, Google Workspace + GAS(業務改善アプリ) ● 機械学習系 / Jetson, ubuntu, Python, PyTorch, scikit-learn, OpenCV, Llama…… ● よく使うエディタ:vi

Slide 4

Slide 4 text

©2024 connectome.design inc. / ITO Akihiro 最近増えたガジェット。 ● MINGDA 3Dプリンター ● PiCoder ● ActiveBuds(ChatGPT組込みイヤホン) ● PICO 4 ● EMAX Tinyhawk II(FPVドローンセット) ● HOVERAir X1 Smart

Slide 5

Slide 5 text

©2024 connectome.design inc. / ITO Akihiro PiCoder - Compact DIY Raspberry Pi Pico Learning Kit https://shop.sb-components.co.uk/products/picoder-compact-diy-raspberry-pi-pico-learning-kit

Slide 6

Slide 6 text

©2024 connectome.design inc. / ITO Akihiro とあるイベントの懇親会にて。 「柵が無くても動物が逃げないようにする装置を探してるんだよね」  「あー、アメリカの犯罪者がつけるGPSの足環みたいな?」 「そうそう!」  「ビリビリっと来るのは別として、そんなに難しくないのでは?」 「できたら買うよ!」 ※機密保持の関係で脚色しています。

Slide 7

Slide 7 text

©2024 connectome.design inc. / ITO Akihiro 「PiCoderの出番が訪ずれたのでは?」 ● PiCoderのRasPi PICOで動かせるはず。 ● GPS HAT探す→L76B GPSモジュールがすぐ見つかる→マルツオンラインで発 注。2600円。 ● 外で動かせるように5Vの電源確保→手持ちのモバイルバッテリーでOK。 ● コード書く→[次へ]

Slide 8

Slide 8 text

©2024 connectome.design inc. / ITO Akihiro Thonnyでコーディング。公式リポジトリもある。

Slide 9

Slide 9 text

©2024 connectome.design inc. / ITO Akihiro GPS座標の距離計算→概要は知っていたが実装面倒くさい。 ● 座標値の差の二乗和の平方根、ではない。 地球は丸いのだ。 ● 面倒なのでChatGPTにお願いする。 Prompt:「2地点間のGPS座標から距離を計算するPythonコードを書いて。数百メートル程度 までの精度でよいです。」 →Haversine公式を使ったコードをばっちり書いてくれた。 (一部コード抜粋) R = 6371000.0 # 地球の半径(m) a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2 c = 2 * atan2(sqrt(a), sqrt(1 - a)) distance = R * c # 2点間の距離(m)

Slide 10

Slide 10 text

©2024 connectome.design inc. / ITO Akihiro 基本ロジック。 1. 起点の座標を取得して保持。 2. 移動中の現在地を更新しながら距離計算。 3. 閾値を超えたらブザーを鳴らす。 しかし!デモ的にはこれではつまらん。 せっかく色々ついてるので使いたい!

Slide 11

Slide 11 text

©2024 connectome.design inc. / ITO Akihiro 「やっぱりビリビリっとさせたい」 やはりビリビリっとしたいよね、でも危ないかもね、ってことで探してみ ると「電子びっくり箱キット」を発見。こちらもマルツオンラインで購入。 1100円。 久しぶりにハンダゴテ使って組み立て。 ちょっと間違えたりしたけど、無事ビリッとくる回路が完成。 これを、PiCoderのRelayに繋ぎ、 閾値超えたタイミングで relay1.on() とするだけ。簡単簡単。

Slide 12

Slide 12 text

©2024 connectome.design inc. / ITO Akihiro 動作の可視化は大事。 ● 取得した座標をリアルタイムでモニターに表示。 ● 起点からの距離を2個のLEDで表現。 起点は白、現在地は青、閾値に迫ったら黄、超えたら赤点滅。 可視化のおかげでドキドキ感(?)が大幅アップ。

Slide 13

Slide 13 text

©2024 connectome.design inc. / ITO Akihiro ハードとソフト合わせて遊べる点が最高。 あれこれ組み込まれているおかげでアイデアも膨らむし、 すぐ実装して動かせるので楽しい。 ● 構想と設計:数日間なんとなく考えてた ● コード量: main.py:約300行 picoderControl.py:約70行 picoderLEDMatrix.py:約160行 ● 実装期間:半日 x 2くらい。 イベントドリブンではなくループ待機処理なので ステータス管理が若干面倒。 ● 初治験者:Special Thanx to @tarimo34, @repondreyou1 完成品

Slide 14

Slide 14 text

©2024 connectome.design inc. / ITO Akihiro 伊藤明裕/ITO Akihiro ● 秘密結社ビリビリ団 おしまい。 ©2024 Secret Society BiliBili Gang / ITO Akihiro