このサイトは、管理人アダムによる自律航行船舶の開発記録です。以下のような技術要素について研究・開発を行っています。
各技術要素ごとに記事をまとめ、リンクさせていく予定です。
Raspberry Pi
エデンの頭脳です。基本的にはRaspberry Pi上のPythonで処理を行っていきます。ラズパイはとんでもなく素晴らしいハードウェアです。一度は触ってみることをおすすめします。またプログラミングの学習教材としてもおすすめです。学習教材としてはArduinoもおすすめしたいですが、エデンではVPN等のネットワーク環境も使用したいので手軽にRaspberry Piにしてしまいました。
サーボモーターの制御
エデンの舵、カメラのパン・チルトに使います。
ブラシレスモーター/ESC
エデンの動力はブラシレスモーターです。ブラシレスモーターはブラシモーターと違い、ESCによる制御を必要とします。ESCをRaspberry PiからPWMで制御します。
カメラ
エデンを遠隔操作する際に周囲の安全を確認するために使用します。
GPS
エデンは流されて失われた歴史があるとかないとか。2度と流されて失われない為に、位置情報を正しく取得する必要があります。
電子コンパス
GPS然りスマホには当然のように搭載されていますが、船舶の航海にコンパスはマストアイテムです。学生の頃は『三角関数なんて社会に出たら絶対に使わない』と思っていましたが、タンジェントとかアークタンジェントとか最小二乗法とか、『あぁ~そんなのあったなぁ(遠い目)』となっています。Arduino用のC言語のコードが参考になります。
ネットワーク
Raspberry Piにモデムを繋いで4Gの通信をしようと当初考えていましたが、Raspberry Pi側の負荷が大きくなってきたので、モバイルルーター的な物でオフロードさせます。また、誰でも操船できてしまうのは困るのでVPNを構築します。
電力
当初は船型の自由度から18650のリチウムイオンバッテリーを組み合わせて、BMSで制御しようかと思っていました。ですがアダムの懐事情によりBMS内蔵のLiFePOバッテリーを使用することにしました。BMS内蔵とは言え太陽光パネルと充電用のコントローラー、変圧回路等が必要になります。
UI(ユーザーインターフェース)
スロットル、舵、カメラなどは、Xboxのコントローラーを使って操船します。ブラウザでコントローラーからのインプットを読み取り、サーボ等を制御しています。GPSによる位置情報はGoogleMapのJavascriptAPIを使用してプロットします。また船首の方位もGoogleMap上のピンの向きで表現します。JavascriptとPythonとC言語を同時に眺めていると、とても混乱します幸せです。
エデン開発の軌跡
-
Raspberry Piでカメラ映像をストリーミングする
RaspberryPiにカメラモジュールv3を接続してストリーミング配信を試してみました。とても簡単に配信できます。
-
Raspberry Piで固定IP
Raspberry Piで固定IPの設定をします。dhcpcdに設定していきます。
-
【失敗談】USB型の昇圧基盤ではLiFePO4を充電できない件
AmazonでUSB型の昇圧基盤を衝動買いしました。買い物をするときは、商品説明をよく読んでから買いましょう、というお話です。
-
中華製4Gドングルを使ってみる
L-03Fを買おうと思いAmazonを徘徊していたら、『4G LTE』なる中華製4Gドングルを見つけました。『痛い目見てなんぼ』と思いながら買ってみたら思いの外良いアイテムでした。
-
WebSocket / Socket.io を使用した リアルタイム GPIO 制御によって純粋なFlask+SSLへのPOSTで起きる遅延は解消されるのか?
WebSocket/Socket.io化することでFlask+SSLの環境よりもネットワークの遅延を10分の1にすることができました。 元は200msだったところから、平均で21.9msまで改善しました。 昔やってたErlangも脳裏がよぎりましたが、そっとじ。
-
Raspberry PiにSoftEther VPN サーバをインストールして外部からアクセスする
Raspberry PiにSoftEther VPN サーバをインストールして、別のVPNサーバとカスケード接続することで外部からアクセスできるようにします。