コンテンツへスキップ

フィラメント菅時計

時計って家にあります? 私,引っ越したので無かったんです。

PCかスマホ見ればいいですし,時計を持ってない人は多いかも。 しかし,朝はギリギリまで寝ているので,スマホをわざわざポケットから取り出す時間すら勿体なかったりします。

時計が欲しい! しかもなるべくカッコイイ時計が欲しい!

そこで,欲求を整理した結果,自分が欲しい時計がamazonでは見つかりませんでした。なんてこった!! そんなわけで時計を作りました。

作ったの半年くらい前なんですけどね。作り方をざっくり紹介します。

ガラスの加工がうまくいかなかったのが残念。

目次

  • 欲求の整理
  • 全体構想と仕様追加
  • 開発環境
  • 回路の部品一覧
  • 回路とソースコード
  • タイマモジュールの使い方
  • GPSの使い方
  • IOエキスパンダ―のつなぎ方
  • フィラメント間の使い方
  • 木枠
  • 回路発注
  • 完成!
  • 雑記

欲求の整理

時計を作るにあたって,求める機能を羅列していきます。

  • 見た目をカッコよくしたい → 木材で枠を作る。フィラメント菅を使用。
  • 電池交換したくない → コンセントから給電
  • 手動で時間を合わせるのが面倒 → 電波等で時間を公正

ニキシー菅を使って作りたかったけど,ニキシー菅はかなり高電圧らしい。5Vで作れた方が安心なので,フィラメント菅に変更しました。敗北 +1。

全体の構想と仕様追加

また,基本的な部品はこれを使用。これにGPSをくっつけます。 6桁表示・フィラメント管時計キット -nixie-tube.com さん

コントローラ(マイコン)部分は私が慣れているRaspberry Pi Picoを使用します。

全体の構成はこんな感じ。

電波で公正ですが,なるべく簡単に作りたいという気持ちがあり,GPSでやります。

GPS受信キット 1PPS出力尽き 「みちびき」2機受信対応

GPSから時刻を取得して時刻表示を更新するタイミングは下記にします。

  • 電源投入時
  • スイッチ(SW)押下時
  • 内部で持っている時刻が12時0分0秒の時

開発環境

  • 開発PC: windows
  • 開発対象: Raspberry Pi Pico
  • 言語: MicroPython
  • 開発環境: Thonny
  • その他: Mini GPS_r1.20 (GPSの設定に使う)
  • その他: Power GPS_r1.00 (GPSの設定に使う)

回路の部品一覧

NAMEQuantitymemoURL
Raspberry Pi Pico1https://akizukidenshi.com/catalog/g/gM-16132/
IV-96フィラメント菅https://nixie-tube.com/shop/1_76.html
5V2A11Aで十分https://akizukidenshi.com/catalog/g/gM-01801/
DCジャック12.1mmhttps://akizukidenshi.com/catalog/g/gC-09408/
タクトスイッチ4色は何でもhttps://akizukidenshi.com/catalog/g/gP-03647/
ボタン電池11.5Vhttps://www.amazon.co.jp/dp/B003X5WJR6?tag=amz-mkt-edg-jp-22
電池ホルダ(LR44用)1https://akizukidenshi.com/catalog/g/gP-08208/
ICソケット18pin1https://akizukidenshi.com/catalog/g/gP-00008/
ICソケット8pin1https://akizukidenshi.com/catalog/g/gP-00017/
ICソケット28pin3https://akizukidenshi.com/catalog/g/gP-00013/
DS1307+1RTC(タイムキーパー)https://akizukidenshi.com/catalog/g/gI-06949/
MCP230173I/Oエキスパンダーhttps://akizukidenshi.com/catalog/g/gI-09486/
水晶発振子32.768kHz1https://akizukidenshi.com/catalog/g/gP-04005/
10kΩ5https://akizukidenshi.com/catalog/g/gR-25103/
1kΩ2I2Cバス用https://akizukidenshi.com/catalog/g/gR-25102/
15Ω6https://akizukidenshi.com/catalog/g/gR-09429/
0.1µF6https://akizukidenshi.com/catalog/g/gP-00090/
M3ねじ適量
スペーサー適量
GOS受信機キット1https://akizukidenshi.com/catalog/g/gK-09991/
ボタン電池1予備https://amzn.to/3oIKaik
基板1PCBwayでプリントしてもらいました。

過不足あるかもしれないけど御愛嬌。

回路とソースコード

私のgithubで公開したはず

回路は watch.pdfです。

タイマモジュール

DS1307+を使います。どうやら内部のメモリに格納された値が時間の初期値で,そこからカウントアップしていく感じらしいですね。

時間を合わせるには,このメモリに時間を上書きしてあげます。

ドライバーですが,Micropythonで簡単に使えるライブラリがgithubに上がってるので使わせていただきます。

書き込みなどは下記のgithubの関数を使うのが簡単です。

micropython-tinyrtc-i2c -github

使い方は簡単,「ds1307.py」をクローンして,picoに保存してあげましょう。それで準備完了。あとは main.py 内でインクルードしたりして,普通に関数をコールすればOK。

下記も参照。

注意点ですが,タイマモジュールに時間を書き込むときは2進化10進法表記の整数にしないといけません。この後出てくるGPSはASCIIで時刻を取得するので,変換してあげましょう。

なお,メモリの値は,電源供給が絶えると消えてしまいます。が,私の設計ではGPSで取得して上書きするので,電池追加等はしていません。

GPS

下記を設定

  • 5Hzで時刻を受信
  • GPZDAモード

GPZDAモードは日付と時刻だけが流れてきます。受信データはASCIIコード。 ホットスタンバイで,ずーっと受信します。消費電力など知るか。

仕様について。下記の3つの条件が一つでも満たされたとき,GPS情報を読み込むように設計しました。

  • 電源投入時
  • タイマモジュール が保持している時刻が0時0分0秒のとき
  • push switch が押下されたとき

GPSの使い方

GPSは色々と受信できます(位置情報とか)が,日付と時刻のみのモードに設定します。ボーレートや更新周波数も設定します。

GPS受信キット 1PPS出力尽き 「みちびき」2機受信対応

秋月のサイトに,GPS設定用ソフトのリンクが張ってあります。

受信するデータの形状はこんな感じの33文字です。ただし,時間は本初子午線基準なので,日本時間にするためには 9 時間足してあげる必要があります。

$GPZDA,131003.400,28,10,2022,,*5B

githubで共有した302行目でGPSを読み込んでいます。 次の行のcorrect_time(buff, rtc_write)の引数ですが,buffは302行目で読み込んだ値,rtc_writeは書き込み先(つまりタイマモジュールに対応するオブジェクト)です。

IOエキスパンダ―

GPIOピンを増やすICです。下記のようにI2Cで結線してあげればOKです。

I2Cの結線
回路一部抜粋

A0, A1, A2 の3ピンでスレーブアドレスを指定できます。Highが1, Lowが 0で,3bitなので最大で8個のMCP23017が繋げるってことですね。 (A0, A1, A2)=(0,0,0)の時,アドレスは0x20になります。

フィラメント菅の使い方

※フィラメント菅の回路図記号が分からなかったので(存在するんですか?)代わりに7セグで作りました。

回路一部抜粋

フィラメント菅には制御ピン8本と電源ピン(コモン)1本の計9ピンあります。

電源は5VでOK。コモンに5Vを供給しておいて,制御ピン(IOエキスパンダ―MCP23017に繋いである)を0Vにすると,電流が流れて対応するセグメントが光ります。

フィラメント菅の実験

木の枠

やっぱり3Dプリンタより木の方がカッコイイよね。

ところで,趣味で CAD 使う時って皆さん何を使ってるんですか?

こんなに単純ならCAD要らんやろって? CADなしで物を作るなどありえん……

自分は oneshapeを使ってみました。 インストール不要ですし,履歴型なので操作感がsolidworksに似ていて使いやすい。長さの測定方法がよく分からなかったのでそこだけイマイチでした。

多分下記リンクで飛べば,自分が作ったデータが見れるはず。

onshape

CAD

これに合わせて切っていきました。切る/穴を空ける/削る。 ドリルとのこぎりと,ガラスカッターが必要です。

水溶性ニス(ダークブラウン) ガラス切る

ガラスはガラスカッターで傷を付けた後,板チョコのように割って加工するんですが,上手くカットできませんでした。当然です,板チョコですら上手く割れないじゃないですか。

自分はガラスカッター以外はホームセンターで全部買いました。

・ガラスカッター & オイル(左端2個): 使いやすかったかと言われると微妙。普通なのでは。

・ニス(真ん中): 二度塗りしました。塗って乾かすだけなので楽でした。色も良い感じ。

・ドリル(右端): ドリルって何が良いんだか分からないのでとりあえず BOSCH にしました。小さい木材を削る分には全く問題無い,使い勝手がいいドリルと言う印象でした。

・ドリルスタンド(右端): ドリルを固定してボール盤みたいにして使ってます。小さい木材を固定するのはちょっと工夫が必要ですが,まぁ大丈夫でしょう。

金が溜まったら卓上フライスが欲しい。

回路発注

PCBway で注文しました。注文時にオペレーターにチャットで繋がって基板チェックが入って,新鮮でした。後でメールでやり取りとかしないんだなぁと。一発OKだったのでほぼ会話なしでしたし,届くまでも1週間しなかったので,かなり良かったです。 ただし,たしか 5枚 $30 くらいだったんですが,ちょうど円安の時期だったので5500円くらいに…。

んで,出来た。

完成!

部品値段 [円]
プリント基板5493
フィラメント菅時計キット11600
GPS受信機キット2200
木材・ハケ・ニス・ガラス1526
合計13419

他にのこぎりとかドリルとか買ったので結構な額が動いた。

夜の姿はこんな感じ。

夜のフィラメント菅の暖かい輝き
夜のフィラメント菅

雑記

利用させてもらった ds1307.py は MITライセンス。こういう無償で公開しているコードってすごく有難いですし有難すぎて投げ銭したい気持ち。github さんスパチャ機能を実装してくれないかな。

追記 (2023/5/13)

みちびき受信キット (GPS) の電池が無くなると動作がおかしくなります。

詳細ですが,GPS はホットスタンバイでずっと正確な時間を受信しており,ラズピコが時々読みに行くという設計です。GPS は受信する信号の種類やボーレートを設定する必要があり,秋月のページに載っている設定ソフトであらかじめ設定します。そして,設定を保持するために,ボタン電池が付いています。この電池が無くなると,設定が初期化されて,ラズピコが読みたいデータ形式ではなくなってしまい,結果,動作がおかしくなってしまいます。(たぶん 11:59:59 から時間が更新されなくなります。)

つまり,「電池交換したくない → コンセントから給電」という要求は達成できていません!!! くやしい!!!!! 

とはいえ,正確な時間 or 停止 なので異常が分かり易くて使い勝手は良いのかなと思います。「いつの間にか時計が30分遅れていた! 遅刻だ!」が一番ヤバいと思いますので。なので,いったんは保留にして,今後もし Ver 2. を設計することになったら修正したいと思います。

PICマイコンを使ってみます。使用するのはpic16f886で、windows10、MPLAB v5.10。

PICマイコンを使ってみます。使用するのはpic16f886で、windows10、MPLAB v5.10

目次

  • PIC開発環境
  • 回路
  • コード
  • 書き込み
  • 動作確認
  • 雑記
  • 参考

PIC開発環境

ソフトウェアでコーディングした後、ライターを用いてマイコンに書き込みます。

  • ソフト (MPLAB X IDE + MPLAB XC8コンパイラ)

IDEは統合開発環境で、エディタ、デバッカ、シミュレータなどほとんどのプログラムを内蔵しています。MPLAB X IDEは8bit~32bitマイコンで共通で使用できます。 コンパイラはC言語のようなコンパイラ言語をコンパイルして機械語に翻訳するプログラムです。Cコンパイラは別にインストールし、MPLAB X IDE に統合します。

私はwindows10ですが、macでもlinuxでも同様の環境でOKみたいです。

コンパイラはいくつかありますが、microchip社が比較的新しく発表したのが MPLAB XC8コンパイラです。 MPLAB IDE8.84迄のバージョンには既にHI-TECH Cが同梱されているみたいです。

・ MPLAB X IDE | Microchip Technology


MPLAB XC Compilers| Microchip Technology

  • 書き込み機(ライター)

記事によって互換品の付属のアダプタが危険っぽかったので別途用意しました。ネタバレですが、書き込み機の一部機能が壊れてました。

回路

2つLEDをつけて交互に点滅させます。 簡単で良いです。実験中に電源が入っているかを確認するためのLEDと、電源を外したときに瞬間的にマイコン電源がなくなるのを防ぐために (一応)つけているコンデンサが加わっています。

回路図

データシートを見ながら回路を組み立てます。リンクは秋月さんのとこのです。

マイコンのpin

コード

PICに書きこむ例としてリモコンのコードを見ながら、自分でコードを書いていきたいと思います。

プロジェクト

file/New Projectから作成します。MicrochipのStandalone Projectを選択します。

new project

今回使うpic16f886を選択します。

ライターは使用するPickit3を選択します。

コンパイラはXC8を選択します。

ファイル名は適当に決めます。

sourceフォルダの中に1つmainのファイルが必要です。

cファイルを開き、コードを書いていきます。

設定

production/set configuration bit の設定をしていきます。 なお、このマイコンはMCC対応してません。MCCは、簡単に設定できる超便利ツール、らしいです。

MPLAB® Code Configurator -microchip

set configuration bit

出来たら、generate source codeをクリックしてコードをコピペします。

configuration

設定は秋月のリモコンと一緒にします。今回は関数など使ってないので、I/Oさえ間違わなければ問題ないと思われます。

// CONFIG1
#pragma config FOSC     = INTRC_NOCLKOUT    // 発振回路設定 Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE     = OFF               // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE    = OFF               // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE    = ON                // 外部リセット/汎用入力の選択で外部リセット有効化 RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
#pragma config CP       = OFF               // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD      = OFF               // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN    = OFF               // Brown Out Reset Selection bits (BOR disabled)
#pragma config IESO     = ON                // オシレータのスタートアップとコード実行の潜在時間を最小化Internal External Switchover bit (Internal/External Switchover mode is enabled)
#pragma config FCMEN    = ON                // オシレータの故障の場合さえ、デバイスが作動し続けるのを許容するように設計Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#pragma config LVP      = OFF               // Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming)

// CONFIG2
#pragma config BOR4V    = BOR40V            // リセットしきい値を4V Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
#pragma config WRT      = OFF               // Flash Program Memory Self Write Enable bits (Write protection off)

BORとは: 事故時などに信号が不安定になるとマイコンによくありません。そこで、一定のしきい値を設定し、4Vなら4V±0.2Vを下回るとリセットを書ける機能を設定します。そのような機能をブラウンアウトリセット機能(BOR)と呼びます。

main関数

I/Oポートを設定します。クロック周期設定 I/Oポートの指定は、init関数の中で行っています。関数の使い方が解らなかったので、0~9999まで数え上げさせて時間を作る雑なコードになりました。すべてPortAの8pinすべて出力にしています。RA2=1;は、RA2が割り当てられたpinに電圧をかける指令です。

void init(){
    OSCCON = 0b01110000; //8MHz
    ANSEL = 0b00000000; //
    TRISA = 0b00000000;//
    TRISB = 0b00000000;
    TRISC = 0x00;
    PORTA = 0b00000000;
}

void main(void){
    int i=0;
    init();
   
    while(1){
        
        i=0;
        while (i <10000){
            i++;
        }
        RA2 = 1;
        RA3 = 0;
        
        i=0;
        while (i <10000){
            i++;
        }
        RA2 = 0;
        RA3 = 1;
    } 
}
portA

書き込み

繋いだらメニューバーの下の△をクリックします。

警告がでました。C:\Program Files (x86)\Microchip\xc8\v2.05\pic\includeやC:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\c99に入っているヘッダファイルを開きます。私の場合はなぜかここにありましたが、多くの場合はProgram Files (x86)じゃなくProgram Filesだと思います。 C標準ライブラリ -PICマイコンによる開発手法

なんだかよく分からないままひたすら関係ありそうなヘッダファイルを開いて確認していくと、xc.hがインクルードしているalloca.hが入っていない。

MPLAB X IDE v5.xxの注意点 -サヌキテックネット にしたがって、projectのプロパティから、XC8 Global OptionsでC99をC90に変更するとビルドに成功しました。警告は無視。

BUILD SUCCESSFUL (total time: 6s)

書き込んでいきます。

電源供給するように設定します(私のライターは安く買ったからか電源を供給する機能がうまくいきませんでした)。マイコンは電源がないと動作しませんので、ライターか回路から電源を供給して下さい。 project上右クリックでpropaties、hardware toolからPICkit3を選択、pickit3からpowerで、チェックボックスにチェック。マイコンのデータシートにWide Operating Voltage Range (2.0V-5.5V)とあったので、5.0Vの電圧を供給します。

電源がない場合はコンピュータがデバイスを見つけられない、とか、以下のようなメッセージが表示されます。

PICkit 3 is trying to supply 5.250000 volts from the USB port, but the target VDD is measured to be 4.875000 volts. This could be due to the USB port power capabilities or the target circuitry affecting the measured VDD.

私はライターが壊れていたので、無理やり外部から接続できるようにしました。

Programming...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0xfff
configuration memory
Programming/Verify complete

ライターの画像です。Vddに電源+、VssにGNDを接続します。(Vssは本来電源がマイナスになり得る場合のマイナス側です。)ライター付属の紙より転載。

PICkit3

動作確認

チカチカした。

Lチカ
Lチカ

雑談

MCCという便利機能があるんですが、Tools/Embedded/MPLAB Code Configuratorで見たところ、最新版でもサポートしているデバイスが少なく今回使用したPIC16F886もサポートされていませんでした。悲しい。

参考

Blumaという使いやすいCSSワークフレームがあると聞いて使ってみました。

Webアプリを作るには画面表示も必要。使いやすいCSSワークフレームがあると聞いて使ってみました。

目次

  • 目的
  • bluma
  • 作ったもの(例)
  • おまけEmmet
  • 参考

目的

Railsでwebアプリを作ろうと思っているんですが、その後のビューを作成することが目的です。グラフを表示するのが機能のメインなんですが、使いやすいCSSワークフレームがあると聞いたので周りのデザインを先に作ってしまおうと思います。 構成は以下のようになっています。

構成

  • top画面
  • アプリ紹介画面
  • 詳細ページ1
  • 詳細ページ2
  • 詳細ページ3

Bluma

Bluamaは、FlexboxをベースにしたフリーのCSSフレームワークです。下の公式ページからダウンロード出来ますが、CDNから利用すればダウンロードする必要がありません。 CDNとは、デジタルコンテンツをネットで大量に配信するためのネットワークの事です。これを利用するとURLを貼ることでダウンロードしなくてもBlumaを利用できます

BLUMA

ビューをHTMLとCSSで書いていきます(おまけも参照)。 Blumaを使用する準備は、該当のURLを貼るだけです。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.1.2/css/bulma.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<a href="#" >HELLO!</a>
<a href="#" class="button">HELLO!</a>
<a href="#" class="button is-primary is-large">HELLO!</a>
<a href="#" class="button is-primary is-medium">HELLO!</a>
<a href="#" class="button is-primary is-small">HELLO!</a>
<a href="#" class="button is-info is-small">HELLO!</a>
<a href="#" class="button is-success is-small">HELLO!</a>
<a href="#" class="button is-warning is-small">HELLO!</a>
<a href="#" class="button is-danger is-small">HELLO!</a>
<a href="#" class="button is-white is-small">HELLO!</a>
<a href="#" class="button is-black is-small">HELLO!</a>
Bluma test: button color size

classを割り当てることで、ボタンなどを表示できます。色や大きさはis-large,is-primaryなどで指定できます。

   <div class="columns">
        <div class="column">
            <div style="background-color: #42afe3">
            左サイド
            </div>
        </div>
        <div class="column">
            <div style="background-color: #f68b39">
            まんなか
            </div>
        </div>
        <div class="column">
            <div style="background-color: #fce473">
            右サイド
            </div>
        </div>
        <div class="column">
            <div style="background-color: #fce473">
            追加
            </div>
        </div>
    </div>
Bluma test: column

columsで囲ったcolumnは均等に並べられます。

    <div class="columns">
      <div class="column is-2">
        <div style="background-color: #f68b39">
          ウィンドウ幅1/12サイズの要素
        </div>
      </div>
      <div class="column is-4">
        <div style="background-color: #fce473">
          ウィンドウ幅2/12サイズの要素
        </div>
      </div>
    </div>
    <div class="columns">
      <div class="column is-6">
        <div style="background-color: #42afe3">
          ウィンドウ幅6/12サイズの要素
        </div>
      </div>
    </div>

    <div class="columns">
      <div class="column is-4">
        <div style="background-color: #f68b39">
          ウィンドウ幅4/12サイズの要素
        </div>
      </div>
      <div class="column is-4">
        <div style="background-color: #fce473">
          ウィンドウ幅4/12サイズの要素
        </div>
      </div>
    </div>
    <div class="columns">
      <div class="column is-4">
        <div style="background-color: #42afe3">
          ウィンドウ幅4/12サイズの要素
        </div>
      </div>
    </div>
Bluma test: column x/12

columnに大きさの指定をしてみます。この場合、左から12に対していくつの割合なのかを指定できます。うまく並ばなかったので端までは並ばないかもしれません。下のように分数で与えるとより細かく指定できます。

   <div class="columns">
      <div class="column is-two-thirds">
        <div style="background-color: #f68b39">
          ウィンドウ幅2/3サイズの要素
        </div>
      </div>
      <div class="column is-one-thirds">
        <div style="background-color: #fce473">
          ウィンドウ幅1/3サイズの要素
        </div>
      </div>
    </div>
    <div class="columns">
      <div class="column is-one-quarter">
        <div style="background-color: #42afe3">
          ウィンドウ幅1/4サイズの要素
        </div>
      </div>
      <div class="column is-half">
        <div style="background-color: #f68b39">
          ウィンドウ幅1/2サイズの要素
        </div>
      </div>
    </div>
Bluma test: column x/y

作った物(例)

bluma以外のCSSの色はこちらを見ました。=> HTML,CSS ホームページの背景色や文字色 (フォントカラー) -ホームページ 作成、運営管理ガイド

全体的にダサいのはフレームワークが悪いのではなくて(略)

例 アプリ紹介画面
例 詳細画面

グラフはcanvas.jsで書きました。今回はメインと離れるので割愛します。

<header class="nav">
      <div class="nav-left">
          <span class="nav-item">
              <i class="fas fa-bolt"></i>APP NAME
          </span>
      </div>
      <section class="level">
            <div class="level-left">
            </div>
            <div class="level-right">
                <div class="level-item tabs">
                <ul>
                    <li><a>TOP</a></li>
                    <li  class="is-active"><a>About</a></li>
                    <li><a>Daily</a></li>
                    <li><a>Weekly</a></li>
                    <li><a>Mounthly</a></li>
                    </ul>
                </div>
            </div>
            
        </section>
  </header>

navコンポーネントでナビゲーションとして仕様したい要素を囲う事でnavとして使用可能になります。 は実際に表示されるものをしていするときに使用すると、上下方向をちょうど良くしてくれます。

levelは水平に並べるコンポーネントで、tabに内包されたlistがタブとして表示されます。例の右上の部分になります。 is-activeは現在表示しているものの色を変えるなどするためのものです。JavaScriptは使っていないため、動くわけではありません。

<span class="nav-item">
            <p>ログイン</p>
            </span>

control has-addonsは調節機能であり、今回は隣のボタンと連なって見えるように調節してくれます。 場所はleft、rightなどで調節できます。
"fa fa-〜"はアイコンを表示してくれます。Font Awesome に一覧がのっています。 これもheadでURLを指定すればすぐに使えます。

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">

main

HEROエリアには最も目立たせたいものを配置します。

    <div class="hero is-success is-small">
        <div class="hero-body">
            <div class="container">
                <h1 class="title"> About</h1>
                <h2 class="subtitle"> </h2>
            </div>
        </div>
    </div>

"hero-head"はヒーローエリアのトップに、 "hero-body"はヒーローエリアの中心に、 "hero-foot"はヒーローエリアの底部に表示されるエリアです。"hero-body"の主コンテンツは垂直方向にセンタリングされます。

"is-bold"モディファイアーはヒーローエリアの背景色をグラデーションにします。"container"モディファイアーは内包するコンテンツを水平方向にセンタリングします。 heroを変な場所に置くと、clumonに組み込まれつつ大きく表示したりするのでレイアウトがおかしくなります。

<main class="columns">
    <div class="submenu column is-2 is-large">
              
    </div>

    <div class="column is-8"> 
          <div class="box media">
            <figure class="media-left">
                <i class="fab fa-earlybirds"></i>
            </figure>
            <div class="media-content">
                <div class="content">
                    <p><strong>24時間監視</strong><br>
                      サーバーが24時間常に監視し続けます。
                    </p>
                </div>
            </div>
          </div>  

          <div class="box media">
            <!--同様-->
          </div>  

          <div class="box media">
             <!--同様-->       
          </div>   
                  
        </div>      
    </div>        
  </main>

boxは四角で囲うためのものです。clumns内部のclass="submenu column is-2 is-large",class="column is-8"がそれぞれ指定した大きさで並んでいます。class="column is-8"内部でmediaが縦に並んでいます。

<figure class="media-left">
      <p class="image is-64x64">
         <img src="http://placehold.it/128x128">
      </p>
</figure>

mediaはtwitterのようなメディアをイメージしたものです。アイコンに画像を入れるとそれっぽくなりますが、使いませんでした。

<main class="columns">
         <div class="submenu column is-2">
            
            <aside class="box">
                <p class="menu-label">
                    datas(average)
                </p>
                <ul class="menu-list">
                    <li>monday</li>
                    <li>Tuesday</li>
                    <li>Wednesday</li>
                    <li>Thursday</li>
                    <li>Friday</li>
                    <li>Saturday</li>
                    <li>Sunday</li>   
                </ul>
            </aside>
        </div>
        
        <div class="submenu column is-8">
          <aside class="box">
              graph             
              <canvas id="canvas2" height="300" width="300"></canvas>
          </aside>
        </div>

    </main>

menuは縦に並べる要素で、menu-listのlistが並びます。labelはキーワードなど、分類を書く部分です。

    <footer class="footer">
        <div class="container">
            <div class="content has-text-centered">
            <i class="far fa-copyright"></i> Copyright 2019 Inc.Monsters
            </div>
        </div>
    </footer>

footerは画面下部にかかれる要素です。特に書くことがありませんが、一応copyrightを書いておきます。「著作権はこちら、使うときはここに言って」という事です。

おまけ Emmet

HTMLをまずは書くわけですが、便利な機能を見つけたので使います。 VScodeで拡張機能のEmmetをインストールし、左下の歯車をクリックして設定を開きます。ここで、 下記を追加します。

"emmet.triggerExpansionOnTab": true,
    "emmet.variables":{
        "lang": "ja"
    }

設定した後で、HTMLファイルを作成して!でTabを押すと

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

これが一気に表示されます。素晴らしい。

コマンド一覧 =>Emmet Documentation

参考

CDNについて

Bulmaについて

Emmetについて

KiCADを使用してプリント基板を注文するところまでやります。届いたら追記します。 使用するKiCADは5.0.2です。

目次

  • kicadとは
  • インストール
  • 基板データの作成
  • 製造データの出力
  • Elercowに注文
  • 雑談

KiCADとは

KiCADとは、回路図とプリント基板のレイアウトを作れるEDA(Electronic Design Automation、電子設計自動化ツール)で、無料で使用することが出来ます。CADの一種です。=>KiCad EDA

用途

回路を作るとき、部品の数がめちゃくちゃ多いだとか、回路を小さく軽くしたいというようなことがあります。そういうとき、プリント基板で作るということがあります。プリント基板というのは、配線が銅などでプリントしてある基板で、部品をつけるだけでいいという優れものです。KiCADはそのプリント基板を設計するときに活躍するツールで、なんとタダ!素晴らしいですね。

実際に作るときには、データを作って、そのあと外注するか自分でプリントすることになります。今回は注文してみたいと思います。

機能

KiCADは以下のCADがセットになっています。

  • KiCad プロジェクト・マネージャ
  • Eeschema 回路図エディタ (回路図とコンポーネント)。
  • CvPcb フットプリント・セレクタ。部品の足下の穴の位置や大きさ、銅の形などの情報を制作する。
  • Pcbnew PCB レイアウト。回路図にしたがってフットプリントが現れ、それを配置したり配線したりする。
  • GerbView ガーバー・ビューア。制作した製造データを確認する。
  • Bitmap2Component ビットマップをコンポーネントやフットプリントに変換。
  • PCB Calculator コンポーネント、線幅、電気的安全間隔、カラーコード等のための計算機。
  • Pl Editor 図枠エディタ。

kicadことはじめから抜粋

インストール

インストーラにした従えばオッケーです。Download | KiCad EDA

基板の設計

回路図の作成

私は今後つくるラジコンに搭載する赤外線受信回路をプリント基板にします。なるべく小さく、軽くし、かつ今後使いまわしできるようにするためです。動作確認とかやってないので今後変わる可能性は大ですが、まあとりあえずやってみようということで。 やり方は前述のkicadことはじめPDFにそって作業すればオッケーでしたので、申し訳ありませんが詳細は書きません。

  • オペアンプマークでコンポーネント(部品)を選び、緑の線で配線します。GNDマークから電源の類いが選べます。回路図が完成したらてんとう虫マークでチェックします。電源、GNDがついていないとここでエラーをはきますので注意してください。
  • ライブラリにない部品は自分で作らなければいけません。下記リンクで大量のコンポーネントを作ってくださった方のgitに飛べます。ダウンロードしたら、設定/パスの設定 からパスを設定できます。 nosuz/kicad-lib - GitHub GitHubからダウンロードする方法

回路図が完成したらてんとう虫マークでチェックし、問題がなければNETと書いてあるマークでネットリストを作成します。問題なければシンボルをフットプリントと関連付けます。それぞれの部品を調べながらフットプリントを選びます。新しいコンポーネントを作った場合、ここでフットプリントが見つからない場合は設定/パスの設定 からパスを設定できます。

必要なら部品表を作成しますが、私は部品表を作成できませんでした。なんででしょうね。バージョンに問題あるっぽい?です。

新規コンポーネントの作成

私の場合、秋月の変圧器はライブラリに無かったのでコンポーネントを新しく作る必要がありました。(5V出力昇圧DCDCコンバーター)。新規コンポーネントを作成する場合、回路図とフットプリントをそれぞれ作成して関連付けをします。Eeschema(回路図エディター)の上側ツールバーのオペアンプマークからシンボルライブラリーエディターを呼び出して回路図を作ります。

ファイル/新規ライブラリー か ファイル/ライブラリーの追加 からスタートします。作成するときの注意点は2つです。1つはパス、もう1つはピンのエレクトリックタイプです。

  • パス:回路図、フットプリントで関連付けるため、どのフォルダに入れたのかを覚えておきましょう。回路図エディターの 設定/パスの設定 からパスを設定できます。権限がありませんというメッセージが出てきたら、windowsの場合KiCADを起動するときに 右クリック/その他/管理者権限で実行 から開きます。
  • ピンのエレクトリックタイプ :ICなどは、動作に関係があるpinの他に電源供給用のpinやGNDのpinがあります。pinごとに、入力専用、出力専用、入出力兼用などという設定をしておくと回路図のエレクトリックルールチェックでミスがわかりやすくなります。ただ、ライブラリーを作成する時点で間違えると正しくてもエラーが出るので注意が必要です。よくわからないうちは パッシブ にしておけば大丈夫です。
新しく作った回路記号

回路記号ができたら、フットプリントを作成していきます。作業しやすいように下のようにしてすぐ保存できるようにするといいと思います。(参考にしたトラ技の丸パクリ)

  1. 回路図エディターのicマークでエディタを開き、ファイル/新規作成 から作成します。
  2. 名前をつけて、ツールバー左から3番目の 新規ライブラリを作成して,現在のモジュールを保存 でフットプリントをわかりやすいところ(mylib)に保存します。
  3. ファイル/アクティブなライブラリー で今作成したライブラリを選択します。ここで出てこない場合は 設定/パスを設定 でフォルダの場所を教えてあげます。
  4. ICとフォルダのマークからライブラリーから フットプリントをロード を選択して今保存したフットプリントを開きます。

あとは作りたい図面を探してきて、大きさに注意して作成するのみです。まずはアンカーを配置しておきましょう。中心線をフットプリントの中心に合わせなくても、後で配置するときに動かすので大丈夫だと思います。ほぼ直観的にできましたが、注意すべきポイントは2つです。

  • 単位 大きさはmmで統一しましょう。inchも選べます。1inch=25.4mm です。すべてのパーツをinchで作ると25.4倍の大きさで作れるのでうれしくなってしまいます。
  • クリアランス クリアランスはパターンとパターンの距離です。細かすぎるプリントは製造できません。P板.comではパッド-マスク(レジスト)のクリアランス設定 0.1mm 以上みたいなので参考にしましょう。
この章の参考

基板レイアウトの設計

回路図エディタの基板マークの 基板レイアウトの実行 をクリックします。部品がごちゃごちゃに並んでいるので、交差ができるだけ少なくなるように並べます。自動配線ツールがあるらしいですので興味がある方は調べてみてください。レイアウトはノイズ対策や高周波対策、熱などめちゃめちゃ細かいポイントがあるらしいですが、高周波ではないし複雑ではないレイアウトの場合に注意するポイントは2点です。

  • 直角に曲げない 電磁波が変な動作を引き起こすかもしれません
  • クリアランス パターン間が近すぎると製造できません。

わかりずらい項目についてメモしておきます。

  • 右上のアイコン F.Cuは表面の銅線のパターン、B.Cuは裏面の銅線のパターンです。各層ごとに決めていきます。F.Silksはメモのように使われてるはずです。
  • 配線 GNDは最後に配線します。
  • ビア 表と裏を貫通する穴です。ビアを経由することで表と裏の配線を繋げられます。

最後にてんとう虫マークの デザインルールチェックの実行 をします。設定をして「DRCの開始」ボタン。

私の場合ここでエラーが出たので書いておきます。 修正したかったがなぜか同じconn3は全部一緒のはずなのに配線できませんでした。コネクタ部品の穴につながりません。なんでだかわからないものの、問題があるのはこの部品だけなのでこのままやっちゃおうと思います。配線を別なところで作って移動させました。

悪知恵の写真

以上で基板のデータができました。最後に、データの出力の準備をします。

ドリルの配置をします。メニューバーの配置/ドリルと配置のオフセット から、基板外形の左隅におきます。これ、P版のサイトによると左下が安定らしいです。 セットアップ/パット -レジストのクリアランスで以下のように設定して保存します。P版では0.1mm以上を基準にしていました。配線/寸法線から寸法が測れます。

完成品の画像。ファイル/3Dビューア で3Dで見られます。

3Dビュー
この章の参考

プリント基板を作る

最後にメーカーに送るデータを作成します。作るのは「ガーバーファイル」と「ドリルファイル」です。

世の中には自作しているヒトも居ますので参考にしながら作ることもできそうです。が、今回私が作りたいのはかなり小さい基盤なのでプロにお願いしようと思っています。日本の企業もいくつかありますが、ちょっと高い。そこで今回はELECROW に注文します。

ガーバーデータとドリルデータ

ガーバーデータは各層のプリントの様子を、ドリルデータは穴の様子をまとめたデータです。

ガーバーデータとは、プリント基板を製造するためのデータです。ガーバーは元々基板のアートワークフィルムの作画に用いられるグラフィック・フォーマットでした。フィルム作画機メーカの Gerber System社の独自規格でしたが業界標準として広く普及したため、1979年にEIA (米国電子工業会)で RS-274D として規格化されました。

ガーバーデータとは -アロケートドットコム

データの出力

製造ファイル(ガーバーデータ)を出力

ガーバーデータを出力してみます。 ファイル/プロットで、写真のように設定して、製造ファイルの出力を押します。このようにファイルが出ます。 同じ画面で、ドリルデータの出力から、このように設定して、出力します。ついでにマップも出しておきます。

(追記) 裏面ソルダマスク のデータを送っていないことに気づきました。製造ファイル作成時にB.Maskにチェックを入れ、下の表の最終列のように編集してください。必須です。ありがとう、アニーさん。

ドリルファイルを生成

んで、elecrowの送るためにはデータの名前を変える必要があります。

Elecrowさんより抜粋

で、これを以下のように変更します。ファイルの名前が上の写真では「plane_SpeedControllReciever」になっていますが、表では「NAME」にまとめました。

layerbeforeafter
TopNAME-F.Cu.gbrNAME.GTL
BottomNAME-B.Cu.gbrNAME.GBL
Solder Stop Mask topNAME-F.Mask.gbrNAME.GTS
Silk TopNAME-F.SilkS.gbrNAME.GTO
NC DrillNAME.drlNAME.TXT
NC Drill-NPTHNAME-NPTH.drlNAME-NPTH.TXT
Mechanical layerNAME-Edge.Cuts.gbrNAME.GML
Solder Stop Mask BottomNAME-B.Mask.gbrNAME.GBS

-F.CtrYd,-F.Fabは参考にしたサイトでも使ってないし、部品を囲う線なのでプリントする必要もないものですので、送りませんでした。あと、NAME-NPTH.drlがありません。この基板はノンスルーホールを作ってません。

ガーバービューアで見てみたらこんな感じです。ドリルもあいてるっぽいですね。 これをzipにします。

B.Maskのガーバービュー

Elecrowに注文

Elecrowに注文します。この会社のはかなり安い!でも基本的に英語です。日本語のぺージもありますが翻訳が雑なので注意です。 Elecrow PCB Manufacturingから注文します。

このように設定して注文しました。

  • Haslは半田レベラーのことで、Hasl(lead free)は無鉛半田です。
  • 端面スルーホールは、ありにするとエッジの穴が銅メッキされます。
  • 銅箔厚は、銅の厚さです。基板全体の重量のうち、銅の重量の割合が大きいほど電気特性が向上しますが、エッジングするのが難しくなるそうです。1mil=0.0254mmみたいです。とりあえず1ozで行きます。
  • PCBステンシルというのは、基板の型(メタルマスク)を製造するか、ということです。有料です。
  • 生産時間は、急ぎじゃないので4-7working days。
  • 国家は、とりあえずjapan、Registered Airmail(書留郵便) $4.98。
  • 注文画面でまた発送方法が出てきたのがよく分かりませんが、とりあえず安定のANA。

初めての注文で500ポイントがついてきたので196points(-$1.96)適用して全体で$16.17。日本円で1800円くらい。かなり安い!

(追記)基板が届きました!

3/27にデータを送り直して4/1に発送のメールが届き、4/2には基板が届いていました。予想よりだいぶ早かったです。(小さいからでしょうか?)
3Dビューワーで見たとおりにできあがっていましたね。小さく作る事が目的だったので素晴らしい!30mm*35mmくらいです。10枚注文しましたが12枚入っててラッキーでした。基板の導通状態を何枚か確認しましたが大丈夫そうでした。使うときにもう一度確かめるつもりです。満足!!

この章の参考

雑談

発注した基板がとどいたら届くまでの時間や反省をまとめて追記します。このブログが正しいのかはそれまで解りません。

追記(2019/3/27): B.Maskのファイルを追加するように追記しました。
追記(2019/4/8):届いた基板について追記しました。

送信機のテスト回路を作ってみました。受光素子を使ってみたくなったからです。うまくやればこれでセンサ、無線通信ができるはずです。

作ったもの

作ったものは受信チェッカーです。赤外線受信素子を使用したごく簡単な構成の回路をブレットボードに刺しただけなので作った感は薄いですが。この回路は送信機や受光素子のテストに使えます。

機能

  • 4.5~5.5V電源
  • 受光素子が対応している変調周波数の赤外線を受信するとLEDが点滅する。

動作

図1:作成物
図2:試験の様子

テスト用の送信機はテレビのリモコンを使いました。どこのメーカーのも大体FM38kHzらしいです。

狭い室内でやったところ、光が反射するので360度反応しました。机の下でも大丈夫! だだし経路が目測3mくらいまでで、4mくらいになるとまっすぐ向けていても反応しませんでした。送信機の電力を大きくすると伸びる?かもしれない。送信機を作ったらやってみます。

材料

図3: IRM0101 (右側はカバーを外したもの)
  • 赤外線受光素子PL-IRM0101  1 38kHzを受信するとVoutがVccから0V(HighからLow)に落ちます。
  • pnpトランジスタ 2SA1015
  • 発光ダイオード 持ってたやつ 1
  • 抵抗器 22kΩ 220Ω 1つずつ
  • コンデンサ 22μF
  • 電池ソケットと乾電池3つ

4.5~5.5V電源なら何でもいいです。乾電池3つでは一般的に4.5Vです。電圧を測ってみたら4.8Vでした。

回路

図4:回路構成

回路は上記の通りです。参考の本のまんまです。

使用センサの電源が4.5V~5.5Vだったので、5V電源と書いています。端っこのJがバッテリにつながるコネクタです。回路としてイメージしやすいようにできればと書き加えたものです。実際には私はこれに電池ソケットと電池3本4.5V をつなぎました。

以下は回路の解釈です。

この回路は基本的なスイッチング回路です。スイッチング回路とは、トランジスタの「ベースに条件を満たす電圧がかかった時にエミッタコレクタ間に電流が流れる」という特性をスイッチとして利用した回路です。ここで使用している2SA1015はpnp型のトランジスタですので、電圧がしきい値以下(OFF)の時にスイッチがONになります。

ここで使用しているフォトダイオードは赤外線を受講しているときOFF、していないときONになるように作られています。なので、赤外線を受信したときにスイッチがONになります。

22kΩ抵抗はベース電流を抑えるためのものです。Voutが5Vの時、ベース電圧が4.3Vくらいなので、

$$ \frac{V}{R} = \frac{4.3[V]}{22k[Ω] }\simeq 0.195 [mA] $$

だいたい0.2mAになります。一方で、2AS1015、LED、220Ω抵抗のループを見ると、大雑把にLEDで2Vの電圧降下があるとしたとき

\begin{equation} \frac{V}{R} = \frac{3[V]}{220[Ω]} =13.6 [mA] \end{equation}

なので、LEDには14mAくらい流れると思います。LEDは電流が多く流れるほど明るく光りますので、電流調整用です。

右端のコンデンサはバイパスコンデンサです。コンデンサは直流は通さないが交流は通すという特徴があります。詳細は下に書きました。ノイズは交流なので、直流回路で発生するノイズの交流信号を流してGNDに逃がしたり、電源を外した時にすぐに電圧がゼロにならないように緊急用電源としてついています。ICを使っているとき、ノイズや電源が急になくなることが故障の原因になるかもしれないからです。導線を使っている限りリアクタンス(コイル成分) は発生してしまうんですが、これは電流変化に応じて機電圧が生じるので、急に電圧がゼロになると予期せぬ動きをしかねません。

コンデンサの電圧、電流についてです。電圧Vは電荷量Qに比例しますので、キャパシタンスCを用いて

\begin{equation} Q = CV \end{equation}

\begin{equation} i = \frac{dQ}{dt} = C\frac{dv}{dt} \end{equation}

と書けます。小文字のi,vは交流であることが多いので、慣例に従ってみました。微分は微小時間あたりの微小変化です。例えばここに正弦波V=Acos(ωt)をいれるとコンデンサ電流IはI=Aωsin(ωt)=Aωcos(ωt+π/2)になるので、ちょこっと波長が遅れるわけです。

ここでωは各周波数で、周波数fとはω=2πfという関係があります。コンセントの電圧は東日本ではf=60Hzです。一方、直流はこの各周波数が0ですので、コンデンサの電流は下のようになって流れません。

\begin{equation} i =C\frac{dv}{dt} = C 0 = 0 \end{equation}

確かに変化分がなければただの2枚の板ですもんね。初めて知ったときはコペルニクス的回転って感じでした。そういうのって回路記号にも表れていて、FETとMOSトランジスタの記号の違いとかも面白いですね。

フォトダイオード

図5:受光素子ICの構成

受光素子の中身はどれもだいたいこんな感じみたいです。フォトダイオードの出力をアンプで増幅し、波形を整えて全体の出力とします。今回使った素子は、出力の直前でHigh信号とLow信号を反転させていました。

図6:素子に電圧を印加している時の図
図7:素子内部のエネルギーのイメージ(光導電効果)

半導体のバンドギャップ以上のエネルギーをもつ光が照射されると、光導電効果を起こして電子と正孔が動き、電流が流れます。 図7は上下に粒子のエネルギーの大きさを、左右に位置を表しています。光にエネルギーを貰うと電子は伝導体に入って移動します。電子がなくなった部分を正孔と言います。

このあたりはよくご存じの方には説明する必要は無いので、初めてこういう原理を知る方が読んでもイメージできる様に書いたつもりですが、かなり雑なので気になった方は参考に乗せた本や詳しいサイトで調べてみることをおすすめします。

図8:素子内部のエネルギーのイメージ(光起電力効果)

似たような効果で光起電力効果というのがあります。 n型半導体とp型半導体が接着されているもの(pn接合)に光が照射されると、半導体内部で同じように(違うといえば違うけど)電子と正孔が動き、電子はP層からn層へ、さらに外部回路へ出ていきます。 まとめると、光で電が流れるようになるので光スイッチのような感じで使えます。

雑談

最近思うのが、教科書として大学で推薦されている本って自分で確かめなくていいからとてもありがたい。本によっては完全に間違ってるものもあるじゃないですか、コードをそのまま書いても動かないとか。私がお世話になってる方の本も似たようなことがあって、それは編集の方のミスらしいです。他にも先生が自分の授業で推薦しようとしていた本をボツにした理由を話していたのを聞いたことがあります。筆者本人の認識が完全に間違っていることもありますし。という訳で、本はちゃんと能動的に確かめながら読まないといけないという認識に変化しました。 下に乗っている参考の本は授業で使っている本が多いので、私が授業を受けている先生の考えでは正しいということになりますので、ちょっと安心です。

今後はいろんな本を参考にしながら文章を書いていきたいと思います。

追記(2019/3/18) 段落構成を変更しました。内容は変更ありません。

参考

新版 電子物性 松澤剛雄・高橋清・斉藤幸喜 森北出版株式会社

PICマイコンでつくるインドア・プレーン―ラジコン飛行機を作って飛ばそう (電子工作シリーズ) 田中光一 CQ出版社

例題と演習で学ぶ 電気回路(第2版) 服藤憲司 森北出版

パスコンって何?

赤外線リモコン受信器の製作

5

バッテリー充電をするうえでの留意事項などの個人的まとめです

目的

バッテリーは電子工作で必要になります。でも、バッテリーって管理を間違うと爆発すると聞いていて、あまり積極的に使おうとは思っていませんでした。 今回初めてバッテリーを充電するので、初心者がやる上で注意するべき事などをいろいろメモ書きをして今後に使おうと思います。なにか追加事項があったら追記します。

バッテリー

バッテリーは電圧を蓄えておくモノです。バッテリーにはいくつか種類がありますが、リポバッテリー(LiPoバッテリー、リチウムイオンポリマー2次蓄電池)はロボットとかに使いがちです。使うのがリポなのでリポについてのみまとめます。

amazonでも買えますが、バッテリーはラジコン系のサイトで買う方が安いと思います。ドローンなどをやる人たちの間ではhobby kingが有名みたいです。

パラメータについて

私が持っているバッテリーの写真です。1000mAh、2Cellといてあります。

mAh:放電容量です。1mAhは1時間あたりに1mA流せるくらいの容量ということになります。蛇口の口の大きさみたいなことですね。大きい方が早く充電できます。
Cell: Cellというのは電池の単位らしいです。このバッテリーには2Cell 7.4V と書いてあります。バッテリーは1Cellあたり約3.7Vで、2個が直列に並んでいるということですね。

あと買うときにコネクタを確認するといいと思います。コネクタが違うとくっつかないので、導線を切って別なコネクタをつけることになります。バッテリーによってコネクタが違ったので、予め調べて接続できるようにしておくと追加注文しなくて済みます。

何度か充電するとバッテリーが悪くなってくるので、ちょくちょく確認しましょう。

充電器の使い方

私が使ってるもののamazonのリンクを張ります。これは電源のケーブルかついていないので一緒に買いました。バランスチャージャーという名前の充電器は、それぞれのセルをバランス良く充電してくれます。各電圧の差が0.5Vになると不調を起こすらしいです。

使い方もネットに載ってます。この通りにやれば問題ありません。
IMAXRC B6PRO バランスチャージャー 取扱い説明書
保存のところと重複しますが、1Cellあたり3.0V以下になると過放電状態となり、バッテリーが使えなくなってしまう恐れがあるそうです。 3.5Vで危険域なので注意。 また、4.2Vまで充電してしまうと火災のリスクが上がってしまいます。すぐ使わないときはだいたい3.7V位に充電するといいでしょう。

(追記) よくやる使い方

簡単に使い方を書いておきます。
充電するバッテリーは上の写真のものです。OUTPUTとBALANCE CHARGE OUTPUT両方のコネクタを接続して、 1cell、LiPo、1000mAに設定します。

  • BATT TYPE/STOPボタンを押して LiPo batteryでENTER/STARTボタンでenter(図a)
  • ENTER/STARTボタンでセル数の部分を選択してSTATUSボタンで2Sにしてenter (図b)
  • ENTER/STARTボタンで容量の部分を選択してSTATUSボタンで1000mAhにしてenter (図b)
  • ENTER/STARTボタンで電流の部分を選択してSTATUSボタンで1.0Aにしてenter (図b)
図a:LiPo Batteryを選択
図b:2S, 1000mAh,1.0Aを選択

上のように設定したら ENTER/STARTボタンを長押しして次の画面も
ENTER/STARTボタンを押すとstartします。 こんな感じの画面になります。

バッテリーチェッカ

私が買ったのは以下の2つです。電圧計を出すのが面倒なときに使います。バッテリーにつけるときは向きに注意しましょう。裏か端にGNDと書いてるので、そっちをバッテリーの黒い線の側につけます。

OUYOU リポバッテリーアラーム 簡易電圧チェッカー リポバッテリー アラーム チェッカーとアラームを一体化 1S-8S Lipo / LiFe / Li-ion / LiMn 対応

リポバッテリーチェッカー

ただ、充電器も電圧計も7.9Vを示してるのにバッテリーチェッカーは7.5Vと7.55Vなんですよねぇ。チェッカって少し低めに表示するんでしょうか?このあたりは今後調べて行きたいと思っています。

保存 というかまとめ

下の3つを守れば良さそうです。

  • 電圧を3.6V ~ 4.1Vで保管すること
  • 各Cell間の電圧差を0.5Vにすること
  • 火災の恐れがあるので、セーフティーボックスに入れましょう

セーフティーボックスは持ってないので、私はおつまみのナッツの缶にいれました。 引火しなきゃいいと思ってますが、皆さんは自己責任でお願いします。

関係ありそうな記事

2018年に全固体電池の研究に関する記事を読ませていただいて、バッテリー界は私にとって気になる業界です。なんでもエネルギー密度が高いので、高速充電が可能でかつ発火の危険は低くなるらしいです。 このあたりの本はまだ読んでないですが、読んで興味深い話があれば書き足していきたいと思います。

電力供給の形式がガラッと変わるかもしれないですね!

全固体電池の菅野教授が語る、EVはこう進化する:日経ビジネスオンライン

参考 

【LayLaxコラム】リポバッテリーを安全に正しく使用・保管する方法

リポバッテリーの管理について - ハイパー道楽

モバイルバッテリーの「mAh」って何?失敗しないモバイルバッテリー選び .

追記(2019/2/11)バッテリーチェッカ使用時の写真を追加しました。
追記(2019/3/18) 段落構成を変更しました。内容は変更ありません。
追記(2019/3/23)使い方、Amazonリンクを追加しました。

11月8日。ジャンル:電子工作

作成物

2018年11月第1週の制作物は、先週設計した発振回路を実際につくってみようという内様です。弛張発振回路はトランジスタ、コンデンサ、抵抗で構成されています。ハロウィンの装飾に使う事を考えると、コンデンサは電力を基本的に消費しないはずなのでちょうど良いのではないかというLチカ回でしたが結局過ぎてしまったのでクリスマスツリーにします。

前回=>発振回路を作りたい1

道具

  • ブレッドボード
  • ジャンパーピン
  • ユニバーサル基板
  • ニッパ
  • ペンチ
  • 半田付けセット
  • (テスタ)

部品

  • 2SC1815(npnトランジスタ)
  • 2SC1015(pnpトランジスタ)
  • 10uF電解コンデンサ
  • 270kΩ抵抗
  • 赤色LED 持っていたもので、詳細は解らない
  • 電池ホルダー 3個入り
  • 単三乾電池 3本

製作

実験の様子

実験の様子です。

ブレッドボードではこんな感じに動きました。ちなみに3本の乾電池ホルダーしかもってなかったので電源電圧は3Vから4.5Vになりました。問題はないはず。

ので、良い感じに配置して、ツリーっぽくしていきます。周波数とか適当に変更していきます。

ここで、LEDをチカチカさせる電圧は、並列に繋がっているコンデンサの電圧と等しくなりますので、チカチカ周期を変えるためにはコンデンサに電力が充電される長さを変えれば良いことが解ります。具体的には抵抗器またはコンデンサの値を変えれば良いと言うことになります。コンデンサに充電している間、部分的にCR回路に見えますので、時定数T=CR[s]でコンデンサ電圧の0%から約63%まで充電出来ます。  

つまり、コンダクダンスCや抵抗値Rを2倍にすると充電時間は2倍必要になり周期も2倍になると言うことになります。コンデンサの数は上の動画が1つで下の動画が2つです。発振周期が変わったのがわかります。  精度の高い回路構成ではないうえにコンデンサや(特に)抵抗の値はばらつきがありますし、計算も雑なので正確には出来ませんでした。とはいえ、どうせなら綺麗に交互に光らせたいので、抵抗とかコンデンサとかいろいろ変えて実験しましたが割愛。

シミュレーションした回路だとLEDが1つで味気ないので平行に2つ、直列に2つ計4つのLEDを周期2:3の2種類の発振周期で作ったので計8つ使って居ます。

最終形はこちら。多くは望まないのが俺流。

完成

さてこの回路でチカチカすることが解ったので、クリスマスツリーにしていきます。作ったのがこちらになります(3分クッキングではない)。

てっててー

LEDの並び順をミスったので抵抗値のバランスが悪くなったんですが、まあOK。

雑談

アニメ見ながら作ったらめちゃめちゃ時間掛かったぞ!実験と製作で5時間ぐらいかな?かかりずぎですね。自由研究としては上々。小学生のみんなはやってみてね!

追記(2019/3/18) 段落構成を変更しました。内容は変更ありません。

ジャンル:電子回路

10月28日。三週目は実験でやった回路やら作ろうと思ってた回路やらをまとめます。

シミュレーター

僕はシュミューターとしてLTSpiceを使わせていただいてます。これについてはこちらにまとめます。

ことはじめ_電子工作とシミュレーション

発振回路その1

CR位相型発振回路。回路図はこれです。学校の課題で出たヤツですね。

原理

おおざっぱに。この回路は位相回路部(左側)と反転増幅回路部(右側)に分かれています。反転増幅回路では名前のとおり信号が大きさは増幅されつつ位相は+から-に、あるいは-から+に変化します。つまり、位相は180度変化しています。 ここに、さらに180度位相が変わる位相回路をくっつけることで、全体で正帰還(ポジティブフィードバック)が掛かります。少し+になったらさらに+になる、ということになるので、次第に大きくなります。

だんだん+-にぶれながら大きくなり、条件を満たすと安定した信号を発するようになります。(スタートがごくわずかなオフセットで、それが大きくなるんだそろうとは思いますが、なんで+-を繰り返す正弦波になるのかはイメージがわきませんが内緒です。振幅が大きくなっているとは言え、微笑範囲では一度大きくなった電圧が自動的に小さくなって-へ向かうのはなぜ?) ただし、オペアンプを使っていますが、オペアンプの電源より大きくすることは出来ないので、上限がつきます。発振条件は以下の通りです。途中式は省略!(レポートには書いた)

利得Av < -29

振幅f = 1/(2 * &pi * C *R)

オペアンプの反転増幅回路や位相発信回路については参考サイトなどを参考にしてください

回路

回路はこんな感じ。前述のシミュレーションソフトLTSpiceで書きました。

シミュレーション

シミュレーションで過渡応答を調べます。

始めはこんな感じで発振しませんでした。利得が小さすぎてダメ。位相回路の利得は-1/29で、これより小さいと収束するのは理論通りですが、実際の回路では他の損失があるので分母はより大きくなります。 と言うわけで第二弾はこれ。これはスルーレートに比べて利得が大きすぎた。(ちなみにシミュレーションで理想オペアンプを使ったところ発振しませんでした。注意!)

なので調節してこんな感じ。発信していますね。でも、オペアンプが増幅器であるといっても電源より大きくすることはできません。なので波形の頂点でつぶれてしまっているのがみえますね。(見にくい)。増幅率である利得を調節すると、こんな感じになります。

もともと制度の高くない回路なのでこんなもんですね。実物は作りません。

発振回路その2

これはがらっと変わってオペアンプを使いません。トランジスタだけでLチカしたい回路です。弛張回路というらしいです。これを使ってクリスマスまでにツリーを作るんだ!

原理

簡単に説明すると、コンデンサとnpn型トランジスタとpnp型トランジスタを使って、ししおどしのように電力を貯めて流すと言うことを繰り返す回路のようです。コンデンサと抵抗器のみが動作する期間は最も単純なCR回路と同形ですね。コンデンサのキャパシタンスと抵抗値でコンデンサに電力を貯める時間をコントロール出来そうです。

シミュレーション

実際にやってみた。

青い線がLEDに流れる電流で、緑の線がLEDと並行につながっているコンデンサの電圧です。LEDは一瞬光って0mA(=0V)に戻る感じですね。 ちなみに、東芝の2SC1815シリーズとそれに対応するpnp型である2SA1015のパラメータを入れたものを知り合いからもらっていたのでそれを使ってシミュレーションしてたんですが、ピクリとも動きませんでした。なんででしょうね。

ねがてぃぶろぐ LTspiceクイック・スタート – FC2を参考にしたらうまくいきました。また、CRの値をかえて遅くなりそうだったので、変えてみたときの信号が以下です。

わーい

実験

オペアンプを使用する発振回路では消費電力が割高になるだろうということで、弛張回路をつかってチカチカするツリーを作りたいですねぇというのがきっかけでしたが、部品が届けば来週ハロウィンに間に合うかもですね!

また次回 => 発振回路をつくりたい_2

参考文献

オペアンプ | 反転増幅回路 – 電子回路

CR移相発振回路の設計

オペアンプの基礎マスター (基礎マスターシリーズ) 堀 桂太郎 電気書院

こた電 こたつぁーの電子工作 LED を点滅させよう

トランジスタによる発振回路を利用した LED1個点滅回路

ねがてぃぶろぐ LTspiceクイック・スタート – FC2

雑談

先週は文化祭と応用情報技術者試験と実験レポと部活が重なったため特に何も出来ませんでした。無念。応情の勉強もたいして出来ませんでした。これは落ちた。 ちなみに基本情報技術者試験は2018年春に受かりました(自慢)。

追記(2018/2/11)写真を大きくしました。

追記(2019/3/18) 段落構成を変更しました。内容は変更ありません。