フォト
2018年6月
          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
無料ブログはココログ

日記・コラム・つぶやき

2018年6月14日 (木)

Lenovo Miix 2 8 を久々に使ってみる

「ポメラが欲しい」という衝動をぐっとこらえて、

あまり活用していなかったLenovo Miix 2 8で何とかしようと模索中です。

Windows 10にアップデートし、良さげなキーボードを付けたりして
そこそこ活用できそうな感じになってきました。

Dscn8219

キーボードは、こんな感じで乗せるタイプです。

Dscn8228

折りたたんでノートPCみたいな感じで利用出来ます。
キーボードを付けても重さは575gなので持ち運びも苦にならないです。

Dscn8221

暫くこれを持ち歩いて、使ってみることにしよう。


2018年5月23日 (水)

梅澤無線電機さんの「電子倶楽部60」を購入してみました

電子工作関連のブログを色々と読みあさっていたところ、
梅澤無線電機さんの「電子倶楽部60」を発見、レトロな雰囲気につられてポッチってしまいました。

個人的な趣味として電子工作をやってますが、アナログ回路はあまり得意でなないので、
勉強しようと、教材を探していたんですよね。

梅澤電機株式会社 - 電子倶楽部60

01

関連情報
電子倶楽部60

価格は税込みで1,058円ですが、送料に868円かかりました。

注文して2、3日で商品が到着しました。さっそく開封してみます。

到着した商品

外箱は手抜きのない立派な箱です。
これなら、子供さんへのプレゼントとしても使えそうです。

Dscn7930

箱の裏

Dscn7932


開封

箱の中はこんな感じで入ってます。

Dscn7933

本体

値段の値段の割には、しっかりした作りです。
上面ボードの材質は、ボール紙ですが厚さが1ミリあり樹脂化粧していて丈夫そうです。
付属品として、ケーブル類とクリスタルイヤホン等が付いています。

Dscn7935

バーアンテナ、ポリバルコン、トランジスター、ダイオードがあるので鉱石ラジオや
1・2石トランジスターラジオなんかも作れそう。

搭載しているパーツ類、個別に買った場合1058円じゃすまないとおもいますね。

テキスト類

36ページの冊子がついています。意外としっかした内容のテキストです。

Dscn7943

60種類の実験回路が掲載されています。
色々と面白そうな実験が出来そうです。

Dscn7945

Dscn7944

Dscn7937

裏はこんな感じです。電池ボックスがあります。
うらは若干チープ間がありますが、良しとしましょう^^

Dscn7940

子供のころ、学研の電子ブロックを持っていたのですが、
あれって電子部品を直感的に結線出来ず、ブロックの配置に悩んでしまいました。
このワイヤー直結の方が楽ちんです。ブレッドボードとの併用もできますね。

ArduinoやIchigojam等のマイコンと組み合わせての利用にも良さそうです。
Lチカや音出し、リレーを使った実験等はこのボードを使って出来そうです。

2018年5月16日 (水)

ゲームボーイ(旧タイプ)のパーツ その2

前回からの続きです。
その後、ケースの他に液晶モジュールとそのカバーを追加注文し、部品が到着しました。
とりあえず、IchigoJamで稼働させてみる予定です。

到着したパーツ

Dscn7908

Dscn7910

追加注文したパーツ

・LCDモジュール
3.5インチ 4:3の画面だと選択枝がこれしかありませんでした。
Podofo 3.5" TFT LCD Display RGB LCD Display Module Kit

01

・LCD用のカバー
  プラスチックではなくガラス製です。
Glass For GameBoy Zero DMG-01 For Raspberry Pi Modify Glass Lens Protector

02


まずは、LCDディスプレイの動作チェック

LCD部とドライバーボードのセットです。NTSCビデオ入力で表示出来ます。
IchigoJamに接続して表示確認をしたところ、仕様では12V駆動ですが5Vで動作しました。
意外と視野角の広く、斜めからも良く見える液晶です。

Dscn7907

液晶パネルはLQ035NC111という、比較的入手しやすいパーツです。

さっそく、今回の試みで一番重要なLCDの組み込みをやってみました。
傷防止のマスキングテープを付けて、段差のある部分をカットします。
パネルカバーが載せられるように、若干フチを残します。

Dscn7912

マスキングテープで仮止めして、一旦組み立ててみます。

Dscn7914

基板も装着

Dscn7917

ふたを閉めて、表示の確認をします。
LCDモジュールからケーブルを引き出して電源供給とビデオ信号入力を行っています。

Dscn7921

とりあえず、見栄えも良くいい感じに仕上がりました。
LCDカバーは購入して正解でした。

次に裏の電池ボックスからの電源供給をどうするか考えてみます。
Ichigojamを中にどう入れるかも検討します。

Dscn7922

他にもコネクタ類(キーボード、シリアル通信、外部電源)も何とかしたいですね。


2018年5月 8日 (火)

ゲームボーイ(旧タイプ)のパーツ

ゲームボーイ(旧タイプ)のパーツがAliexpressやeBeyで出回っています。

02

01

古いゲームの傷ついたハウジング(外側ケース)やボタンを交換したりってニーズが
海外ではあるようです。

Pi Zeroとの記載があり、中にラズパイ Zeroを入れて利用する用途もあるようです。
私も「Arduinoや何かに使えるのでは?」と思い、幾つかパーツを注文しました。

私は、ゲームボーイ自体で遊んだことがなく、本物の使い勝手が分かりません。
そこで、中古を探して入手しました。
初代ゲームボーイ(DMG-01) 、amazonで3,290円でした。

Dscn7866

Dscn7867

状態はかなり良いです。
ゲームボーイは初めて手にしましたが、かなり頑丈な作りです。

ゲームは近くのHardOffで入手しました。

Dscn7874

テトリス 200円、それ以外は40円でした。

Dscn7871

テトリス、久々にやりました。液晶の表示も良好です。
問題無くプレイできました。
う~ん。面白い、操作性も抜群です。ハマってしまいました。

残念ながら、ハイスコアの保存で出来ないようです。
ゲームカーリッジ内のバッテリーバックアップが動作していないようです。

Dscn7873

カートリッジは特殊なねじで開けることが出来ません。
このタイプのドライバーをamazonで見つけ注文しました。

ゲームボーイ本体は調査のため解体して、基板の寸法等を調べる予定です。

2018/05/10 追記

工具が到着したので、早速ゲームカートリッジを分解してみました。

Dscn7876

以前ダイソーで購入したドライバーに嵌めて利用できました。

Dscn7877

テトリスを分解しみると、バックアップ電池はありませんでした。
ググってみると、どうやらテトリスはハイスコアを保持する機能は無いようです。
残念。

Dscn7878

とりあえず、遊戯王も分解してみました。
こちらには、バックアップ電池がありました。
ICが4つも搭載。グラフィック等を多用するためか、容量の大きいROMが搭載されているようです。

Dscn7880

2018年4月26日 (木)

Aliexpressで USBTinyISPの小型版を購入

Aliexpressにて USBTinyISPの小型のものが出回っているようで、入手しました。
USBTinyISP Programmer Module For Arduino

03

私が購入した時は、送料は無料だったのですが、現時点では若干値上がり&送料がかかります。

01


到着した製品(左)と所有していた従来のUSBTinyISP(右)

02

かなり小型です。Windows 10パソコンに接続したところ、問題なくUSBTinyISPと
認識してくれました。

ATtiny13Aの書込みには、今後これを使っていく予定です。

別途、6ピンのコネクタ付きのフラットケーブルがあると重宝します。
6 Pins 2.54mm Pitch JTAG AVR Download Cable

04



2018年3月29日 (木)

BASIC言語が動くORANGE pico type S(キット)を組み立てました

aitendoにてBASIC言語が動く「ORANGE pico type S」を見つけ、入手しました。
お値段は1,380円と、非常にリーズナブルです。

ORANGE picoに関する情報:
  ・開発元      ピコソフト株式会社
  ・製品情報  手のひらサイズ 教育用に制御用に小さなパソコン ORANGE pico

幾つか種類があるようですが、小さくて必要最低限の機能がそろっている type Sを
購入しました。

到着した製品
Dscn7771

内容
簡単な組み立て手順書が同封されています。

Dscn7773

早速組み立ててみました。

完成したORANGE pico type S

ボード上にI/Oピンの用途が分かる説明・シルク印刷がないのがちょと残念です。

Dscn7779

※黒いストレートのメス端子とスペーサーとは付属していません。
   手持ちのパーツを付けました。

はんだづけは、さほど難しくありませんでしたが、見本と部品が若干違うので、
ちょっと混乱するかもしれません。

電解コンデンサーが積層セラミックコンデンサーに置き換わっています。
写真を見てパーツを乗せて組み立てるにはちょっと混乱を招きそうです。

Dscn7776

組み立て手順も3行だけなのも、子供向けにはちょっと不親切かも。
別途、資料や補助が必要ですね。
仕様等が記載されている説明書も付属して欲しいところです。

動作確認

キーボードはPS/2インタフェース、画面表示はNTSCビデオ出力による表示です。
公式サイトをみると、仕様等の詳細が何処に記載されているか見つかりません。

取りあえず、モニターをつなげてみると画面が縦スクロールしていまいました。
同期がとれていないようです。

Dscn7784

もしかしたら、ファームウェアのバージョンが古いため(V0.96)と思い、
最新版のV1.06に更新することにしました。
更新は、公式HPの「ORANGE pico ファーム更新方法」を参考にしました。

Dscn7786

とりあえず、中華製ぱちもんのPICkit3で更新できました。
ただし、更新方法の説明は初心者にはちょっと厳しいと思います。
「PICkit3とは何ぞや?」等の説明が一切ないです。知識のある人しか出来ない作業です。

純正品PICkit3秋月電子で5,800円。
最新ファームウェアが乗っているマイコンPIC32MX170F256Bが単体販売されているので
そちらを購入するのも良いかもしれません。
(aitendoではなく、公式の通販サイトで購入すれば最新ファームウェアが乗っているのかも)

結局、更新してもスクロールは、改善できませんでした。
別のモニターに変えてみました。今度はスクロールはしないものの、画面の下の方が変。

Dscn7796


次に量販店で購入したDVDプレイヤーで試してみました。

Dscn7797

今度はとりあえず表示出来ました。
他に東芝、パナソニック製液晶テレビでも試してみましたが、問題なく表示出来ました。

2台は激安中華製モニターなのでダメだったのかもしれませんね。
イチゴジャムやTiny BASICでは使えていましたが、たまたま相性が良くて使えたのでしょう。

性能測定

イチゴジャムでやった3万回ループの時間を測定してみました。
(バファロー製ビデオキャプチャーでは綺麗に取り込めました)

20180329182744

結果としては、1.979秒でした。
イチゴジャムの40倍のパフォーマンスと、かなり速いです。
イチゴジャムやTiny BASICとは異なり本格的なBASICインタプリタが搭載されている
割には大変高速ですね。

ちなにみサイズは、イチゴジャムよりちょっと小さめです。

Dscn7782




さて..

キットを組み立てて、このORANGE picoで何かしようと思い、
  「何が出来るのか」、「仕様は..」
と公式サイト上のドキュメントを探しているのですが、
何処に記載されいるのか分かりません。

  ・CPUのクロックは?
  ・画面の縦横の文字数は?
  ・グラフィック描画の解像度は?
  ・I/O入出力・制御機能はどんなのが利用出来るの?


探し方が悪いのかもしれません。  只今、捜索中です。
amazonの商品説明が一番まともかも)

_=> 公式サイト製品ページの概要説明で、ところどころに仕様がちりばめられているので
      だいたいは把握できます。

追記
  ORANGE picoに関しての情報は公式サイトよりも、
  ふうせん Fu-senさんがまとめられている  「オレンジピコにベーシック」が分かり易く
  大変参考になりました。

  イチゴジャムに関する情報も公式サイトよりも、
  ふうせん Fu-senさんの「イチゴジャム レシピ」の方が充実していますね。
 
  両社とも公式サイトは、もうちょっと内容をなんとかして欲しいなぁ..


まとめと感想
・安価で高速なBASICインタプリター搭載で非常に良さげ
・教育目的なら、もうちょっとドキュメント類は充実してほしいと思う
   (良い製品なのにもったいない.. )


製品としては良好です。もうちょっと遊んでみます。

2018年3月 5日 (月)

ノートPCの潰れた(なめた)ねじを外すのに苦戦

手持ちのノートPCのメモリー増設を行う為に、裏ぶたのねじを外していたのですが、
真ん中のねじ穴が潰れてしまい、外すことが出来ない状態になってしまいました。

ねじは、直径2.6ミリの皿ねじです。

Dscn7681

Dscn7672

まずはお手軽な、太めの輪ゴムを被せて摩擦を利用して回す方法を試しましたが、
だめでした。相当固く閉まっているため、ゴムが耐えられず穴空いて回せません。

次に「ネジはずし剤」を試してみました。

Dscn7673

以前も使ったことがあり、試してみたのですが今回はダメでした。
むしろ、悪化してしまいました。滑り止めが研磨剤となり、固いねじを強引に回すと
ネジ穴が研磨されてしまい、+形状がほぼ円系になってしまいました。

もはや、ねじ穴を使うのが不可能な状態に...

仕方がなく、ネットで評判の「ネジザウルスM2」を近所のホームセンターで購入しました。
直径2.5ミリのねじら対応とのことです。

Dscn7674

試してみると、5秒で「これは、ぜんぜん使えない」と判断出来ました。
つかんで回すには、下記の画像の幅とねじの頭の高さが必要です。

Dscn7676

ネジザウルスにはシリーズがあるので、もしかしたら選択を間違ったのかも..

仕方がなく、最後の望みとして「ANEX なめたネジはずしビット」を購入して試してみました。

Dscn7675

2本ビットが入っていますが、M2.5~M3対応の赤い方を使います。
ドリル(右側)で穴をあけ、スクリュー(左)で外す方向に回して潜り込ませて外せます。

Dscn7682

本来は電動ドリルを使うようですが、電動だと力を入れる加減が分からないので、
ハンドドリルを利用しました。

Dscn7679

こんな感じで取り付けられます。

Dscn7680


最終的に、この「ANEX なめたネジはずしビット」で穴をあけて、回すことが出来ました。
ネジ1本はすずのにえらい、出費となりましたが、勉強代ということで良しとします。

2018年1月21日 (日)

アナログ入力を使った16ボタン入力

以前自作したアナログ入力を使ったボタン入力と同様のキーパッドが
Aliexpressで安価に販売されているので入手しました。
GND、VCC、アナログ入力の3ピンで簡単に16ボタン入力が実装出来ます。

Button Keypad module 4x4. One analog out. Simple connection to Compatible for Arduino, Raspberry, STM. Keypad

ついでに3x4タイプも入手

Button Keypad 3x4 module. One analog out. Compatible for Arduino, Raspberry, STM. Keypad

到着した製品

意外としっかりとした製品です。
透明キャップを外してボタンにラベルを付けることが出来ます。

04_2

マニュアルは無いのですが、裏に10ビット解像度時のアナログ入力値が記載されています。

05

この情報を元に、豊四季タイニーBASIC for micro:bitにて動作確認してみました。

動作確認プログラム

10 'Keypad 4x4
20 @(10)=1013,920,840,780,670,630,590,560,502,477,455,435,400,320,267,228
30 G0=G
40 G=GRADE(ANA(1),10,16)
50 IF G>=0 ?"KEY=[";G+1;"]":MSG TOP,0,CHR$(65+G)
60 GOTO 30

ボタンの判定は誤差と揺らぎを考慮し、裏面の値の10を引いた値で判定しています。

GRADE() 関数は配列に格納された値を閾値として等級判定する関数です。
第1引数には、判定する値、第2引数には配列先頭番号、第3引数にはデータ数を指定します。
アナログ入力ANA(1)の値が1013以上の場合は0、920以上の場合は1..と判定します。
範囲外の場合は-1を返します。
比例関係に無い値を等級判定する場合に利用するとプログラムを短く出来ます。

押した番号をコンソールに表示し、ボタン1~16をA~PとしてLEDマトリックスに表示させます。

06

とりあえず、動作しました。

ただし、瞬間的に誤判定し、正常判定の状態になる場合があります。
ログを見ると、ボタン[1]を押したのに、一瞬ボタン[6]と判定されています。

02

この原因は、ボタンを押したときのチャタリングと思うのですが、念のため波形を見てみました。

01

波形はボタンを離した時のものですが、やはりチャタリングが発生しています。
このチャタリングに対する誤動作防止にはいくつか方法があります。

今回は、
  ChaNさんの 「テクニカル ノート チャタリング対策のしかた
が大変参考になりました。

ChaNさんの対策案でプログラムで対応できる「ディレイ方式」が一番簡単そうです。
さっそく試してもました。

対策

まず、測定波形を見ると1回あたりのチャタリングの幅は0.4msec(マス1msec幅)程度です。

そこで、アナログ値の測定のよるボタン判定において、
  「前回の値と今回の値が異なる場合、今回の値を捨て1msec後にもう一度測定する、
   同じなら値として採用する」


という対策を施したところ、誤判定を無くすことが出来ました。
う~ん、なかなかいい感じで利用できるようになりました。

修正対応したプログラム
10 'Keypad 4x4
20 G0=-1
30 @(10)=1013,920,840,780,670,630,590,560,502,477,455,435,400,320,267,228
40 G0=G
50 G=GRADE(ANA(1),10,16)
60 IF G<>G0 WAIT 1 GOTO 40
70 IF G>=0 ?"KEY=[";G+1;"]":MSG TOP,0,CHR$(65+G)
80 GOTO 40

さて、以前自作したキーパッドをIchigoJamで利用した時には、チャタリングによる
誤判定は気になりませんでした。なぜでしょう?

この理由としては、IchigoJamの処理速度が遅いため、チャタリングによる変化を
検知出来なかったのだと思われます。

今回試したmicro:bitの豊四季Tiny BASICは、ARM的にはIchigoJamと同スペックですが、
実装上の工夫により、IchigoJamより余裕で15~30倍の処理能力があります。

Arduino UNOでこのボードの利用する場合も、何らかのチャタリング対策は必要と思います。

2018年1月11日 (木)

ルミちゃんの毛づくろい

最近、=^_^= 成分が少ないというご指摘が各方面からある今日このごろ...

ということで、我が家の愛猫 ルミちゃん(♀)の毛づくろいの様子をご堪能下さい。



ちょっとセクシーかも...

2018年1月10日 (水)

micro:bit用Arduino環境にてrtcの精度が悪い - その対策

micro:bit をArduino環境で利用しています。
時計を実装したいと思い、mbed用の下記のライブラリを参考にしてやってみました。

参考にしたサイト
・Francis Schumacher /  nrf51_rtc
https://os.mbed.com/users/fxschumacher/code/nrf51_rtc/
・Francis Schumacher /  nRF51_rtc_example
https://os.mbed.com/users/fxschumacher/code/nRF51_rtc_example/file/c1f06d0a5e11/main.cpp/

一見、ちゃんと動作していると思いつつ、放置すると徐々に時間が進んでしまいます。
誤差を測定すると私のmicro:bitでは5%も速く時間を刻みます。
(誤差はmicro:bitの個体ごとに異なると思います)

Photo

原因を調べるとArduinoのrtc(リアルタイムクロック)に供給されているクロックソース
LFCLKSRC32.768 kHz RC oscillatorに設定されていました。

micros()、millis()、delay()ではrtc1が利用されており、これらも5%進んでしまいます。
このズレは、micros()、millis()、delay()でパルス幅の生成や測定を行っている場合には
影響を受けるかもしれません。

改善方法として、LFCLKSRCに指定するクロックソースを
16MHz crystal oscillatorをベースにしている LFCLK synthesizerに設定します。
RCオシレータよりクリスタル・オシレータの方が当然精度が良いですね。

具体的には、setup()の頭でLFCLKSRCのクロックソースを次のように設定します。

void setup() {
  NRF_CLOCK->TASKS_LFCLKSTOP = 1;
  NRF_CLOCK->LFCLKSRC = 
    (uint32_t)((CLOCK_LFCLKSRC_SRC_Synth << CLOCK_LFCLKSRC_SRC_Pos) &
    CLOCK_LFCLKSRC_SRC_Msk);
  NRF_CLOCK->TASKS_LFCLKSTART = 1;
   ・・・・

実際に試したところ、当初の5%よりもかなり改善されました。
一晩放置して誤差を調べてみます。

別の方法として、コンパイルオプション -DUSE_LFSYNTを付けることでも対応出来ます。
Arduinoのローカル設定ファイル platform.local.txtを
AppData\Local\Arduino15\packages\sandeepmistry\hardware\nRF5\0.4.0\に作成して
  compiler.c.extra_flags=-DUSE_LFSYNT
  compiler.cpp.extra_flags=-DUSE_LFSYNT

を定義で対応でいけると思います。

2018/01/11 追記


改善を施した場合の誤差は0.6%でした。
24時間で8分ずれます。思ったほど精度が改善できませんでしたが、
まあ、効果はあるのでこれで良しとします。

より以前の記事一覧