ブログ/こばさんの wakwak 山歩き Twitter

2017-03-29 いまこそ 東横INN むけに「NHKが映らない業務用テレビ」を売り込め!

いまこそ 東横INN むけに「NHKが映らない業務用テレビ」を売り込め!

| いまこそ 東横INN むけに「NHKが映らない業務用テレビ」を売り込め!を含むブックマーク

受信料訴訟、東横インに全部屋分の支払い命令 19億円


 ホテル各室にテレビがあるのに受信料が支払われていないとして、NHKがビジネスホテルチェーン大手「東横イン」とグループ会社に計約19億3千万円の支払いを求めた訴訟の判決が29日、東京地裁であった。中吉徹郎裁判長はNHKの主張を大筋で認め、請求額とほぼ同額の支払いをホテル側に命じる判決を言い渡した。NHKによると、判決で支払いを命じた額としては過去最高という。


 判決は、同グループの235のホテルにある約3万4千部屋について、受信料の支払い義務がある、と指摘。ホテル側は、これまで一定の割合の客室のみ受信料契約することでNHKと合意をしていた、と主張したが、判決は「放送法はNHKによる恣意(しい)的な契約免除を認めておらず、免除の合意が成立していたとは認められない」と判断し、ホテル側と契約が成立する14年までの2年間分の支払いを命じた。


(後略)


https://headlines.yahoo.co.jp/hl?a=20170329-00000058-asahi-soci

 2年ちょっと前に いまこそ宿泊業界むけに「NHKが映らない業務用テレビ」を売り出せ! という記事を書きました。


 その甲斐なく業務用テレビが売り出されることないまま、今度は 東横INN が血祭りに上げられてしまいました。

 私も出張では 1/2 くらいの割合で東横さんにお世話になってますので応援しないわけにはいきません。


 34000部屋(34000台)で、19億3000万円@2年 の請求を受けたとのことこと。

 割り戻すと 28382円@台・年

 うちはテレビがないため受信契約を締結してませんが、NHKを見るのに月額2365円もするんですか?

 私の月々のケータイ代より高いかもしれません(笑)


 東横INN に改めて提案です。

「NHK が映らない業務用テレビ」34000台を発注せよ!

 34000台のテレビ全て NHK が映らないテレビに更新してしまえば、もう 10億@年 を払い続ける必要がなくなります。


 東横INN さんを筆頭にして、様々な業界・個人に「NHK が映らない業務用テレビ」の普及が進むことを強く要望します。

2017-03-24 「いまは籠池問題よりもっと大事なことがある」と強弁してる方々へ

「いまは籠池問題よりもっと大事なことがある」と強弁してる方々へ

| 「いまは籠池問題よりもっと大事なことがある」と強弁してる方々へを含むブックマーク

 予想(期待)通りの展開になってきて自分でも笑いが止まりません。

2017/03/15 がんばれ!籠池理事長

2017/03/18 籠池問題に優先順位はない

 案の定、ネット上の売国奴たちは、「いまは籠池問題よりもっと大事なことがある」「籠池問題のせいで国会が機能停止してしまっている」「血税の無駄だ」と声をそろえています。

 「さっさと昭恵も国会で宣誓証言して、とっとと籠池を偽証罪で豚箱に送り込め」とは決して言いません。


 先に「(シロクロに問わず)もし私や妻が関係していたら総理も議員も辞任する」って言い切っちゃってるですから、明確な関係を証言した籠池氏を偽証罪に追い込まないと、安倍のほうが追い込まれちゃいますよ?

 「関係がないと言ったのは大嘘でしたが、宣誓していないので偽証罪にはなりません。そもそも嘘をついたからと言って辞職しないといけないと定めた法律はありませんから、嘘をついても何ら罪にはなりません」とでも開き直る気ですか。



 ところで「もっと大事なこと」と言うのは共謀罪や憲法改正のことですか? アベノミクス(笑)の続きですか??

 政府への信用が揺らいでいるのに、共謀罪は先に信用しろ って・・・ギャグを超えてますよ。


 契約相手が詐欺師かもしれないってときに、先に契約書へサインして、後で詐欺師かどうか確認する、なんて馬鹿がいますか!? 少なくとも詐欺師かどうかが白黒ハッキリするまでは契約書にサインしない、が普通でしょ




 以下、99%の側にドップリ浸かってる負け犬の私から見ての感想にすぎませんが、自身が1%側に所属してると信じてる人たちなんですよね、未だに安倍を信奉しているのは。

 特に メディア系・IT系 の人たちは「勝ち組」と錯覚なさってる方が多いので、その傾向が顕著に感じます。


 いまのステージは、1%の中で99%の粛正が始まった時期だと感じてますが、1%の中の1%に残りたい人たちが恥も外聞も捨てて「どこまでも僕は安倍さんに付いていきます!」と安倍への忠誠心をアピールしている感じかな。

 安倍信者は SNS 上での本名率が高い(身元を明かしている人が多い)のですが、そりゃ匿名ハンドル名じゃ「1%の中の1%」の選抜に加点になりませんからね(笑)


 「いまは籠池問題よりもっと大事なことがある」って人たちに聞きたいのですが、もし自民党が下野したとき次の政権でも、同じように主張して下さるのでしょうか。

 絶対に違いますよね。

 自民党(安倍教)にとって都合の悪いときだけ「もっと大事なことがある」ですよね?


 いくら SNS 上で安倍への忠誠をアピールしても、早晩、99%の側になるんですから、いい加減に諦めたほうがいいですよ。

 1%の中の1%にとって、以前までは必要だったけど、今はもう不要な人材なのですから。

 そろそろ目を覚ましましょうよ。

2017-03-20 どこの馬鹿が21世紀枠なんて考案したんだ?

どこの馬鹿が21世紀枠なんて考案したんだ?

どこの馬鹿が21世紀枠なんて考案したんだ?を含むブックマーク

 1ヶ月ぶりに献血へ。

 ちょうど待合室のテレビで高校野球やってて、いつもは採血中は雑誌を読んで過ごしているところ、始まった直後に呼ばれたこともあって、採血ベッドの上でもテレビ見てました。(前の人も野球を見ていたらしく、点いていたという理由もある)


 学校のグラウンドが甲子園の内野程度の広さしかなく、今の今まで一度も甲子園に来たことのなかった某T高校が「21世紀枠」として呼ばれたものの、その対戦相手は、何度か優勝経験のある強豪校として有名な某H学園。

 T高校のくじ運が悪かったといえばそれまでだが、素人が見ても分かる歴然とした実力差に、3回表の時点で見てて可哀想になってくるくらい。

 コールドゲームもなく9回まで強制させられる 公開処刑 という雰囲気


 「恵まれない(勝ち進んで出場することができない)学校にもチャンスを」と言えば聞こえはいいかもしれないが、サンドバッグの如くひたすら殴られっぱなしの試合はどうしたものか。残酷という感想しか沸かない。


 もしやるにせよ、せめて1回戦だけは21世紀枠どおしで対戦させるとか工夫があると思うんだが・・・

 古代ローマのコロッセオを思い起こして非常に胸くそが悪い。


 あーあ、いつもどおりテレビを切って雑誌を読んでりゃ良かった。

2017-03-18 籠池問題に優先順位はない

籠池問題に優先順位はない

| 籠池問題に優先順位はないを含むブックマーク

 森友学園に国有地を格安で売却した問題ですが、その過程における例外の連発は何らかの不当な政治力が働かないと起きえないとされています。

 まだ嫌疑がハッキリしていない時点で安倍総理は言いました。

もし私や妻が森友学園に関係していたとしたら総理も議員も辞任する

 別にクロと決まったわけでない段階で、こんな発言をなさいましたが、シロなら堂々としていたらいいのに、「関係があったら辞任する」なんて、森友学園の問題が真っ黒であることを先に知ってないと出ない発言です。


 安倍総理の発言を受けて、関係の有無に軸足が向いている矢先の寄付金問題とメール問題です。

 国有地の問題は、それら諸問題が解決すれば次に解明されるわけですから、急ぎたい気持ちもありますが、ここは順番が大事です。

 もし関係があれば、安倍総理は自身が発言したとおり辞任しないといけません。


 こういう政局のなか、なぜか森友問題を火消しする輩が沸いています。

 世論誘導代理店(20世紀までは広告代理店と呼ばれていた業界)からの指令があるのでしょう。

 彼らが好んで用いる共通キーワードは「優先順位

 森友問題は確かに問題だが、今はもっと大事なことがある

 こんな詭弁を駆使しています。


 もっと大事なことは何かと問えば、北朝鮮のミサイル問題だの、拉致問題だの、そういうのをいっぱい並べてきます。

 北朝鮮のミサイルが問題なら、さっさとパチンコという賭博を禁止してミサイルの資金源を絶てばいいだけなのに、わざわざ安保と絡めて話を複雑にしようとします。

 また、北朝鮮の脅威に備える必要を考えるならば、日本海に並ぶ原発は格好のターゲットになりますから、ただちに運転を停止させ標的になりえる核燃料の移送を開始しないといけないはずですが、そういうことも全くやろうとしません。


 「北朝鮮のミサイル問題」の中で優先順位を付けるならば安保云々は最後でしょ?


 とある課題があったとき、その解決策の中で優先順位を決めるのは当然ですが、日本が抱える課題そのものに優先順位を付けようとするのは狂ってます。

 全方位・同時進行で取り込んでいかないといけないのですよ


 順位をつけて1つずつじゃないと出来ないというなら社長(首相)失格。

 優先順位を口にしていいのは個人事業主だけ。


 今「優先順位がぁー」という念仏唱える方々、小沢さんが「期ズレ」ごときで叩かれまくった当時にも同じ言葉を発しました?

 その期ズレすら、たった数千万で優先順位トップに据えられて「西松建設による巨額献金事件」って騒ぎまくったんですよ?

 森友は億だし、第二の森友とも揶揄されている四国の某学校は二桁億ですよ??


 森友問題を通じて、安倍の公私混同(政治力の濫用)がないか監視しないといけないのです。

 3年前に私は「安倍がヒトラーに見えて仕方ない」と書きましたが、今の安倍はヒトラーへの階段を着々と上ってる途中です。


 権力の暴走を食い止めないと、必ずやこの日本からヒトラーが誕生してしまいます。

 「優先順位の高い課題は別にある」とか言って、暴走する安倍を庇うことはヒトラー誕生に協力するようなもんです。


 籠池理事長、なんとしてもヒトラーの誕生を食い止めて下さい。

 がんばれ!籠池理事長

2017-03-17 ESP32 btstack が動かない

ESP32 btstack が動かない

| ESP32 btstack が動かないを含むブックマーク

 買って直後に書きました。

 軽い気持ちで Bluetooth で遊んでみようと思ったのも束の間、公式には BT Stack ライブラリがないぽく、かなり低レベルなところから自作しないといけないことが 昨日判明。


 最終的に https://github.com/bluekitchen/btstack を ESP32(Arduino) 向けに移植するのが最もベターな気がする という結論に達しましたが、Arduino でライブラリをデバッグするコツが掴めず。


 今頃、外人さんがコード書いてるところ だろうから、もうちょっと待ってみるか、って気持ちに傾きつつある軟弱者です。。

 あの btstack は(私にとっては)高機能すぎるので、自分のほうは更にシンプルぽい USB_Host_Shield_2.0 を参考にしつつ移植に勤しんでいて何とかコンパイルが通るところまで進んでいたのですが、どうもその間に bluekitchen さん御本人が ESP32 にも対応してくれたみたい。


 Arduino 環境でも動かそうとチャレンジしたのですが、リンクさせるものとさせないものの区別が困難を極め・・・

 なので、Arduino じゃなくて ESP-IDF の環境を用意してみました。

(ESP-IDF で動かしたうえで Arduino に持って行ったほうが良かろうという判断)


 適当なフォルダを掘って、そこをカレントにした上で

git clone https://github.com/bluekitchen/btstack.git

Branch が master じゃないので

cd btstack
git checkout -b esp32 origin/esp32

 カレントを port/esp32 に移動させてコンパイルする流儀のようです

cd port/esp32
make
make flash

 何となくうまく進んだぽいのですがシリアルモニターには

BTDM CONTROLLER VERSION: 010101
BTDM ROM VERSION 0101
BD_ADDR: 24:0A:C4:XX:XX:XX
NVDS MAGIC FAILED
RF Init OK with coex
btstack_task start
-------------- btstack_setup
-------------- btstack_setup end
-------------- btstack_main
[00:00:02.358] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

[00:00:02.364] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

[00:00:02.372] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

BTstack counter 0001
[00:00:02.382] EVT <= 60 01 01
[00:00:02.385] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

[00:00:02.393] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

[00:00:02.402] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

[00:00:02.410] LOG -- hci_initializing_run: substate 0, can send 1
[00:00:02.416] LOG -- transport_can_send_packet_now 1, esp_vhci_host_check_send_available 0

[00:00:02.424] CMD => 03 0C 00
VHCI: Controller is not run
-------------- btstack_main end

 ソースは読み切れてないものの、BTstack counter がカウントアップされていくべき気がするんですが、「VHCI: Controller is not run」っていう何か良くない気がするメッセージで終わってます。

 Controller が動いてない?


 どんな条件のときに「Controller is not run」が出るのか探ろうと grep してみても、プリコンパイルな libbtdm_app.a しか見つからず糸口なし。


 うーん・・・


(追記)

 どうも Bluetooth 機能が有効化されていないみたい。


btstack/port/esp32/main/main.c に以下を追加

static bool btStart(){
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_ENABLED){
        return true;
    }
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_IDLE){
        esp_bt_controller_init();
        while(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_IDLE){}
    }
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_INITED){
        if (esp_bt_controller_enable(ESP_BT_MODE_BTDM)) {
            printf("BT Enable failed");
            return false;
        }
    }
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_ENABLED){
        return true;
    }
    printf("BT Start failed");
    return false;
}

 そのうえで、btstack_setup(void) の中をちょっと修正

static void btstack_setup(void){

    btStart();                             // これ追加
    hci_dump_open(NULL, HCI_DUMP_STDOUT);

 そうすると、「VHCI: Controller is not run」が消えて、もっと動いた感じになります。

(ただし、btStart() が失敗したときを無視しているので、これはこれで要対策)


 が、HCI や ACL と言った話のことを理解しないと次のステップには進めなさそうな雲行き。。

 自分が目標としている SPP では更に RFCOMM などというものの理解も必要みたいで、うーん、敷居が高い。。。


(追記)2017/04/04

 ちょっとだけ進展しました。

 ESP32 の Classic BT で Change_Local_Name が使えない? をどうぞ

2017-03-15 がんばれ!籠池理事長

がんばれ!籠池理事長

| がんばれ!籠池理事長を含むブックマーク

 安倍小学校を作ろうとした生粋のネトウヨ「籠池理事長」ですが、罪のない幼気な児童にこともあろうことか、安保改悪おめでとうとか安倍総理万歳とか、弁明の余地なく万死に値する虐待行為の数々ですけど、彼には腐りきった安倍内閣を吹き飛ばすのに必要な凄い力を持っているように思います。


 安倍政権らは、これまで受けた恩義を忘れ、籠池夫妻に全ての罪を着せて幕引きを謀るぽいですから、ここはひとつ・・・


籠池理事長、ここはひとつ全部吐いちゃってください!


 関わった闇を洗いざらい喋っちゃって下されば、歴史書は貴殿を「日本を救った神」として記すこと間違いありません。

 財務省も確実に絡んでいるはずですし、汚職に満ちあふれた官僚統治機構に大きなヒビを入れてやっちゃってください!

 まさに 毒をもって毒を制す


 大改革が必要なのは、トランプ率いるアメリカのみならず、このニッポンもです。

 検察が動いていないうちがチャンスです。

 口封じに身柄拘束される前に!!

2017-03-11 なた刃を交換して田起し

なた刃を交換して田起し

なた刃を交換して田起しを含むブックマーク

 今年も田んぼシーズンが開幕いたしました。

 東日本大震災の直前にトラクターを衝動買い して始まった道楽百姓ですが、いよいよ6年目に突入です。

 未だ試行錯誤の繰り返しなので、6年目とはいえ初心者ですが。。。


 昨シーズンに気がついたのですが、起こしたつもりでも起きてない・・・って。

 そろそろ、なた刃 を換えないといかんのかなぁ〜?

 知らぬは仏と言ったもんで、こんな状態まで使ってました。


http://dl.ftrans.etr.jp/?fda1cc4d8802466f98e8b9a43657cba5f0222d33.jpg http://dl.ftrans.etr.jp/?207b05fc27fb460a9cae49b2accd39567a2412ee.jpg


 他店よりもひときわ安いものを見つけて勢いでポチったんですが。


http://dl.ftrans.etr.jp/?73d764e2fe2a4b9fbef329558856e3b3b6455c60.jpg


 ま、道楽なんだから、当然にゴールド刃でしょ、ってことで高級品をポチったつもりながら、黒い刃が混じってました。

 おいおい品違いかよ?って思って買った店に問い合わせたら、サイドロータリー用のを買わないといけないのに、センターロータリー用のを間違えて私がポチってしまったせいみたい。

 送料だけ自己負担すれば交換してくれるという有り難い返事を頂きましたが、なんか填まりそうだったので、ご好意だけ頂いてセンター用でなんとかします。


http://dl.ftrans.etr.jp/?82c48607e24d4c4a8e2f770083c801e01fe2f042.jpg


 無知ほど恐ろしいものはありません・・・


http://dl.ftrans.etr.jp/?372da9275a7f4c319cf9bc327efec33543ff13f7.jpg http://dl.ftrans.etr.jp/?cebf7753a31c48828a912d433eb5344932517a96.jpg


 サイド用を買ってれば、ゴールド刃28本+偏向刃(黒)2本 という組み合わせだったのに、間違えてセンター用を買ってしまったことで ゴールド刃22本+黒刃6本+偏向刃2本 って風になってしまいました。

 起こすときに重なるので、早く減っても実害がない両サイドに黒刃6本をあてがってなんとか交換完了。

(めがねレンチは柄が短いと回らない。自分は、車のオートプリテンショナー用に買った30cm弱くらいの柄のものを使用)


http://dl.ftrans.etr.jp/?42c1a16521564d85b59d6f4a8c72781a97f0a5ae.jpg


 素人でも分かるくらいに、しっかり深く起きました〜♪


自分のための備忘録

・虎本体 Ke50

・ロータリー RSZ130

・替え刃 サイドロータリー用30本

・替え刃のボルト M12×30mm

・レンチ 17mm

2017-03-09 ESP32 自分自身で昇圧稼働(電池×2 → 3.3V)

ESP32 自分自身で昇圧稼働(電池×2 → 3.3V)

| ESP32 自分自身で昇圧稼働(電池×2 → 3.3V)を含むブックマーク

 40MHzモードでコンパイル すれば、完全に電池×2 仕様に変貌する ESP32。

 とはいえ単体で動かす分にはいいとしても、2.2V とかいう電圧だとキャラクタ液晶どころか LED すら難しいっす。。

 センサーとか色々と付けるんなら、いっそ 3.3V のほうが楽なんですね。


 せっかく 電池×2 で動くキャパがありながら、実運用では ストリナさん あたりで昇圧DCDC を探す羽目に陥ったり。

 900円も出せば かなりいい感じのが手に入りますから、普通はそういうのを選ばれるのが賢明ですが、ESP32 には PWM も付いていることだし、なんか、そーいう便利モジュールに逃げたら負けた気分になるじゃないですか。


 ってことで、あまり実益はないものの、DCDCモジュールを使わず、手持ち部品で貧乏昇圧してみることにします。


 自分自身へは電池×2直結のまま外部機器に向けてだけ 3.3V を作ると、信号線のレベルコンバートという作業が待ち受けるため、効率は脇に置いといて自身と外部と共通の 3.3V を作ることにします。


http://dl.ftrans.etr.jp/?86c4471a562e4e72a9f8fbd8ee84a11af9dffab2.png


 前回の「自己測定して過放電防止」の回路 に対して、MOSFETとインダクタとショットキーダイオードと、コンデンサと抵抗が数個増えただけです。

 ごくありふれたチョッパ昇圧回路なわけですが、2V前後という電圧域でスイッチングしないといけない Nch MOSFET には、(たぶん)秋月で入手できる中で最も低電圧駆動な IRLML6344(10個で180円) を投入します。

 インダクタは、とりあえず部品箱にあった 47μH(30円) を選択。


 動作ですが、電池×2 から 1S3(20円) の VF 分だけ低い電圧で ESP32 に給電され、これをもって起動。

 起動できたら IO23 を PWM して昇圧開始、という段取りです。

 本当はゲート抵抗をいれたほうがいいかもしれませんが、ゲート容量が 650pF と小さく、かつ電圧も低いので ESP32 の気合いを引き出すべく省略しましたが・・・(試作機では今のところ直結でも大丈夫ぽい)


 昇圧前と昇圧後の電圧を測定し、デューティ比をコントロールする仕組みはプログラム側で行います。


 プログラムで自身の電圧をコントロールする格好でして、そのデューティ比の次第では 5V とかいう昇圧も出来てしまい、いわゆる「自爆」ができてしまうため、念のため 3.6Vのツェナー(10円) で絶対定格は超えないよう保護しておきます。


 この保護ツェナーは省電力と諸刃の剣でして、常に 60μA(@2V)〜500μA(@3V)ほどお漏らししてしまいます。

 これは過放電防止作動中も一緒で、ツェナーを取り外すと、1μA未満を達成できるのですが、重負荷→軽負荷 に急激遷移した時、プログラムによる追随が間に合わず思いがけない電圧が出てしまうことがあるため、非常に悩めるところ。

 探すとモバイル用途に 10〜20分の1 に漏れ電流を改善したツェナーがあるみたいですが、素人が入手できるようなもんじゃない気がします。


 今回はストリナさんの900円が勿体ないという時の貧乏昇圧回路なのでツェナーのお漏らしには目をつむることにしましょう。


 さて、プログラムで昇圧させますので、そのソースも御披露目します。

#include "driver/adc.h"
#include "esp32-hal-ledc.h"

const int RA = 10000;   // 10k ohm
const int RB = 30000;   // 30k ohm
const float VF = 0.35;  // 0.35V@200mA with 1S3

const float VCC = 3.30;
const float maxDuty = 0.50;   // 念のためリミッター

volatile float duty;
volatile float espVoltage;
volatile float batVoltage;
volatile float efficiency;

void checkVoltage()
{
  espVoltage = (float)adc1_get_voltage(ADC1_CHANNEL_6) / 4096 * 3.6 * (RA + RB) / RB;
  batVoltage = (float)adc1_get_voltage(ADC1_CHANNEL_7) / 4096 * 3.6;
  efficiency = espVoltage / VCC;

  duty = 1 - ((batVoltage < espVoltage ? batVoltage : espVoltage) - VF) * efficiency / VCC;
  if(duty > maxDuty)
    duty = maxDuty;
  else if(duty < 0)
    duty = 0;
    
  ledcWrite(1, duty * 255);  
}

void setup() {
  // put your setup code here, to run once: 
  Serial.begin(115200, SERIAL_8N1);
  
  pinMode(21, OUTPUT);
  digitalWrite(21, HIGH);

  ledcAttachPin(23, 1);         // for PWM
  ledcSetup(1, 100000, 8);      // 100kHz, 8bit

  // ADC 関係の ardino-esp32 が出来てないぽい気がするので core を利用
  adc1_config_width(ADC_WIDTH_12Bit);
  adc1_config_channel_atten(ADC1_CHANNEL_6, ADC_ATTEN_11db);  // IO34
  adc1_config_channel_atten(ADC1_CHANNEL_7, ADC_ATTEN_11db);  // IO35
}

void loop() {
  // put your main code here, to run repeatedly:
  static unsigned long last_time = 0;
  unsigned long now_time = millis();

  checkVoltage();
  if((now_time - last_time) > 1000)
  {
    static int seq = 0;
    last_time = now_time;
    
    Serial.print("SEQ:"); Serial.print((String)seq++);
    Serial.print("  ESP:"); Serial.print((String)espVoltage);
    Serial.print("  BAT:"); Serial.print((String)batVoltage);
    Serial.print("  EFFICIENCY:"); Serial.print((String)efficiency);
    Serial.print("  DUTY:"); Serial.print((String)duty);
    
    Serial.println("");

    static int low_bat = 0;
    if(batVoltage < 2.00)                     // 40MHz でコンパイルを前提
    {
      low_bat ++;
      if(low_bat > 2)
      {
        Serial.println("good bye!");
        delay(500);                           // なくてもいいが good bye がPCに届かなくなる
        digitalWrite(21, LOW);                // 自殺
      }
    } else 
      low_bat = 0;
  }
}

 詳しくはソース読んでもらうとして、当初は Ticker で割り込みかけて電圧監視しようと思ったんですが、どうも現バージョンでは Ticker が実装されていないらしく・・・

 仕方ないので、普通の loop() の中から呼ぶようにしてあります。

(volatile 〜 は Ticker を使いたかった未練で残してある)


 仕組みとしては、実測値とのズレを「効率」として求めて、理論デューティ比から微調整する、という風になってます。

 ADC の精度がたいしたことないので、効率>1.00 と求まることもありますが、まぁ大きな実害はありません。


 昇圧前の電圧が 2.00 を割ったら過放電防止作動という風なのですが、コンデンサの選定が悪いせいだと思いますが、2.5→1.9→2.5 みたいな挙動を示すことがあったので、3連続で 2.00 を下回ったら・・・という風にしました。


http://dl.ftrans.etr.jp/?435844dc094442c28359d1ba20c68dc887ef8b3d.jpg http://dl.ftrans.etr.jp/?056d5e9d30ed446990b5667264c853d990813ceb.jpg


 3.3V を指定していながら実測 3.12V っていう風ですが、これは ADC の精度の問題でして、ESP32 としては 3.3V のつもりでいるみたい。

 いずれ arduino-esp 側で改善されることを期待しつつ上がりすぎるよりはマシなので目を瞑ることにします。


 900円のモジュールほどには効率よくないですが、100円くらいで昇圧できるので、ちゃんとした昇圧モジュール使うほどでもない・・・って場合にご検討くださいませ。

2017-03-02 ESP32 電源電圧を自己測定して過放電防止 (後編)

ESP32 電源電圧を自己測定して過放電防止 (後編)

| ESP32 電源電圧を自己測定して過放電防止 (後編)を含むブックマーク

 Keynee さんのお陰をもちまして、自己電圧を計測して低電圧になったらフリーズする前に自発的に Hibernation mode を発動させ、4μA という NiMH の自然放電と同じ次元の超低電力モードに移行し電池の過放電の進行を防止する、という目的は実現しました。


 Hibernation mode でも RTC は生きているため、あらかじめオッキする時間をセットしておいてから Hibernation mode に移行すれば指定時間に再起動がかかるため、過放電防止じゃなくても用途は広いです。

(20μA 程度の消費を許容できるなら、ピン割り込みでオッキという手もあります)


 ただ人の欲望は限りなく、「RTC 生かしつつ 4μA は凄いと思うけど、RTC が要らないときは無駄だよねー」って言い出すじゃないですか。


 NiMH 運用で過放電防止の目的で使うとき普通は

  • 電池が切れて止まる
  • 取り外して充電(もしくは充電済みと交換する)
  • 起動

という流れになります。

 これじゃ RTC の出る幕がありません。


 ということで、こーいう用途に特化した究極の過放電防止案を。


http://dl.ftrans.etr.jp/?96b3aebc5c1542d1919cb55b5d7389b538ad6a03.png


 前回の回路 に抵抗1本とタクトスイッチが増えただけですが、EN の付近の配線が違うことに気が付かれますでしょうか。

(ちなみに、この増えた抵抗は保護用で、決して IO34 を OUTPUT/LOW にしないと誓うならば省略可)


 普通は EN をプルアップさせつつ、片方を GND に落としたタクトスイッチをリセットボタンとして使うことが多いと思いますが、逆の使い方をしてみました。


 電池を繋いだだけでは EN ピンは LOW のままですが、START スイッチを ON にすると EN が HIGH になり起動します。

 スイッチを離すと EN ピンが 30kΩ に引っ張られて LOW に戻ってしまいますが、それまでの間に IO21 を HIGH にしてやればスイッチを離しても大丈夫でしょ?

 プログラムが動き出して IO21 を HIGH にする処理が走るまではスイッチを押し続けないといけませんが、そんなの1秒もかかりません。

#include "driver/adc.h"

const int RA = 10000;   // 10k ohm
const int RB = 30000;   // 30k ohm

void setup() {
  // put your setup code here, to run once: 
  Serial.begin(115200, SERIAL_8N1);
  
  pinMode(21, OUTPUT);
  digitalWrite(21, HIGH);

  // ADC 関係の ardino-esp32 が出来てないぽい気がするので core を利用
  adc1_config_width(ADC_WIDTH_12Bit);
  adc1_config_channel_atten(ADC1_CHANNEL_6, ADC_ATTEN_11db);  // IO34
}

void loop() {
  // put your main code here, to run repeatedly:
  static int seq = 0;

  float value = adc1_get_voltage(ADC1_CHANNEL_6);
  float voltage = value / 4095 * 3.6 * (RA + RB) / RB;

  Serial.print("SEQ:"); Serial.print((String)seq++);
  Serial.print("  VALUE:"); Serial.print((String)value);
  Serial.print("  VOLTAGE:"); Serial.print((String)voltage);
  Serial.println("");

  if(voltage < 2.30)    // 40MHz 時は 2.00 にして良い
  {
    Serial.println("good bye!");
    delay(500);                           // なくてもいいが good bye がPCに届かなくなる
    digitalWrite(21, LOW);                // 自殺
    // 不要 esp_deep_sleep_start();
  }
  
  delay(1000);
}

 あれ、esp_deep_sleep.h をインクルードしてないぞ?って思われるかもしれませんが

 Deep Sleep も Hibernation mode も使いません。


 setup にあった esp_deep_sleep_pd_config の付近もバッサリ削除してます。

  • 起動したら直ちに IO21 を HIGH に
  • 電圧測定

までは前回の電測プログラムと一緒ですね。

 実は前回のプログラムにヒントが・・・

  if(voltage < 2.30)    // 40MHz 時は 2.00 にして良い
  {
    Serial.println("good night!");
    digitalWrite(21, LOW);                // なくていい
    esp_deep_sleep_start();
  }

 本来は不要な行を // なくていい とコメントで入れてありましたが、僅かに回路に手を加えることで、これが // 自殺 に変わり、究極の過放電防止となるのでした。


 電測時に 1/2 分圧とかにしないで、わざわざ 3/4 にしたのは今回の伏線でもあったのですが、EN ピンは電源電圧に対して 75% 以上で HIGH と認識しますので、そのまま EN ピンにも流用するようにしました。


 過放電検知に伴って IO21 を LOW に落とすことで分圧抵抗の消費電力を抑制する、という目的で、電源を直接測るのでなく IO21 を測ることにしたのは以前にも説明しました。


 IO34(電測ピン) と EN とが直結されているので、EN ピンも LOW に引っ張ります。

 EN ピンが LOW と認定するのは 25% を下回ったところで、RTC を含めて全ての動作が止まります。

 ESP32 が停止した後は IO21 はオープンとなりますが、30kΩ でプルダウン状態を維持

という風に遷移します。


http://dl.ftrans.etr.jp/?1ecce1aa044248528a01e0086aa67a1b689bf1cd.jpg http://dl.ftrans.etr.jp/?526620502b544e79b7a631b113e331c6479e37fd.jpg


 消費電流は @2.5V 時で 0.2〜0.3AμA をフラフラしてましたが、これで限界。

 高尚な仕組みを期待されていた方には肩すかしな内容だったと思いますが、単純な自殺回路に勝るものはないですね。。