きょうのかんぱぱ

デジモノが大好きなかんぱぱの日記です。

スイッチサイエンスさんでリフロー初体験

  • 投稿日:
  • by
  • Category:

スイッチサイエンスさんのオープンハウスに行ってきました。

そのときにリフロー体験をしてきました。クリームはんだを使うのは今回が初めてですが、うまくできるのでしょうか・・・。

作業場所はこんな感じ。チップ部品とホットプレートが並んでいます。

ssci_reflow0.jpg

今回リフローを行う基板は、マイコンとLEDと抵抗、コンデンサ、ボタン電池ホルダーを実装するようになっています。すべて表面実装の部品になります。

まず基板を固定する台に載せます。右側に見える紙がポイントです。

ssci_reflow1.jpg

紙を載せると、穴が開いていてちょうど銅はく面が見えるようになっています。

ssci_reflow2.jpg

ここでクリーム半田をへらでたっぷり塗ったあとに、へらを垂直にして銅はくの部分だけにクリーム半田がのるようにします。

ssci_reflow3.jpg

ここで紙をゆっくり剥がすと、銅はく面だけにクリーム半田がついた状態になっていることがわかります。

ssci_reflow4.jpg

ここにチップ部品をピンセットで載せていきます。位置決めを慎重に行い、位置が決まったらピンセットで上から少し押しておきます。

ssci_reflow5.jpg

いよいよホットプレートで加熱します。

ssci_reflow6.jpg

加熱するとクリーム半田が普通の半田の銀色にかわっていきます。

ssci_reflow7.jpg

見た目は問題ないようなのでボタン電池を取り付けたところ一発で動作しました。

ssci_reflow8.jpg

思ったよりは簡単にできましたが、これはあらかじめ準備が整っていたためで、個人で行う場合は型紙や固定台の作成が難関になると思います。

ちなみに、スイッチサイエンスさんではチップパーツの取り付けはこんな機械で行っていました。すごいですね。

ssci_reflow9.jpg

貴重な体験をさせていただいたスイッチサイエンスさんに感謝です。

VFDシールドを修理しました

  • 投稿日:
  • by
  • Category:

以前製作したVFDシールドを落っことしてしまいまして、VFD(蛍光表示管)が1つ割れてしまいました。

repair_vfd1.jpg

危険なので割れたVFDを取り外します。リード線を切断して取り外したのちに、はんだシュッ太郎でハンダを除去しました。

repair_vfd2.jpg

デジットさんにVFDを注文して到着しました。

repair_vfd3.jpg

さっそく取り付けます。こんな感じかな。

repair_vfd4.jpg

VFDシールドの修理完了です。無事点灯しました。

repair_vfd5.jpg

VFDのスペアを買っておいたのでまた割れても大丈夫かな。

RAPIROをpythonで動かしてみました

  • 投稿日:
  • by
  • Category:

RAPIROと遊ぶ時間がなかなか取れなかったのですが、少し遊んでみました。

先日RAPIROに取り付けたRaspberry Piにログインして、pythonでRAPIROを動かしてみました。

サンプルプログラムを参考にしてテストプログラムを作りました。単純にUARTにコマンドを投げるだけのシンプルなものです。

import sys

import serial
import os
import time
import datetime

com = serial.Serial('/dev/ttyAMA0', 57600, timeout = 10)

sys.stdout.write('write #M0\n')
com.write("#M0")
time.sleep(5)

sys.stdout.write('write #M1\n')
com.write("#M1")
time.sleep(5)

sys.stdout.write('write #M2\n')
com.write("#M2")
time.sleep(5)

sys.stdout.write('write #M7\n')
com.write("#M7")
time.sleep(5)

sys.stdout.write('write #M0\n')
com.write("#M0")

これを実行してみました。

$ sudo python rapiro_test.py
write #M0
write #M1
write #M2
Traceback (most recent call last):
File "rapiro_test.py", line 19, in
com.write("#M2")
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 485, in write
raise SerialException('write failed: %s' % (v,))
serial.serialutil.SerialException: write failed: [Errno 5] Input/output error
$

なぜかエラーがでます。
調べたところUARTはOSのコンソールになっているということがわかりました。

psコマンドで確認すると

$ ps ax | fgrep AMA
2039 ? Ss+ 0:00 /sbin/getty -L ttyAMA0 115200 vt100
2055 pts/0 S+ 0:00 fgrep --color=auto AMA

確かにgettyがttyAMA0を使っています。
とりあえずコンソールから切り離します。まずはcmdline.txtの修正。

$ sudo cp /boot/cmdline.txt /boot/cmdline_backup.txt
$ sudo vi /boot/cmdline.txt

これを

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

こうしました。

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

次にinittabの修正

$ sudo vi /etc/inittab

これを

#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

コメントアウトしました。

#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

rebootして確認

$ ps ax | fgrep AMA
2069 pts/0 S+ 0:00 fgrep --color=auto AMA

これで大丈夫。pythonで正常に動くようになりました。

rapiro_uart.jpg

RAPIROにカメラを取り付けました

  • 投稿日:
  • by
  • Category:

RAPIROにRaspberry Piのカメラモジュールを取り付けました。

頭の中に取り付けますが、力がかかる部分ではないので、とりあえず2本のネジだけで固定しています。

rapiro_camera.jpg

カメラレンズの穴と、カメラモジュール基板のネジ穴が一致するためにはフレキシブルケーブルを上にして取り付けます。このケーブルの片端はRaspberry PiのHDMIとLANコネクタの間にあるコネクタにとりつけます。Raspberry Piへの接続方法や設定方法、カメラ関連ソフトウェアのインストールなどはRaspberry PiのCameraページが参考になります。

早速、Raspberry Piにログインして、カメラで画像を撮ってみました。

コマンドは以下のようになります。

pi@raspberrypi ~ $ raspistill -w 640 -h 480 -o capture.jpeg

撮影したcapture.jpegをMacに転送して表示したところ・・・

capture.jpeg

あれれ、逆さまになってしまいました。カメラモジュールの取り付け方を間違えたのかなと一瞬思いましたが、ネジ穴の位置から考えるとあの取り付け方しかできません。

何らかの方法で上下を反転させれば良いはずなので、いろいろ調べたところ、それを行うためのパラメタを見つけました。

-rot Set image rotation (0-359)

このパラメタを180と指定すれば上下反転されるはずなので、以下のコマンドを入力しました。

pi@raspberrypi ~ $ raspistill -w 640 -h 480 -rot 180 -o capture1.jpeg

撮影したcapture1.jpegをMacに転送して表示したところ・・・

capture1.jpeg

今度は正常に表示できました。

別コマンドになりますが、もちろんビデオ撮影もできています。

単なるストリーミングという使い方もできますが、いずれは画像認識を試してみたいですね。(残念ながらこのあたりのノウハウはありませんので、これから勉強ですが・・・。)

あと、いろいろRAPIROをいじっていたらふと気がつきました。

rapiro_led.jpg

このUSBコネクタの横にある、縦のスリットは何なのかと思っていたのですが、実はここからRaspberry Piの基板にあるLEDが良く見えるのです。このためにスリットを用意しているのではないかなと。良く考えられていると感心しました。

RAPIROにmbedを載せてみました

  • 投稿日:
  • by
  • Category:

RAPIROが完成してRaspberry Piを載せてみました。

まずは、Raspberry Piの環境設定です。ボード単体で動かしてPythonのシリアルモジュールのインストールや無線LANドングルの設定など一通り済ませました。

rapiro_raspberry_pi.jpg

設定が終わったところで、RAPIROに取り付けます。さすが専用設計のためRaspberry Piがピッタリ載ります。

rapiro_raspberry_pi2.jpg

あとは、Raspberry PiにログインしてPythonで書いたサンプルプログラムを実行するとコマンドに応じた動きをすることができました。カメラモジュールも購入していますが、それはまた後ほど。

少し動かしてみましたが、想像以上にバッテリーが無くなります。デバックにはACアダプタが必須と思われます。電源電圧がだんだん落ちてきてRAPIROが変な動きになってしまいました。

rapiro_raspberry_pi3.jpg

やむなくエネループを充電している間に、Raspberry Piの変わりにmbedをつないでみました。

実はRAPIROの電源をいれたあとに、Raspberry PiのLinux OSの起動に少し時間がかかるのが気になったのです。これがmbedだと電源ON即動くのではと考えたのです。

Raspberry PiとRAPIROのサーボモータを制御しているArduinoとの間の通信はシリアルですので、他のマイコンでも制御可能です。通信速度は57600bpsのようです。

mbedをブレッドボードに取り付けてワイヤーを引き出し、RAPIROのシリアルコネクターに接続しました。接続図は以下の通りです。

RAPIROシリアル --- mbed
---------------------------
1 5V ------- p2 VIN
2
3 GND ------ p1 GND
4 TXD ------ p28 tx
5 RXD ------ p27 rx
6 (BLACK)
---------------------------

実際に接続した写真です。接続は4本しかありません。
rapiro_mbed1.jpg

mbedのオンラインコンパイラでさくっとプログラムを書きました。

RAPIROの電源を入れると無事動き始めました。

rapiro_medb2.jpg

動いている様子をYouTubeにアップしておきました。

今回は単純なコマンドをRAPIROに送ることを試しましたが、Bluetoothでリモコン制御にしたり、様々なセンサーを使った制御などmbedが得意とする分野では手軽に使えるのではないかと思います。

RAPIROを組み立てました

  • 投稿日:
  • by
  • Category:

Kickstarterで購入していたRAPIROが到着しました。2月からはスイッチサイエンスさんで一般販売されるようです。

到着した箱はこんな感じです。シンプルです。

rapiro1.jpg

封印シールがRAPIROになっています。

rapiro2.jpg

箱を空けると部品がでてきました。部品は破損しないようにプラスチックの枠にはめられています。

rapiro3.jpg

rapiro4.jpg

細かい部品はビニール袋に入っています。

rapiro5.jpg

Arduino互換のサーボモーターの制御基板はこんな感じです。

rapiro6.jpg

こちらは顔のLED基板でしょうか。

rapiro7.jpg

一通りの部品を確認したところで、組み立て開始です。

まずはサーボモーターに目印のシールをはります。これをやっておかないとどのケーブルがどのサーボモーターなのか分からなくなってしまいます。サーボモーターは大6個、小6個の合計12個です。

rapiro8.jpg

1個1個貼っていきます。

rapiro9.jpg

すべてのモーターにシール張りが完了しました。

rapiro10.jpg

次に電池ボックスを組み立てます。

rapiro12.jpg

エネループ単3が5本ですので、6Vの電源になります。

次に電池ボックスとサーボモーターを制御基板に取り付けます。こんな数のモーターを同時に制御するのは初めてです。

rapiro15.jpg

ここで電源を入れてサーボモーターを初期値にします。

サーボモーターが一斉に動きます。その様子をYouTubeにアップしておきました。

あとは組み立てマニュアルに従って組み立てていきます。この様子はVineでお楽しみください。

組み立て自体は難しいところはありません。組み立てマニュアルに詳細な写真が載っていますので、その通り行えば大丈夫です。ただしタッピングビスなので締め過ぎ無いように注意してください。

組み立てが完了したら動かします。

まずはArduino IDEを使って制御基板にスケッチを書き込みます。この基板はArduino Unoとして認識できます。私のMacBookAirではFTDIドライバをインストールして認識することができました。

サーボモーターの調整方法についても組み立てマニュアルにあるのでそちらを参考にしてください。

まだ完全には調整できていないのですが、とりあえず動かしてみました。Arduino IDEのシリアルモニタの画面からコマンドを入力します。私の場合は57600bpsで行いました。サンプルとして、#M0, #M1.....,#M8などのコマンドが準備されていてそれぞれプログラムされた動きをしてくれます。

まだこの状態ですと、RAPIROのサーボモーターをコマンド文字列で制御することしかできません。頭脳になるRaspberry Piを載せてプログラムすることでもっと複雑な動作やネットワークにつないだりということができるようになります。こちらは今後試していきます。

以前、mbedでも同様な仕組みでm3piというライントレーサーロボットを動かしたことがありますので、Raspberry Pi以外のマイコンを載せるのも面白いかなと思います。

トラ技付録のLPC810実験基板で遊んでみた

  • 投稿日:
  • by
  • Category:

2014年2月号のトランジスタ技術の付録はNXP LPC810マイコンと実験用プリント基板とCD-ROMです。
すでにLPC810は秋月で何個か購入して動かしたこともあるのですが、本誌にいろんな応用例が載っているようなので購入しました。
付録として実験用プリント基板がついてきましたので、手持ちの部品で可能な限り実装してみました。
LPC810マイコンの書き込みは、LPCXpresso LPC1768のLPC-Linkを使いました。(LPC-Linkにピンヘッダを取り付け済み)
取り急ぎLPCXpressoのサンプルプログラムのblinkをベースに、実験用基板でLEDが接続されているポートに書き換えてコンパイル後にLPC-Link経由でLPC810に書き込み、LEDが点滅することを確認しました。
toragi_lpc810_0.jpg

次にEEPROMの書き込み、読み出しです。こちらも問題ありません。
toragi_lpc810_1.jpg

次に温度センサーと大気圧センサーですが、こちらは手持ちの秋月のモジュールを使いました。
でも、実験用基板のピン配置はマルツのモジュール用なので、そのまま取り付けることはできません。
そのためセンサーモジュール取り付け用のICソケットからワイヤーを引き出してブレッドボード上のセンサーモジュールに接続しました。
toragi_lpc810_2.jpg

問題なく動きますが、あまりかっこ良くありません。
マルツのセンサーモジュールを持っていないのであれば、ICソケットは取り付けずに実験用基板に引き出されているI2Cの端子を使うのが良さそうです。
もっともこのぐらいの規模であればブレッドボードで済んでしまうので、あまりこの基板のメリットは見当たりません。
しいて言えばI2C LCDがそのままハンダ付けできる点ぐらいでしょう。
でも初心者のかたには役に立つツールになるのではと思います。
来月号はLPC-Link2のようなものが付録になるようですが、LPC-Link2も持っていますので・・・。

Super AKI-80でLチカをしてみました

  • 投稿日:
  • by
  • Category:

突然ですが、Super AKI-80を使ってLチカをしてみました。
昔実際に作っていたZ-80系の古い本「つくりながら学ぶマイコン設計トレーニング」(CQ出版社)を入手したこともあり、本物のZ-80を動かしたくなってしまいました。

aki_80_eprom.jpg

秋月電子のロジアナZEROPLUSを使ってみました

  • 投稿日:
  • by
  • Category:

消費税があがるらしいので、秋月電子で売っているロジアナZEROPLUSを買ってきました。

早速この前作成した空中配線LEDマトリクス表示回路に接続してみました。

zeroplus_1.jpg

初めてロジアナを使いましたが、PCで動くので操作性は良いですね。適当にいじっていたら計測できます。

LEDマトリクスの動作タイミングも良く分かりますね。

zeroplus_2.jpg

どうせならプロトコルも見たいなと先日購入した8PDIP ARM LPC810気圧センサーLPS331APを接続し、LPCXpressoでI2C通信のプログラムを適当に書いてその様子を見てみました。

ロジアナでI2Cの設定をして見てみるとI2Cのプロトコルが表示されました。

zeroplus_3.jpg

この写真はLPS331APとの最初の通信を解析したところです。

0x5CのデバイスLPS331APに対して、WHO_AM_I(0x0F)のコマンドを送ると応答として0xBBが返ってきているのが分かります。

別の表示方法もできます。

zeroplus_4.jpg

いやあ実に素晴らしいです。もっと早く買っておけば良かったです。

作りながら学ぶMC68000本を購入しました

  • 投稿日:
  • by
  • Category:

古本屋でこんな本を見つけたので思わず購入しました。

トランジスタ技術スペシャル No.2 作りながら学ぶMC68000

mc68k_book.jpg

この本はトラ技で連載されていた記事をまとめたものですが、実際にこのマイコンを作ってCP/M 68Kまで動かしました。

でも、実家で保管していたら捨てられちゃったみたいで相当ショックを受けました。

ラッピングで凄い配線をしていたのを思いだします。

68000のハンドアセンブルはかなりめんどくさかったです。

デジカメも無かった時代なのでどこかに写真は残っているかなぁ。