コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

P板.com に製造発注していたかなでのプリント基板試作が届いた。
dsc00429.jpgdsc00430.jpg

半田面の絵は銅箔なんだけれども、銅があまり小さな点となると製造途中で剥がれるおそれがあります、と怒られた。でもまあ、失敗したらしたでよいからとそのまま発注。こともなく完成した次第。
こういう基板製造を頼むのは始めてだったので、色々と失敗しているあたり。ホールサイズを間違って0.8欲しいところまで0.5にしてしまったり。うむむ、いかんな。
一番びっくりしたのが出力ポートのCN4とCN5の出力が逆だったこと。これは、ユニバーサル基板の試作品の方が回路図と逆だった模様。うひぃ。ファームウェアを書き換えて、信号を入れ替え。
「運用で対策」って素晴らしい言葉だよね。

dsc00453.jpg

特にエラーらしいエラーもなくさっくり動作。
まあ、えらく簡単な作りだからな。

こいつをこねくり回して、また色々修正していく予定。


hatena bookmark

「かなで」のユニバーサル基板による試作も完成し動作させることができたので、今度はプリント基板を作ろうと作業中。
P板.com を利用してみようということで、最初は CADRAS X で作業をしていた。如何にもCADといった感じの操作形態でお世辞にもわかりやすくはないのだけれども、チュートリアルが揃っているので一通りなぞれば後半はさくさく使えるようになっていた感じ。使い慣れると結構便利で良い感じなんだけれどもCADRAS XはP板.com 専用といった風情でガーバーの読み書きができないというあたりに引っかかったため中断。
んじゃ他はと見回して今回はK2CADを利用することにした。

で、K2CADのお話なんだけれども、これの問題点はドキュメントがリファレンスしかなくてチュートリアルがないといったところに尽きるかと。そのリファレンスも全機能が書いていないし。
立ち上げてからどういった手順をふめば回路図がかけるのかが最初はさっぱりわからなくて、それで丸一日は潰れてしまう様な感じ。でも、がんばって一枚作り上げるというか一通り最後までできる様になってみると(使いこなせるようになると)、実は悪いツールじゃないことがわかってくると思う。(同時にどこが弱いかも見えるけれども)
個人的にはラッツネットの表示が一応できるあたりがありがたい。これがあると凡ミスが減ります(^^;

以下はわかりにくかった点をメモしておいたもの
Read the rest of this entry »


hatena bookmark

というわけで、もそもそと作っていたMIDI経由コントロール基板に「かなで」という名前が付いた(というか決まった)ので電子工作記事としても公開していきます。
kanade_prot_board01.jpg

ArduinoやGainerみたいに、ある程度できあがっていてすぐに外部機器をコントロールできる基板です。
丁度MIDISenseとは逆の機能といった感じになりますな。
どうしても敷居が高いプログラミング部分を敢えて無くし、MIDIによるシーケンスでポートのON/OFFをコントロールします。MIDIシーケンサがあれば即座にコントロールできますし、音楽と同期させることができます。その代わり出力のみです。

本当は手作りMIDI音源とかやれるんじゃないかなあと思って構想していたのだけれども、フィジカルコンピューティングっぽい方向に傾倒してしまいましたとさ。

「かなで」のホームページ作りました。
https://www.fumi2kick.com/kanade/
成果はかなでページに、コミュニティはGoogle Groupの方に、そしてここはだらだらと製作記でもと考えております。


hatena bookmark

PSoC MiniProg を持っている身としては、PSoC FirstTouch Kit があまり面白くないなーと前回書いたわけですが・・・。

dsc00420.jpg
逆に考えるんだ。この FirstTouch Kit プログラマが CY8C24894(USBドライバ内蔵PSoC) のEvalKit だと考えるんだ。

ぐぐっていて見つけたのが FirstTouch Kit プログラマにはISPパッドが出ていると言う話。
dsc00421.jpg
ここね。

dsc00422.jpg
ここにプログラム用のピンヘッダを取り付け。

dsc00425.jpg
自作ファームが書き込めるというわけ。まあ、これくらい潰しても惜しい物でもなし。
ちなみに基板上のLEDはパターンをおっかけたら Port7-0 だとわかった。

んではさっそくサンプルコードを書いてみよう。
Cypress にある ApplicationNote 2298 のUSBサンプルコードから、HIDキーボードの Example2 を多分に参照。新規プロジェクトからHIDキーボードのテンプレートを使用してサクっと作成。

プロジェクトファイル: usb_key_sample1.zip

dsc00426.jpg
接続すると USB の HIDキーボードとして認識された。

今回作成したコードは、”babel ” の6文字を繰り返しひたすら入力するキーボード。(それはキーボードなのか?)
babel-1.jpg
仕事で行き詰まっている仲間のマシンにぷすっと挿すとほがらかな空気が生まれるかもしれません。生まれないかもしれません。

ちなみにストロベリーリナックスの CY8C24894 基板、1つ買ってあるんだよなあ。いつか遊ぼうと思っていたのだけれども、こんなのが先になってしまったあたり。


hatena bookmark

dsc06288.JPG

最近流行のUSBタイプ Eval KIT。
MiniProgの代わりに使えるのかな?と思って秋月で買ってきてみたのだけれども

……
………
できないじゃん。
CY8C21434しか認識しないらしい。(ちょっと調べれば見つけられたのにね)
PSoC programmer の Firm UPdate は FirstTouch を繋ぐと Enabled になってしまい、未来的にアップデートさせる気ナッシング。
あくまで添付の評価ボード専用ということらしい。

そのへん割り切った上で購入されたし。あまりお勧めしない。
ちなみに、今MiniProgは絶賛品切れ中で秋月はおろかCypressのOnlineShopでも手に入らなかったりする。(Cypressでは日常茶飯事だぜ)
$98 のブレッドボードが付いたEvalBoardとかならMiniProg付きで在庫があるけどね。個人的には割とお勧め。
取り合えず、今日本国内で MiniProg を小売りで扱っている店が無いことになるのかな?チップワンストップにはあるっぽいけど、あそこは基本個人客をとらないから。

つーか、この PSoC FirstTouch を買ってユーザー登録すると DIP の CY8C29466 と CY8C27443 が2本ずつもらえるキャンペーンをやっているのだけれども「次はプレゼントのチップで独自の設計を楽しもう。」という煽りはどうよ。FirstTouchでプログラミングできるのなら問題ないけれども。


hatena bookmark

昨年まではPSoCもアセンブラで組んで遊んでいたのだけれども、昨年末だったかにPSoCのCコンパイラライセンスを秋月電子で買って以来ざくざくとC言語でファームを作成するようになっていった。16000円だったなり。
そのおかげでPSoC工作が一層楽しくなり、是非ともPSoCをオススメして行きたい!と日々思うのだけれども、Cコンパイラの値段がちと気がかりでお勧めし辛く感じていた今日この頃。
こないだ、CQ出版から出た数少ないPSoC解説本「PSoCマイコン・トレーニング・キット」が、解説本・Miniプログラマ・EvalBoard・Cコンパイラライセンス込み込みで11,550円(税込)なのでこれをお勧めするのが筋かなあと思ってCypressを見に行ったら状況が変わっていた。

このあたりの下の方参照。
これまでPSoCのコアであるM8CのコンパイラはImageCraftの物で、秋月電子で売られていたのもこのコンパイラのライセンスだったのだけれども、2008年4月を持ってHI-TECHのコンパイラがCypressの推奨標準コンパイラとなったらしい。知らんかった。
で、ここからなのだけれどもHI-TECHのCコンパイラはお値段 $1495 といつもの感じのがっくり価格なのだけれども、最適化がなされない Lite Ver. ってのがあって、これは制限無しのフリー利用が可能なのだそうですよ。
つまり、PSoCでマイコン工作をするにあたり、有料なのはプログラマだけで良く、開発環境もCコンパイラも無料で利用できるようになっていたというわけなのです!!
プログラマも MiniProg か PSoC FirstTouch で言い訳だから投資は3〜4000円程度。金銭的敷居はぐーーーーーんと低くなり、まったく問題無くなってしまったというわけですな。

さっそく HI-TECH の Cコンパイラ Lite. 版をインストールして試してみたら、確かに ImageCraft の奴よりバイナリが大きくなるけど 5%くらい?な感じで多少という風情。これならがしがし使えると思いましたよ。

これで PSoC をガンガン勧められるというもんだ。


hatena bookmark

愚民養成ギプス。
kome_gumin01.jpg
三軸加速度センサーをスイッチにして、こいつを振ると音が鳴るという仕組み。
もちろん、振る方向で三種類の音を鳴らし分けることができるぞ。ということなんだけれども、実際は振動が混ざりまくりで要らぬ音声が暴発気味に出てしまうのが難点。
コイツを作りたくて作業を始めたところがあるので、一応の完成系。

gumin01.png
ぷちぷちの時より基板を大きめにとってあるので、C1815をエミッタフォロアにして電流増幅してみた。小型スピーカーを直に繋げる事が一応できるっぽ。

kome_gumin02.jpg
加速度センサーの入力でPSoCの足が全部埋まっているあたり。こうなると引き回せる足が限られるので、ある程度ユーザーモジュールを配置して設計した後で回路が決定するあたり。

ソースコード: gumin02.zip


hatena bookmark

∞ぷちぷち、ぷち萌え「ヤンデレ編」
kome_putimoe01.jpg
∞ぷちぷちの押しスイッチと内部スピーカーを利用、それ以外を外部のPSoCとROMで構成している。
とにかく小さくまとめるのが目的なので 8pin の CY8C27143 を利用。音声データをまとめたら 44KB ほどになってしまったので 1Mbit 容量のATMEL 24C1024 を利用。1Mだとアドレスが 9bit になるんだけれども、そこはI2Cアドレスを1bit割り当てるらしい。なので感覚的には512kbit(64KB)が2バンクある感じ。今回必要なのは44KBなので、片方のバンクのみで収まる。
∞ぷちぷちのボタン電池3VだとシリアルROMが駆動しないので、電源は外から供給。ちょっと残念な点。(最近低電圧版のシリアルROMが秋月で売られているのでそれを利用するといけるのかも)

mikuputi.png
回路図はこんな。
kome_putimoe02.jpg
ハンダが汚いとなぜか評判なのだけれども、フラックスが目立つから?
まあ、結構試行錯誤で作った試験基板的な作品なのと、このあたりから全て無鉛ハンダに切り替えたあたりも理由かと。無鉛ハンダだとユニバーサル基板をハンダブリッジさせようと思ってもなかなかできないのよね。というか、避けたほうが無難。

block1.png
内部ブロックは簡単に書くとこんな。
カウンターで 8khz の割り込みを発生させて、そのたびにDACに 1byte 渡すことで発声。バッファに32byteとってあって、I2C受信バッファから32byteをコピーし、次の32byteをくれとI2Cに要求。ROMからの読み出しは 8khz×32byte の間で十分間合うのでタイミングはシビアでもない。

ソースコード: putiputi.zip


hatena bookmark

まずはI2CシリアルROMにデータを書き込む必要がある。
そのためにPSoCマイコンとPCをシリアルで繋ぎ、PCから流し込んだデータをPSoCのI2C経由でシリアルEEPROMに書き込むという作業を行う。

今回書き込むのは音声データなのだけれども、8bit 8khz モノラルと規定しておく。
8khzのwav形式データを作成して、RIFFフォーマットからDATAチャンクのみを取り出す。つまり音声データだけ取り出して、その他情報は捨てたいわけなのです。
そのために適当にDATAチャンクを取り出す使い捨てコードを作成。

Cのソースコード: wavsprit.c

これを使ったりしてあらかじめデータを用意しておく。

i2crom_writer.png
回路図はこんな感じ。
PCからの一方通行でデータを流し込めば良いので RX だけ接続してある。
LCDモジュールは別段必要でもないのだけれども、書き込んだデータ量を確認するためにアドレスを表示させている。
シリアルはゆっくり目の 4800bps で接続、これ以上早くするとEEPROM書き込みが間に合わなくてデータ欠落が起こるみたい。

ソースコード: i2crom_writer.zip

先日秋月でPSoCのCコンパイラを購入したので、今回からC言語で作成している。ご了承あれ。
アセンブラも楽しいけど、短時間でぱぱっと組みたいときC言語が使えるとやっぱ便利だわ。


hatena bookmark

マイコン電子工作の Hello, World! と言えばLEDぴかぴか。それにセンサーが扱えるようになると色々な事ができるようになるのだけれども、音を出すというのは案外面倒だったりもする。
音を自在に出すことができる様になればいろんなおもちゃが作れるのではないかと思うのです。
ボイスレコーダーキットを利用するのも良いけれども、ここはマイコンで手作りしてみましょ。

実は長らく、音の出るおもちゃを作るにはどうしたら良いのかと考えていたのだけれども、たどり着いたのが PSoC とシリアルROMの組み合わせ。これがそこそこコンパクトでそれなりな長さの音声が出力できる組み合わせかと。
PSoCを使うのは使い慣れているというのと、8bitDACユーザーモジュールを持っているから。
シリアルROMは秋月で160円の256KB I2C シリアルROMを使うと、ビットレート8kHzで 4Sec ほどの音声がならせる。一言二言には十分な長さ。

というわけで以下の制作物の回路図とソースコードを次記事にて置いとくのです。