ひろぶろ.com

アメリカ ミシガン州に赴任中 メーカ勤務の日本人のブログ

転職しました

約3年ぶりの更新になります。こんにちは。

 

このブログ著者は3年前の更新の直後に転職しました。今も前と変わらずエンジニアと呼ばれるくくりで仕事をしていますが、前職とは手がける商品も役割も変わりました。

(転職の話については、追々記事にしたいなーと思っています)

 

転職により得たものもあれば失ったものもあります。前職の中心の業務だった回路設計は現職では全くやらないゆえにデータシートを読みとったり回路図を解釈する力がなんとなく鈍ったなーというのを感じます。。

 

それと同時にハードウェアに関する興味も薄れつつあります、、以前記事にした「黒電話分解してみた」みたいなものはもう書く気力がないかもしれません( ;∀;)

 

一方で、ソフトウェアとその品質担保については現業務の中心となっており学びが進んだら、のほほんと書いてみたいと思っています。

 

またゆるーくだらだらと更新していきたいと思います、そんなこんなでまた何卒よろしくお願いします。

【雑記】Intel NUC NUC5i5RYK 買ってきた

6年使っていたHPのPCが起動しなくなりました…(^v^.)…

症状的には電源ボタン押す ⇒ ファン音がふぉぉぉん…  ぶぉおおおおん!!(3割増し位の音) ⇒ 画面真っ暗 Bios起動せず。。。

Google先生によると、これはよくあるケースのようですね。
PSUか電源生成回路の電解コンが劣化して狙った電圧が出せてないのが原因とか。

とりあえず裏をあけてマザーボードPSUを取り出しましたが、、、  


ああ、マンドクセ('A`)

 

「仮に直ったところで、今にしてみるとかなり時代遅れのCPUだしなー…(← 一体型なのでCPU交換できない)」

「それより、ちょっと興味あるNUC PCとやらを買ってみよう。」


こうして、本音は面倒くさいだけなんだが興味あるNUC PCを買うために秋葉原に足を運ぶことになりました。

=====================================================================================

◆購入品
1.Intel NUC5i5RYK (SSDのみ対応、HDD非対応。DDR3Lに対応、DDR3は非対応)
2.SSD Samsung XP941 128GB AHCI M.2
3.DDR3L Team TED3L4G1600C11 × 2

ここまでで合計7万円程度

 

あとはディスプレイとつなぐためのHDMIケーブルとかOSが別途必要になります。

NUC PCは15cm四方の小箱で売られています。Corei5、GPU内蔵、Broadwell

f:id:Hiroe:20150704012727p:plain  f:id:Hiroe:20150704012659p:plain

 

2枚目写真から分かる通り、このNUCはミッキーコードが不要です!
FSP”って書いてある箱にプラグのアタッチメントをつけるだけです。

しかもアタッチメントはA/C/G/Iタイプが同梱されています。ありがたや(^人^.)

 

 

さて、一応NUC PCは ”自作” とはうたわれているものの?、SSDDDRをつけるだけで組立は完了です。
まずはDDRから。DDR3Lのみ対応です。

 

あけ~の~

f:id:Hiroe:20150704014549p:plain f:id:Hiroe:20150704014552p:plain

つけ~の~

f:id:Hiroe:20150704014920p:plain  f:id:Hiroe:20150704014932p:plain

 


次はSSDです。この機種はSSDのみ対応ですHDDには対応していません!

f:id:Hiroe:20150706004524p:plain


あけーーのーーー (ネジ回すだけ)

f:id:Hiroe:20150704014937p:plain

つけーの。

f:id:Hiroe:20150706004446p:plain

 

はい終了。組立時間10分。
ミニ四駆よりずっと簡単。

 

スペックについてのレビューは次の記事で書きたいと思います(^_^)ノ

 

【Hardware】黒電話 600-A2 を分解してみた②

前回の記事(【Hardware】黒電話 600-A2 を分解してみた①)では黒電話を実際に分解して全体概要を記載しました。

今回は電話回線I/Fとフックスイッチとダイヤルの動作について見ていきますლ(╹◡╹)


◆600-A2 回路図
f:id:Hiroe:20131220020615p:plain


◆公衆回線とのI/F
モジュラーケーブルを介して公衆回線と接続されるI/Fです。L1・L2の2pinで形成されます。
モジュラーコネクタのL1とL2はこんな感じ。
f:id:Hiroe:20131223222341j:plain

L1・L2の間には交換機からの直流給電として約48Vが供給されています。

オンフック(送受器が置かれた状態)では電流が流れませんので48Vの電位差がありますが、
オフフック(送受器を持ち上げた状態))になると電流が流れるため交換機や回線の直流抵抗により電圧降下が発生して、L1・L2間の電位差は約6V近辺まで落ちます。


◆フックスイッチ
オフフックにすると、回路上でHS1とHS2が閉じます。するとL1~L2には直流電流が流れる経路が形成されるので結果、交換機~L1~L2~交換機 という電流ループを形成するように動作します。
一方オンフックにすると回路上でHS1とHS2が開きますので上記のループを切ります。

オフフック⇔オンフックと繰り返したときのHS1、HS2周辺のgifアニメです。
f:id:Hiroe:20131223151830g:plain
HS1とHS2が閉じたり開いたりしているのが分かると思います。


ダイヤル
所望の番号に指を入れてダイヤルを回し指を離す… 現在のプッシュ式電話と使い方が大きく異なるのがダイヤルだと思います。

ダイヤルを回す前・ダイヤル回し中、ダイヤル戻り中のDi、Dsがどうなっているかを表にしました。
f:id:Hiroe:20131223203616p:plain

表中のDiのダイヤル戻り中はCloseとOpenをパタパタと交互に繰り返しています。この時のDiの動きは以下のようになっています。
f:id:Hiroe:20131223211224g:plain
分かりにくい…汗
繰り返す回数はダイヤルが1のときは1回、ダイヤルが4のときは4回、0のときは10回です。

ところで
・Diがopen=電流ループが切れる=L1-L2間の電位差が48V
・DiがClose=電流ループが形成される=L1-L2間の電位差が6V程度まで落ちる。
f:id:Hiroe:20131223220444g:plain

ということはダイヤル戻り中、縦軸をL1-L2間電圧・横軸を時間としてグラフを描くと電圧波形は矩形パルスのようになります。
これをダイヤルパルスといいます。
電流ループが切れた状態をブレーク、電流ループが形成された状態をメークと言います。

交換機はこのパルスの数を検出してユーザーが何番をダイヤルしたのかを認識します。そしてダイヤル先に回線を繋ぐわけです。
0120だったら、パルスの数が10発→1発→2発→10発 となるわけです。


ところでパルス周波数とブレーク/メーク各々の比率は規格により規定されています。
f:id:Hiroe:20131223221549j:plain
ダイヤルパルス速度がパルスの周波数。pps=pulse per sec
ダイヤルパルスメーク率は (メーク時間)/(ブレーク時間+メーク時間)
ミニマムポーズは ダイヤル間の待ち時間
です。
ダイヤルパルス機能は、上記の規格に従って設計されていなくてはいけません。

最近はダイヤルパルス方式の電話なんて殆ど無くてDTMF方式が圧倒的多数でしょうけど。。
DTMFについてはまた機会があれば記事を書きたいと思います。

【Hardware】黒電話 600-A2 を分解してみた①

f:id:Hiroe:20131215225358j:plainf:id:Hiroe:20131215225457j:plain

以前オークションで落札した黒電話です。

レトロな電子機器には不思議な魅力を感じます( ╹◡╹)

最近の電子機器は小型化・高集積化が進んできて、ピン間3本くらいのプリント基板にSoCとメモリを中心にチップ部品を詰め込んだ4層または6層基板。機能を出すのは殆どを組み込みシステム…
というのがメジャーになっていると思います。

しかし、こういうレトロな製品はSoCは勿論搭載しておらず、電子回路と機械的な動作で機能を出しています。

当然、組み込みシステムよりも出せる機能はずっと単純なものですが、、
どうやって機能を出しているのか、その仕組みが、自分の目で見れるという楽しさがあります。


それでは早速分解をすることにします。

あけるとこんな感じ
f:id:Hiroe:20131216000724j:plain

送受話器
ご覧の通り耳と口をあてて、相手からの声を聞いたり自分の声を相手に出したりするユニットです。
要はスピーカとマイクです。

鐘と撥
電話がかかってくると撥が振動して両サイドにある鐘をガンガン叩きます。
これにより黒電話の代名詞とも言える、あの「ジリリリリリリリン」という呼び出し音が鳴ります。
ちなみに、次回以降で触れますが、呼び出し音は国によって鳴り方が決まっています。
日本では1秒鳴って2秒休みます。アメリカなら2秒鳴って4秒休む。欧州なら0.4秒鳴って0.2秒休んで0.4秒鳴って2秒休む
だったと思います。

公衆回線とのI/F
写真の部位からさらにモジュラーケーブルを延長させて壁のモジュラージャックに接続します。写真では分からないのですが2pinです。信号名はL1/L2と呼びます。
公衆回線へ接続するには定められた試験に合格している必要があります。「回線に損傷を与えない」「他の人の迷惑にならない」「端末と公衆回線との分界が明確である」を確認するための試験です。
試験に合格している機器はこういうマークf:id:Hiroe:20131216010110j:plainが表示されます。

フックスイッチ
送受話器が置かれたか上げられたかを確認するためのスイッチです。
置かれた状態を「オンフック」、上げられた状態を「オフフック」と呼びます。

ダイヤル
黒電話で電話をかけようとした場合、まずは、所望の番号に指を差込み、所定の位置まで回し指を離しますが、指を離して元の位置にダイヤル盤が戻るまでの間にダイヤルが行なわれています。
具体的にはこの間にダイヤルパルスというパルスを発生させています。パルスは2なら2回、5なら5回、0なら10回発生します。交換機はこれを認識するので相手に電話をかけることができます。


次回以降は各ユニットの詳細について知っている範囲で書いてみたいと思います。

【Android】OnClickListenerでズッコケ

"スマートにプログラミング"

スマートにプログラミング Android入門編

スマートにプログラミング Android入門編

で、OnClickListener I/Fを実装する例題でハマってしまい…

ずいぶん悩んでやっと原因が分かりました。
悲しくなるくらいの凡ミスでした…

package example.android.dbsample;

import android.app.Activity;
import android.content.DialogInterface.OnClickListener;   //**1
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SampleActivity extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.samplelayout);
		//** 登録ボタンにOnClickListener
		Button registBtn = (Button)findViewById(R.id.register);
		registBtn.setOnClickListener(new ButtonClickListener());     //**2
	}
	//** 登録ボタンが押された時の処理
	class ButtonClickListener implements OnClickListener {    //**3
		@Override
		public void onClick(View v) {
        //** 処理内容記載
		}
	}


所々省略しましたがポイントはこんな感じです。

3あたりまで記述。
この時点ではOnClickListenerがインポートされていないので、3は未インポートを示すf:id:Hiroe:20131209220434p:plainがついています。
もちろん2もButtonClickListenerがOnClickListenerを実装していないのでf:id:Hiroe:20131209220434p:plainが付いています。


では3の行でf:id:Hiroe:20131209220434p:plainをクリックしOnClickListenerをインポート! 2と3のエラーがこれで消えるはず!


…て、あれ?
f:id:Hiroe:20131209220434p:plainが消えない。おかしい。

ひたすら2,3あたりを確認するも何も見当たらない…


30分後
選択するimport文を間違えていたことがわかりました。

f:id:Hiroe:20131209221442p:plain

今回のソースコードでは、Buttonの属するViewクラスのOnClickListenerをインポートしなくてはいけませんでした。。

android.view.Viewをインポートすればf:id:Hiroe:20131209220434p:plainが消えました!