関電プラントさんの依頼で、神戸大学さんと共同開発中のドローンのことが
電気新聞に掲載されました。
有料なので途中までしか記事が読めないですが、こちらになります。
https://www.denkishimbun.com/archives/415862
投稿者: miwa
JLCPCBに初めてプリントを依頼してみた
JLCPCBに初めてケースの製作を依頼してみました。
で、先ほど届きました。
7/26に依頼して8/3に到着なので約1週間でした。
今回は、精度や価格の面で、自分で出力するより良いかどうかを確認したくて依頼してみました。
光造形ということもあって、表面は全体的にツルツルしていて、見た目はきれいでした。
積層痕も強く目立つ感じではなく、仕上がりの印象は良かったです。

ただ、今回届いたパーツのうち、ふた側には反りが見られました。
酷暑なので、輸送時の熱でやられたのか、出力段階でのものなのかはわかりませんが。

MMスイッチ用のケースも頼んでみたのですが、こちらは明らかに出力時の問題ではないかと感じました。
使えなくはないのですが、形状の歪みは少し気になるところです。

今回はクーポンが使えて、全部(送料込)で465円でした。
自前のFDM出力と比べると、光造形だけあって表面のきれいさはかなり良いと感じましたが、反りのような気になる点もあり、精度面についてはもう少し見ていきたいところです。
とはいえ、この価格で比較材料を得られたのは十分な収穫でした。

下:FDM
テレメトリ通信ユニットの試作開発
現在、テレメトリ通信ユニットの開発を進めています。
現在は試作段階にあり、動作検証を中心とした各種調整を行っています。
試作機による評価では、500m以上での通信を確認しており、現在はデータパケットの最適化とエラー検知アルゴリズムの実装に注力しています。
特に、遅延を抑えつつ安定した通信を実現することを目標として、引き続き検証を進めています。
今後は、実環境での評価を継続しながら、筐体設計や構成の見直しも含めて製品化に向けた検討を進めてまいります。
なお、通信距離や仕様は使用環境・搭載条件等により変動する場合があります。
ArduPilot Lua エディタ v1.0 リリース
ArduPilot搭載機向けのLuaスクリプト開発ツールをリリースしました。
Mission Plannerなしで、直接フライトコントローラーにLuaスクリプトをアップロード・編集・削除できます。
主な機能
- Luaスクリプトのアップロード&機体再起動
- 機体上のファイルをエディタで直接編集
- ファイル一覧表示・削除
- Lua設定パラメータの確認・修正
- 自動再接続対応
動作環境・接続方法
- USB シリアル接続(ボーレート 115200)
- ArduPilot搭載機(PixHawk4、PixHawk6C、cubeBlack、cubeOrange 動作確認済み)
現バージョンの制限事項
- USB接続のみ対応(無線接続は次バージョンで対応予定)
- ボーレートは115200固定 ※ 無線のボーレートが115200なら動作するかも
注意事項
- フライトコントローラーにSDカードが挿入されている必要があります
- 接続に失敗する場合は、数回接続ボタンを押してみてください
今後のアップデート予定
- 無線接続(UDP/TCP)対応
- ボーレート選択機能
EXE単体で動作するため、インストール不要です。
下記よりダウンロードし、ZIPを解凍後、lua_dev_tool.exe を実行してください。
PHPフレームワーク「PoiPHP」を作りました
「余計な機能はポイ捨てジャーマン」
気軽に使える PHP フレームワークを作りました。
「ちいたん」という PHP フレームワークを愛用していたのですが、開発が終了して幾年月。
そこで、ちいたんの使い心地を参考に自分で作ったのが PoiPHP です。
余計なものはポイ。
必要なところだけ、シンプルにまとめたのが PoiPHP です。
・ファイルを置けば画面になる
・必要な時だけ Model を使う
・生 PHP の感覚で書ける
・ルールは最小限
“軽くて、迷わない”
そんなフレームワークです。
よかったら、気楽に触ってみてください。
👉 PoiPHP 公式サイトはこちら
👉 GitHub でソースを見る
※ちなみに、なつぽい選手とは何の関係もありません。
ブラウザからドローンにアクセス?Web Serial APIでPixhawkと繋いでみた
はじめに
ドローンや無人移動体のフライトコントローラーとして世界中で使われている「Pixhawk」。
通常、そのデータを確認するには専用ソフト(Mission PlannerやQGroundControl)をPCにインストールします。
しかし最近、「ブラウザ(ChromeやEdge)から直接シリアル通信ができる」というWeb Serial APIの存在を知り、ふと思いました。
「これを使えば、ブラウザだけでPixhawkの中身が覗けるんじゃね?」
今回はその検証の第1弾として、インストール不要・ブラウザのみでPixhawkの生データを受信するところまでを実践してみます。
Web Serial APIとは
ひとことで言えば、「OSの壁を越えて、ブラウザからハードウェアを直接制御できる技術」です。
これまではセキュリティの観点からブラウザがPCのハードウェアに直接触れることは制限されてきましたが、このAPIの登場により、WebアプリからArduinoやPixhawkといったデバイスを制御することが可能になりました。
実装:最小限のコードで繋いでみる
まずは、Pixhawkから送られてくる「生データ」を表示するための、シンプルなHTMLとJavaScriptを準備しました。
実装のポイント
1.ボーレートの設定: PixhawkのUSBポートは通常 115200 で通信しています。
2.バイナリの可視化: Pixhawkはデータをバイナリ(数値の列)で送ってくるため、JavaScriptで16進数の文字列に変換して表示させています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Pixhawk Web Serial Connect</title>
<style>
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #f4f4f9; padding: 30px; }
.card { background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); padding: 20px; max-width: 800px; margin: auto; }
h1 { color: #333; font-size: 1.5rem; }
.controls { margin: 20px 0; display: flex; gap: 10px; align-items: center; }
button { padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; font-weight: bold; transition: 0.3s; }
/* 接続ボタンのスタイル */
.btn-primary { background: #007bff; color: white; }
.btn-primary:hover { background: #0056b3; }
/* 切断ボタンのスタイル */
.btn-danger { background: #dc3545; color: white; }
.btn-danger:hover { background: #a71d2a; }
#clearBtn { background: #6c757d; color: white; }
.status { font-weight: bold; margin-left: 10px; }
.status.connected { color: #28a745; }
.status.disconnected { color: #dc3545; }
#console { background: #1e1e1e; color: #00ff00; padding: 15px; height: 400px;
overflow-y: scroll; font-family: 'Consolas', monospace; font-size: 13px; border-radius: 4px; }
.info { font-size: 0.9rem; color: #666; margin-top: 10px; }
</style>
</head>
<body>
<div class="card">
<h1>Pixhawk 接続テスト (Web Serial API)</h1>
<div class="controls">
<button id="connectBtn" class="btn-primary">Pixhawkに接続</button>
<button id="clearBtn">表示をクリア</button>
<span id="statusLabel" class="status disconnected">未接続</span>
</div>
<div id="consoleText">受信待機中...</div>
<div id="console"></div>
<div class="info">
※PixhawkをUSBで繋ぎ、Mission Planner等を閉じてから「接続」を押してください。<br>
※115200bpsで通信を開始します。
</div>
</div>
<script>
const connectBtn = document.getElementById('connectBtn');
const clearBtn = document.getElementById('clearBtn');
const consoleDiv = document.getElementById('console');
const statusLabel = document.getElementById('statusLabel');
let port;
let reader;
let keepReading = true;
// ボタン1つで接続と切断を切り替える
connectBtn.addEventListener('click', async () => {
if (port) {
// 切断処理
keepReading = false;
if (reader) await reader.cancel();
await port.close();
port = null;
// UIを元に戻す
statusLabel.innerText = "未接続";
statusLabel.className = "status disconnected";
connectBtn.innerText = "Pixhawkに接続";
connectBtn.className = "btn-primary";
return;
}
try {
port = await navigator.serial.requestPort();
await port.open({ baudRate: 115200 });
statusLabel.innerText = "接続済み";
statusLabel.className = "status connected";
connectBtn.innerText = "切断する";
connectBtn.className = "btn-danger";
keepReading = true;
readLoop();
} catch (err) {
console.error(err);
alert("接続に失敗しました: " + err.message);
}
});
async function readLoop() {
while (port && port.readable && keepReading) {
reader = port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) break;
const hexString = Array.from(value)
.map(b => b.toString(16).padStart(2, '0').toUpperCase())
.join(' ');
const span = document.createElement('div');
span.textContent = `[${new Date().toLocaleTimeString()}] ${hexString}`;
consoleDiv.appendChild(span);
if (consoleDiv.childNodes.length > 100) {
consoleDiv.removeChild(consoleDiv.firstChild);
}
consoleDiv.scrollTop = consoleDiv.scrollHeight;
}
} catch (err) {
console.error("読み取りエラー:", err);
} finally {
reader.releaseLock();
}
}
}
clearBtn.addEventListener('click', () => {
consoleDiv.innerHTML = '';
});
</script>
</body>
</html>
動作確認:ブラウザに流れる「生データ」
PixhawkをUSBでPCに繋ぎ、作成したページで「接続」ボタンを押すと……。


出ました!
黒いコンソール画面に、16進数の数字がザーッと流れ始めました。
この中には、機体の傾き、高度、GPSの状態といったあらゆる情報が詰まっています。
よく見るとデータの先頭に FD という文字が混ざっているのがわかります。これは MAVLink v2 という通信プロトコルの開始合図。ブラウザが正しくPixhawkの信号を捉えている証拠です。
まとめ
専用ソフトを一切立ち上げることなく、「ただWebページを開くだけ」でPixhawkとの通信に成功しました。
「ブラウザだけで動く」ということは、OSを問わず、URLを共有するだけで誰でも同じ解析ツールが使えるようになるということです。
注意点
1.ブラウザの制限(Safariは未対応)
ここが一番のポイントです。Mac標準の Safariは、Web Serial APIをサポートしていません。Macユーザーには「ChromeかEdgeを使ってください」と伝える必要があります。
2.ドライバー不要だが「認識名」が違う
Windowsでは「COM3」のように表示されますが、Macでは /dev/cu.usbmodem… のような名前で認識されます。Web Serial APIの選択ダイアログにはちゃんと出てくるので、それを選択すればOKです。
| ブラウザ | OS (Windows/Mac/Linux) | 対応状況 |
|---|---|---|
| Google Chrome | Windows / Mac | OK |
| Microsoft Edge | Windows / Mac | OK |
| Firefox | Windows / Mac | NG (非対応) |
| Safari | Mac | NG (非対応) |
メンテ困っていませんか?
サイトテック(株)社製のドローンのメンテナンスの件で、ご相談があり飛行調整を行いました。
同じようにお困りの方がおられましたらご相談ください。
窓口は株式会社D-eyes(D-wings)様となってます。
https://d-eyes.co.jp/
JapanDrone 2025 にMMスイッチ
DIC株式会社様のブースを間借りしてMMスイッチを展示させて頂きました。
ありがたや。

また、弊社が開発のお手伝いをさせて頂きました、株式会社manisonias様のドローンも
展示されてます。

ワイヤレスジャパン×ワイヤレス・テクノロジー・パーク2025


ワイヤレスジャパン×ワイヤレス・テクノロジー・パーク2025に出展しました。
全体的のは、オンライン診療からの薬や検体をドローンで迅速に運ぶという内容です。
歯学部の藤原先生のワイヤレス給電が何気にすごい。
30cmほど離れた距離でも可能で、しかも半導体を自作してるとのこと!
ブースの一部をお借りして、MMスイッチも展示させていただきました。
デジタル信号切替器「MMスイッチ」をよろしくお願いいたします。










