<   2017年 04月 ( 22 )   > この月の画像一覧

J:COM LG Wine Smart(LGS01)に壁紙を設定してみた (4/30)

J:COM の ガラホ LG Wine Smart ( LGS01 ) の 壁紙を探して設定してみた。

横 320 ドット、縦480 ドット なので、縦長の2:3の画像なら大きい分には縮小されて何でもいい。

なので、インターネットで 「320x480」、「640x960」と検索してみる。

インターネット(地球アイコン)を起動して、URL入力エリアにそれを打ち込む。
a0034780_02042859.png
下記は打ち込んだ様子。最近はタップすると画面下半分にソフトキーボードが出る。左上のキーボードアイコンがそれを示す。入力モードは12と、数字モード。普通にキーで入力したい時はもう一回入力エリアをタップする。
a0034780_02304932.png
数字の区切りはスペースでも、320x480でもよい。下記は320x480の時。関係ないが、左上のアイコンはスクリーンショット。[左側面ボリュームキーの下]+[赤い電話切るボタン] を"まったく"同時に押してそのまま長押しすると、サウンドが鳴って撮れる。どっちか一方を先に押してからだとそのキー・ボタンの長押しになってしまうので注意。アイコンを下へスライドすると保存場所へのリンクがある。
a0034780_02380210.png


トップはGoogle の計算機能で電卓が出るが、スクロールすると「画像」があるのでそれをタップするか、
a0034780_02402622.png


さらにスクロールすると「iPhone 3GS ... Wallpapers 320x480 ...」というリンクがあるのでそれをタップする。
a0034780_02405743.png


下記は「iPhone 3GS ... Wallpapers 320x480 ...」をタップした先のサイトの様子。
a0034780_02414165.png
他にもスクロールすると「WallpapersWide.com|320x480 Mobile HVGA 3:2 ...」とかいうサイトもあるので参考まで。



ここからは画像を保存して壁紙に設定する方法。
まず、画像の上で長くタップしてメニューを出す。
a0034780_03123965.png
メニューから「画像を保存」を選ぶと、左上にというアイコンが出るので通知エリアを下にスライドすると、「cat_muzzle_look...ダウンロード完了」と出る。
a0034780_03154464.png


それをタップすると、「アプリケーション」を選択というメニューが出るので、「ギャラリー」を選ぶ。
a0034780_03220631.png

そうすると、選んだ画像が全面に表示されるので、画面を「ちょこん」とタップすると上からメニューが出て、さらに右上の縦に…のアイコンをタップするとまたメニューが出るので、「画像を設定」を選ぶ。
a0034780_03222141.png


さらに「画像を設定」というメニューが出るので、ここではギャラリーではなく、風車の方を選ぶ。なぜなら、J:COMから受け取ったままだと、ホームメニューをかんたんメニューに設定しているので、風車でない方の壁紙を選ぶと下半分しか壁紙に出来ないから。
a0034780_03263114.png

すると左上に「✔壁紙に設定」と出るので、タップ。前の画面に戻るが、設定は完了している。
a0034780_03312641.png
ホーム画面に戻るボタン(キーの上辺中央にある 〇 ボタン)を押すと、無事壁紙が設定されているのがわかる。
a0034780_03332099.png
結構手間だが、640x960 (iPhone 4S 用)で検索したり、別のサイトから画像をダウンロードして色々綺麗な壁紙を設定すると、ちょっとは楽しくなるかもしれない。

ダウンロードした画像やスクリーンショットは標準アプリの「ファイルマネージャー」や「ダウンロード」、「ギャラリー」、「フォト」で見つかるので削除したり入れ替えたりするといいかも。1枚300KB程度なので、メモリの空きが500MB以下でも100枚で30MBなので余裕。アプリなら1つ20~70MBくらいだからね。写真も合わせて200枚くらい大丈夫だよ~


[PR]
by k1segawa | 2017-04-30 02:05 | J:COM | Comments(0)

1か月の電気料金 (4/29)

1か月の電気料金が6000円(241kWh)ぐらいだった。

暖房を電気に頼っていた冬の間はMAXでも9000円は行かないくらいだった。
では今は何にかかっているのか。

【常時待機電力】
冷蔵庫、ルータ、TVチューナー、10個以下の充電器、保温機能のある電気製品
【間欠使用の電力】
PCやモニタ、大画面TV、電灯、電子レンジ、ドライヤー、アイロン、洗濯機、掃除機

ー トップ ー
以下のサイト様によると、年間7000円くらいらしい。

冷蔵庫は1か月せいぜい700円以下かな。

ー 2番手 ー
以下のサイト様によると、PCの電気料金は24時間つけっぱなしでも400円くらいらしい。(50W)

ー それ以外 ー
そうすると、残りの4500円程度は、待機電力のTVチューナや充電器 または 電灯、洗濯機、電子レンジ、大画面TV なのかな。

1つ1つが1か月2、300円程度でも15個あれば4500円だ。

意外と細かいものが電気料金を押し上げているな。

節電と言ってもそれぞれは月数百円だから、1つを50%に減らしても大したことはない

やはりこまめにコツコツと全部に対し、節電を心掛けるようにする必要があるな~

ただし、上記のエネチェンジで計測すると、6000円は平均より7%少ないと出た。気にすることはないのかな。
月4000円になればずいぶんいいのだが、電力会社を変えただけでは月2000円の節約=年間24000円には程遠い。
せいぜいキャンペーンで初年度のみ10000円の節約だ。

時間と手間暇をかけて電力会社を変え、節電するか、節電以外で節約をするかだな。全部節約するのが一番いいが。



[PR]
by k1segawa | 2017-04-29 21:30 | Comments(0)

Japanino ArduinoISPで ATtiny13 で うんぬん - 前提の変更 (4/29)

今までJapanino + ArduinoISP + ATtiny13であれこれやっていたが、前提条件が間違っていた。

Arduino IDE 018 で Japanino を Arduino ISP ライタ(ハードウェア)にし、ライタ"ソフト"としては avrdude (ver 5.11 - ATtiny13をサポートしている版)を使って、次のような環境で、ATtiny13A に書込みをしていた。

(1) Arduino IDE 1.0.5-r2 で ATtiny13A に スケッチを書き込み
(2) BASCOM-AVR で ATtiny13A に HEXファイル書込み
(3) Atmel Studio 7.0 で ATtiny13A に HEXファイル書込み

ちなみに avrdude は C:\avrdude に配置し、avrdude.conf は バージョン1249「$Id: avrdude.conf.in 1249 2013-10-18 07:59:06Z springob $ -*- text -*-」だ。

で、何を間違っていたかというと、「bitDuino + Arduino IDE 1.0.5-r2 という組み合わせで使っている」という表記だ。

実はbitDuinoをふふふ様や構想100年様のサイト通りにインストールすると、<展開先ディレクトリ>/arduino-1.0.5-r2/hardware/の直下に解凍済みファイルが存在するはずで、それはbitDuinoディレクトリかまたはその内容のはず。
そしてインストール後のArduino IDEメニュー>ツール>マイコンボードの先には"bitDuino13 (internal 9.6MHz clock)"と出るはず。

しかし、私の今のArduino IDEにはそのような表記は無く、単に"ATtiny13 (internal 9.6MHz clock)"となっている。(arduino 1.0.5-r2)

つまり、bitDuino を使っていないのだ。

ぼんくらでごめんなさい。

ずっと bitDuino を使ってるつもりだったのだが、どうやら arduino 1.0.5-r2 は標準で ATtiny13 をサポートしているようだ。
(もしかすると arduino 1.0.x または 1.6 or 1.7 用のATtiny用hardwareをインストールする必要あり)

今までのサイト内での記事は修正が多いのでここで注意しておく。

==========
(ソフト)
ATtiny13 マイコンのスケッチ書込みには、arduino 1.0.5-r2 (arduino 1.0.x の最終バージョン) を使っています。
(ひょっとすると arduino 1.0.x か 1.x 用の hardware のインストールが必要 - インストール後 hardware/attiny/cores が出来る)

(ハード)
Japanino を ライタにする場合 arduino 018 (Japanino のサイトでダウンロード)で行っています。

びんぼうでいいの をライタにする場合 arduino 1.0.5-r2 のブートローダ書込みで行っています。
==========

本当によくわかっていなかった。もしかするとまだ間違っているかもしれない。

きっかけはarduino 1.0.5-r2のanalogReadのソースを参照していた時。__AVR_ATtiny13__ が定義されていないのでおかしいなと思い、ソースのあるディレクトリがhardware/arduino/coresだった。定義されているソースはhardware/attiny/coresの方だった。構想100年サイト様の見直しで、インストールすればhardware/bitDuino/coresになるはずなのに、なぜattinyなのかよく考えてみたら、そもそもインストールに失敗しているという間抜けな結論に達した。

もちろん bitDuino は先達様の素晴らしい構成物です。私の勘違いでその価値が下がる事はない。真面目にインストールして動作しなかったら申し訳ありません。

P.S.
1.0.x または 1.x 用の hardware.zip は色んな方が作ったバージョンがあるので、ダウンロードする際には必要なクロックをサポートしているものを選んで欲しい。
私の hardware/attiny/boards.txt を読むと ATtiny13 用 は

#attiny13-1.name=ATtiny13 (internal 1.2 MHz clock)
:
attiny13-8.name=ATtiny13 (internal 9.6 MHz clock)
:

となっており、内部クロック 9.6MHz のみ arduino IDE メニューに出てくるようになっている。

128kHz や 4.8MHz サポートの hardware.zip もあるので、必要ならそれを。もちろんこれはソフトが「スケッチ」の場合。
BASCOM-AVR や Atmel Studio 7.0 は ハードとしてライタが必要なだけで hardware.zip がどうであろうと関係ない。

また、128kHzはArduino ISPライタでは書込めないようだ。またシリアル15200 bpsより高速の転送速度(PC - Japanino間)はJapaninoのクロックがデフォルトで内蔵クロックだと10%の誤差があるので無理らしい。外部クロック化していたり、arduino/びんぼうでいいの は問題ない。

[PR]
by k1segawa | 2017-04-29 04:24 | arduino, AVR | Comments(0)

Japanino ArduinoISPで ATtiny13 で 導通テスタ2 (4/27)

以前の記事で、Arduino IDEでプログラム(Hex)容量を削減するために関数をいくつか置換したが、digitalRead関数には手を付けていなかった。
今回それも置換してさらにAtmel Studio 7.0でもソースをそのまま動くように置換マクロや関数を用意して容量を比べてみた。

前回のソースではHexは814バイトだったが、今回は以下のソースで648バイトになる。
【ソース】
/*
* ATtiny13A 導通テスタ
*
* bitDuino + Arduino IDE 1.0.5-r2
*
* 機能:PB1とGNDに繋いだプローブで回路の導通チェックを行う
* タクトスイッチ押下で、導通時 ブザー鳴動 <=> LED点灯 のモード切替(切替時点滅)
*
* CPU:ATtiny13A VCC:3.3/5V PB0:ブザー PB1:プローブ+端子 PB3:LED+
* PB4:切替用タクトスイッチ GND:ブザー、プローブ、LED-、タクトスイッチ LED用1kΩ抵抗
*
* ※ただしプログラム容量削減のため pinMode、digitalWritedigitalRead関数を置換
*/

#define M_Wait 500 // ブザー鳴動時間(μs)
// ピン割り当て
// ただし、Arduino IDE(bitDuino)の ピン番号 と ATtiny13Aの ポートBの ピン番号 は同じ
#define M_Buzzer 0 // PB0:ブザー用
#define M_Probe 1 // PB1:プローブ+用
#define M_LED 3 // PB3:LED+用
#define M_Switch 4 // PB4:切替スイッチ用

// レジスタのビットクリア
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
// レジスタのビットセット
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

void setup() {
// ピンの入出力方向設定
// 出力
sbi(DDRB, M_Buzzer); /* eq. pinMode(M_Buzzer, OUTPUT); */ // ブザー
sbi(DDRB, M_LED); /* eq. pinMode(M_LED, OUTPUT); */ // LED
// 入力 & プルアップ
cbi(DDRB, M_Probe); sbi(PORTB, M_Probe); // 導通テスタピン
/* eq. pinMode(M_Probe, INPUT_PULLUP); */
cbi(DDRB, M_Switch); sbi(PORTB, M_Switch); // タクトスイッチ
/* eq. pinMode(M_Switch, INPUT_PULLUP); */
}

void loop() {
// タクトスイッチ 切替状態保持(mode=0:導通時 ブザー鳴動 / 1:導通時 LED点灯)
static int mode = 0;

// モード切替処理
// 切替スイッチ押下か?(プルアップなので押下でLOW)
while( bit_is_set(PINB, M_Switch) == 0 ) {
// eq. while( digitalRead(M_Switch) == LOW ) {
delay(10); // 10ms待ち(チャタリング排除のため)
// 連続してスイッチ押下か?
if( bit_is_set(PINB, M_Switch) == 0 ) {
// eq. if( digitalRead(M_Switch) == LOW ) {
mode = 1 - mode; // 状態反転
// LED点滅
sbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, HIGH); */
delay(300); // 0.3秒点灯
cbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, LOW); */
break;
}
}

// プローブ導通チェック
// プローブとGND間が導通している(プルアップなのでLOW)なら
if( bit_is_set(PINB, M_Probe) == 0 ) {
// eq. if( digitalRead(M_Probe) == LOW ) {
if( mode == 1 ) {
// LED点灯
sbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, HIGH); */
} else {
// ブザー鳴動(矩形波HI/LOW 1周期分)
sbi(PORTB, M_Buzzer); /* eq. digitalWrite(M_Buzzer, HIGH); */
delayMicroseconds(M_Wait); // 矩形波HIの時間
cbi(PORTB, M_Buzzer); /* eq. digitalWrite(M_Buzzer, LOW); */
delayMicroseconds(M_Wait); // 矩形波LOWの時間
}
} else {
// LED消灯
cbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, LOW); */
}
}
赤い部分が修正箇所となる。

そしてAtmel Studioでのソースは次のようになる。
従来のソース変化無しは青い部分だ。
赤い部分は今回必要無いが、手っ取り早くArduino IDEのソースをそのまま持ってくる場合の関数マクロだ。ただし、pinMode関数は三項演算子が2回入れ子になっているのでINPUT/OUTPUT/INPUT_PULLUPモード毎に展開した方が容量削減となる。
【ソース】
/*
* ATtiny13A 導通テスタ
*
* bitDuino + Arduino IDE 1.0.5-r2
*
* 機能:PB1とGNDに繋いだプローブで回路の導通チェックを行う
* タクトスイッチ押下で、導通時 ブザー鳴動 <=> LED点灯 のモード切替(切替時点滅)
*
* CPU:ATtiny13A VCC:3.3/5V PB0:ブザー PB1:プローブ+端子 PB3:LED+
* PB4:切替用タクトスイッチ GND:ブザー、プローブ、LED-、タクトスイッチ LED用1kΩ抵抗
*
* ※ただしプログラム容量削減のため pinMode、digitalWrite、digitalRead関数を置換
*/

//---------- ATmel Studio 7.0 ここから

#ifndef F_CPU
#define F_CPU 9600000UL // 9.6 MHz clock speed
#endif
#include <avr/io.h>
#include <util/delay.h>

// HIGH/LOW(digitalWrite/Read)
#define HIGH 0x1
#define LOW 0x0
// pinMode
#define INPUT 0x0
#define OUTPUT 0x1
#define INPUT_PULLUP 0x2

#ifndef pinMode
#define pinMode(pin,mode) (mode==INPUT?cbi(DDRB,pin):\
(mode==OUTPUT?sbi(DDRB,pin):sbi(PORTB,pin)))
#endif

#ifndef digitalWrite
#define digitalWrite(pin,val) (val==HIGH?sbi(PORTB,pin):cbi(PORTB,pin))
#endif

#ifndef digitalRead
#define digitalRead(pin) (bit_is_set(PINB,pin)==0?LOW:HIGH)
#endif

// delay
#ifndef delay
#define delay(ms) _delay_ms(ms)
#endif
// delayMicrosecond
#ifndef delayMicroseconds
#define delayMicroseconds(us) _delay_us(us)
#endif

void setup(void);
void loop(void);

int main(void)
{
setup();

while(1) {
loop();
}
}

//---------- ATmel Studio 7.0 ここまで

#define M_Wait 500 // ブザー鳴動時間(μs)
// ただし、Arduino IDE(bitDuino)の ピン番号 と ATtiny13Aの ポートBの ピン番号 は同じ
#define M_Buzzer 0 // PB0:ブザー用
#define M_Probe 1 // PB1:プローブ+用
#define M_LED 3 // PB3:LED+用
#define M_Switch 4 // PB4:切替スイッチ用

// レジスタのビットクリア
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
// レジスタのビットセット
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

void setup() {
// ピンの入出力方向設定
// 出力
sbi(DDRB, M_Buzzer); /* eq. pinMode(M_Buzzer, OUTPUT); */ // ブザー
sbi(DDRB, M_LED); /* eq. pinMode(M_LED, OUTPUT); */ // LED
// 入力 & プルアップ
cbi(DDRB, M_Probe); sbi(PORTB, M_Probe); // 導通テスタピン
/* eq. pinMode(M_Probe, INPUT_PULLUP); */
cbi(DDRB, M_Switch); sbi(PORTB, M_Switch); // タクトスイッチ
/* eq. pinMode(M_Switch, INPUT_PULLUP); */
}

void loop() {
// タクトスイッチ 切替状態保持(mode=0:導通時 ブザー鳴動 / 1:導通時 LED点灯)
static int mode = 0;

// モード切替処理
// 切替スイッチ押下か?(プルアップなので押下でLOW)
while( bit_is_set(PINB, M_Switch) == 0 ) {
// eq. while( digitalRead(M_Switch) == LOW ) {
delay(10); // 10ms待ち(チャタリング排除のため)
// 連続してスイッチ押下か?
if( bit_is_set(PINB, M_Switch) == 0 ) {
// eq. if( digitalRead(M_Switch) == LOW ) {
mode = 1 - mode; // 状態反転
// LED点滅
sbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, HIGH); */
delay(300); // 0.3秒点灯
cbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, LOW); */
break;
}
}

// プローブ導通チェック
// プローブとGND間が導通している(プルアップなのでLOW)なら
if( bit_is_set(PINB, M_Probe) == 0 ) {
// eq. if( digitalRead(M_Probe) == LOW ) {
if( mode == 1 ) {
// LED点灯
sbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, HIGH); */
} else {
// ブザー鳴動(矩形波HI/LOW 1周期分)
sbi(PORTB, M_Buzzer); /* eq. digitalWrite(M_Buzzer, HIGH); */
delayMicroseconds(M_Wait); // 矩形波HIの時間
cbi(PORTB, M_Buzzer); /* eq. digitalWrite(M_Buzzer, LOW); */
delayMicroseconds(M_Wait); // 矩形波LOWの時間
}
} else {
// LED消灯
cbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, LOW); */
}
}
main.cに上記ソースをまるまる青い部分も含めて貼り付けてOK。Hex容量は、それぞれ Arduino IDE=648バイト、Atmel Studio=578バイト(コンパイルオプション:デフォルト)で70バイトまだ小さくなる猶予がある(delay関係)。
しかし最初置換しないソースはArduino IDE上で1024バイトに収まらなかった事から考えると648バイトは十分だ。

Arduino IDEはほぼC/C++環境なので、ライブラリの充実度で考えるとAtmel Studioにもライブラリは公式にあるにはあるが、Arduino IDEの方が多い。ただし大したことではないがオープンソースなので流用元のライブラリ自体の参照先は明確にしておかなければならない。プログラムソース自体は別にGPL等で公開しなくてもいい。(オープンソースのgccやIDEを使って作った自分の”プログラムソース”自体は別にオープンソースではないので)

あれ?Atmel Studio の立場は?
大規模分散開発やデバッグのしやすさはAtmel Studioの方が優れているが、特に小規模プロトタイプ開発や個人の趣味で作るにはコンパイラは両方ともgccだし、Arduino IDEでよくね?別にAVRマイコンであればほぼ対応しているようだし。GUIをMicrosoftのVisual Studioに作ってもらっている7.0以降、起動が重くてしょうがないしね。



[PR]
by k1segawa | 2017-04-27 17:00 | arduino, AVR | Comments(0)

Google Chrome で、マウスホイールによるスムーススクロールと縦スクロール量増加 (4/24)

(2017/09/18追記)
最近こちらにアクセスが集中しているが、たぶん次の記事が該当するのだろう。
(追記終わり)

Gigazine様やツイートのような「縦に長いWeb画面」を気持ちよく操作するのに、通常使っているChromeの設定を忘備録。

スムーススクロールは、拡張機能のマウスジェスチャー「Gestures for Google Chrome」のBasicsタブ>スムーススクロールを使用する>スムーススクロール時間1秒(短くするとガクガクする)、素早くスクロール=5

縦スクロール量は、コントロールパネル>マウス>ホイール>一度に6行スクロールする

あと、タブを大量に開いたままにして、タブを移動する時は、Control + Tab (+Shift で逆方向)。

設定後は、Web画面を再読み込み(F5)してもダメで、閉じて再度開くと反映されるので注意。


[PR]
by k1segawa | 2017-04-24 18:56 | Comments(0)

市販かぜ薬の副作用 (4/23)

昨日からのどの痛みがあって昨日の夕方から今日の夜まで4回市販の風邪薬を飲んだ。
「ユリアン 総合風邪薬」(中外医薬生産株式会社) - 中外製薬とは無関係
という薬を服用した。
a0034780_21445121.png
すると今日の朝から胃の上部にむかつきがあり、それがずっと取れない。
最初は風邪の症状かと思ったが、今まで飲んだことのないメーカの製薬会社のモノであり、風邪自体の症状は暖かくして寝る事でほぼ治った事からたぶん薬の副作用だ。

今まで「かぜ薬の副作用」については考慮していなかったが、本日夜飲んだ直後に吐き気が大きくなって、注意した方がいいようだ。

パブロンやルルなどのメジャーの風邪薬ではこんなことはなかった。

やはり、完全に同じ成分ではないものだと、糖衣などで違いがあり、それがアレルギー等を引き起こすので、服用を即座に中止して、明日薬剤師に相談しよう。

P.S.
どうやら成分が違うようだ。
エテンザミドが含まれており、脳幹に作用し解熱作用があるらしい。パブロンやルルには全く含まれていない。内精神薬というタイプで、いわゆるダブルブロックというCMの脳への遮断作用がある成分らしい。その他の成分は量が違っておりかえってメジャー薬より含まれる薬剤の種類は少ないぐらいだ。

うーん、他のかぜ薬でエテンザミドやブロック機能のある薬は服用したことが無かったな~。
これほど同じかぜ薬で成分が違うとは思わなかった。自分に合わない成分があるのは納得した。よく成分を見てそういったブロックタイプの成分が入っていないか相談してから買おう。

[PR]
by k1segawa | 2017-04-23 21:45 | Comments(0)

ハードウェア電気電子の知識 (4/23)

電子工作において、マイコンを使うにあたって入出力のためセンサーや電源を取り付けるのに周辺回路を正しく設計しないと、正常動作あるいはマイコン自体を破壊しかねない。
デジタル回路であるマイコン素子を使うための、周辺回路を設計するのには、電気電子の知識が無ければならない。
「ディジタル信号も、素子レベルでの信号伝達や消費電力、速度などの物理的な実時間の性能はアナログ動作になります」というのがJST(Japan Science and Technology Agency - 国立研究開発法人 科学技術振興機構)が提供する、JREC-IN Portal内のe-learning 「電子電気 - アナログ回路コース」での説明だ。

自分の最初の目標であるデジタル回路の周辺回路を汎用ロジックICで組むというのは、素子レベル(抵抗やIC、トランジスタなど)で自由に組めるようになる事なので、アナログ回路の知識が必要だという事だったようだ。

確かにこのサイトの「デジタル回路コース」は論理回路とかメモリとか自分の考えている回路とはかけ離れている。(FPGAなど論理設計にはいずれ必要だが)

そうかー、自分がやりたいことを出来るようになるには「アナログ回路」を理解すべきだったのか。

ということで、基本のオームの法則から勉強し直している。
I = V/R (抵抗とは電圧に比例する電流の比例定数の事)

しかし、Rの単位オームは、「1ボルトの電圧で1アンペアの電流が流れる時の抵抗を1オームと定義する」のだが、そもそも1ボルトとはどういう定義なのか、1アンペアとはどういう定義なのかはっきりわかっていなかった。

で、ボルトとアンペアの定義をWikiで調べる。
ボルトは1アンペアの電流が流れる時1ワットの仕事量を発生させる場合の電圧を1ボルトとする。
1ワットは仕事量だから熱量ジュールで表される。1秒間に1ワットの仕事量を1ジュールと呼ぶ。
そして1ジュールはWikiによれば約102gの物体を標準重力下で1メートル持ち上げる仕事量に相当する。

ここで出てくる電気電子の用語に関して言えば、ボルトはアンペアによって定義されているという事。

つまりアンペアの定義がわかれば、芋づる式にボルトが定義され、オームが定義されるという事。

ではアンペアの定義とは?
やはりWikiによると、「真空中に 1 メートルの間隔で平行に配置された無限に小さい円形断面積を有する無限に長い二本の直線状導体のそれぞれを流れ, これらの導体の長さ 1 メートルにつき 2 × 10−7ニュートンの力を及ぼし合う一定の電流」となる。
つまり電磁誘導の関係で引き合う2つの電線間の力が2*10^-7 Nの時、電線を流れる電流の大きさを1アンペアという。

よし、アンペアが電線間の電磁誘導で引き合う力から定義され、ボルトがアンペアで定義される仕事量で定義され、オームがボルトとアンペアで定義された。
決して数式の相互参照になっていないし、単なる式変換でもない。

(オームが電線の断面積や長さに比例・反比例する性質は、定義ではなく物理特性だ。あえていうならまた別のオームと断面積m^2や長さmとの関係だ)

ふむ、やっとオームの定義に納得がいった。
この際に比例と反比例についても再度確認した。つまり一定の「抵抗」の元で電圧を上げると電流が増えるのは比例で、式はy=axということ。
「抵抗」自体を理解し物理現象も確認。この電流と電圧が比例する時の定数を抵抗とするのがオームの法則である。
法則は実験結果によって観測された物理法則で、オームの定義はそれとは厳密には別なのだ。

やはりただ暗記するだけではなく理解しておくことが大事だ。

オームの法則を足掛かりに「アナログ回路コース」を学習しよう。

[PR]
by k1segawa | 2017-04-23 13:20 | Comments(0)

Japanino ArduinoISPで ATtiny13 で 導通テスタ 検討 (4/22)

前の記事で、導通テスタ(チェッカ)を作ったが、一般の導通チェッカは抵抗によって音の高低が変わったり、電子回路の影響を受けないような回路が組み込まれているようだ。あと電流も余り流さず長期間バッテリが持つようになっている。

そんな難しい事は全然考えていなかった。

単につながるとまずい部分の半田チェック用だ。

まあ自分が作る程度の配線ならこの程度だ。箱やプローブも特に工夫してないし。
あとブザーも発振回路の代わりにマイコンでやっているので、回路内蔵型ブザーというのを使うと、電圧をかけるだけで鳴動するらしい。
発振する処理(矩形波HI/LOと鳴動時間)もいらず、LEDと同じ扱いでよくなる。
電源にもよるかもしれないが、プローブ間にかかる電圧と電流はATtiny13のデータシートをみると、
a0034780_12533892.png
となっており、最大40mAまで流れ、arduinoの5V電源に繋いだ時はこんな具合なのかな。

圧電ブザーも内部には回路が入っているようだ。
詳細はFDK社の詳細情報を請求して取り寄せないとわからないが、こちらのサイト様の図のようになっているのだろう。
ちゃんと作るなら、プローブのPB1-GND間にトランジスタによる増幅回路を入れて、5V Max40mAのON/OFFじゃなくもっと低電流(低抵抗)で動くようにするべきなのかな~
導通チェッカと言っても、回路の大部分は本質的な所ではなくて、検出した信号をLEDやブザー鳴動に変換する機能を実現する場合が多い。

だからそこはマイコンに置き換え、実質的な検出回路部分を工夫した回路をPB1-GND間に当てはめて高精度化したい。

皆さんが参考にしている記事は2008年の記事で、J:COMからの移転のため、左のカテゴリは機能しているが、アーカイブは旧J:COMのサイトにリンクしているためNot Foundになってしまう。しかたがないので、カテゴリで絞って記事末尾の「次へ」を次々クリックしてたどり着く。
こちらのサイト様の回路が高精度化されている。もっと先には

のようにたった0.3Ωの低抵抗で導通していない事を検出できる改良がなされている。

やはり製品化されているだけの事はある。こちらの末尾に旧ブログ記事への導通チェッカ―の関連リンクがある。



[PR]
by k1segawa | 2017-04-22 12:44 | arduino, AVR | Comments(0)

Japanino ArduinoISPで ATtiny13 で 導通テスタ (4/20)

導通テスタが欲しかったのだが、簡単な回路がなかったのでATtiny13Aマイコンで作ってみた。

ブザーを鳴らす、ボタンをチャタリング無しで押す、プルアップ回路のスケッチを集めて適当にリファクタリングしてプログラムを作成。
ブザーが無かったのでイヤホンを分解してピンヘッダに半田付けしてグルーガンで固め、ブザー鳴動とLED点滅の2つの表現をタスクスイッチで切り替えるようにした。

単4電池ボックスやボタン電池、ACアダプタのいずれでも動作。回路に直接ライタを結線してもとりあえず動作。
ソースはArduino IDE 1.0.5-r2のスケッチで。Japanino上でATtiny13用にbitDuino導入済み。arduino Uno(Japanino)はardunio ISPライタ化済み。

【実体配線図】
a0034780_22515608.png
ライタ部分と比較しやすいように並べた。ポータブル時はarduino Unoからの6本の線をはずし、電源を繋ぐ。

【回路図】
a0034780_22521456.png
回路は簡単だが、電源GND間にセラコンとかいるのかな~。2入力2出力で8ピンマイコンで十分だ。

【写真】
a0034780_17393882.png
イヤホンやプローブは100均の園芸用の針金0.5mm(配線にも使用)で固定。

【ソース】
/*
* ATtiny13A 導通テスタ
*
* bitDuino + Arduino IDE 1.0.5-r2
*
* 機能:PB1とGNDに繋いだプローブで回路の導通チェックを行う
* タクトスイッチ押下で、導通時 ブザー鳴動 <=> LED点灯 のモード切替(切替時点滅)
*
* CPU:ATtiny13A VCC:3~5V PB0:ブザー PB1:プローブ+端子 PB3:LED+
* PB4:切替用タクトスイッチ GND:ブザー、プローブ、LED-、タクトスイッチ LED用1kΩ抵抗
*
* License:Free
*
* ※ただしプログラム容量削減のため pinMode関数、digitalWrite関数を置換
*/

#define M_Wait 250 // ブザー音程(鳴動時間:μs)
// ピン割り当て
// ただし、Arduino IDE(bitDuino)の ピン番号 と ATtiny13Aのデータシートの ピン番号 は同じ
#define M_Buzzer 0 // PB0:ブザー用
#define M_Probe 1 // PB1:プローブ+用
#define M_LED 3 // PB3:LED+用
#define M_Switch 4 // PB4:切替スイッチ用

// レジスタのビットクリア
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
// レジスタのビットセット
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

void setup() {
// ピンの入出力方向設定
// 出力
sbi(DDRB, M_Buzzer); /* eq. pinMode(M_Buzzer, OUTPUT); */ // ブザー
sbi(DDRB, M_LED); /* eq. pinMode(M_LED, OUTPUT); */ // LED
// 入力 & プルアップ
cbi(DDRB, M_Probe); sbi(PORTB, M_Probe); // 導通テスタピン
/* eq. pinMode(M_Probe, INPUT_PULLUP); */
cbi(DDRB, M_Switch); sbi(PORTB, M_Switch); // タクトスイッチ
/* eq. pinMode(M_Switch, INPUT_PULLUP); */
}

void loop() {
  // タクトスイッチ 切替状態保持(mode=0:導通時 ブザー鳴動 / 1:導通時 LED点灯)
static int mode = 0;

// モード切替処理
  // 切替スイッチ押下か?(プルアップなので押下でLOW)
while( digitalRead(M_Switch) == LOW ) {
delay(10); // 10ms待ち(チャタリング排除のため)
if( digitalRead(M_Switch) == LOW ) { // 連続してスイッチ押下か?
mode = 1 - mode; // 状態反転
// LED点滅
sbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, HIGH); */
delay(300); // 0.3秒点灯
cbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, LOW); */
break;
}
}

// プローブ導通チェック
  // プローブとGND間が導通している(プルアップなのでLOW)なら
if( digitalRead(M_Probe) == LOW ) {
if( mode == 1 ) {
// LED点灯
sbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, HIGH); */
} else {
// ブザー鳴動(矩形波HI/LOW 1周期分)
sbi(PORTB, M_Buzzer); /* eq. digitalWrite(M_Buzzer, HIGH); */
delayMicroseconds(M_Wait); // 矩形波HIの時間
cbi(PORTB, M_Buzzer); /* eq. digitalWrite(M_Buzzer, LOW); */
delayMicroseconds(M_Wait); // 矩形波LOWの時間
}
} else {
// LED消灯
cbi(PORTB, M_LED); /* eq. digitalWrite(M_LED, LOW); */
}
}



[PR]
by k1segawa | 2017-04-20 23:01 | arduino, AVR | Comments(0)

お麩と梅昆布茶 (4/18)

スティックコーヒーを時々お茶代わりに飲んでるのだけど、好みとしては紅茶バージョンが合っている。大人のコーヒーも試したけど自分はどうやら甘さを求めているみたい。しかし題目のように昆布茶それも梅昆布茶が好き。緑茶もスティックで飲むけど安いせいかちょっと味わいが足りない。

で、梅昆布茶を業務スーパーで80g/98円で買ってくるのだけど、最初の一口以降酸っぱさが旨みにまさってちょっと味わって飲むのにはつらく、一気に飲んでしまっていた。たまたま一緒に買っていたお麩を入れて食べたところ、酸っぱさが消えて昆布のだしを楽しむことができた。それならと七味唐辛子を結構入れると液体の部分も酸っぱさが消え飲みやすくなった。

少し粉が足りないかなと思って多めの味の素を入れると旨みが増した。普通の昆布茶だと旨み成分が強すぎるのだが、これだとちょうどいい。昆布茶にお麩は試していないが。酸っぱさも後から来るので梅昆布茶の良さも残っている。これは間食の代わりに甘味が過剰な炭酸飲料を飲むより少しの量で腹持ちもいいし結構いいかも。

梅昆布茶(大さじすり切り1杯) + 七味唐辛子(5振り) + 味の素(6振り) + お麩(小さいの10個) + お湯200㎎


[PR]
by k1segawa | 2017-04-18 21:36 | Comments(0)