Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
インプット②ミニバスサイネージの紹介
Search
Satoshi Gachi Fujimoto
March 07, 2023
Technology
0
140
インプット②ミニバスサイネージの紹介
公共交通オープンデータ × ミニサイネージ × 地域課題解決プチハッカソン
熊本産MaaSミニサイネージ活用勉強会
インプット②ミニバスサイネージの紹介の資料です
Satoshi Gachi Fujimoto
March 07, 2023
Tweet
Share
More Decks by Satoshi Gachi Fujimoto
See All by Satoshi Gachi Fujimoto
バスあと何分ミニサイネージ
satoshirobatofujimoto
0
91
高専で制御を、大学でセンシングを学び、次は脳みそ
satoshirobatofujimoto
0
260
画像生成AIを使って勝負しよう
satoshirobatofujimoto
1
110
ガチマナ会 vol.1
satoshirobatofujimoto
0
210
画像生成AIを使って勝負しよう
satoshirobatofujimoto
0
210
画像からプロンプトを考えて最も似ている画像を生成した人が勝ちのゲーム@AIミーティング
satoshirobatofujimoto
0
150
VPS研究者が語る”VPS概論”
satoshirobatofujimoto
0
400
画像からプロンプトを考えて最も似ている画像を生成した人が勝ちのゲーム
satoshirobatofujimoto
0
200
OpenAI 新機能まとめ(Function callingとAdd your data編)
satoshirobatofujimoto
0
250
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
23k
古き良き Laravel のシステムは関数型スタイルでリファクタできるのか
leveragestech
1
610
「それはhowなんよ〜」のガイドライン #orestudy
77web
9
2.4k
テキスト解析で見る PyCon APAC 2025 セッション&スピーカートレンド分析
negi111111
0
270
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming
tomzoh
0
170
Re:VIEWで書いた「Compose で Android の edge-to-edge に対応する」をRoo Codeで発表資料にしてもらった
tomoya0x00
0
260
Amebaにおける Platform Engineeringの実践
kumorn5s
6
890
TopAppBar Composableをカスタムする
hunachi
0
170
「ラベルにとらわれない」エンジニアでいること/Be an engineer beyond labels
kaonavi
0
240
FinOps_Demo
tkhresk
0
120
AI Agentを「期待通り」に動かすために:設計アプローチの模索と現在地
kworkdev
PRO
1
270
IVRyにおけるNLP活用と NLP2025の関連論文紹介
keisukeosone
0
170
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Music & Morning Musume
bryan
47
6.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
KATA
mclloyd
29
14k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.8k
Typedesign – Prime Four
hannesfritz
41
2.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Transcript
2023/03/07 公共交通オープンデータ × ミニサイネージ × 地域課題解決プチハッカソン 熊本産MaaSミニサイネージ活用勉強会 インプット② ミニバスサイネージの紹介
がちもとさん 本名は、藤本賢志(ふじもとさとし) KumaMCNという技術コミュニティを運営 株式会社ナレッジコミュニケーションでAI・XRアプリ開発 崇城大学古賀都市計画研究室の技術顧問でまちづくりの研究 高専で制御を、大学でセンシングを学び、次は脳みそ @sotongshi
こんなことありませんか? 目の前をバス が通り過ぎた しかも2台同時に 次のバスは 30分後
自分専用のちっちゃなミニサイネージを作りました • 自宅やオフィスに自分だけのサイネージが欲しい • 時刻や〇停前ではなく「あと何分」だけが知りたい • 2021年11月ごろにGTFSリアルタイムの公開
M5Stackとは? • ディスプレイ付きマイコン • WiFiに繋げられる • 様々なセンサーやアクチュエータを取り付け可能 https://docs.m5stack.com/en/core/basic_v2.6 https://www.switch-science.com/products/7363
こんなに ちっちゃい 磁石でくっつく
その他 https://www.switch-science.com/products/8670 https://www.switch-science.com/products/6470 https://www.switch-science.com/products/7359
その他 https://www.switch-science.com/products/7483 https://www.switch-science.com/products/8191
GTFS(General Transit Feed Specification)とは? • 標準的なバス情報フォーマット • バスきたくまさんで使用しているデータをオープンデータ化 • GTFS(静的):経路情報や便情報など(CSV形式)
• GTFSリアルタイム:車両の移動状況に関する情報や車両の位置情報など(JSON形式) https://km.bus-vision.jp/kumamoto/view/opendataKuma.html 事業者情報 agency.txt 事業者追加情報 agency_jp.txt 運行区分情報 calendar.txt 運行日情報 calendar_dates.txt 運賃属性情報 fare_attributes.txt 運賃定義情報 fare_rules.txt 提供情報 feed_info.txt 営業所情報 office_jp.txt 経路情報 routes.txt 経路追加情報 routes_jp.txt 通過時刻情報 stop_times.txt 停留所・標柱情報 stops.txt 翻訳情報 translations.txt 便情報 trips.txt GTFS(静的) GTFSリアルタイム
システムの流れ 1. 運行前にGTFS(静的)からデータを更新 2. M5StackのSDカードにWiFi設定、乗車停留所と降車停留所を書き込んでおく 3. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得 GTFS リアルタイム Lambda
S3 API Gateway EventBridge M5Stack GTFS(静的) Lambda 停留所 あと何分
M5Stack 初期設定(Windows) 1. ドライバー(CH9102_VCP_SER_Windows)のインストール https://docs.m5stack.com/en/quick_start/m5core/arduino 2. M5Burner Win10 x64 v3.0のインストール(ファームウェアの更新)
https://docs.m5stack.com/en/download 3. UIFlowでプログラミング https://flow.m5stack.com/ 4. USBで接続し、プログラムをアップロード
UIFlowでプログラミング
運行前にGTFS(静的)からデータを自動更新 • EventBridgeを用いて毎朝4:15~5:30の間に15分おきにLambda関数(update)を実行 • Lambda関数(update) 1. GTFS(静的)データを取得 2. 提供情報(feed_info.txt)のfeed_versionが更新されていたらS3に保存 •
停留所情報(stops.csv)→ バス停一覧(stop_names.csv)を作成 • 経路情報(routes.csv) • 便情報(trips.csv) • 通過時刻情報(stop_times.csv) • 運行区分情報(calendar.csv) • 運行日情報(calendar_dates.csv) 3. 更新したか/最新かを返す S3 EventBridge GTFS(静的) Lambda
「あと何分」の情報を返すAPI • Lambda関数(minutes) 1. 乗車停留所→降車停留所の時刻表を作成 • 停留所情報(stops)から一致するバス停名のstop_idを取得 • stop_idに対応する通過時刻情報(stop_times)を取得 •
trip_idに対応する便情報(trips)を取得 2. service_idと一致する運行区分(calendar)と運行日情報(calendar_dates)から運行状況を確認 3. GTFSリアルタイムのTrip_Updateからtrip_idとstop_idが一致する通過時刻を取得 4. 通過時刻から現在時刻を引いて「あと何分」のリストを返す GTFS リアルタイム Lambda S3 API Gateway
M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得 • 必要な情報だけを取得できるAPIを作っておけば、簡単に連携できる • ノーコードでプログラミング • ユーザーはWiFi、乗車停留所、降車停留所の情報をSDカードに書き込んでおくだけ • ボタンが3つあるので、ページの切り替えが可能
私の親も60代になり高齢者と呼ばれ始める免許返納予備軍 • 息子:事故る前に免許返納してほしい • 母:免許返納するなら毎日あんた運転してくれっとね? • 息子:それはちょっと