FC2ブログ

西端より中庭を望む(フォートレス・エクスプロレーション)

西端より中庭を望む(フォートレス・エクスプロレーション)
Canon EOS 6D サムヤン(Samyang)8mm F3.5 Fisheye CS 2 1/250秒 ISO100 (画像クリックで1920x1080サイズ) 細部確認用


撮影場所
スポンサーサイト



テーマ : ディズニー・ギャラリー
ジャンル : 写真

油断大敵スマホグッズ(goo g08)

ZenFone Go ZB551KL のGPSの駄目さ加減が半端なく、肝心の場面で役立たず。
それに、IP電話のみでは、万が一車で事故の時110,119番も出来ない。

そんな時、P10 lite + 通話付きSIMが6800+3000円でセールしていました。
しかし、P10 liteはガラス多用なので、よく落下させる私向きではありません。
で、g00 g08(6800+3000円)になりました。

早速、二回程落下させたので、ケースと液晶保護ガラスフィルムを買いました。

両方共、☆一つです。



ケース


こちらのケース、g08との相性や使い勝手はいいのですが、一つ問題がありました。


油断大敵スマホグッズ(goo g08)

扉を閉じておくバンドがありません。見た目良し! 平面性良し!
蓋を閉めると吸着するように閉じます。凄い!

ん! 磁石??吸引する相手はスマホか?そんなバカな。
裏側にもう一つ磁石がありました。
要は、磁力線はスマホを貫通しています。しかも、スマホの厚み分の距離を隔ててなお力強く吸着。
試しにニッパーを付けてみました。ケースから落下しません。
この状態では電子コンパスは使い物にならなくなるし、磁気を利用したカード類は消磁されてトラブルになる可能性があるかもしれません。

捨てる事にして、どんな磁石が入っているのが金切りバサミで大胆に切り取り(捨てるので)、磁石を取り出しました。
上の写真の白い金属板。

構造が分かったので、底側の方は外観に影響なく取り出しました。

捨てるには勿体ないので、それにマイナーな機種で選択肢は多くない事情もあり、
接続し直しました。
フランケンシュタイン状態ですが。


保護フィルム


そうこうするうち、同時に注文してあった保護フィルムが到着しました。



油断大敵スマホグッズ(goo g08)

液晶表示部をカバー出来ていません。

商品の登録情報にある「Amazon.co.jp での取り扱い開始日」を見ると「2016/7/6」。
g08ってこんなに古い機種だったのかな。

それに、以前買った同じ「AGC旭硝子社製の国産特殊ガラスを使用した強化ガラス製液晶保護フィルム」と比べて
熱伝導率が違います。汚れが取れにくいです。汚れ易いです。個人の感想ですが。



感想


油断大敵です。

これ、使います。「油断をするな」の戒めの意味を兼ねて。

IKSPIARIのイメージ(イクスピアリ)

IKSPIARIのイメージ(イクスピアリ)

美女と野獣(額絵)(東京ディズニーランドホテル)

美女と野獣(額絵)(東京ディズニーランドホテル)
Canon EOS 6D EF40mm F2.8 STM 1/40秒 F8 ISO1600 40mm (画像クリックで1920x1080サイズ) 壁紙用



撮影場所

テーマ : ディズニー・ギャラリー
ジャンル : 写真

100均ニッケル水素電池充電器の倍速化

100均のニッケル水素電池充電器を倍速充電できるように改造してみました。

■結果
2倍速とはならず、1.5倍速になりました。
充電中のモニター用のLEDが暗くなり実用性が低下しました。

低価格化と一度に充電する電池の数(1本/2本)に関わらず、充電能力が変わらないように設計されていて、よくできた製品でした。
改造はしないほうが良いと結論付けしました。


100均ニッケル水素電池充電器の倍速化
改造前


100均ニッケル水素電池充電器の倍速化
オリジナルの回路です。 毎度の見苦しさはご勘弁ください。

半波整流で一本目は正弦波の上側を、二本目は下側を使うようになっています。
この為、一本充電でも、二本同時充電でも充電能力は変わりません。

充電モニター用のLEDは大胆な設計です。私でもこの回路は避けますが、コストダウン最優先な感じです。



改造


元は半波整流なので全波整流に変えます。


100均ニッケル水素電池充電器の倍速化
改造後の回路

ブリッジのダイオードは出来るだけドロップ量を減らすためショットキーダイオードにしました。
※結果的には、このタイオードでのドロップで2倍速にはならず、充電モニター用のLED点灯も「ほぼ点灯せず」の状態になりました。



100均ニッケル水素電池充電器の倍速化
ブリッジと基板のパターンのカット

基板のカット位置は下図通りです。

100均ニッケル水素電池充電器の倍速化
配線



100均ニッケル水素電池充電器の倍速化
ブリッジ部分を紙で絶縁


波形



100均ニッケル水素電池充電器の倍速化
2.7オーム両端の波形(電池の充電電流)(改造前)



100均ニッケル水素電池充電器の倍速化
負荷(電池)がない状態でのトランズ二次側の電圧波形



100均ニッケル水素電池充電器の倍速化
全波整流化後の2.7オーム両端の波形(電池の充電電流)



100均ニッケル水素電池充電器の倍速化
電池を二本同時に充電した時の2.7オーム両端の波形(電池の充電電流)



感想


この充電器は半波整流がミソですね。二本同時でも性能が低下しないので。
それを全波整流にすると、同時に二本分の電流がトランスに流れ、電圧低下して少し供給電圧が低下します。
ただでさえブリッジのダイオードで電圧が低下しているのに供給電圧が低下するとモニター用ダイオードは点灯しません。

コストや手間を考えると2倍速でなく、1.5倍にしかならないこの改造は値打ちなしです。








100均万年筆 ZEBRA fuente Disposable Fountain pen の分解(破壊)

セリアで売っている「ZEBRA fuente Disposable Fountain pen」は分解の仕方が分かりません。
ネットで検索しても発見できなかったので、気になっていました。
目的はインクの詰替えです。

一本持ってはいましたが、なかなか使い勝手が良いので無理やり分解せずにいたところ、
セリアで再び売っているのを見かけたので分解目的に購入しました。

結果は分解できませんでした。
この際だから、切り開いてみました。


100均万年筆 ZEBRA fuente Disposable Fountain pen の分解(破壊)(画像クリックで2328x1310サイズ)

ペン先はテープを貼り付けて引っ張る方式で簡単、綺麗に外せました。

ペン軸は胴体から外す事が出来ず、最終的にプライヤーで引っ張った為、千切れてしまいました。
このペン軸と胴体の部分は嵌め込んだ後、熱処理で胴体を縮めて密着させていると思います。

写真右上の線上の物は、ペン軸内に通されていて、インクの誘導を担うものと思います。

胴軸は後部に隔壁があり、インクタンクの役目を果たしていると思われます。

100均万年筆 ZEBRA fuente Disposable Fountain pen の分解(破壊)隔壁部分のクローズアップ

その隔壁の中央に臍のようなものがあり、
後部からインクを注入後、樹脂で密封しているのではと推測しました。

右側の黒い三つの部品は、元々一つの部品で、カットした為このようになっていますが、
インク注入後に差し込んだものと思われます。

感想


このペンは100円であるのに、書きやすくてインク量も多いので優秀な万年筆です。
ただ、ペン軸が分解洗浄出来ないので、色インクに変えて楽しむ事は出来ませんでした。
残念。

すごい! 1000円GPSモジュール(アンテナ付)(2828UBG5LF)

Banggoodで買った1046円の「Geekcreit®1-5Hz VK2828U7G5LF TTL Ublox GPSモジュール(アンテナ付)」の
1PPSパルスで正確な1秒のゲート信号を作り、周波数カウンターにするテストをしました。
0.15PPM以下の精度がある事が確認できました。
これで、8桁の信頼できる周波数カウンターを作ろうと思います。

すごい!GPS


すごい! 1000円GPSモジュール(アンテナ付)(2828UBG5LF)送られてきた実物の基板型番は 2828UBG5LF、ケースの型番表示は VK2828U7G5L でした。 ケーブル&コネクターも付属していました。
GがGND VがVCC BがPPS出力です。

ピンアサインについては、Googleで「2828UBG5LF」を検索すれば出てきます。(型番はすこしちがいますが、推測で判断しました)
※基盤の型番によっては P と表示されているものもある模様。

PPS出力の安定性と精度


精度について直接確認する術はありませんが、手持ちのカウンターや超高精度発振器と謳った部品が示す周波数からは、
最も信頼できると思われます。

しかし、長期間の精度と1パルスの揺らぎの問題は別なので、ある程度心配していました。
結果は非常に安定していて、8桁のカウンター + 超高精度12,800,000Hz発振器のテストでは3日間、室温7度以上の変動の環境で揺らぎは検出出来ませんでした。

これを正確な一秒源として使うことにしました。


1PPSの取り込み



以前の記事「TTL7476の遅延と揺らぎ」でテストした回路を使います。

TTL7476の遅延と揺らぎ(備忘録)GPSからの1PPS出力は2SC1815を通してCKに供給しました。

カウンター


カウントはPIC 16F18313、表示はMAX7219(7segLED8桁用)で構成。
回路図は省略して接続メモのみ。

/*
* OSC 内部32MHz ソフトでの設定 CSWEN:OFF
* 計測パルス入力端子:RA2 TMR0 clock(input)
* 表示タイミング入力端子:RA3 : 1秒パルス(input)立ち上がりエッジで7seg表示指示
* * テスト信号:
* RA5:(output)
* * 7セグ8桁LED:
* RA4:7segLOAD(output) 橙
* RA1:7segCLK(output) 黄
* RA0:7segDIN(output) 緑
*
*/

■PICソース
/* 
 * File:   main.c
 * Author: 
 *
 * Created on 2018/02/01, 18:07
 */

/* 
 * OSC 内部32MHz ソフトでの設定 CSWEN:OFF
 * 計測パルス入力端子:RA2 TMR0 clock(input)
 * 表示タイミング入力端子:RA3 : 1秒パルス(input)立ち上がりエッジで7seg表示指示
 * * テスト信号:
 *      RA5:(output)
 * * 7セグ8桁LED:
 *      RA4:7segLOAD(output) 橙
 *      RA1:7segCLK(output)  黄
 *      RA0:7segDIN(output)  緑
 */

/*
 * * *概要
 * *カウンター
 * カウンターはunsigned long
 * パルスのカウントはTMR0を16bitカウンターとして使用(RA2をTMR0のclockとする)
 * TMR0のオーバーフロー割り込みで、unsigned long counterHを+1
 * TMR0は常にカウントしている。停止する事はないが、
 * 前段のTTL回路でRA2へ計測パルスを1秒間送り出し、次の一秒間は遮断する。
 * 遮断期間中に7segに計数結果を表示する。
 * *7seg表示
 * MAX7219(7segLED8桁用)を使用
 * メモリ節約と簡易化の為、カウンタ値は最大999,999,999以下と仮定する
 * 99,999,999以下の時、上位ゼロサプレスをする
 * ゼロの時は下一桁に0を表示
 */


/*
 * Config 設定上の注意
 * ICD3によるデバッグを行う場合、WDTは無効にする必要がある。
 * ICD3によるデバッグを行う場合、LVPは無効にする必要がある。
 */


// PIC16F18313 Configuration Bit Settings
// 'C' source line config statements
// CONFIG1
#pragma config FEXTOSC = OFF    // FEXTOSC External Oscillator mode Selection bits (Oscillator not enabled)
#pragma config RSTOSC = HFINT32 // Power-up default value for COSC bits (HFINTOSC with 2x PLL (32MHz))
#pragma config CLKOUTEN = OFF   // Clock Out Enable bit (CLKOUT function is disabled; I/O or oscillator function on OSC2)
#pragma config CSWEN = ON       // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)

// CONFIG2
#pragma config MCLRE = OFF      // Master Clear Enable bit (MCLR/VPP pin function is digital input; MCLR internally disabled; Weak pull-up under control of port pin's WPU control bit.)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config WDTE = OFF       // Watchdog Timer Enable bits (WDT disabled; SWDTEN is ignored)
#pragma config LPBOREN = OFF    // Low-power BOR enable bit (ULPBOR disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable bits (Brown-out Reset enabled, SBOREN bit ignored)
#pragma config BORV = LOW       // Brown-out Reset Voltage selection bit (Brown-out voltage (Vbor) set to 2.45V)
#pragma config PPS1WAY = ON     // PPSLOCK bit One-Way Set Enable bit (The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle)
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a Reset)
#pragma config DEBUG = OFF      // Debugger enable bit (Background debugger disabled)

// CONFIG3
#pragma config WRT = OFF        // User NVM self-write protection bits (Write protection off)
#pragma config LVP = OFF        // Low Voltage Programming Enable bit (HV on MCLR/VPP must be used for programming.)

// CONFIG4
#pragma config CP = OFF         // User NVM Program Memory Code Protection bit (User NVM code protection disabled)
#pragma config CPD = OFF        // Data NVM Memory Code Protection bit (Data NVM code protection disabled)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>


#include <stdio.h>
#include <stdlib.h>

#define _XTAL_FREQ 32000000

#define testp PORTAbits.RA5 = 1;PORTAbits.RA5 = 0;

#define M7219LOAD PORTAbits.RA4
#define M7219CLK PORTAbits.RA1
#define M7219DIN PORTAbits.RA0

unsigned long counterH;
char go_disp;

void max7219businit() {
    M7219LOAD = 1;
    NOP(); //32MHz対策
    M7219CLK = 0;
    M7219DIN = 0;
}

void max7219sendloaddata(unsigned char address, unsigned char data) {
    //LOAD OFF
    M7219CLK = 0;
    M7219LOAD = 0;

    //address 送出
    unsigned char m = 0x80;
    do {
        M7219DIN = ((address & m) != 0);
        NOP(); //32MHz対策
        M7219CLK = 1;
        M7219CLK = 0;
    } while (m >>= 1);

    //data送出
    unsigned char m = 0x80;
    do {
        M7219DIN = ((data & m) != 0);
        NOP(); //32MHz対策
        M7219CLK = 1;
        M7219CLK = 0;
    } while (m >>= 1);

    M7219LOAD = 1; //LOAD ON (送信データラッチ指示)
    NOP(); //32MHz対策
    M7219DIN = 0;
}

void max7219bcddisp(unsigned long x, int punctuation_capability, int zero_suppress) {
    char buff[10];
    char n;

    ultoa(buff, 1000000000 + x, 10);

    if (punctuation_capability) {
        buff[6] = buff[6] | 0x80;
        buff[3] = buff[3] | 0x80;
    }

    if (zero_suppress) {
        for (n = 1; n < 9; n++) {
            if (buff[n] & 0x0F) {
                break;
            }
            buff[n] = 0x0F;
        }
    }

    max7219sendloaddata(0x09, 0xFF);
    for (n = 0; n < 8; n++) {
        max7219sendloaddata(0x08 - n, buff[n + 2]);
    }
}


char hosei_sw;
void counter_disp(){
    unsigned long count; 
    unsigned long hosei;
    
    //TMR0H,TMR0Lの順次変更禁止。TMR0Hを読み出せない   
    count = (((unsigned long) counterH * 0x10000) + ((unsigned long) TMR0H * 0x100) + TMR0L);
    count = count * 2;
    
    //ゲート時間が狂っている場合の補正(今回は補正の必要なしのため、0)
    if (hosei_sw) {
        hosei = ((count / 1000) * 0)/100000;
    } else {
        hosei = 0;
    }
    hosei_sw = !hosei_sw;
    
    max7219bcddisp(count-hosei, 1, 1);
}

void interrupt intservice() {
    INTCONbits.GIE = 0;
    asm("MOVF PORTA,W");

    if (PIR0bits.TMR0IF) {
        PIR0bits.TMR0IF = 0;
        counterH++;
    } else if (PIR0bits.IOCIF) {
        PIR0bits.IOCIF = 0;
        IOCAFbits.IOCAF3 = 0;
        go_disp = 1;
    } else {
        PIR0 = 0;
    }

    INTCONbits.GIE = 1;
}

/*
 * 
 */
int main(int argc, char** argv) {

    //INT Disable 
    INTCON = 0x00; //GIE,PEIE:0;

    //I/O PORT
    PORTA = 0x00; //Clear PORTA
    LATA = 0x00; //Clear PORTA DATA LATCH REGISTER
    ANSELA = 0x00; //digital I/O
    TRISA = 0x0C; //RA2:input; (RA3はinput only) 
    WPUA = 0x0C; //RA3,RA2:Pull-up enabled
    
    
    OSCCON1 = 0x60; //OSCILLATOR CONTROL REGISTER  NOSC:110 HFINTOSC(1 MHz)
    OSCFRQ = 0x7; //OSCFRQ: HFINTOSC FREQUENCY SELECTION  HFFRQ<3:0>  32MHz

    //OSCTUNE = 0x3B; //HFINTOSC TUNING REGISTER

    //INT reg clear
    PIE0 = 0x00;
    PIE1 = 0x00;
    PIE2 = 0x00;
    PIE3 = 0x00;
    PIE4 = 0x00;
    IOCAP = 0x08;   //INTERRUPT-ON-CHANGE PORTA POSITIVE PORTA30:1
    IOCAN = 0x00;   //INTERRUPT-ON-CHANGE PORTA NEGATIVE

    //PPS
    //T0CKIPPS =  0x02; //T0CKI input is RA2 明示的に指定すると機能せず

    //TMR0 init
    //TMR0 is an 8-bit timer 1:1 Postscaler
    T0CON0 = 0x90; //The module is enabled and operating;TMR0 is a 16-bit timer;T0OUTPS:1:1; 
    T0CON1 = 0x10; //T0CKIPPS (True);not synchronized;1:0
    TMR0H = 0;
    TMR0L = 0;


    //MAX7219
    //初期化
    __delay_us(1000); //7seg起動待ち
    max7219businit();
    max7219sendloaddata(0x0c, 0x01); //シャットダウンレジスタ,Normal Operation
    max7219sendloaddata(0x0b, 0x07); //スキャン制限レジスタ,Display digits 0 1 2 3 4 5 6 7

    counterH = 0;
    TMR0H = 0;
    TMR0L = 0;
//    counter_disp();
    
    max7219bcddisp(0,1,1);
    go_disp = 0;
    hosei_sw = 0;


    PIR0 = 0;   //PERIPHERAL INTERRUPT REQUEST REGISTER 0
    PIE0 = 0x30; //TMR0IE=1;IOCIE:1;
    INTCONbits.GIE = 1;
    while (1) {
        if (go_disp) {
            counter_disp();
            go_disp = 0;
            counterH = 0;
            TMR0H = 0;
            TMR0L = 0;
        }
    }

    return (EXIT_SUCCESS);
}



感想


室温に影響されない一秒の正確なパルスがGPSで簡単に得られるとは驚きました。
GPSモジュールも千円だなんて!
しかも、室内で受信できました。ZenFone Go ZB551KLのGPSは受信出来ない場所で。

そして、たった8ピンで75円のPIC 16F18313で周波数カウンターが出来てしまうなんて!

その昔秋月で買った「12.8MHz +-1ppm/年 超高精度クリスタルモジュール」も調整し、12,800,000Hzに調整しました。
三日間、室温7度程度の変動環境で1Hz程度の変動でした。

アマゾンで2980円で買った
【SANCTUS】 周波数カウンタ モジュール 8LED 0.1~60MHz 20MHz~2.4GHz 信号発生器による動作確認済
もTCXO calを調整してGPSの精度に合わせました。
ただし、こちらは少し温度に対して変動がある様で上記環境で4Hz程度の変動がありました。

安定度はもちろん、絶対的な精度がこんなに安く簡単に出来るなって、すごい!!

ディズニーにうつつを抜かしている間に世の中進歩していました。

グリーンの階段(イクスピアリ4Fより3F)

グリーンの階段(イクスピアリ4Fより3F)
(画像クリックで1920x1080サイズ)


撮影場所

テーマ : ディズニー・ギャラリー
ジャンル : 写真

100均掛け時計用クォーツの精度

ダイソーの100円の壁掛け時計に使われているクォーツムーブメントの一秒パルスを周波数カウンターのゲート信号に使用してみました。

中心周波数は10ppm程のズレがあるようですが、パルス間の揺らぎは0.04ppm以下のようです。
安定した温度の環境では、これも0.04ppm以下の安定性がありました。
これを簡易な恒温槽に入れればどうなるのか興味が沸いてきました。



100均掛け時計用クォーツの精度
右上のコイル部分が2極単相2スロットステッピングモータ(このモータは必要ありません)

このモータの直流抵抗値は約119オームでした。ということは駆動力のあるパルス信号が手に入るという事です。


100均掛け時計用クォーツの精度
モータ部分を取り外したところ 赤黒線は電源1.5V 橙灰色線はモータ駆動用


100均掛け時計用クォーツの精度
GND(黒線)と駆動用の端子の波形(橙灰色線はモータ駆動用)

モータは一秒に半回転(180度)。各パルスは2秒間隔でした。

100均掛け時計用クォーツの精度
バルス幅


メモ


PIC 16F18313とMAX7219(7segLED8桁用)、それとGPSの1PPSパルスで正確な周波数計を作る積りでプロトタイプを作っていました。
カウンターの方は出来、GPS受信器を買おうと思って秋月を覗くと、予定のGPS受信キットは在庫切れ。
仕方なく、恐る恐るBanggoodで代替品の注文をだしましが、到着まで一ヶ月程覚悟しなくてはならないので、
ふとダイソーの時計が目に入り「これ使えるのでは」で、こうなりました。

短時間的には8桁の周波数計で25,000,000Hzの入力で1デジットの変化でした。
100円で安定した2秒間隔のパルス源が手に入るとは、びっくりです。

ならば、簡易な恒温槽に入れたらどうなるのか?やってみたくなりました。
恒温槽など作った事がありませんので挑戦です。



コイルの電線は0.06mmΦだったので抵抗値から換算すると17mある模様。
0.06mmのウレタン線が17m手に入りました。0.1mmが保有している一番細いウレタン線だったのでこれはいいかも。

凛や 北東側より(イクスピアリ)

凛や 北東側より(イクスピアリ)
Canon EOS 6D EF40mm F2.8 STM 1/200秒 F8 ISO100 40mm (画像クリックで1920x1080サイズ)



撮影場所

テーマ : ディズニー・ギャラリー
ジャンル : 写真

南側から(ロティズ・ハウス)

南側から(ロティズ・ハウス)
Canon EOS 6D EF40mm F2.8 STM 1/400秒 F8 ISO100 40mm (画像クリックで1920x1080サイズ)


撮影場所

テーマ : ディズニー・ギャラリー
ジャンル : 写真

淋しげ(イクスピアリ)

淋しげな(イクスピアリ)
(画像クリックで1920x2400サイズ)



撮影場所

テーマ : ディズニー・ギャラリー
ジャンル : 写真

お知らせ
■注意:Google Chrome以外のブラウザでは動作しない事もあります。
お好みに応じて
画像だけの表示でいいよ
やっぱり全部表示して
背景は黒がいいな
背景を元に戻して
サブジャンル
メモリアルマップ
My Favorite Photo
検索フォーム
プロフィール

otsu.usiwakamaru

Author:otsu.usiwakamaru
五条の橋でひらりひらりと欄干を飛び渡る牛若丸のように、興の向くまま電子回路にプログラミングに写真にと飛び回っています。

プロフィール詳細

カレンダー
02 | 2018/03 | 04
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
キーワード
クリックしたキーワードの記事のみ表示します。

ダンサー ミニー ミッキー デイジー ドナルド グーフィー キャラクター  3D 試み MFP 電池 ティンカーベル デザイン 全天球 クラリス パークテーマ プルート チップデール キャスト IXY マレフィセント スクルージ スモールプラネット ダッフィー SPOT 改造 

最新記事
月別アーカイブ
全記事表示リンク

全ての記事を表示する

おすすめプログ(新着記事)
リンク


にほんブログ村
カテゴリ
橋 (1)
PIC (3)
カウンタ
訪問者数(UU)

アクセス数

現在の閲覧者数

tael no013用