<   2016年 12月 ( 10 )   > この月の画像一覧

レゴブロックのようなロボットアーム簡単制御 (12/27)

レゴマインドストームのようなバラバラにして組み立てて色んな動きをさせる、日本の田宮模型の工作シリーズ。
a0034780_09195916.jpg

こちらのサイト様で知ったのだが、結構簡単に汎用的な機構が作成できる。
いよいよもって割れるがよい ARROWS Aで「100万のタマゴ」にガチ勝負を挑んだ結果……【ネタバレ】

ページ真ん中辺の「タミヤのモーター工作キット1式」というのを探したら、
3速クランクギヤーボックスセット 660円
ユニバーサルアームセット(オレンジ) 420円
ユニバーサルプレートL(210×160mm) 660円
単3電池ボックス(2本用・逆転スイッチ付)360円
で作っているらしい(タミヤのモーター工作キット1式のリンク先[動力ユニット][構造材][電気パーツ])。

こちらが無線でアームを持ったロボットを作れるキット(工作キット)。
3ch RCロボット製作セット 8600円
a0034780_9482456.jpg


次のページに6種類の作成例とこの部品だけで出来る3種類の作成例が載っている。
くふう次第で動きいろいろ!3ch RCロボット製作セット

3万円台で大ヒットしたお掃除ロボットiRobotルンバも買える昨今、これをarduinoやワンチップマイコンで制御すれば、次のステップにちょうど良いのではないだろうか。
a0034780_9534147.jpg


オレコマンダーとか再販して欲しい物がいっぱいあるな。hori頑張ってー。
[PR]
by k1segawa | 2016-12-27 09:30 | arduino, AVR | Comments(0)

Japanino ArduinoISPで ATtiny13でBASCOM-AVR

第一回プラチナブロガーコンテスト
に参加します。

a0034780_01191652.jpg


IoTの流行で、arduinoで電子工作をされる方が増えましたが、その先はどうしたらいいか戸惑っているのではないでしょうか?

自分で書いてある通りやったあと、どう変更したり、自分の好きな部品をくっつけるにはどうしたらわかるんだろう?

arduinoは簡単ですが、さらに先に進むには、回路とプログラムがわかるようにならなければなりません。

それには実験するのが一番で、価格的にarduinoは「もったいない」。
またarduinoの基礎となるAVRマイコンは、足の数が多すぎてよくわからない。

そこでATtiny13です。足はたった8本です。
arduinoは簡単ですが、実は裏で沢山のライブラリに頼っています。
シンプルにBASICはいかがでしょうか?

digitalWrite(PB3,ON)と書くより、PORTB.3=ONの方がわかりやすいのではないでしょうか?

BASCOM-AVRarduinoよりプログラムは小さくなります。ATtinyシリーズはATtiny13なら1kBATtiny85でも8kBしか入りません。
小さいプログラムなら、簡単な事を一つずつしか出来ません。でも1個50円なので、沢山買っても財布は痛みません。実験して壊してもいいのはとても初心者向きだと思います。

ピンが足りないなら、ATtiny841なら14ATtiny861なら20。小さいブレッドボードで可愛く作れます(^O^)。

ぜひ、ATtiny13BASCOM-AVRを使ってみてください。

以下は最近の作ったものです。
a0034780_01394451.jpg

左側が今持っているarduinoを使った書込み器、右側がシリアル通信してLEDを光らせる回路を追加したもの。

ね、簡単でしょ?

arduinoとAVRへのリンク一覧へはこちら。


[PR]
by k1segawa | 2016-12-27 01:46 | arduino, AVR | Comments(0)

Japanino ArduinoISPで ATtiny13 で Atmel Studio 7 (37) (12/27)

Atmel が 2016年4月にMicrochipに買収されたのに伴い、最近公式ライターAVRISP mkIIが販売終了になってしまったので、ちょっと慌ててAVR Studioを落とそうとしたら、もうAtmel Studio 7しかダウンロードできなくなってしまっていた。

どんどん新しい環境になっているのでC/C++で開発できるかチェック。
公式のダウンロードサイトでは、Windows 10ではWeb インストールとオフライン インストールが選べるのだが、オフライン インストーラを起動しても「Windowsがこのプログラムの起動を中止しました」と出てセキュリティチェックではじかれてしまう。

仕方ないのでWeb インストール(物凄く時間がかかる)して起動すると、大分様相が変わっていた。
プログラムの組み方をググって、ソースを書いたり、設定を行うのに次のサイト様を参考にした。
Atmel Studio の環境立ち上げと 使用方法 - PDF

自分の環境は、Windows10 64bit、Atmel Studino 7.0.1188、ATtiny13A、Arduino ISPライタ、arvdudeの組み合わせなので、[メニュー][ツール][外部ツール]で環境設定行う。
a0034780_23405944.jpg

引数はサイト様がATmega168pのarduino用で、今回はATtiny13Aのワンチップマイコン直接用なのでちょっと違って、以下のようになる。
-p t13 -c avrisp -P \\.\COM3 -b 19200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i -C C:\avrdude\avrdude.conf

この中でItemFileName→TargetNameになっている(ItemFileName=main、TargetName=GccApplication1)のは、サイト様の手順でソースを追加するとプロジェクト名はGccApplication1で変わらないが、ソースファイルはGccApplication1.c→main.cに変わっており(バージョンアップで変わったのだろう)、実際に出力されるHexファイル名はmain.hex→GccApplication1.hexに変わっているためだ。

その他のCOM3やC:\avrdude\avrdude.confは各自の環境による。
-F -v -Dは取り除いた。

また、[ソリューション エクスプローラ][GccApplication1で右クリック][プロパティ][Tool][Selected debugger/programmer][Custom Programming Tool]を選んでおく(SimulatorからCustom・・・へ変更する)
a0034780_00022486.jpg
デバイスはATtiny13Aを選ぶ。
a0034780_00012267.jpg
そしてソースはサイト様のをベースにATtiny13A用に修正し次のようになる。
/*
* GccApplication1
*
* Created: 2016/12/26 22:08:05
* Author : k1segawa
* License: free
*/

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

#define PB3 PORTB3 // PBx未定義のため

int main(void)
{
PORTB = 0x00; // ポートB出力方向決定時0出力準備
DDRB = (1<<PB3); // PB3 as output, other as input
while(1)
{
PORTB |= (1<<PB3); // Turns ON PB3 LEDs
_delay_ms(1000); // 1 second delay
PORTB &= ~(1<<PB3); // Turns OFF PB3 LEDs
_delay_ms(1000); // 1 second delay
}
}

サイト様はPORTDだがPORTBへ変更。新しい環境はPB3が未定義らしいので自分で定義。PORTB3を探し出すには、PORTBを右クリックして[Goto Implementation](定義へジャンプ)を選び探した。
a0034780_00183647.jpg

_BV()でもよい。

F7でビルド、[ツール][Deploy](設定内容による)で書込み。86バイトで、いつものThank you.で終了。

ビルドログは次の通り。

------ ビルド開始: プロジェクト:GccApplication1, 構成:Debug AVR ------
ビルドを開始しました。
プロジェクト "GccApplication1.cproj" (既定のターゲット):
ツール バージョン "14.0" でビルドしています。
false 条件により、ターゲット "PreBuildEvent" を省略しました。('$(PreBuildEvent)'!='') は (''!='') として評価されました。
ファイル "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets" 内にある、プロジェクト "c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\GccApplication1.cproj" からのターゲット "CoreBuild" (ターゲット "Build" は依存):
タスク "RunCompilerTask"
タスク パラメーター:
ContentList=
main.c

(XHTML)


Program Memory Usage : 86 bytes 8.4 % Full
Data Memory Usage : 0 bytes 0.0 % Full
タスク "RunOutputFileVerifyTask" の実行が終了しました。
プロジェクト "GccApplication1.cproj" 内のターゲット "CoreBuild" のビルドが終了しました。
false 条件により、ターゲット "PostBuildEvent" を省略しました。('$(PostBuildEvent)' != '') は ('' != '') として評価されました。
ファイル "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Avr.common.targets" 内にある、プロジェクト "c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\GccApplication1.cproj" からのターゲット "Build" (エントリ ポイント):
プロジェクト "GccApplication1.cproj" 内のターゲット "Build" のビルドが終了しました。
プロジェクト "GccApplication1.cproj" のビルドが終了しました。

ビルドに成功しました。
========== ビルド: 正常終了または最新の状態 1、失敗 0、スキップ 0 ==========

書込みログは次の通り。

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.11s

avrdude.exe: Device signature = 0x1e9007
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex"
avrdude.exe: writing flash (86 bytes):

Writing | ################################################## | 100% 0.30s

avrdude.exe: 86 bytes of flash written
avrdude.exe: verifying flash memory against c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex:
avrdude.exe: load data flash data from input file c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex:
avrdude.exe: input file c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex contains 86 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 0.30s

avrdude.exe: verifying ...
avrdude.exe: 86 bytes of flash verified

avrdude.exe: safemode: Fuses OK (E:FF, H:FF, L:7A)

avrdude.exe done. Thank you.

うまくいくと、GND~抵抗1kΩ~PB3に繋いだLEDが1秒おきに点滅する。

C/C++環境も構築できた。

[PR]
by k1segawa | 2016-12-27 00:03 | arduino, AVR | Comments(0)

Japanino ArduinoISPで ATtiny13 で 8x8 MatrixLED制御 (3) - 応用 (36) (12/25)

以前の記事、Japanino ArduinoISPで ATtiny13 で 8x8 MatrixLED制御 (2) - 応用 (24) (10/9)で、シリアル以外は出来たのだが、ピンが1つしか余っていなかった。
そのため受信オンリーでなんとかしようとしていたのだが、PC側に送信遅延を施しても思うようにいかなかった。
結果シリアルは2ピン必要という事で、MatrixLEDの方の回路を1ピン減らしてみる。
CLKが共通にできるのではないかという事で、PB2とPB3→PB2で制御してみる。
下図のように回路図のPB3の線をPB2へつなぎ、PB3の配線を削除してPB3を空ける。点線が元の配線で太線が新しい配線。
a0034780_18185165.jpg

それに従い、プログラムも変更する。PB3を制御していた2つのFor Iループを一つにし、条件を追加する。

ちょっと回路的に以前の記事のタイミングチャートで、CLR1,CLR2もリセットとして必要(ゴミが出る)かもしれないので、保留中。

[PR]
by k1segawa | 2016-12-25 18:13 | arduino, AVR | Comments(0)

Japanino ArduinoISPで ATtiny13 シリアル通信 (34) (12/20)

シリアル通信について、ATtiny13でずいぶんと回り道している。
今回は、双方向の通信が失敗し続けた原因が分かった。
今までは受信か送信の一方向のみがうまくいっていた。
なぜか両方向だとうまくいかなかった。

それはプログラムの問題ではなく、環境設定の問題だった。
まず一つは、PCとのUSBシリアル変換の問題。
JapaninoをArduino ISPライタとして使っていたため、USBを仮想COMポートとして一つ使っており、そのRX/TX(D0/D1)がシリアル通信に使えるはずという前提が、一部間違っていた。
JapaninoにISPライタのスケッチを書き込んだまま、RX/TXを使っても、それはスケッチがポートを見てしまい、うまくいかなかったのだ。本来なら送受信をRX/TXにそのまま流すスケッチを書き込まなければ意図したように動かないにも関わらずにだ。そのスケッチを書き込む事をすっかり忘れて、一方向しかうまくいかないと試行錯誤してしまっていた。
これは、別のUSBシリアル変換モジュールを繋いでそちらのCOMポートでやり取りすることで、解決した。

なお、ISP6本と受信(PC側 USB-Serial変換モジュールTXに繋がる黄色い方)がかぶっているので、GND/5V以外のISPケーブル4本を、書込み時と実行時で接点4個のSWでON/OFF(接続/切断)する自作の冶具を間に噛ませてある(Arduinoから伸びるオレンジ、黄色、緑、青)。
a0034780_21064123.jpg

そして2つ目は、TeraTermの設定。ローカルエコーをOFFにしないとPC側から送信できないのだ。
出来ないというより、ローカルエコーしているから、本来受信文字列を表示すべきところが、送信文字列に消されてしまっていたらしい。

この2つ目はATtiny13へのBASCOM-AVRのプログラムにもよるため、大変わかりづらかった。

従って、TeraTermの設定はローカルエコー無しにし、プログラムは次のようになる。

'****************************************
' Copyright (c) 2016 k1segawa
' License : free
' Program : Serial Control
'****************************************
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 24
$swstack = 4
$framesize = 8

Config Portb.3 = Output
Set Portb.3

'Config Portb.4 = Output
'Config Portb.2 = Input
'Portb.2 = 1 'Pullup

'-------------------------------------
#if 0

Dim I As Integer
I = 0
Open "COMB.4:9600,8,N,1" For Output As #1 'soft serial PB4:Out
Do
Wait 1
Toggle Portb.3
Print #1 , "I=" ; I
Incr I
Loop

End
Close #1
' History
' [2016/09/23]
' PB4 Serial Output

'-------------------------------------
#else

Dim Tstr As String * 6
Dim Num As Word

'open channel for output
Open "COMB.4:9600,8,N,1" For Output As #1
Open "COMB.2:9600,8,N,1" For Input As #2

Do
Set Portb.3
Wait 1
Reset Portb.3
Print #1 , "text: "
Input #2 , Tstr
Print #1 , Tstr
Print #1 , "number: "
Input #2 , Num
Print #1 , Num
Loop

End
#endif

'Open COMB.x(Don't need Config Pin=I/O)
'local echo OFF(Must OFF)
'COM3 = Writer(Don't need disconnect)
'COM5 = TeraTerm(connect)

下の方のelse節のプログラムが動いており、TeraTermの画面には「test:」と表示され、Input待ちになる。そこで、TeraTerm画面上でそのままキーボードで文字列を打つのだが、それはローカルエコーOFFなので表示されない。そのままエンターキーを押すと、入力した文字列がATtiny13から送信→それを受信して「xxxx」と表示される。続けて「number:」という表示に対してさらに文字列をキー入力してエンターキーを押すと、やはり入力した文字列が表示される。こんな簡単な事が、今までできなかった。

COMポートの問題とシリアル入出力の特性を忘れていたため問題が長引いた。
これでマトリクスLEDの制御に戻れる。今もう1ピン空ける回路を考えているので、そうすれば2ピン空いて双方向にシリアル制御出来、データ送出のタイミングをコントロールできる。
[PR]
by k1segawa | 2016-12-20 20:07 | arduino, AVR | Comments(0)

最近の Java アプレット の 動かし方 (12/13)

(2017/8/2追記:Javaアプレットのサイト様がリニューアルし、HTML5になった)
いにしえの技術となってしまったJavaアプレットを動かしたいページがあって、ちょっと困ってしまっていた。
設定方法がオラクル・Microsoft・Firefoxともにわかりづらいのだ。

Javaをサポートするオラクル社では、Google Chrome がサポートしなくなって他のブラウザを使うよう、次のページに記載されている。

WebブラウザでJavaを有効にするにはどうすればよいですか。 - Oracle
a0034780_14170716.jpg
そもそもJava SE 8(とJDKもかな?)を入れてある事が前提。Javaといったらどれを入れていいか、まだ慣れない。最近はPCでJava使わないから入れてないしな~

上の手順通りFirefoxでプラグインを有効にする。
メニューの[][アドオン][Java(TM) Platform SE 8 U111][実行時に確認する]に設定。

さらに、PCの設定も行なう。コントロールパネルの表示方法が異なると見つけづらい場所にある。
[コントロールパネル]を開き、
表示方法が「カテゴリ」になっていたら、[プログラム](プログラムのアンインストールではない)の部分をクリックしてから[Java]アイコンをクリック。
表示方法が「大きい または 小さいアイコン」になっていたら、すぐに[Java]アイコンをクリック。
a0034780_14362877.jpg

Windows10からなのか、わかりづらいよね。
で、Javaの設定画面から、[セキュリティタブ][サイトリストの編集]を押す。
a0034780_14412842.jpg

そして[追加]ボタンを押し、わかりづらいけどURLエリアをダブルクリックして、編集中にして、見たいJavaアプレットのあるHPのドメイン名をテキスト入力する。
a0034780_14422614.jpg

こちらのサイト様は、
マンデルブロ集合の不思議な世界
で、昔に流行ったグラフィックで、今なら高速に描画できる。

正しいJavaのインストール、サポートブラウザへの設定、PCでのJavaの許可URL設定。これらを正しく設定しないと動かない。
セキュリティはこうやって高めるのか。参考になるな。

P.S.
サイト様がリニューアルし、HTML5になっていた。スクリプトなのでJavaアプレットより速度は低下している。

[PR]
by k1segawa | 2016-12-13 15:05 | Comments(0)

FSTN液晶モジュール(128x68/SPI) LCD組み立て(3) - びんぼうでいいの with LCD (12/11)

つづき。
a0034780_15421567.jpg


幅はこれくらい。
液晶のフィルムはまだはがさない。
a0034780_15382772.jpg

黄色と緑の基板同士を半田付け。今度は9ピン全部半田付けする。BL+が黄色の液晶の外側をぐるっと回って、緑の基板の8ピンの、一番外のBL+ピンにつながる。ブレッドボードに組み立てた様子を示す。
a0034780_15421567.jpg
4ピンの延長ケーブル2本は取り除いて直接つないだ。RESETスイッチを設け、押すと繋がる状態(間違ってるけど)。
a0034780_15431199.jpg

a0034780_1543232.jpg

スケッチをGraphicsTestにしてみる。
a0034780_15464262.jpg
こんな感じ。結構綺麗で、リアルタイムで動いている。
a0034780_15465288.jpg
a0034780_1547458.jpg

a0034780_15475182.jpg

動画はこんな感じ。
Youtube:びんぼうでいいの with LCD - OLED液晶 ST7567 by u8glib for Arduino
[PR]
by k1segawa | 2016-12-11 16:00 | arduino, AVR | Comments(0)

FSTN液晶モジュール(128x68/SPI) LCD組み立て(2) - びんぼうでいいの with LCD (12/11)

つづき。

緑の基板に移る。
ブレッドボードに2.54㎜の太い方の8ピンヘッドを刺し、基板外側の8ピンの穴に差して、基板が水平になるよう紙などはさんで高さを合わせてからマスキングテープ(百均)で固定する。
a0034780_13535139.jpg
固定した状態で半田付けし、100Ω抵抗(青)も半田付けした様子。
a0034780_1354270.jpg
黄色の基板と並べてみた。それぞれピンヘッダは半田付け済み。
a0034780_1355974.jpg
合体させるとフレキの修正が出来なくなるのでここで配線チェックする。
半田した面とピンヘッダやチップ部品の半田部分をテスターで導通しているかチェック。
FSTN液晶のHPに配線図のCAD図があるので、チップ部品の左右に回り込んでいる配線に注意してチェックする。私の場合はCAD図で言うと、左から3番目のフレキのピンが通電しなかったので、フレキの半田部分を軽く半田ごてで熱し直し、それでもダメなら3番目と4番目の間ぐらいに半田を少し追加し、融けて流れ込んだようなら吸い取り線でピンの間の半田を取り除いた。
a0034780_13551649.jpg
大丈夫そうなので組み立て予行練習。
a0034780_13552471.jpg
別角度。
a0034780_13553181.jpg

次は液晶本体がきちんと動くかをチェック。
arduino IDE 1.6.12で確認。
液晶はST7567なのでST7567でgoogle検索し、次のサイト様の手順で確認した。
Aitendo 「激安超簡単SPI 128x64 ST7567」液晶組立 & テスト - Sabotenboy's *sigh*
ライブラリu8glib自体はこちらのサイト様の下の方にArduino UNOでプログラム領域30%程度うんぬんのくだりから。
I2C 128×64 OLEDディスプレイをArduinoで使う - Program Resource
I2Cだと容量を圧迫するので、ピン数は多く必要だがSPIのライブラリを使うという話。
U8glib
「U8glib: * Gallery * Bintray download links: * U8glib for Arduino:」というリンクボタンで、 https://bintray.com/olikraus/u8glib/Arduino
から1.18.1をダウンロード。(japanino用の古い0018や1.05_r2ではコンパイルできなかった)

arduino ライブラリの置き場は自分は古い手順で設置。
C:\Users\ユーザ名\Documents\Arduino\なので、そこへlibrariesディレクトリを作り、zipファイルを解凍し全てコピー(U8glibディレクトリとreadme.txt)。

今なら[メニュー][スケッチ][ライブラリをインクルード][.ZIP形式のライブラリをインストール…]でそのまま可能かも。

マイコンの種類とクロック数などをjapanino用に次のように設定。
ボード:"Arduino Pro or Pro Mini"
プロセッサ:"ATmega168 (3.3V, 8MHz)"
シリアルポート:COM3(自己環境依存)
(大人の科学Japanino FAQ Q24. アルドゥイーノIDEを使っています。「Board」の選択を教えて)
(A24. Tools→Board→Arduino Pro or Pro Mini(3.3V,8MHz)w/ATmega168)
a0034780_14561959.jpg

最初は写真下の梱包の7ピンケーブルでつなぐ事も考えたが、細い9ピンヘッダに太くて刺さらない。何のために入っていたのかな~
写真上が、手持ちの間隔の狭い4ピンケーブル2個で、それでもいいかも。
a0034780_1533485.jpg

スケッチは、U8glibを入れると、[メニュー][スケッチの例][u8glib][HelloWorld]を開き、取扱説明書やAitendo 「激安超簡単SPI 128x64 ST7567」液晶組立 & テスト - Sabotenboy's *sigh*のサイト様の記載されている通りに、C12864で検索しコメントを外し、setup()にu8g.setContrast(10);を追加する事。
コンパイルはかなり長い。赤いログも不安をかき立てるが、最後にThank you.と出れば大丈夫。
マイコンへの書込みは、ardunioなのでUSBでPCと繋いでいるので特に何も変更も接続も変えずに行う事が出来る。AVRマイコンとは違うな~
液晶の配線は黄色い基板だけでとりあえずバックライトは繋がず、9ピンの内7ピンを繋ぐ。
取扱説明書の通り、
黄色い基板の印刷 ⇔ arduino
GND ⇔ GND
BL+ ⇔ 繋がない
3V3 ⇔ 3V3
DAT ⇔ MOSI(D11)
CLK ⇔ SCK(D13)
AD ⇔ A0(D9)
RST ⇔ RESET
CS ⇔ D10
a0034780_15201827.jpg
a0034780_15203780.jpg

a0034780_15205055.jpg
そしてマイコンに書き込んでから、取扱説明書に書いてあるようにUSBケーブルを抜いて差す(自分はUSBスイッチをOFF/ON)。RESETピンに繋がっている線を抜き差し(ずっと抜きっぱなしでも大丈夫みたい)すると、しばらくして画面が細かい砂嵐になった後、Hello World!と表示される。
a0034780_15243354.jpg
バックライトが無いので持ち上げておく。

緑の基板を半田付けしてからバックライトも動作確認しておく。
基板を2つ重ねてバックライトの両面テープをはがす。
a0034780_15305445.jpg
黄色の基板の内側の矩形
に合うよう、引っ張りながら液晶を貼り付ける。
a0034780_1532921.jpg
厚さや幅は単四電池と比べてこれくらい。
a0034780_15324658.jpg


続く。
[PR]
by k1segawa | 2016-12-11 13:59 | arduino, AVR | Comments(0)

FSTN液晶モジュール(128x68/SPI) LCD組み立て - びんぼうでいいの with LCD (12/10)

とりあえず、「びんぼうでいいの」は特にarduinoが欲しかったわけではないので、LCDを組み立てる。結果、意外と大変だった。

キットとしてはこの FSTN液晶モジュール(128x64/SPI) [M128X64SPI-12P-B] - aitendo 680円が入っているだけ。
ここと下記販売サイトのHPにしかない情報もあるので、+α取扱説明書の3つは確認必須だ。
びんぼうでいいの with LCD [U3RLCD12864S] - aitendo
a0034780_12000202.jpg
5V電源バックライト(青)の白い板(液晶本体は3.3V)、2.0mm→2.56mm(ブレッドボード)ピッチ変換基板(緑)、フレキシブルケーブル→2.0mmピッチ変換基板(黄)
a0034780_12001761.jpg
2.0mm/2.54mmピンヘッダ、100Ω抵抗×各1個、オスメス太7ピンケーブル、128x64 ST7567液晶、バックライト、変換基板(緑)
a0034780_12012999.jpg
取扱説明書
a0034780_12014205.jpg
FSTN液晶のHPに従って、2.0㎜の変換基板からチップ抵抗100Ωが1個中央寄りにある(黒いやつ。黄土色の4個はチップコンデンサ)ので、半田ごてで慎重に温めてピンセットでひっかいて取り外しその1個を転がして載せてある様子がこれ。跡が汚いけど間がつながっていない(テスタで確認)ので問題なし。
a0034780_12015733.jpg
黄色の変換基板の裏側とバックライトの裏側。BL+(5V)とGNDが引き回されている。中央に両面テープが付いていてBL+とGND用の線が伸びている。
a0034780_12020842.jpg
中央の両面テープをはがした様子。どこに貼るかは黄色の基板の内側の矩形に合わせて、線が半田付けする方に来るように位置取りする。裏表注意。
a0034780_12021884.jpg
黄色の基板にバックライトを貼り付け、液晶本体を仮にのせて100Ωの抵抗を間に挟んでBL+に5V、GNDを繋いで点灯させた様子。液晶本体はまだ何も配線していないので何も映っていない。
a0034780_12022491.jpg
ミノムシクリップで配線。明るい所。
a0034780_12563590.jpg
100Ωをブレッドボードの5Vに差し、もう一方をGNDに差している様子(線の色は無関係)。
a0034780_12571462.jpg
FSTN液晶のHPの図に、GNDが画面下の方の線、BL+が画面上の方の線に繋がっているように見えるので、黄色をGND、赤をBL+に半田付け。バックライトからの半田づけが弱く、断線しそう(安物あるある)なので逆S字に線を配置。緑の変換基板と半田付けしたら二度と動かせないから慎重に。バックライトの点灯確認もこの時点で行う。
a0034780_132817.jpg
念のため基板の反対側からも半田付け。
a0034780_1334569.jpg
バックライトの上下(画面では左右)にある細い両面テープまだはがしていない。
a0034780_1316097.jpg
液晶本体のフレキシブルケーブルの向きを確認する。ケーブルの透明な部分に△とXCLと書いてあるのでFSTN液晶のHPの図に従い、位置決めする。
a0034780_13175858.jpg
フレキシブルケーブルを仮止めするのに、紙で出来ていて熱で融けない、粘着性の低いマスキングテープを百均で購入して貼っておく。セロハンテープやビニールテープは熱で融けたり、粘着力は高いが時間とともに融けるので使ってもいいが貼ったままにしない事。今回は貼ったまま組み立てる。
a0034780_13204488.jpg
基板に仮止めした様子。フレキシブルケーブルに金属面が穴が開いて露出しているのでうまく合わせる。半田付けする前にフラックスを1回軽くひとはけ基板とフレキの間に塗っておく。
a0034780_13251162.jpg

同じ。
a0034780_13251676.jpg

半田付けした様子。
フレキがぐらつかないようにさらに金属クリップで挟み込んで固定して行なった。
上からバターでも塗るように適当に半田を全ピンに被せるように溶かし着ける。半田は熱で液体となりフレキと基板の間の面に沁み込んでいく。そして後から半田吸い取り線で余分な半田を取り去った。この時は12ピンあるうちの上から3ピン目が半田付けされていないことには気が付いていなかった。フラックスの茶色いしみはアルコールで拭くとよい。
a0034780_13451822.jpg

別角度から。
a0034780_1332079.jpg
同じ。
a0034780_13314725.jpg
まだバックライトの両面テープをはがさないで、フレキシブルケーブルを折り曲げて液晶を載せてみた。大体合ってそう。そのまま2.0㎜の細い方の9ピンヘッダを刺して半田付け。
a0034780_13505434.jpg
続く。
[PR]
by k1segawa | 2016-12-10 12:07 | arduino, AVR | Comments(0)

びんぼうでいいの with LCD (12/6)

噂のaitendoに行って来た。

結構駅から離れていて、なかなか見つからなかった。
ビルの3Fがメインで、1Fはセット販売が主。1Fはショールーム的なこじんまりとして綺麗にまとまっており、店の顔というべき物。3Fは1Fの左手ぐるっと回った所にあり、エレベータでしかいけないよくある貸しビル。
でも中は部品が胸の高さより低い棚に入っていて空間が生かされており50畳ぐらいで広々と感じる。そしてまだ綺麗に整頓されて沢山品物を置いてある。いかにも秋葉原という部品屋さんとは違い、はんだカフェが部品屋さんになった感じの明るさ・先進性がある。
そして激安品も新品の結構透明な袋に入っていて清潔感にあふれている。
スタッフは若い中国女性店員で、少しまだカタコトな感じだが、普通のMakerっぽい理知的な感じだ。

激安品や液晶の品ぞろえがちょっと他の店をダントツに抜いている。
100円以下の商品とか1000円台のグラフィック液晶とか、せっかく来たのだから必要ないのに買っておかないともったいないと思ってしまう。

ということでarduino互換機の「びんぼうでいいの」を小型LCD付き999円を買ってみた。
次の写真は8x8MatrixLEDが特価100円。秋月のが3.8㎜角の250円くらいで、これは3.2㎜角。3㎜LEDで出来ているのかな。
a0034780_21224646.jpg

「びんぼうでいいの」の内容物。液晶は128x64。
a0034780_21232965.jpg

本体と基板と部品。基板は表面実装部品がすでに半田付け済み。上の袋は16MHz水晶とピンソケット、スライドスイッチ、USBミニBコネクタ。
a0034780_212567.jpg

CPUはちゃんとATMEGA328P-PU。これだけで秋月で250円はする。
a0034780_21272519.jpg

液晶は680円のセット品。じゃあ本体分は999-680=319円って事!?基板だけで150円だった気がする・・・
a0034780_21283518.jpg

680円の中身その1。液晶用とフラットケーブル変換基板。
a0034780_21314050.jpg

その2。液晶本体と背面に置くバックライト(青)の白い板。オスメス7ピンケーブル。ピンヘッダと抵抗1本。液晶左下は後ではがす保護フイルムが浮いているだけ。
a0034780_21495667.jpg

最後に説明書の全景。SPI液晶なんだー。すごく丁寧でこれなら迷わず作れそう。
a0034780_21351845.jpg


さて組み立てが楽しみだな。UNOに近いのはこれが初めてだ~

P.S.
いざ作ろうと思って開いたら、部品が足りなかった。
うーんさすが。
12MHzクリスタルと2.1mDIP用ピンジャック、タクトスイッチ1個が不足。
同じようなサイト様もいらっしゃるようで、手持ちの部品で対処しているみたい。
初心者は説明が無くても部品不足でも自己解決前提の事。

[PR]
by k1segawa | 2016-12-06 21:37 | arduino, AVR | Comments(0)