![]() ![]() |
![]() |
|
![]() |
||
![]() |
すべて | グループ指定なし | Dx団 | Palm | WinCE | Zaurus | Mac | 電卓 | PDA総合 | Smartphone
AirPods Pro の性能を上げるための簡単な方法
自分の時間を確保するために必要な二つの家電
遅いインターネット回線を少しでも改善する方法
自宅で使うMS Office 最適なプランはどれ?
寝るときの布団が冷たい、寒さ対策の決定版
2025/04 «
31
» 2025/06
2025 年 5 月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
4月
03
WTW四国のドローンレース集計システム実装例
昨年のNaka Drone Racing 2024以来育ててきたGoogle Sheetによるレース集計システムを紹介します。まだまだ未完成ですが、いくつかのレースを経て役に立つものになりつつあります。またTinyViewPlus v0.9.33 beta6の通知機能を利用しリアルタイムな更新も可能となりました。
その概要とプログラム全てを公開いたします。使い方や細かい動作までは説明しきれないので、勝手に参考にしてもらったり、使える部分は再利用をしてください。という放任主義です、悪しからず。
[ システムの概要 ]
WTW Tokushimaのドローン部長による場内PAおよび配信システムの一部であるTinyViewPlusと集計操作用のMacBook Airを連携して行います。
流行っているのでChatGPTに書いてもらった絵です。何となくな感じであまり正確にシステムを表現しているとは言えません。
[ oscrcv.py ]
oscrcv.pyスクリプトはTinyViewPlusからのOSCプロトコルによる通知で受信したデータをGoogle SheetにPOSTします。データの受信を確実にするためにoscrcv.pyはTinyViewPlusが稼働しているWindows PC上で稼働するようにしています。また予選、決勝などのレース毎(あるいはGoogle Sheetの切り替え)にoscrcv.pyの起動パラメータを指定して立ち上げ直す必要がありますので、MacBook AirからsshでTinyViewPlusのPCにログインして行なっています。
# oscrcv.py
import argparse
import math
from pythonosc import dispatcher
from pythonosc import osc_server
import json
import requests
import time
import datetime
url = ""
url1 = "https://script.google.com/macros/s/AKfycbzDg0hHdgDlE_qYEngvYBBqYDummyssJ_sA_fmstVcXgyyx-KMem32_lbSoC8gdAhgg/exec"
url2 = "https://script.google.com/macros/s/AKfycbw7_T9Z4eWVWbybGm2IhXsazDummyRVwOjrQ_OcuowXC2yV-onDk0ppOxefZdZNQHQh/exec"
sheetname = ""
sh1 = "練習"
sh2 = "予選ヒート1,2"
sh3 = "予選ヒート3,4"
sh4 = "勝ち上がり戦入力"
def timeformat(seconds):
td = datetime.timedelta(seconds=seconds)
minutes, seconds = divmod(td.total_seconds(), 60)
return f"{int(minutes):02d}:{seconds:05.2f}"
def oschandle(addr, *args):
global url
global sheetname
print(addr)
print(args[0])
print("")
timestamp = time.strftime('%Y/%m/%d %H:%M:%S')
args3 = args4 = ""
if (len(args) > 3):
if (isinstance(args[3], float)):
args3 = "{:05.2f}".format(args[3])
else:
args3 = args[3]
if (len(args) > 4):
if (isinstance(args[4], float)):
args4 = timeformat(args[4])
else:
args4 = args[4]
data = {
"timestamp" : timestamp,
"addr" : addr,
"arg0" : args[0],
"arg1" : args[1] if (len(args) >
03 | 2025/04 | 05
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 - - -
この広告は、90日以上更新していないブログに表示しています。
広告を非表示にする
広告を非表示にする
広告を非表示にする
広告を非表示にする
id:no61
この広告は、90日以上更新していないブログに表示しています。
コメント ( 3 )
Not Found
We are sorry, but, the blog or user you are looking for can not be found.
Checkout some of the blogs in our showcase.
Powered by Typepad
Top
私の自宅には人が転がり込んできたり下宿したりという事が多かった。 そんな一緒の屋根の下で暮らした人達の中に私の…
金融資産1000万円という最初のゴールをいかに早く達成するかが重要
神経内科医ちゅり男のブログ
2020-09-10 06:55:01
手越のゲームキングダム by OPENREC 加藤純一さんゲスト回がめちゃくちゃ楽しかった件
踊る愛の魔法
2020-09-10 14:45:07
アクセシビリティに配慮したAndroidアプリを作るために、必要なこと
Fenrir Engineers
2020-09-10 14:43:48
蟹の半身みたいなWi-Fiルーター ASUS RT-AX3000に買い替えたら自宅Wi-Fiが高速化され…
I AM A DOG
2020-09-10 10:00:13
ドコモ口座を悪用した不正送金についてまとめてみた
piyolog
2020-09-08 05:44:31
痛いもんは痛い
ナゲブログ
2020-09-08 23:57:39
こんにちは、ナゲです。 前回書いた『やめなきゃなんでもいい』という記事、色々な方に読んでもらい大変嬉しく思いま…
Web口振受付と即時口振に頼らなければならない新型決済スキームの問題
novtanの日常
2020-09-10 09:51:00
ドコモ口座の問題はシステム的な部分でいうと「本人確認と認証が甘い」に尽きるんですが、それ以前の問題として、こ…
Rails未経験でRailsエンジニアとして入社して感じたメドピアのエンジニア文化
メドピア開発者ブログ
2020-09-10 10:00:03
自民党総裁選 候補者の演説まとめ
Chikirinの日記
2020-09-08 17:18:11
「ドコモ口座」を利用した不正送金が気になりすぎて自分でまとめてみた
最終防衛ライン3
2020-09-09 16:30:06
「ドコモ口座」+「Web口座振替受付サービス」の悪用 簡単な時系列 「Web口座振替受付サービス」のセキュリティがガ…
二人で絶対に半分つ
まばたきをする体
2020-09-10 13:28:01
肉まんが5個しかない。 昨日行きつけのスーパーで見つけた。このスーパーでは夏の間は肉まんを陳列しないので、秋に…
2020年8月の劇場(備忘録)
stage note archive
2020-09-08 20:00:13
お友達とツイッターでやりとりしてたときに、「感染症対策としてこんなこともしてる、って話を具体的に出してもらう…
BIGLOBE SIM ナノ(データ通信) 月額900円(税別)~ nanoSIM_KIT_W
IIJ IIJmio SIM 音声通話 パック みおふぉん IM-B043
¥ 1,068
This Account has been suspended.
Contact your hosting provider for more information.
Eduroamでは所属する機関の学生・教職員が持つクレデンシャルを利用して認証を行うため、個人や所属機関が特定されてしまうと言う問題 ((例えば[email protected]というアドレスで認証すればSFCに所属しているのがわかってしまいます)) がありました。その問題を解決するため学認では一時的に仮名のクレデンシャルを発行する仮名アカウント発行システムというシステムを運用しています。
SELECT max(post_date) FROM wp_posts WHERE (1=1) AND post_date_gmt <= '2011-08-24 00:12:59' AND (post_status = 'publish') AND post_status != 'attachment' GROUP BY year(post_date), month(post_date), dayofmonth(post_date) ORDER BY post_date DESC LIMIT 0,1
SELECT min(post_date) FROM wp_posts WHERE (1=1) AND post_date_gmt <= '2011-08-24 00:12:59' AND (post_status = 'publish') AND post_status != 'attachment' GROUP BY year(post_date), month(post_date), dayofmonth(post_date) ORDER BY post_date DESC LIMIT 6,1
SELECT DISTINCT * FROM wp_posts WHERE 1=1 AND post_date_gmt <= '2011-08-24 00:12:59' AND (post_status = 'publish') AND post_status != 'attachment' AND post_date >= '' GROUP BY wp_posts.ID ORDER BY post_date DESC
SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_date < '2011-08-24 08:12:18' AND post_date != '0000-00-00 00:00:00' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC