みくにっき。

≪前のページ | main | 次のページ≫

2015/09/20(Sun) :

Arduinoで7セグLEDダイナミック点灯

My Snapshot12

最近また更新してないなー(´д⊂)
6月~9月はちょう忙しかったよ…

ひさびさ更新もまた、Arduinoです(笑)
ようやく数ヶ月ぶりにゆっくりできる連休がきたので(現実逃避)
今度からもうちょっと可愛い写真とかも載せましょうかねw

さて、今日はArduinoで7セグメントLEDのダイナミック点灯を試してみました。
なんでキャラクタ液晶とかじゃないのかというと、ただの好みです。

ちなみに、ダイナミック点灯というのは接続端子を減らす「ワザ」ですね。

普通にLEDを点灯させるには、点灯1箇所ごとにプラスとマイナスの端子がそれぞれ必要です。
写真のような表示に使うLEDだと、1桁あたり7箇所のLEDと+小数点の1箇所で8箇所、
これがプラスマイナスあって、さらに桁数のぶんだけ必要になる計算です。
(このタイプ、一般的に小数点抜きで7セグメントLEDと呼びます。小数点あったら8セグだろう!とかいわなくても、(めんどいので)全部「7セグ」で。)

写真ではこれが6桁ぶんあったので、

8(LED個数)×2(プラスとマイナス)×6(桁数)=96本!

という、とんでもない配線数が必要です。(正直に繋ぐならばw)

おっと、いわゆるマイナス側は最終的にすべて電源のGNDへ繋ぐので
全部まとめて1本で済ませれば良いですね。
これは簡単に減らせるので、

8(LEDのプラス端子) ×6(桁数)+1(マイナス端子)=49本

と一気に減らすことが可能です(笑)
まあここまでは誰でも思いつきますが、さらに減らすのはちょっと厳しそうです。

ここで、ダイナミック点灯のワザが登場します。
いわゆるマイコンでの点灯を前提にするならば、
「超高速で1桁ごとに順番に表示する」
という方法も使えます。
表示するのが、そもそもプログラムですからね(笑)

イメージでいうと、こんな感じ。(□をOFF、■をONとして4桁の場合)

■□□□ → □■□□ → □□■□ → □□□■ → くりかえし!

ある時点では一桁ずつしか点灯しませんが、人間の目には全部光って見えます。
先人はよく考えたものですね(笑)
これなら、桁ごとに電源供給のON/OFFを切り替えていけばよいので、

8(LEDのプラス端子) +6(桁数ぶんのマイナス端子)=14本
または
8(LEDのマイナス端子) +6(桁数ぶんのプラス端子)=14本

と、すごく少ない本数で表示できます。
このとき、プラスとマイナスの接続方法によって2種類の方法があり、
実際に両方のタイプの部品が販売されていますよ。

(1)電源供給するLEDの場所を決める
(2)表示したい桁の電流を流す
(3)電流をOFFにする
(4)桁数だけ(1)~(3)を高速で繰り返す

こんな感じです(*´▽`*)
そして、わたしにもできました(笑)

最後に、Arduino向けにとても参考になるページがあったのでURL。
http://garretlab.web.fc2.com/arduino/introduction/beginning_with_7segment_led/


やりたいひとは、参考にしてみてくださいね。

2015/06/11(Thu) :

また何か作りますよ(/ω\)

DSC_0863
また、ちょっとづつ部品を調達していますw
消費電力の測定とか、ソーラー電源の自動切換えとか。。

でも考えてるだけで。

まだ作る時間がない…(ノ∀`)



2015/05/01(Fri) :

GW突入~。Arduino赤外線リモコンの続き!

GWですねー。
実は休み突入と同時にメガネを破損させてしまって、
新メガネができるまで「ぐんにゃりメガネ」で何もできない状況。。
明日なったら、新メガネを引き取ってくる予定です。
なにやってるんだか…まったく。

とりあえず、「斜めメガネ」でもできる作業…というと電子工作ぐらい??
ということで、止まってた電子工作のつづきをやってみます。 (´д⊂)

引き続き、赤外線学習リモコンを作ります。
前回記事はこちら。

大きいデバイスは嫌いなので、Arduinoは「Nano」あたりが好きなのだけど、
エアコンのリモコン学習にはメモリ不足だったので、SRAM/Flashがやや多い
MEGA2560互換ボードを使用してみます。

アクリルのケースが少し安くなったので、本体はこんな感じにしました。 
DSC_0853 
ねじがうまく付けられなくて何本か余りましたが、そこはご愛嬌…
電子工作では細かいことは気にしない!!!
見た目はかっこよくなりました(笑)

そして肝心の基板です。
赤外線送受信と、モニターができるように、下記のような部品を実装しました。
DSC_0858 
・赤外線LED [OSI5LA5113A]×6発
  (NPNトランジスタ[2SC2655L-Y]で駆動します。→ ここは前回記事の回路で)
・赤外線受信モジュール [OSRB38C9AA] 
・青色LED (インジケータ用) [OSUB5161A-PQ]
・圧電ブザー [適当な部品で]

今回、写真手前の「ピンずれ」部分がどうしても対応困難なため、
不本意ですが「Arduino用バニラシールド基板ver.2(白) 」も使いました。
この部分がずれてなければ、汎用のユニバーサル基板でいいのになぁ。
この1点についてだけは「フルサイズのArduino」だと残念です。

赤外線LEDの光を多少は拡散してほしいので、白い基板を選択したけど…
あんまり意味がなかったな(笑)
本当の拡散には、LED光拡散キャップ(白色)をつけてます。(これも前回記事と同じ)

合体させるとこんな感じになります。
仮のスケッチで、青色LEDをフェードさせているところ。
DSC_0852

Arduino本体はサインスマートのMEGA2560互換ボードで、Amazonから購入。
バニラシールドもAmazonですが、それ以外の電子部品は全部秋月電子です。
まあ、そのへんで揃いますw

ひととおりの部品がちゃんと動くところまで確認して、各部品とりあえず動いています。

赤外線受信モジュールで学習させて、エアコンを自動制御するのが目標ですので、
本番スケッチはこれから作りこみます。

が、半田付けで疲れたので今日はここまでにします(笑)


おまけ。
以前にも紹介したかも?すっかり忘れてしまいましたがw
最近は「温度調節付のはんだごて」を使っています。

これすごくいいです。
昔から、加熱しすぎで失敗したりしていましたが…だいぶうまくなりました。
いえ、うまくなった気がします(笑)
もちろん少し高いのですが、長く使えば「元はとれる」…はずw
ちょうおすすめ。

goot 温調はんだこて PX-201



2015/04/24(Fri) :

ZFS on Linuxベンチマークおためし。そして…

フリーズしますね。(汗)
どうもSATAディスクのアクセスが、下手なようです。


ちょっと前から、ZFSのネイティブ版?(ただし非GPL)ということで、
ZFS on Linuxのテストをして、様子をみていました。
SSDをたくさん…は積めないのですが、ストレージの性能がどうにかほしくて
あのZFSなら、業務用のストレージのようなすごい機能も使えてイイネ!(゚∀゚)

…と思っていたのですが。
ちょっと使い物になっていません。。

単発ベンチマークではこんな数字はでるんですよ。
20150412zfs

ただ…
これでちょっとディスクアクセスを続けると、なんと。

I/O Waitが80%オーバーに、

LoadAvgが60.0を超え、

ストレージ操作がタイムアウトしまくり。

になってしまいます。
※このサーバーはNehalemのXeonで計8C/16T、メモリ24GBを搭載。

上記マシンはZVOLでRAWデバイスを割り当てたKVMの仮想マシンのWindows10(TP)の図。

同様にZVOLを使い、iSCSI経由のブロックデバイスとして割り当ててVMwareに
見せてみると…たいして負荷もかけていないのにストレージアクセスが止まり、
OSごとダウンしてしまいました。

これも原因はI/O WAITで、見たこともないようなレイテンシで10分近く無応答…
というような「わけのわからない」状態になりました。

LSIのMPTドライバもあやしいのですが、いろいろ試した限りでは、
「SATAのHDD/SSDを使って」いて、「IO負荷をかける」とだめでした。

そう、SASディスクではこのような負荷にはなりません。

これはどうやら、SATAの「NCQ」との相性(というかI/Oの出し方が下手)なようで、
SASのTCQではうまくハンドリングができていて、うまく動くようです。

ZFSがらみのFAQなどでも、「I/O WAITが高すぎてフリーズするんだけど…」
という報告がちらほらあるものの、あまり相手にされていなくて。

唯一見つけたこの記事でも、どうもSATAがだめらしいと分かってきた次第。。

ZFS Slow Performance Fix - Letsgetdugg
http://letsgetdugg.com/2009/10/21/zfs-slow-performance-fix/

どうやらもともとのZFSの系譜をたどると、OpenSolarisではよくあった話の様子。
この記事によれば、zfs_vdev_max_pending を設定すればよいのですが、
なんと、最新のZFS on Linux(0.6.4)でこのパラメータはなくなっていて、
別のいくつかのパラメータに置き換わっています。

ざっとあげると、
zfs_vdev_async_read_max_active
zfs_vdev_async_read_min_active
zfs_vdev_async_write_max_active
zfs_vdev_async_write_min_active
zfs_vdev_max_active
zfs_vdev_scrub_max_active
zfs_vdev_scrub_min_active
zfs_vdev_sync_read_max_active
zfs_vdev_sync_read_min_active
zfs_vdev_sync_write_max_active
zfs_vdev_sync_write_min_active

このぐらい、あります…(汗)

zfs_vdev_async_write_active_max_dirty_percent
zfs_vdev_async_write_active_min_dirty_percent

というのも関係ありそうです。
(man  zfs-module-parametersで参照可)

ですが、いろいろ設定してみても、I/O WAITは改善できていません。
もう少し悩んでみるつもりですが、なかなか根の深い問題かもしれません。

ZFSのMailing List(英語)にも参加してみたので、
同じような超絶I/O WAITで困っている症状の方がいたら、
便乗して食いついてみたい…とは思っていますが、英語はだめなのでwww


いやはや、低コストで、爆速なIOパフォーマンスと、
超絶高度なストレージ機能が全部ほしい!
って話なので、贅沢すぎるのかなぁ。

本家Solarisのx86版ではどうなのでしょうね。
OracleのSunストレージ(業務用)はそれ動いているはずなので、
そっちのZFSを一度動かしてみるのもありかもしれません。

気になる方には気になる世界だと思うのですが…(苦笑)
また情報仕入れてレポートしてみたいと思います。

(といいながら、このまま消えてしまいそう。。)



2015/04/09(Thu) :

桜咲く、そして散り、そして寒い!><

DSC_0847
桜きれいでした。
なんとか散る前に撮影していた写真(笑)

5日はお花見イベントのはずが、雨で室内お食事会でしたし。

そして今週はえらい寒いですね…
暑いぐらいだったので、上着もういいやーと置いて出たりしたけど
また引っ張り出しましたよ。。

寒すぎるぅうううう~><

さすが温暖化…

…ん?

2015/04/02(Thu) :

赤外線リモコン再び。(☆ω☆)ぴかっ

そろそろ暖かくなってきましたね。
桜がきれいでいい感じです。

ですが、ここで夏に向けて赤外線リモコンをパワーアップします(笑)
今回は、赤外線LEDを、6発にして実験。

ぴかっ♪
My Snapshot3
前回作ったものは、LEDひとつだったのですが、
ちょっと遠くからだとエアコンが反応しないのです…(汗)

しかし、普通にArduinoの信号用の配線で6つも光らせようとすると
電力不足になります。

というわけで、今回はトランジスタを使い、
別途5VのUSB電源をスイッチング。

Arduino-IR-Ctrl

赤外線は見えないので、 モニター用に普通のLEDも入れる予定だったけど
…省略。
なぜかというと、写真のとおり、見えるのでw
カメラを通せば見えるので(笑)
(前回作ったときはWebカメラを持っていなかったのですw)

さらに、隅々まで照らすように、LEDに光拡散キャップも装備。
My Snapshot8
ぴかっ☆
My Snapshot6
良い感じに光ってます。

といったところで、今日はここまで。

リモコン送信はまた後日やります~
うまくいくかな~?



2015/04/01(Wed) :

4月になりました(´д⊂)

お久しぶりでございます。
なんだか今年はインフルエンザでスタートしてしまって、
年末から遅れた仕事がたまりたまって、怒涛の仕事でぐったり。
めっちゃ忙しくしていたらもう4月になってました。。

4月からは転勤…とかもなく(笑)
ただ、いろいろ人が入れ替わったりして環境もかわりそうです。

ずっとブログも放置してましたが(汗)
少し余裕出てきそうなのでまたがんばります。


ついったーにも書いたけど、最近なにやら上の階の人がうるさいので、
不動産屋に引越しの相談にいってました。
そしたらなんか、猫飼っていいからもうちょっと住みませんかと言われまして(笑)
今日から仲間が増えました。

o0480048012800956705
猫はいいねぇ。



追記:
(誰も気にしてないと思いますが)
うそです。残念ですが猫は飼えません。
エイプリルフールでした。
写真は美弥乃静ちゃんの実家のすももちゃん。



2015/01/01(Thu) :

あけましておめでとうございます♪

2015

 

2015年、あけましておめでとうございます~♪

昨年中はいろいろお世話になりました!
あわただしく1年がすぎ、結構疲れる1年でした(笑)

今年はもっと「余裕のある大人」を目指したいと思いますw

なんとなく最近はTwitterメインですが、いじっていただけるとはしゃぎます。
今年もどうぞよろしくお願いします!!

2015.1.1  築乃みく



2014/12/18(Thu) :

PCのディスクをSSDにしてみました~

image

先日買っちゃったSSD、ようやく乗せ替えました。
そして、さっそくベンチマーク。
おおー速い!!

(しまった、HDDの速度はかってなかった。まあいいか)

接続が3Gb/sなのでシーケンシャルの速度は頭打ちですが、
ランダムアクセスが想定していた程度に速くなったので満足ですw

仕様では読み書き75000IOPSという話だったので、ちょっと遅いのかな?

-----------------------------------------------------------------------
CrystalDiskMark 3.0.3 Shizuku Edition x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World :
http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   274.748 MB/s
          Sequential Write :   262.505 MB/s
         Random Read 512KB :   224.062 MB/s
        Random Write 512KB :   210.306 MB/s
    Random Read 4KB (QD=1) :    24.975 MB/s [  6097.5 IOPS]
   Random Write 4KB (QD=1) :    52.189 MB/s [ 12741.5 IOPS]
   Random Read 4KB (QD=32) :   167.068 MB/s [ 40788.1 IOPS]
  Random Write 4KB (QD=32) :    65.936 MB/s [ 16097.7 IOPS]

  Test : 1000 MB [C: 75.2% (179.3/238.4 GB)] (x3)
  Date : 2014/12/18 21:10:23
    OS : Windows 7 Professional SP1 [6.1 Build 7601] (x64)

smartctlの出力:
$ smartctl -a /dev/sda
smartctl 6.3 2014-07-26 r3976 [i686-pc-cygwin-win7(64)-sp1] (cygwin-6.3-1)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     TS256GSSD370
Serial Number:    **********
Firmware Version: N0815B
User Capacity:    256,060,514,304 bytes [256 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Dec 18 21:14:10 2014 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x02) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (    0) seconds.
Offline data collection
capabilities:                    (0x71) SMART execute Offline immediate.
                                        No Auto Offline data collection support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0002) Does not save SMART data before
                                        entering power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (  10) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x0000   100   100   000    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0000   100   100   000    Old_age   Offline      -       0
  9 Power_On_Hours          0x0000   100   100   000    Old_age   Offline      -       2
12 Power_Cycle_Count       0x0000   100   100   000    Old_age   Offline      -       11
160 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       0
161 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       43
163 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       3
164 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       796
165 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       4
166 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       0
167 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       0
168 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       3000
169 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       100
177 Wear_Leveling_Count     0x0000   100   100   050    Old_age   Offline      -       0
181 Program_Fail_Cnt_Total  0x0000   100   100   000    Old_age   Offline      -       0
182 Erase_Fail_Count_Total  0x0000   100   100   000    Old_age   Offline      -       0
192 Power-Off_Retract_Count 0x0000   100   100   000    Old_age   Offline      -       5
194 Temperature_Celsius     0x0000   100   100   000    Old_age   Offline      -       25
195 Hardware_ECC_Recovered  0x0000   100   100   000    Old_age   Offline      -       3819
196 Reallocated_Event_Count 0x0000   100   100   016    Old_age   Offline      -       0
197 Current_Pending_Sector  0x0000   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0000   100   100   050    Old_age   Offline      -       0
232 Available_Reservd_Space 0x0000   100   100   000    Old_age   Offline      -       100
241 Total_LBAs_Written      0x0000   100   100   000    Old_age   Offline      -       5925
242 Total_LBAs_Read         0x0000   100   100   000    Old_age   Offline      -       1094
245 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       6368

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%         1         -

SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.


この「Available_Reserved_Space」を見ておけば、事前に寿命が分かるはず。(たぶん)
常時起動させてるPCなので、どうなるか楽しみです。



2014/12/11(Thu) :

SSDの故障対策はS.M.A.R.T.で

DSC_0756
使えば使うほど壊れるDISKなんて駄目でしょ…
と思っていたけど、やっぱりSSD導入に踏み切りました(笑)
S.M.A.R.T.で監視しとけば寿命がくる前に交換できることが分かったため。

1本はメインPC用。
Windows7だけど、Cygwin+smartmontoolsで監視します。

2本目はサーバーのiSCSIディスク用。
zfsでL2ARC/ZILキャッシュの検証に使用予定です。
とりあえずOpenIndianaでパフォーマンス検証から…

Write時のIOPS的に、CFDのアレや、Crucial M100より速いこと、
価格が安いのが決め手でTranscendにしましたw
スペックは下記のとおり。

シー・エフ・デー販売 TOSHIBA製SSD採用 2.5inch 内蔵型 SATA6Gbps 256GB CSSD-S6T256NHG6Q
・256GB版 (参考価格 14,126円)
・シーケンシャル Read 530MB/s、 Write 490MB/s
・ランダム Read 97,000 IOPS、 Write 67,000 IOPS

Crucial MX100 2.5インチ内蔵型SSD 256GB SATAIII CT256MX100SSD1
・256GB版 (参考価格 13,135円)
・シーケンシャルRead 550MB/s、 Write 330MB/s
・ランダム Read 85,000 IOPS、 Write 70,000 IOPS

Transcend SSD 2.5インチ SATA3 6Gb/s MLC採用 256GB 3年保証 TS256GSSD370
・256GB版 (参考価格 11,799円)
・シーケンシャル Read 531MB/s、 Write 315MB/s
・ランダム Read 75,000 IOPS、 Write 75,000 IOPS

デスクトップではCFDが良いですが、WriteのI/Oが多い場合は
CrucialやTranscendがいいかも。
これより高いのは…ちょっともったいないかな。。

搭載チップ数の関係のようですが、128GBは速度が落ちるものがありますね。
参考価格はみくりん調べ。

↓参考にしたページ。

この夏SSD買うならコレ!! 売れ筋&注目の全6メーカー7製品
http://ssds.findthebest.com/

Best SSDs 2014 - Compare Reviews, Benchmarks
http://ascii.jp/elem/000/000/918/918611/

もう冬ですが記事は参考になりました(笑)
誰かの参考になれば。。

・:*:・( ̄∀ ̄ )。・:*:・



≪前のページ | main | 次のページ≫


Calendar

<< Feb, 2017 >>
SMTWTFS
   1234
567891011
12131415161718
19202122232425
262728    

New Entries

Categories

Recent Comments

Archives

過去の記事▼

Feed

RSS1.0 XML Feed

RSSリーダーにドラッグ&ドロップで登録すると記事を読めます。よろしくです♪

おすすめ


ピュアニーモ キャラクターシリーズ No.076 ガリレイドンナ 星月・フェラーリ 完成品ドール[アゾン]《04月予約》


ガリレイドンナ もふもふミニタオル 星月


ガリレイドンナ 缶バッジ 星月・フェラーリ


Microsoft Windows 8.1 Pro (DSP版) 64bit 日本語 発売記念パック 窓辺ファミリーバージョン