Sim's blog

電子工作はじめてみました

Arduino日本語リファレンス

2008-11-27 23:21:21 | AVR
船田戦闘機さんが翻訳された「日本語リファレンス」が公開されています。これでArduino人口がいっぱい増えそうですね。

- 船田戦闘機さんの記事「Arduino日本語リファレンス
- シリコンハウス共立の記事「満員御礼!「Make @ Osaka -『Making Things Talk』発売記念レクチャー+トーク」

- 本家Arudino.cc

- Make: Japanの記事「Make日本語版 Vol.04記事「初めてのArduino」PDF公開
- Make: Japan 「Arduino archive
- 本家Make 「Arduino archive

- エレキジャックの連載記事「Arduinoを使おう
- PIC AVR工作室別館 Arduinoの館
- なんでも作っちゃう、かも。さんの記事「Arduino Duemilanoveで遊ぼう。
- 四谷工作研究所 Arduino アーカイブ


ところで、Arduino統合環境の言語の名前って何なんでしょうね?

78K0基板のUSB-JTAGが公開になってます

2008-11-27 22:45:13 | FPGA
なひたふさんが開発されたトラ技8月号78K0付録基板を使ったUSB-JTAGがダウンロードできるようになりました。

なひたふさんの記事
ダウンロードサイト「トラ技付録78K基板を使おう

ただし、フリー版はまだで、ET2008で配布していたMITOUJTAG1.5の体験版が必要になります。そのためダウンロードには体験版についていたシリアル番号が必要になります。

「(c) 裏面のJ3をはずしてVIOの端子に3.3V(例えばC2から)を供給する。(本当はダメ)」ということが書かれています。本当はダメって、どういうことなんでしょうね?私もAVRの書き込みに、この使い方をしているので気になるところです。

ET2008での講演資料も見れます。日程が合わなくて講演を聴けなかったのが残念でしたが、これで見ることができました。


78K0基板というと9月号のマルチテスター基板ですが、ET2008ではマルチテスター基板の改造についてもプレゼンがありました(「付属78K/USBマイコン基板を使った
マルチテスタの製作」)。入力範囲を変えたり、なんとLメータまで作っています。
講演資料は組み込みネットこちらからダウンロードできます。当日の写真も見れちゃいます。

Processing 1.0が正式リリース

2008-11-26 02:07:47 | その他
Processing 1.0がダウンロードできるようになっています。まだ未対応だと思いますが、今後Gainerも対応されると思われます(期待モード)。

Processingのサイト
マイコミジャーナルの記事「絵をプログラムする言語「Processing 1.0」が正式リリース

「みたいおう」を変換したら「見たい王」になってびっくり。

MAX II マイクロキットでZ80

2008-11-22 14:09:21 | FPGA
トラ技12月号ではPICマイコンをCPLDで作っています。昔なつかしいZ80をMMKに入れてみました。もちろんCPUから全部自分で作るわけではありません。回路規模が小さいので有名なfz80コアを使わせてもらいます。fz80コアは「FPGAでPC-8001を作る計画」で使われたCPUコアです。fz80の最新バージョンはこちらからダウンロードできます。

ブロック図です。

クロックはmmkの50MHzを16分周した3.125MHzにしました。fz80にはwait入力があるので分周しない実装もありです。
RAMはなしでROMだけです。LEDチカチカをする最低限のROMを組み合わせ回路で実装します。

合成結果の回路規模はLE数が1255 / 2210 (57%)でした。まだ余裕がありますね。
時間はどれを見ればいいのかあいまいですが、Timing Analyzerのsummaryを見るとClock Setup: 'clk'のところに7.90MHz ( period = 126.509ns )と書いてあります。metしていないような気もしますが、マルチサイクルパスなので動いているということなんでしょうね。

fz80をmmkに載せるための回路のRTLです。
//`default_nettype none
module main(
    output reg [7:0] led = 8'h0,
    input [3:0] button,
    input clk);

    wire reset = ~button[3];// リセット(active h)
    wire [15:0] adr;        // アドレス

    // クロック生成 (分周 50MHz / 8 / 2 = 3.125MHz)
    reg [2:0] ctr = 3'h0;   // 分周用クロック
    reg zclk = 1'b0;        // 分周されたクロック

    always @(posedge clk)
        ctr <= ctr + 1;

    always @(posedge clk)
        if(ctr == 3'h0) zclk <= ~zclk;

    // rom
    wire [7:0] romout;      // ROMからのデータ出力 8bit

    rom rom1(
        .adr(adr),          // I アドレス入力
        .out(romout));      // O データ出力

    // fz80
    wire mreq, iorq, rd, wr;
    wire [7:0] cpuin, cpuout;

    fz80 cpu(
        .data_in(cpuin),    // I データ入力 8bit
        .reset_in(reset),   // I リセット入力 active H
        .clk(zclk),         // I クロック入力
        .adr(adr),          // O アドレス出力
        .intreq(1'b0),      // I 割り込み入力 active H?
        .nmireq(1'b0),      // I NMI入力      active H?
        .busreq(1'b0),      // I busreq入力   active H?
        .start(),           // O ???
        .mreq(mreq),        // O メモリアクセス
        .iorq(iorq),        // O I/Oアクセス
        .rd(rd),            // O データバス入力リクエスト
        .wr(wr),            // O データバス出力リクエスト
        .data_out(cpuout),  // O 出力用データバス 8bit
        .busack_out(),      // O busack出力
        .intack_out(),      // O intack出力
        .mr(),              // O ???
        .waitreq(1'b0));    // I ???

    // データバス
    assign cpuin = mreq & rd ? romout : 8'h00;
    always @(posedge clk)
        if(iorq & wr) led <= ~cpuout;

endmodule


module rom(
    input [15:0] adr,
    output reg [7:0] out);

    always @(*)
        case(adr)
        16'h0000: out = 8'h3e; // ld a, 80
        16'h0001: out = 8'h80; //
        16'h0002: out = 8'h07; // rlca
        16'h0003: out = 8'hd3; // out 0, a
        16'h0004: out = 8'h00; //
        16'h0005: out = 8'h4f; // ld c, a
        16'h0006: out = 8'h06; // ld b, 2
        16'h0007: out = 8'h02; //
        16'h0008: out = 8'h21; // ld hl, 0
        16'h0009: out = 8'h00; //
        16'h000a: out = 8'h00; //
        16'h000b: out = 8'h23; // inc hl
        16'h000c: out = 8'h7c; // ld a, h
        16'h000d: out = 8'hb5; // or l
        16'h000e: out = 8'h20; // jr nz, 000b
        16'h000f: out = 8'hfb; //
        16'h0010: out = 8'h10; // djnz 0008
        16'h0011: out = 8'hf6; //
        16'h0012: out = 8'h79; // ld a, c
        16'h0013: out = 8'hc3; // jp 0002
        16'h0014: out = 8'h02; //
        16'h0015: out = 8'h00; //
        16'h0016: out = 8'h00; // nop
        16'h0017: out = 8'h00; // nop
        16'h0018: out = 8'h00; // nop
        16'h0019: out = 8'h00; // nop
        16'h001a: out = 8'h00; // nop
        16'h001b: out = 8'h00; // nop
        16'h001c: out = 8'h00; // nop
        16'h001d: out = 8'h00; // nop
        16'h001e: out = 8'h00; // nop
        16'h001f: out = 8'h00; // nop
        default:  out = 8'hxx; // 最適化用
        endcase

endmodule

16分周でなく32分周になっていたのでソースを載せなおしました。

MAKE: Japanにもpepperが紹介されています。

2008-11-20 23:49:27 | AVR
Make: Japanの「小型Gainer互換機pepperを作って遊んでみた」という記事でpepperを使っているmoyashiさんが紹介されています(ひとりぶろぐ「小型Gainer互換機pepperを作って遊んでみた」)。
ビデオではCDSを使った光センサーの実験と、SX-150につないで音を出しているところが見れます。

使いこなしてるって感じですね。エレキジャックの連載も更新されたので私もお勉強しなきゃ^^

ET2008に行ってきました

2008-11-20 00:12:27 | その他
パシフィコ横浜で11/19-21に開催されているembedded Technology 2008 (ET2008)に行ってきました。

FPGAボードやマイコンボードがいっぱいです。幸せな気分にひたってきました。

主にFPGA関連を見て回って、CQ出版の講演会を聞いてきました。


なひたふさんも出展されていました。準備されていなかったようで78K0ボードのUSB-JTAGのデモは見ることができませんでした(なひたふさんの記事「ET2008に出展します」、「トラ技78KマイコンでUSB-JTAGを作る」)。

CQ出版のブースでは、筆者によるミニ講演をやっていました(CQ出版のembedded Technology 2008」出展のお知らせ)。

「CPLDで200MHz動作のPICを作る」(トラ技12月号)
トラ技の記事は12F508でしたが、もっと大きい16系のPICも作られているようでした。

「Javaで遊ぼう!Sun SPOTの紹介と応用事例」(Interface 10月号)
Sun SPOTはARMと802.15の無線を積んだマイコンボードに色々なセンサーを組み込めるようになっています(Sun SPOTの販売ページ)。ソフトの開発はJavaで行えます。

Dukeがネギを振っています。

4台のSun SPOTと無線でネットワークを組んでオーケストラをしていました。

司会は(葵)ちゃんでした。

CQ出版のブースにあった謎の物体

エレキジャックNo.10の製作記事のようです(このあたり参照)。該当部分を押すと、その部分の名前をしゃべります(心臓とか肝臓><)。もう一つの蝶々も展示してありました。
蝶々の写真はhamayanさんのブログ「ET2008に行って来ましたのです。」に詳しく載っています。

CQ出版の販売コーナーでは、売り切れのはずのトラ技8月号がありました。MAX IIマイクロキットも売っていました。

NECエレクトロニクスのブースで知れば知るほどゼミナールのET2008特別講座が開催されていました。10分くらいのマイコンセミナーで使った教材はお持ち帰りできます(30分毎に開催、1回参加者5名)。
このコーナーでhamayanさんに遭遇しました。

いただいたマイコンボードです。

トラ技8月号付録の78K0基板と8x8LEDマトリックスを載せたマザーボードです。裏にCR2032が2個あって、電池駆動できます。いい感じのボードです。よいものをありがとうございました。これならマルツとかで売ってもいいくらいです。

セミナーの内容は、I/Oポートを直接操作してLEDのON/OFFを行う、デモプログラムをマイコンボードに書き込んででもを動かしてみる、の2つです。10分なので駆け足です。

電波新聞社のブースでは出版物のディスカウント販売が行われていました。出たばかりの電子工作マガジンのNo.2もおいてありました。

AtmelのブースではMega32とXMegaが展示されていました。

Microchipのブースはタッチパネルソリューションに力を入れていました。色々話を聞いていたらmicrochip directの20%ディスカウントクーポンをくれました(11/30期限)。

TIにはMSP430のF5シリーズのスタータキットが展示されていました。発売予定となっていました。

Cypress自体の展示はなかったのですが、PSoCを使ったタッチパネルソリューションの展示はありました。

アルファプロジェクトになぜかFPGAボードが置いてありました。話を聞いてみると、マイコンボードの拡張用として提供しているそうです。マイコンボードと同じサイズでスタックできます。

PALTEKのブースにFPGAとDSPを両方載せたボードがありました。どちらも信号処理が得意なので、ある意味ぶつかっているような気もしますが、初めて見る組み合わせでおもしろいと思いました。

NECエレのブースに、マイコンにGate Arrayを内蔵させるソリューションの開発にFPGAを使うというソリューションが展示されていました。

ETロボコンも初めて見ました。ロボットそのものは参加者全員共通で制御用ソフトの違いだけで競うというルールでした。

FPGA関係は、FPGA試作ボードの展示というよりは、FPGAを使ったソリューションの展示といった感じが強かったと思います。展示数がすごい数なのでとても全部見て回れません。


携帯の電池が切れそうだったのであまり写真を取れませんでした。一度書いたのですが、タイムアウトで消えてしまって書き直しました。しくしく

11/20 追記 マイコミジャーナルのレポート「embedded Technology 2008/組込み総合技術展」が過去最大規模で開幕

pepperで初processing

2008-11-19 22:10:26 | AVR
pepperも作ってみたの続きになります。

もあさんのエレキジャック連載の「Ginger/Pepper/Sugarでフィジカル・コンピューティング(6)」の回をそのままやってみました。

processingは連載(5)にあったように最新のものではなく、0135 BETAにしています。

ソースをダウンロードして動かそうとするとfont関連のエラーが出ていました。これはToolsメニューのCreate Fontで「CourierNewPSMT-24.vlw」を作ってやることで解決できました。

写真のケーブルは千石電商で買ったものです。元々はPC用のパーツみたいですが、オスメスになっているので、ブレッドボードを使うときに便利です。

秋月オシロ(PDS022S)値下げ

2008-11-18 22:43:08 | 電子工作
秋月のデジタルオシロスコープが値下げしています(39800円→35000円)。
ポータブル・カラーオシロスコープ PDS5022S(25M 2ch 100Msps STN)


出てすぐの頃に買って、ずいぶんお世話になっています。使いこなせているわけではないですけどw
見るのがKHzかせいぜいMHzの一桁の下の方くらいなので重宝しています。

AVRのゲーム機

2008-11-18 22:07:20 | AVR
Engadgetに「64ドット級LED携帯ゲーム機キット Meggy Jr RGB」という記事が出ていました。ATMega168で8x8LEDマトリックスを使ったゲーム機を作ったみたいです(Meggy Jr RGBのページ)。


AVRでゲーム機といえば、(有)ニコさんの「LED Game for AVR」がありました。


マイクロファンさんのAVR-GAME-2SAVR-DML-861も似た感じのゲーム機です。



ゲーム機というわけではありませんすが、すんさんの掲示板で千秋さんの書き込みで知ったAVGAもすごいです(AVGA)。AVRだけで、ここまでできちゃうんだー、みたいな感じです。

AVRでディスプレイ出力というとPIC AVR工作室さんです。

ゲーム機というとエレ玩 Konyaさんも忘れてはいけません。

Makeには「ハンドヘルド AVR ゲームプロジェクト」なんて記事もありました。

千秋さんのところにも「AVRマイコンでTVゲーム」という記事があります。
wsNAKさんの「#172 ATmega48/88/168 学習ボード/AVRライタ」もTVゲームにできるような基板になっています。千秋さんの名前があります。

みなさん、ゲーム好きですね。


gingerのbuild

2008-11-18 01:29:18 | AVR
もあさんが公開されているgingerのソースをATMega168用にビルドしたときのメモです。

Makefileがあるので、それを使ってビルドすればおしまいです。変更箇所はMCU = atmega88なのをatmega168に変えるくらいなのですが、今回は使いなれたAVRStudioのプロジェクトにしました。

ファイルを集めて登録します。

注意点はginger_pconfig.cをヘッダファイルの方に追加することです。

プロジェクトのオプションもMakefileに合わせて変更します。

赤線のところが変更したところです。

一発で問題なく動きました。めでたしめでたし。

プログラムのサイズは5550バイト、データ(SRAM)が784バイトです。

前回はUSBハブが駄目だったのですが、USB2.0増設用PCカードだと平気でした。

pepperも作ってみた

2008-11-17 00:55:34 | AVR
gingerを作ってみるの続きです。

MTM02でgingerのキットとpepperのキットを買ってきました。pepperの作り方はエレキジャックのもあさんの記事にあります。

この段階でのgingerは、もあさんのfirmwareを書き込んだMega88に載せ変えるとデバイスが認識されます。ところが通信ができませんでした。デバイスの認識までいっているので、ある程度は通信もできているはずです。問題の切り分けができていないので、pepperなら簡単につながるんじゃないかなと考えました。

pepperの基板です。

小さくてかわいいです。

一番の難関はコネクタを削るところです。

カッターで切りました。意外と柔らかめです。

でもって、完成。

抵抗とかは白丸無視で全部同じ方向につけてます。

ツェナーダイオードの向きだけ気をつけます。カソード(マークのついている方)を白丸のある方(USBコネクタ側)につけます。

もあさんの記事に従って動作確認します。
デバイスは認識しますが、あいかわらずターミナルからはコマンドが送れません。
USBハブ経由をやめてThinkPadに直接つないでみました。・・・あっさり動きました。うーむ、ありがちな罠にはまっていました。

gingerも、・・・あっさり動きました。

あはははは

USBハブが悪さをしていたみたいです。PC本体を壊すのが嫌なので、なるべくUSBハブ経由で使っていたので、直接挿すのはちょっぴり怖いです。

gingerに最初からついてきたMega168は、あいかわらずデバイスを認識しません。しくしく

というわけで、なんとか連載に追いつきました。と思ったらprocessingのインストールの回がありました。次回のprocessingでLEDの回の時にインストールすることにします。