エントリー

カテゴリー「電子工作」の検索結果は以下のとおりです。

ダイソー(2017春モデル)モバイルバッテリ

ようやく入手

去年(2016)の秋くらいにダイソーがガールズ研究所なんとかの企画で300円のモバイルバッテリーを販売しているという記事を観て欲しくなり周辺のダイソーを探しまくったが販売されていなかったので手に入れることはできなかった

そして今度は正式にダイソー製品として300円のモバイルバッテリーを販売されたという記事を観てやっぱ欲しくなったが

「どうせ手に入らないだろうな」

と思っていた(実際市内の店では販売されていない)

それがちょうど1週間前に坂出の方へ行った時,大きい店舗のダイソーがあって入ってみたらあった(在庫4個を全部戴き)

パッケージ

いつも楽しみに記事を閲覧させていただいてるこばさんによると三代目ということらしい

今後も変化があるかもしれないので2017春モデルってことにしておく

既に多くの方々によって調査解析されているので,先人さんの解析内容を改めて確認ってことをしてみた

筐体は高級感があり頑丈そう

筐体

筐体は光沢があって300円とは思えないくらい綺麗でABSにシッカリ加工されており硬そうで傷が付きにくそう

モバイル環境での強度的な問題はないだろう

データ転送不可のUSBケーブル(¥100相当),ストラップ(2個¥100ってところか)も付属している

端子は2種2個だが内部で同じ

IN・OUT

取付されてる端子は標準USBのOutー5V,マイクロUSBのInー5Vの2つあるが内部では結線が同じなのでどちらをOut/Inに使用しても構わない

モバイルバッテリーへ充電すると(取説では)LEDが赤青の交互点滅し充電終了で消灯するとなっているが,実際は充電終了でモバイルバッテリーが出力モードになりLEDが青点灯する

この時モバイルバッテリーへ充電した装置(PCやACアダプタ等)への逆流が発生することになり,まだ充電した装置が給電中なら電位差が少ないので大丈夫だけど停電やSW切で未給電になってしまうと充電装置に異常が発生するかもしれない懸念が発生する(装置は破壊されることもあるが危険って程度にはならないとは思う)

入出力が同じ端子(2つあるが同じ)であるが故の問題であるが,ではどうやってモバイルバッテリーへの充電を認識しているのか

省電力装置の電源としては使えない

通常時,中身のバッテリーが空と判断されなければ5V出力モードであるわけで,切り分けとして等間隔(2~10秒位,接続されてる負荷で異なる)で出力電圧を下げて外部から給電があるかどうか判断してる(これってソフト屋さん的発想だね)

給電チェック

出力電圧を無負荷の接続だけど見てみると(上のオシロの)示すとおり5Vから1.8V位まで等間隔で下がっている

しかし負荷の消費電力が大きい場合(約70mA+)なら電圧を下げる範囲が小さいらしく4.8V位まで下がるのみだそうだ

いずれにせよ残念ながらArduino等の省電力装置の電源として直接は使えないしスマホ以外の充電には利用できなさそう

例えばスマートブレスレッドの充電を行ってみたが不可だった(原因調査はしてないので不明)

スマートブレスレッド充電

バッテリーチェッカーを間に入れると充電されるのだが等間隔で充電が停止する

等間隔

140mA流れているようなんだが?

放電容量DCDCが62%

5V出力バッテリーとしての放電容量(とりあえず2台)を確認

容量チェック

約600mAで放電させてみた

一台目は915mAh(以下表示のため別のバッテリーに繋いでいるので電圧は異なる)

一台目

二台目は923mAh(以下表示のため別のバッテリーに繋いでいるので電圧は異なる)

二台目

一台目を再度充電してみて計測してみたが変わらなかったので920mAh前後のようなので5V×920=4600mWh

中身は3.7V2000mAhの18650で,3.7V×2000mAh=7400mWh

4600÷7400=62% って効率悪い,少し前に購入したモバイルバッテリーは80%だったので安いとはいっても差がありすぎ

仕様では5V最大1Aだが使用してるチップの仕様は最大800mAhとのこと

そこでぎりぎりの800mAで放電させたら869mAhになってしまった

モバイルバッテリーへ充電

モバイルバッテリーへ充電時間は取説では約6時間となっていたが,2A給電可能なACアダプタでは3時間位で完了した

負荷による出力電圧

負荷なしの場合の電圧はDCDCされてないで18650の直接の電圧が出ているのか?

負荷なし

少しでも負荷あり(USBパワーチェッカーが負荷となっている)の場合は5Vとなる

負荷あり

Amazonを利用しての購入品の評価

Amazonを利用して中華製品等を購入してみたので評価してみようかと(後でAmazonのサイトにも投稿するつもりではある)

4月7日に注文,4分割配送となり20日で全部揃った(予定では最終が25日だったので優秀)

SATA USB変換ケーブル

USB変換ケーブルUSB変換ケーブル2

ラズパイをサーバ化するために購入した

パーツの質も悪くなくしっかりSATAが接続されるので良い

USB3.0,2.0接続共に問題なく使用できた

コンパクト モバイルバッテリー

バッテリー

上記のUSB変換ケーブルと送料が一緒になるためついでに購入したバッテリー

実験容量1

容量を確認してみると,5Vで3030mAh(1.5Aで測定)と出た

バッテリー2

仕様では3.6Vの5200mAhとある(2600mAhのリポ×2本なんだろう)ので

3.6×5200=18720を÷5で3744・・・DCDC効率が80%てことでそれなりかな

再度充電して測定したところ3155mAhだったので測定ミスはないようだ

バッテリー3

ステップアップ 転換モジュール

なんと1個100円也のDCDCアップ変換モジュール(5個も買ってしまった)

DCDC

こんな感じで5個送られてきたが

DCDC1DCDC2

外観は特に問題なさそう

性能は未確認(評価した

板金用六角チタンコーンドリルビットホールカッター
4mmバナナプラグソケット

ドリル

目に付いたのでついでに購入

プラグソケット

1個当たり21.8円という格安価格のターミナル(秋月だと金メッキされていて70円だったかな)

ユニバーサル ブレッドボード プロトタイプ PCB ダブルサイド

PCB1PSB2

2セットの20枚購入,全て表面上の異常は見当たらなかった(非常に綺麗だったので驚き)

尚,裏表はスルーホール

Micro SD/ TF カードモジュール シールド モジュール 6 ピン SPI

SD

SDsd2

SDカードアダプタでも十分だったけど単価95円でレベル変換もしてくれるので(5個)購入しておいた

動作は未確認

FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター アダプター モジュール

USBシリアル

シリアル1シリアル2

3.3と5Vで使えるUSBシリアルコンバータモジュール,どこかのコピー品のようだが単価245円とは思えないような出来栄え

動作は未確認

(追加)確認済

上記の3個の出荷元は同じ(HiLetgo)なので一緒に送られてきたのだが,モジュールは1個づつ包装されていたし全体的にも丁寧な包装だったのには驚き

包装

DSO138の操作性改善に挑戦

今年の1月くらいにJYE Techから新しくDSO150なるオシロスコープキットが出て,スペック的にはDSO138とあまり変わらないが,ケースを追加しロータリエンコーダで操作するようになったようだ

DSO150

ケース付きになって良さそう・・・最近Amazonでも取り扱い開始・・・しかも安いが,いわくつきだけどサインスマートのDSO138があるのでどうしようか・・・

そこで,DSO150を真似てDSO138を改造(改良かな?)してしまおうと考えた

DSO138

サインスマートDSO138のメイン基板,キット制作時にコンデンサの変更やボタンを交換してある

ロータリーエンコーダ―を付ける

DSO150にはDSO138(DSO062も同じ)では操作性の悪い(+)(-)ボタンをロータリーエンコーダ―に変更してあり,ロータリーエンコーダ―の扱いも慣れてきたことだし(+)(-)ボタンを制御するようにすればいけそうなので付けてみる

ここでATMegaを使うのもオーバースペックでサイズ的にも組み込みしにくいのでATtiny13aでドライブすることにした

まずは実験・・・しようとしたが・・・嵌りまくった

実験

開発環境で嵌る

昔構築したIDE1.6環境が怪しげなのでIDE1.8.1で新たに環境構築したが(全てにおいて)ボードへの書込みができない問題が発生

すったもんだして動くようになったがはっきりした原因は不明(つまり何をやったら動くようになったか特定できなかった)

おそらくとなるがhardwareフォルダに昔の情報データがあったため動作不良となっていたのではないか(hardwareフォルダ内で不必要なのは削除した)

開発支援ボードで嵌る

今回UNO互換ボードで(自己開発の)開発支援ボードを使ったがUNOに未対応だった

3.3Vピンがショートしていたり余計なピンが絶縁されていなかった設計不良が発覚(これまで3.3Vピンが出力されていないボードで動作させていたため)

シリアル出力で嵌る

シリアル出力されない場合があり原因不明(ノイズか?)

プログラム開発

コード1KBの世界なので苦労するかと思ったが1KBはやっぱ広い・・・と思うのはTK80やLKIT世代のせいか^^

ただしデータ64Bytesは辛い(PROGMEMもあるけど利用は要注意)

PG

もっとハードウェアレジスタの直接操作でサイズを減らせるけど余裕あったので判りやすいコードで済ませた(とは思っている)

ATtiny13aのPB0とPB1をロータリーエンコーダ入力とし,PB2とPB3をそれぞれ+-ボタンとして出力する

//DSO138改造
//ロータリエンコーダを取り付け
//
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>

#define EN_A PB0
#define EN_B PB1
#define OUT1 PB2
#define OUT2 PB3

#define BTNON_TIME_US 40000

//割込みはsleepから抜けるだけで処理は無い
ISR(PCINT0_vect) {}

void setup() {
pinMode(EN_A, INPUT_PULLUP);
pinMode(EN_B, INPUT_PULLUP);
pinMode(OUT1, OUTPUT);
pinMode(OUT2, OUTPUT);
digitalWrite(OUT1, HIGH);
digitalWrite(OUT2, HIGH);

GIMSK |= (1<<PCIE); //PCINT割込みを有効
PCMSK = _BV(EN_A) | _BV(EN_B); //割込み許可
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
}

void loop() {
unsigned char dt = 0;

for(;;) {
//前回値と今回値でインデックスを作る
dt = ((dt<<2) + (PINB&0x03))&0x0f;

if(dt == 0x07) { //right
digitalWrite(OUT1, LOW);
_delay_us(BTNON_TIME_US);
digitalWrite(OUT1, HIGH);
} else if(dt == 0x0d) { //left
digitalWrite(OUT2, LOW);
_delay_us(BTNON_TIME_US);
digitalWrite(OUT2, HIGH);
} else {
sleep_mode();
}
}
}

制御プログラムは難なく完成したがボタンONーOFF間隔の設定調整に時間を費やした

ボタンONーOFF間隔はロータリーエンコーダの回転速度に(そこそこは)合わせないとスムーズにならない(早くても遅くても駄目)

尚,変化なし時のウエイトは無くても良いことを実働では確認

既にロータリーエンコーダ―化している方もいたので参考にはさせてもらっている

エンコーダ

追加パーツは秋月D基板の取付穴が本体に整合したので右側に置いた

設定ボタンの複数化

DSO062では各設定項目の専用ボタンがあったがDSO138では6つの設定項目を1ボタンで順列選択する操作になった

DSO150ではグループ化して複数ボタンにしたようだ

同じようにするのはしゃくなのでボタンを3つにして選択できる設定項目をまとめた

DSO138の選択(select)ボタンで選択できる設定項目

  1. Horizonal Position
  2. Vertical Position Indicator
  3. Timebase(s/div)
  4. Trigger Mode
  5. Trigger Slope
  6. Trigger Level Indicator

3つのボタンを配置し以下のように割り当てた

  • 1,2  :H/V.Pos
  • 3    :S/Div
  • 4,5,6:Trigger

button

PG2

PB1,PB2,PB3をグループ化したボタン入力とし,本体の設定項目選択ボタンに接続したPB4へ出力する

//DSO138改造
//機能ボタンを追加
//

#include <avr/io.h>
//#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>

//接続PIN
#define HVPOS            PB3        //PB0では動作しない(不明)
#define SECDIV           PB1
#define TRIGGER          PB2

#define BTNOUT           PB4
#define BTNON_TIME_MS    40        //ボタンON時間
#define BTNOFF_TIME_MS   20        //ボタンOFF時間

static int btint = 0;

//外部ピン変化割込み
ISR(PCINT0_vect) {
    //チャタリング10ms待ち
    _delay_ms(10);

    //ボタンの状態チェック(押下時のみ)
    if(!bit_is_set(PINB, HVPOS)) {
        btint = HVPOS;
    }
    else if(!bit_is_set(PINB, SECDIV)) {
        btint = SECDIV;
    }
    else if(!bit_is_set(PINB, TRIGGER)) {
        btint = TRIGGER;
    }
}

void setup() {
    //機能ボタン(入力)
    pinMode(HVPOS,   INPUT_PULLUP);
    pinMode(SECDIV,  INPUT_PULLUP);
    pinMode(TRIGGER, INPUT_PULLUP);
    //ハンドルボタン(出力)
    pinMode(BTNOUT, OUTPUT);
    digitalWrite(BTNOUT, HIGH);

    //ピン変化割込み許可
    GIMSK |= (1<<PCIE);                            //PCINT割込みを有効
    //PCMSK = (1<<PCINT1)|(1<<PCINT2)|(1<<PCINT3);//PB1,2,3の割込み許可
    PCMSK = (1<<HVPOS)|(1<<SECDIV)|(1<<TRIGGER);//割込み許可
    sei();
}


//    0.Horizonal Position
//    1.Vertical Position Indicator
//    2.Timebase(s/div)
//    3.Trigger Mode
//    4.Trigger Slope
//    5.Trigger Level Indicator

void loop() {
    int nowpos, movpos, btncnt;

    //nowposを復旧
    //(本体は電源OFFで記憶してなかったので処理を外す)
    //eeprom_busy_wait();
    //nowpos = (int)eeprom_read_byte((uint8_t *)0);
    nowpos = 2;
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);

    for(;;) {
        //_delay_ms(1);
        sleep_mode();

        cli();
        if(btint) {
            switch(btint) {
            case HVPOS:
                if(nowpos == 0) {
                    movpos = 1;
                //} else if(nowpos == 1) {
                //    movpos = 0;
                } else {
                    movpos = 0;
                }
                break;
            case SECDIV:
                movpos = 2;
                break;
            case TRIGGER:
                if(nowpos == 3) {
                    movpos = 4;
                } else if(nowpos == 4) {
                    movpos = 5;
                //} else if(nowpos == 5) {
                //    movpos = 3;
                } else {
                    movpos = 3;
                }
                break;
            }
            if(movpos < nowpos) {
                btncnt = movpos + 6 - nowpos;
            } else {
                btncnt = movpos - nowpos;
            }
            while(btncnt--) {
                _delay_ms(BTNOFF_TIME_MS);
                digitalWrite(BTNOUT, LOW);
                _delay_ms(BTNON_TIME_MS);
                digitalWrite(BTNOUT, HIGH);
                _delay_ms(BTNOFF_TIME_MS);
            }
            nowpos = movpos;
            //nowposを退避(本体は電源OFFで記憶してなかったので処理を外す)
            //eeprom_busy_wait();
            //eeprom_write_byte((uint8_t *)0, (uint8_t)nowpos);
            btint = 0;
        }
        sei();
    }
}

完成ボード

操作性はそこそこで(雰囲気がイメージでは判らないので上記画像選択でビデオが観えるようにした)劇的に良くなったとは言えない

スクロールする操作はボタンを押すよりロータリーエンコーダで良くなったとは思う

ボタン

赤:HOLDボタン,回路は本体のボタンと並列で付けている(ATtiny13aは感知しない)

黄:H/V.Posの切替

青:S/Div専用

黒:Trigger関係3箇所の選択

電源と電源SW

本オシロは家の中でもコンパクトなため扱いやすく見易い場所で利用することができるのがメリットである

しかしACアダプタではコンセントまでのケーブル取り回しが厄介なこともあり006Pの充電池(8.4V)を使用することが多い

だが電力消費が9V120mAあるため,連続使用時間が約1時間(持たないことも)程度となる

そこでコンパクトな電源の構想を延々と考えている

・・・小容量のバッテリの昇圧では厳しそう

・・・コンパクトで大容量なら2000mAh+クラスのリポで昇圧・・・だけど高価かな(スマホ充電用の5Vの旧品が安く出回ってはいる)

・・・電子ライターのリポを取り出し3個直列という方法は・・・もともと取扱に気を遣うリポを直列は面倒なので極力パス

・・・やはり単4ニッケル水素×7個か8個かな

電源は電源SWを含み検討中

その他(まとめ)
  • ピンの余裕がないので機能別にATtiny13aを2個使用
  • ケースは横幅が増えたため凝らない程度で作り直しする予定
  • ATtiny13aの使い方を改めて検証できたのと,その開発ボードの欠点(欠陥かな)が判明したので満足
  • こつこつと調整したので記事の公開が遅くなった(最終編集が4/2(日)となる)

ロギング装置の作製(ESP8266版)

開発ボードでSD版が完成したので基板に載せた

ログ

(写真のようにESP-WROOM-02を置いたが上下逆に付けるようにすればコンパクトになるなと完成した後に気が付く)

正式なマイクロSDカードスロットはブレッドボートで開発用にとして利用したいのでマイクロSDカードアダプタにピンを付けて(余り物を)利用してみた

SDカード裏SDカード表

両端は未使用なので7ピンのみ取付,なかなか良い感じ

ピンの接続情報を記録しておく(上がスロット,下がアダプタの場合)

SD-PIN

放電器と高さを合わせ(合体)接続できるようにしたが,放電器の電源アダプタが左側で電源が接続できなくなり取り外して付け替えるのも大変なので電源アダプタを右側にも付け,ついでに入力が直5Vなので安全のため5.1Vのツェナーダイオードを追加

合体

テスト実施のログ出力(SDカード)

;Constant voltage : 1000mV
;End current : 100mA
0, 991, 325, 0
1, 1003, 311, 5
2, 1002, 310, 10
3, 997, 314, 15
4, 997, 314, 20
5, 996, 316, 26
6, 995, 318, 31
7, 995, 322, 36
8, 997, 323, 42
9, 1000, 326, 47
10, 1000, 332, 53
11, 1004, 334, 58
12, 1000, 344, 64
(略)
291, 999, 84, 1595
292, 998, 83, 1596
293, 997, 82, 1597

グラフ化すると

青線:放電流値(mA)

赤線:累積電力(mAh)

上記の試験サンプルは劣化している充電池のため大きな電流を流せていない

今後の展開

このボードではIoT化しないと効果を発揮しないのでWebとの連携仕様を考える

基本仕様として当初はロギング装置を汎用化と考えていたが,別物を作製することも早々無いしその都度プログラムを変えるのも趣味の世界はありなので,放電器専用のロギング装置として構築することにする

ログの数値表とグラフを表示する位までは構築していこうと思う(気長に・・・)

ページ移動

ユーティリティ

検索

エントリー検索フォーム
キーワード

過去ログ

Feed