2019年4月24日水曜日

キャンピングトレーラーのバッテリーの維持

フロート充電について

年に数回しか出動しないキャンピングトレーラーのバッテリーのメンテが大変です。ディープサイクルバッテリーを使えば空にしても大丈夫なんでしょうがなんせ高い。そこで、普通の自動車用バッテリーを使うわけですが、そうすると最初に書いたようにきちんとメンテしてやらないとあっという間に駄目になってしまいます。

いろいろ調べたらどうやらフロート充電というのをしてやればいいらしい。内容的には自己放電量と同程度の少ない電流で充電し続けるってことらしいです。そう言えばいまから40年ほど前、自動車整備学校の授業でバッテリーの充電方法を習った時「教科書には載っていないが実習用のバッテリーは微電流で充電し続けている。我々は細流充電法と呼んでいる」なんて教師が話してたのを思い出しました。

充電器その1 定電圧定電流

最初に作ったのは定電圧定電流DC-DCステップダウンコンバーターを使ったもので、ポテンションメータが3つ付いていて電圧と電流に加え、充電中LEDが消える電流を設定できるタイプのものです。

ダイオードやモジュールをつなぐコネクタをユニバーサル基板に搭載し、その基盤に上記のデコデコモジュールと電圧/電流計、コネクタ類を接続して、3Dプリンターで印刷した自作ケースに収めました。

まぁ、割とよくできたとは思ったのですが、それなりにサイズが大きいのと逆接続保護用ダイオードをバッテリーにつなぐコネクタの手前、電圧計のあとに付けたので Vf で数字が信用できないのではないかと…テスターで測ってやるとそれほど狂ってもいません…そのへんは素人なのであまり良くわかっていませんm(_ _)m

Flameer DC-DC 電源モジュール ステップダウン 電子部品 降圧 LM2596S

DC電源モジュール 7V-35V→1.25V-30V 3A 【降圧型・定電圧定電流】
モジュールの設定方法が詳しく書かれています。

充電器その2 定電圧 LED電圧計付き

次に作ったのがDC-DC定電圧ステップダウンコンバーターモジュールを用いたもので最大充電電圧を13.7Vほどに制限しています。今回は7セグLEDの電圧計付きのモジュールにしました。過熱保護と短絡保護も付いているとのことです。

LEDの左右のボタンは電圧計の表示を入力と出力に切り替えるためと、それぞれのキャリブレーション用です。LED左右の穴は表示が入力か出力かを示すLEDののぞき穴、上部の穴は出力電圧調整用のポテンションメータ用です。

このバッテリーはホンダのディオ用に購入したのですが購入直後に廃車となってしまったので取り外してABSのアセトン蒸しに使っています。アセトンが漏れ出したときのこと考えて屋外で蒸すのですがいちいちAC電源を引いたりするのが面倒なのでバッテリーでやっています。12V 40mm のファンは定格電流100mAなので一晩やっても1Ah程度のはずなのですが、充電器にかけると12.5Vから始まります。見ているとどんどん電圧があがってゆくので順調に充電しているようで、そのまま放置したら13.6と13.7を行ったり来たりするようになりました。

13.7V時の電流をテスターで測ってみると20mAくらいなのでフロート充電となっているようです。

こいつはかなりコンパクトにできたので割とお気に入りです。ちなみに電源は24V/1AのACアダプタ使いました。


このケースの.stlファイルは下記にて公開しています。
https://www.thingiverse.com/thing:3572054

電源モジュール パワーモジュール 調整可能 ステップダウン 電圧計 5A 75W DC-DC

充電器その3 定電圧 LCD 電圧・電流計付き

Aliexpressでデコデコを物色していたらLCDが付いていて電圧と電流が表示されるものを発見しました。なかなかおしゃれなので早速ポチ、2週間ほど経つと届きまして早速作成。といっても、線をつなぐだけなのでもっぱらCADで筐体の作成。

LCD左右のボタンは出力電圧調整用です。

13.7Vに調整して充電開始。ここで大問題が発生!最初は問題なく充電していたのですが、しばらく経って見にゆくと電圧が低い???ポテンションメーターを回しても全然電圧が変わらない???

まぁ、中華パーツに不良はつきものなので仕方ないかと^^;こんな時のために基本的中華パーツは2個単位で注文しているのです。早速予備に交換して充電開始、しばらくすると同じ現象…え〜、なんで〜とAliexpressの商品ページを開いてしげしげ見ると入力電圧が5〜23V、しかも20V以内で使えと書いてある…24V入れちゃったから壊れたのね(;´д`)

仕方がないので再注文、2週間後に再組み立て、今回は余っていたノーパソ用のACアダプタ16.5V/3Aを使用しました。

13.7V時の電流は100mA、このバッテリーは軽自動車用の44B19L。こんなもんでいいのかな?翌日見たら0.01AになっていたからOKでしょう。

PS:キャリブレーション方法を探していたら「バッテリー充電には使用しないでください」と書いてあるショップがありました><;ダメなんだ…

2019年4月12日金曜日

IONIC4 で Android用がビルドできない。

またまた、ハイブリッドアプリを作ることになり IONIC の登場です。

IONIC に限ったことではありませんがOSSのソフトってガンガンバージョンアップするのはいいのですが互換性が…もっとも仕様変更よりもバグで動かなくなることが多々あるとは思うのですが…

前回の IONIC3 を使ったハイブリットアプリ作成時も Android Studio のバージョンがあがってあれこれ小細工しないとビルドできず苦労しました。なんとかリリースにこぎつけたのですが、その後、変更以来が来てちょこっと直してビルドしようとしたらエラー><;自分が普段使っているマシンはどんどんバージョンアップしてしまいます…

いやはや…ということで、それからは開発環境をまるごと仮想マシン化して環境をそのまま保存することにしました。

今回ははじめから仮想マシン上に Xubuntu 18.04 で開発環境を作りビルドはこの仮想マシンにて行い、コーディングとデバッグは sshfs にて接続して普段遣いのマシンで行うことにしました。

さて本題です。諸々を新規インストールして空のアプリをビルドすると「Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio」

あらあら、例によって Android Studio の Gradle が見つからないと…
find で探してみます。

[kiya@coins-dev coins]$ find / -name "gradle" -type f 2>/dev/null
/snap/android-studio/73/android-studio/gradle/gradle-4.10.1/bin/gradle
/home/kiya/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1/bin/gradle
/home/kiya/.gradle/wrapper/dists/gradle-4.10.3-all/81msde2dx9p4vji0mjgtvxkcb/gradle-4.10.3/bin/gradle

なんか変なところにあるけど ~/.profile にパスを追加
# ちなみに /snap の方は実行権

# Android SDK のパス
export ANDROID_SDK_ROOT=${HOME}/Android/sdk
# avdmanager, sdkmanager
export PATH=${PATH}:$ANDROID_SDK_ROOT/tools/bin
# adb, logcat
export PATH=${PATH}:$ANDROID_SDK_ROOT/platform-tools
# emulator
export PATH=${PATH}:$ANDROID_SDK_ROOT/emulator
# gradle
export GRADLE_ROOT=${HOME}/.gradle/wrapper/dists/gradle-4.10.3-all/81msde2dx9p4vji0mjgtvxkcb/gradle-4.10.3
export PATH=${PATH}:$GRADLE_ROOT/bin

無事ビルドできました。

2019年4月9日火曜日

Ionic4 で Could not install from "android" as it does not contain a package.json file.

Ionic4 を新規インストールしました。Android プラットフォームを追加しようとするとエラーが><;

$ ionic cordova prepare android
? Platform android is not installed! Would you like to install it? Yes
> cordova platform add android --save
{ Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "android" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kiya/.npm/_logs/2019-04-09T04_27_30_999Z-debug.log
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:125:23)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:970:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  stderr:
   'npm ERR! code ENOLOCAL\nnpm ERR! Could not install from "android" as it does not contain a package.json file.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /home/kiya/.npm/_logs/2019-04-09T04_27_30_999Z-debug.log\n',
  code: 1 }
[ERROR] An error occurred while running subprocess cordova.
     
        cordova platform add android --save exited with exit code 1.
     
        Re-running this command with the --verbose flag may provide more
        information.

はてさて何が起こったのか…

とりあえずインストールマニュアルを見ると(マニュアル見ながらインストールしろ!と自分に突っ込みながら^^;)Ionic3 のときとはちょっと違っていて環境変数が不足しているよう…

# Android SDK のパス
export ANDROID_SDK_ROOT=${HOME}/Android/sdk
# avdmanager, sdkmanager
export PATH=${PATH}:$ANDROID_SDK_ROOT/tools/bin
# adb, logcat
export PATH=${PATH}:$ANDROID_SDK_ROOT/platform-tools
# emulator
export PATH=${PATH}:$ANDROID_SDK_ROOT/emulator

~/.profile に追加後、念のため再起動後に再実行すると

$ ionic cordova prepare android
? Platform android is not installed! Would you like to install it? Yes
> cordova platform add android --save
{ Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "android" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kiya/.npm/_logs/2019-04-09T05_06_37_182Z-debug.log
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:125:23)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:970:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  stderr:
   'npm ERR! code ENOLOCAL\nnpm ERR! Could not install from "android" as it does not contain a package.json file.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /home/kiya/.npm/_logs/2019-04-09T05_06_37_182Z-debug.log\n',
  code: 1 }
[ERROR] An error occurred while running subprocess cordova.
     
        cordova platform add android --save exited with exit code 1.
     
        Re-running this command with the --verbose flag may provide more
        information.

あれれ?同じエラーが…

"Could not install from "android" as it does not contain a package.json file."をぐぐってみると iOS で同じ現象に出会ったという人が!その人は ios/ というディレクトリを削除したらエラーが出なくなったとのこと。早速 android/ ディレクトリを削除して再実行すると正常に追加できました\(^_^)/