センサ・ケーブルの防水処理
先日の水温センサケーブル、水中に入れて、水深と水温の関係を測ろうとしたのですが失敗でした。
原因は、ケーブルに浸水してました。
これが、センサを取り付けた付近だけでなく、1mのセンサ間の50㎝位のところで切ってもしっかり浸水してる。
まさかと思って、ケーブル自体の浸水を疑って、しばらくぬるま湯につけてました。
さすがにケーブル自体が水を通すことはなさそう。
カタログ的には耐油性がある、と書いてあるし。
やっぱり先端の処理に問題あるだろうということで、いくつか試料を作成。
エポキシ樹脂封止、ホットボンド、自己融着テープ、熱収縮チューブ。
インクで色を付けた水に入れました。
何も処理してないものも比較に入れると、数分で水が上がってきました。
未処理、熱収縮チューブはすぐに浸水。
ほか、エポキシ樹脂封止、ホットボンド、自己融着テープは一晩たっても浸水なし。
ただし、ホットボンドはケーブルとの接着が悪いので屈曲させると剝れて隙間ができてきます。
ただし、エポキシ樹脂も同様。
自己融着テープは意外と浸水なし、屈曲させても変化なし。
もう一つ、塗れるゴムというのも持ってるものの中から見つけたのでテスト。
しっかり乾かしてしまえば耐水性はあります。
ただし、中途半端な感想だと、水でふやけて浸水。もともと水性なので水は通すということでしょうか。
原因は、ケーブルに浸水してました。
これが、センサを取り付けた付近だけでなく、1mのセンサ間の50㎝位のところで切ってもしっかり浸水してる。
まさかと思って、ケーブル自体の浸水を疑って、しばらくぬるま湯につけてました。
さすがにケーブル自体が水を通すことはなさそう。
カタログ的には耐油性がある、と書いてあるし。
やっぱり先端の処理に問題あるだろうということで、いくつか試料を作成。
エポキシ樹脂封止、ホットボンド、自己融着テープ、熱収縮チューブ。
インクで色を付けた水に入れました。
何も処理してないものも比較に入れると、数分で水が上がってきました。
未処理、熱収縮チューブはすぐに浸水。
ほか、エポキシ樹脂封止、ホットボンド、自己融着テープは一晩たっても浸水なし。
ただし、ホットボンドはケーブルとの接着が悪いので屈曲させると剝れて隙間ができてきます。
ただし、エポキシ樹脂も同様。
自己融着テープは意外と浸水なし、屈曲させても変化なし。
もう一つ、塗れるゴムというのも持ってるものの中から見つけたのでテスト。
しっかり乾かしてしまえば耐水性はあります。
ただし、中途半端な感想だと、水でふやけて浸水。もともと水性なので水は通すということでしょうか。
水上ドローン、現場で試運転
水上ドローン仕組みは完成。
水上ドローン。一通り思った通りに動かせるようになりました。
学生もちょっと教えただけで自由に操縦できるようになりましたので素直に動いてる感じです。
youtubeに動画をアップしたのでリングを貼ります。
この次は、Pixhawkで自動操縦してみます。
学生もちょっと教えただけで自由に操縦できるようになりましたので素直に動いてる感じです。
youtubeに動画をアップしたのでリングを貼ります。
この次は、Pixhawkで自動操縦してみます。
ArduinoNanoEveryでGPSデータロガーその3、完成
ブレッドボードで作った回路をハンダ付けして作り直しました。
使ったのは、ブレッドボード同じ配線でハンダ付けできる基板。
複雑でない回路なら割と便利に使えます。
複雑な回路は穴が裏でつながってて接点数が足りなくなるので裏で適当にカットして使えばOKです。
センサーは、温度センサを4本取り付けました。
3mのケーブルの途中に4か所取り付けて、0(水面)、1,2,3mの水深の温度をGPSで座標と一緒にとるロガーにしました。
防水のためにタッパーに入れて蓋に穴を開けて、ホットボンドで固定。
ボートに乗せて走らせながら、ちょっと水がかかるくらいなので、このくらいで十分でしょう。
Arduino Nano Every (シングルボード)
使ったのは、ブレッドボード同じ配線でハンダ付けできる基板。
複雑でない回路なら割と便利に使えます。
複雑な回路は穴が裏でつながってて接点数が足りなくなるので裏で適当にカットして使えばOKです。
センサーは、温度センサを4本取り付けました。
3mのケーブルの途中に4か所取り付けて、0(水面)、1,2,3mの水深の温度をGPSで座標と一緒にとるロガーにしました。
防水のためにタッパーに入れて蓋に穴を開けて、ホットボンドで固定。
ボートに乗せて走らせながら、ちょっと水がかかるくらいなので、このくらいで十分でしょう。
Arduino Nano Every (シングルボード)
ArduinoNanoEveryのアナログリファレンス
ArduinoNanoEveryのアナログ入力に温度センサを接続して温度を測ろうと思ってます。
使用する温度センサは、COMSでS-8100Bというのが4つ在庫でありました。
データシートではおおよそ、
-30度で出力2V
90度で出力1V
となってますので測定電圧をVoutとするとおよそ
Temp=90-(Vout-1.0)*120
で計算できます。
次にArduinoNanoEveryのアナログ入力を5Vリファレンスで測定すると分解能が10ビットなので
5/1024=0.0049V
センサ出力が120度/Vだとすると最小分解能が0.097度となります。
約0.1度の分解能なのでそのままでもよさそうですがもう少し高精度に測ろうと思ったら、アナログリファレンスを変えることが考えられます。
analogReference()の説明のページ
https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/
には、ボードによって選択できるリファレンス電圧とタイプが記載されていますが、ArduinoNanoEveryがどのタイプが使えるかはピンときませんでした。
そこで、搭載されているAtmega4809のデータシートを探すと以下にありました。
https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega4808-4809-Data-Sheet-DS40002173A.pdf
176/551ページ18.51にあります。
0.55, 1.1, 1.5, 2.5, 4.3Vの内部リファレンスが使えると書いてあります。
この値と先のanalogReference()の説明のページとを比較すると、どうやら Arduino megaAVR Boards (Uno WiFi Rev2)のリファレンスと同じようなので、
analogReference(INTERNAL2V5);
をプログラムに追加してみたらうまくコンパイルが通りました。
2.5Vリファレンスにすれば、温度センサの出力範囲に収まって分解能も2倍で約0.05度になります。
校正して使えば相対的な温度差は詳しくとれる感じになるんじゃないかと思います。
使用する温度センサは、COMSでS-8100Bというのが4つ在庫でありました。
データシートではおおよそ、
-30度で出力2V
90度で出力1V
となってますので測定電圧をVoutとするとおよそ
Temp=90-(Vout-1.0)*120
で計算できます。
次にArduinoNanoEveryのアナログ入力を5Vリファレンスで測定すると分解能が10ビットなので
5/1024=0.0049V
センサ出力が120度/Vだとすると最小分解能が0.097度となります。
約0.1度の分解能なのでそのままでもよさそうですがもう少し高精度に測ろうと思ったら、アナログリファレンスを変えることが考えられます。
analogReference()の説明のページ
https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/
には、ボードによって選択できるリファレンス電圧とタイプが記載されていますが、ArduinoNanoEveryがどのタイプが使えるかはピンときませんでした。
そこで、搭載されているAtmega4809のデータシートを探すと以下にありました。
https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega4808-4809-Data-Sheet-DS40002173A.pdf
176/551ページ18.51にあります。
0.55, 1.1, 1.5, 2.5, 4.3Vの内部リファレンスが使えると書いてあります。
この値と先のanalogReference()の説明のページとを比較すると、どうやら Arduino megaAVR Boards (Uno WiFi Rev2)のリファレンスと同じようなので、
analogReference(INTERNAL2V5);
をプログラムに追加してみたらうまくコンパイルが通りました。
2.5Vリファレンスにすれば、温度センサの出力範囲に収まって分解能も2倍で約0.05度になります。
校正して使えば相対的な温度差は詳しくとれる感じになるんじゃないかと思います。