Sim's blog

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

Arduinoブックマーク

2009-03-18 01:08:46 | AVR
Arduinoのブックマークを整理してみました。

Arduino本家
Arduino Tutorial
Make: JapanArduinoアーカイブ
Arduino日本語リファレンス
エレキジャックフィジカルコンピューティング
武蔵野電波のブレッドボーダーズかんたんマイコン「Arduino」の始め方
ん・ぱか工房さん、Arduinoメモ

建築発明工作ゼミ2008
四谷工作研究所
Arduino Diecimila を使う
PIC AVR工作室、別館 arduinoの館

なんでも作っちゃう、かも。さん、Arduinoカテゴリ
hamayanさん、ATmarquino Arduinoカテゴリ
masatoさん、Arduino clone on BreadBoard
SatE-Oさん
Chuckの電子工作さん

スイッチサイエンスさん
ストロベリー・リナックスさん
メカロボショップさん
アールティ、ロボットショップさん
マイクロファンさん、 Arduino
共立エレショップさん
amazon

Make: JapanにATmarquinoが紹介されています

2009-03-17 22:08:41 | AVR
Make: Japanの記事「Arduino互換ボードATmarquino」でhamayanさん設計のATmarquinoが紹介されています。すごいー。

私も1枚いただいて、遊ばせていただいております。
ATmarquinoファーストインプレッション
ATmarquinoでLEDチカチカ
ATMarquinoのATmega328P用のMakefile

色々な所にこだわりの設計があって、とても勉強になります。電源ピンの配置が三端子レギュレータに合わせてある、なんてあたりでニヤリとする方もおられるのではないでしょうか。

hamayanさんの記事「about ATmarquino Make:Japan blogに紹介されたよ記念

MTM03は5/23,24

2009-03-17 21:47:01 | その他
Make: Tokyo Meeting 03の開催日と会場が決まったそうです。Make: Japanの記事「Make: Tokyo Meeting 03開催日・会場決定!」によると、

開催日:2009年5月23日(土)、24日(日)
会場:デジタルハリウッド 八王子制作スタジオ(東京都八王子市松が谷1番地)
入場:無料
交通:多摩都市モノレール「松が谷駅」徒歩1分
   京王線・小田急線「多摩センター駅」徒歩10分
主催:株式会社オライリー・ジャパン 共催:多摩美術大学 情報デザイン学科

だそうです。MTMは0102を見に行ったので、今度も見に行きたいです。

5/26 追記
MTM03のキーワードで、この記事へ飛んでくる方が多いみたいなので、参加レポートへのリンクを貼っておきます。
MTM03に行ってきました
MTM03に行ってきました2日目(1)
MTM03に行ってきました2日目(2)
MTM03に行ってきました2日目(3)

Actel Fusion Starter Kit

2009-03-17 01:23:03 | FPGA
マイコミジャーナルの記事「Actel、プロトタイプ作成に向けたFusion組み込み開発キットを発表」を見て、Latticeも全然知らないFPGAメーカーだけど、そういえばActelも知らないことを思い出しました。「ライセンス料不要な「ARM Cortex-M1」や「Core8051」などのプロセッサをサポートしており」なんて書いてあります。

Fusion Starter Kitのページです。mouserで買えるみたいです(AFS-EVAL-KIT)。66265円?って、さすがに手が出ないです。

Actelのページに行くと、登録するとIGLOO nano starter kitが当たるキャンペーンをやっています。

mouserで検索してみると6473.5円です(AGLN-Z-NANO-KIT)。って、端数はなんなんでしょう。

IGLOOの製品ページです。低消費電力や小さなフットプリントのことが書かれています。

Cortex-M1を動かそうとすると、名前にnanoのないIGLOO Starter Kitにしないといけないみたいです。もしかすると、Cortex-M1-enabled IGLOO Starter Kitかもしれません。

当たるとは書いてあるけど、全員に当たるとは書いてないし、抽選か何かでしょうか。当たればいいなあ。今年にはいってから、抽選モノは、ことごとく外してる気がします。

「ヴイストン「Beauto Chaser」で学ぶプログラミング入門講座」

2009-03-17 01:06:36 | その他のマイコン
Robot Watchで「ヴイストン「Beauto Chaser」で学ぶプログラミング入門講座」という連載が始まっています。

秋月でキット売ってます。
通販コード K-02696 教材ロボットキット BeautoChaser
通販コード K-02729 教材ロボットキット BeautoChaser (ギヤボックス組み立て済)
ヴィストン株式会社のページ
BeautoChaserの製品ページ

倒立振子制御学習キット(通販コード K-02850)も同じメーカだったんですね。
マイコンはH8みたいです。

ATMarquinoのATmega328P用のMakefile

2009-03-17 00:26:00 | AVR
ATmarquinoでLEDチカチカの続きになります。

前回はMakefileの周波数だけ修正していました。一応、追加分を作りました。
arduinoをインストールしたフォルダの下のhardware/bootloaders/atmega168/にあるMakefileに追加します。
atmega328_20MHz: TARGET = atmega328_20MHz
atmega328_20MHz: MCU_TARGET = atmega328p
atmega328_20MHz: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600
atmega328_20MHz: AVR_FREQ = 20000000L 
atmega328_20MHz: LDSECTION  = --section-start=.text=0x7800
atmega328_20MHz: $(PROGRAM)_atmega328_20MHz.hex

atmega328_20MHz_isp: atmega328_20MHz
atmega328_20MHz_isp: TARGET = atmega328_20MHz
atmega328_20MHz_isp: MCU_TARGET = atmega328p
atmega328_20MHz_isp: HFUSE = DA
atmega328_20MHz_isp: LFUSE = FF
atmega328_20MHz_isp: EFUSE = 05
atmega328_20MHz_isp: isp

make atmega328_20MHzとすると、ATmegaBOOT_168_atmega328_20MHz.hexというファイルができます。次にmake atmega328_20MHz_ispとすると、書き込んでくれます。この際、MakefileのISPTOOL、ISPPORT、ISPSPEEDを自分の環境にあわせておきます。

arduino IDEでATmarquinoをメニューで選べるようにするために、hardware/boards.txtに以下を追加します。
##############################################################

atmaquino.name=ATmarquino w/ ATmega328 20MHz

atmaquino.upload.protocol=stk500
atmaquino.upload.maximum_size=30720
atmaquino.upload.speed=57600

atmaquino.bootloader.low_fuses=0xFF
atmaquino.bootloader.high_fuses=0xDA
atmaquino.bootloader.extended_fuses=0x05
atmaquino.bootloader.path=atmega168
atmaquino.bootloader.file=ATmegaBOOT_168_atmega328_20MHz.hex
atmaquino.bootloader.unlock_bits=0x3F
atmaquino.bootloader.lock_bits=0x0F

atmaquino.build.mcu=atmega328p
atmaquino.build.f_cpu=20000000L
atmaquino.build.core=arduino

メニューのTools→BoardでATmarquino w/ ATmega328 20MHzが選べるようになります。

ヒューズビットがDA FF 05って、そのままでいいのかな?

ロータリー式抵抗器

2009-03-16 22:57:58 | 電子工作
ラジオデパート1Fのマルカ電機で見かけて衝動買いしてしまいました(1680円)。型番はRSE-36となっています。
円盤部を回すことで、2つのワニ口クリップの間の抵抗値が5Ωから1MΩまで36種類切り替わります。Ωの絵の上の矢印をあわせます。

5, 10, 22, 33, 47, 56
100, 150, 220, 330, 560, 820
1k, 1.5k, 2.2k, 3.3k, 4.7k, 5.6k, 6.8k, 8.2k
10k, 15k, 22k, 33k, 47k, 56k, 68k, 82k
100k, 150k, 220k, 330k, 470k, 560k, 680k
1M

試作や実験に便利そうです。すぐに思いつくのはLEDの輝度調整です。

ふと思ったのですが、マイコンとかでデジタルに制御できる抵抗器って、作れたりするんでしょうか?

ATmarquinoでLEDチカチカ

2009-03-15 21:21:10 | AVR
ATmarquinoファーストインプレッション」の続きになります。hamayanさんにいただいたATmarquinoで遊んでみます。

とりあえず、ピンフレームをつけました。

左側がアナログ入力の6ピン、右側がデジタル出力の14ピンです。電流制限抵抗をつけない一番手間のかからない(手抜きな)実装法です。この先、電流制限抵抗をつけることもできます(なんて優柔不断な><)。せっかくのhamayanさんの教育的配慮もだいなしです。

CN2にも6ピンのヘッダをつけました。

左から、GND、VBUS、GND、V5R0、GND、VCCです。

次はブートローダです。
Arduino本家ダウンロードページから最新版Arduino014をダウンロードします。リリースノートを見ると3/7の出来立てのほやほやです。zipを解凍したフォルダのhardware/bootloaders/atmega168にブートローダのソース一式が入っています。
お正月にマイクロファンさんの安売りで買ったATMega328Pを20MHzで動作させるブートローダを作ることにします。ブートローダはAVRの種類と動作周波数の2種類に対応して作り直してやる必要があります。ATMega168の16MHzやATMega328Pの16MHzといった代表的な組み合わせについてはコンパイル済みのhexファイルが既に用意されているので、再コンパイルは不要です。

(1) Makefileの修正(周波数の修正)
テキストエディタを使って
atmega328: AVR_FREQ = 16000000L
という行を
atmega328: AVR_FREQ = 20000000L
にします。2の後の0は7個あります。

(2) 再コンパイル
コマンドプロンプトで
make clean
としてから
make atmega328
とします。
結果としてATmegaBOOT_168_atmega328.hexができます。make cleanをしないとhexファイルが更新されません。もっといっぱい修正して新しいターゲットを作る方がいいのですが、手を抜いています。

(3) ブートローダの書き込み
MakefileのISPPORT = usbを自分の書き込み器にあわせて修正します。私のはCOM3につながっているので、MakefileのISPPORT = COM3としました。
コマンドプロンプトで
make atmega328_isp
とすることでavrdudeが起動してブートローダを書き込んでくれます。

以上でブートローダの作成と書き込みが終了しました。
いつものでんし研さん作成の78K0基板を使った書き込み器を使いました。

考えてみたら、ATmarquinoにはISPコネクタがあるので、そちらを使えばよかったです。

いかにも、すんなりいったように書いていますが、いくつか失敗をしています。
- avrdudeにATMega328Pなんて知らないと怒られました。winavrを最新のものに変えました。ちなみにwinavrの最新版は3/13のものです。こちらも、できたてのほやほやです。
- AVRは動作周波数の1/4以下のクロックでプログラムしないといけません。ATmega328Pの出荷時の動作周波数は1MHzなので、250kbps以下にしないといけません。
- フューズビットを書き換えてAVRを外部クロック動作に切り替えると、外部クロックなしではISPできなくなってしまいます。

Arduino IDEに入っているサンプルプログラムを動かしてみました。サンプルの動かし方はArduinoのサイトのLearningに載っています。
メニューのFile→Sketchbook→Examples→Digitalの下にデジタルI/Oを使うサンプルが入っています。

BlinkがLEDチカチカです。デジタル出力の13ピン(一番右端)につながっているLEDをチカチカします。Duemilanoveだと、最初から13ピンに基板上のLEDつながっているので、そのままチカチカを見ることができます。BLINKはdelayというソフトウェアタイマーを使っています。次にあるBlinkWithoutDelayがdelay関数のかわりにmillisという関数を使って時間で制御しています。

写真はLoopというサンプルを実行している様子です。

Loopはいわゆるナイトライダーというやつで、光るLEDが左右します。オリジナルは6個のLEDを使うようになっていますが、10個に増やしています。Loopの最初の3行で、光る時間、どのピンを使うか、LEDの数(ピンの数)を変更できるようになっています。
int timer = 100;                   // The higher the number, the slower the timing.
int pins[] = { 2, 3, 4, 5, 6, 7 }; // an array of pin numbers
int num_pins = 6;                  // the number of pins (i.e. the length of the array)

10連のLEDはサトー電気さんで買ったものです。秋月のは3色(緑黄赤)ですが、全部赤です。ブレッドボードにそのまま刺さります。また、電流制限抵抗は11ピンの集合抵抗(470Ω)を使うことで楽をしています。写真では、10連LEDを2つ並べて20連にしていますが、左側は挿してあるだけです。ATmarquinoのデジタル出力は14本あるので、14連ナイトライダーも可能です。色も赤以外に緑黄青があります。結構便利なアイテムです。

ATmarquinoは圧電スピーカを基板上に実装できるようになっています。これは他にはないATmarquinoならではの機能です。サンプルのMelodyでATmarquinoが演奏するキラキラ星を聞くことができます。Melodyではデジタル出力の9ピンにスピーカがつながっていることを想定しているので、int speakerPin = 9;をint speakerPin = 3;に書き換えてやります。ATmarquinoの圧電スピーカはデジタル出力の3ピンにつながっています。

たしかDuemilanoveとBoarduino kitは去年のMTM02のときに買ったまま、ほったらかしにしてありました。Boarduinoなんて組み立てすらしてない始末です。ATmarquinoのおかげで、Arduinoデビューしてしまいました。いい機会を作ってくださってありがとうございます。

ATmarquinoファーストインプレッション

2009-03-14 01:57:58 | AVR
いつもお世話になっているhamayanさんから、ATmarquinoをいただきました。

hamayanさんのATmarquino関連記事のカテゴリ「ATmarquino Arduino

ATmarquinoです。

まだピンヘッダやAVRをつけていません。

裏側です。

hamayanさんのメッセージが書いてあります。

Arduino Duemilanoveと並べてみました。


いつも悩むことですが、端子はどうしましょう。ATmarquinoの端子は次のようにつながっています。

2x25のピンヘッダ(秋月C-00086)がちょうど刺さるようになっています。試しに置いてみました。


Arduino風にするなら、アナログ入力が6pin(秋月C-01670)、デジタル出力が14pin(秋月C-00653)のピンソケットをつけることになります。1列のピンソケットは並べてつけることができないので、間をあける必要があります。削るのもありかもしれませんが、試していないので、削っても平気かどうかは分かりません。

直接ブレッドボードに刺さるようにするには、ピンヘッダを実装します。

うーん、どうしようかな。

TC4001で38kHz発振

2009-03-11 22:32:23 | 電子工作
74HC02で38kHz発振(2)」の続きになります。

通りすがりさんのコメントで4001や他のICで試しては、というのがありました。サトー電気さんで何種類か買ってきました。その中でTC4001BPという東芝のC-MOS 2入力NORが比較的うまくいきました。

回路図です。



74HC02と4001って、同じような機能なのに、微妙にピン配置が違うんですね。

測定結果です。


38kHzで発振しています。もにょもにょもいません。電源電圧は3Vです。

電源電圧を変えてみました。
2.0~3.5V 38kHz
3.5~3.6V 74kHz (38×2)
3.6~4.3V 114kHz (38×3)
4.3~4.5V 152kHz (38×4)
4.5~5.3V 190kHz (38×5)
5.3~???V 228kHz (38×6 6Vまで測定)

電源電圧が5Vのときの出力の立ち上がりを拡大してみました。

うねうねしています。

R1を22MΩに変えてみました。
2.00~3.67V 38kHz
3.67~3.78V 76kHz
3.78~4.67V 114kHz
4.67~4.81V 152kHz
4.81~5.71V 190kHz
5.71~5.94V 228kHz
5.94~?.??V 264kHz (6Vまで測定)

22MΩの方が、より高い電圧まで安定して動いています。

たまたま測定したこのIC固有の性質なのかもしれませんが、1個しかないので他と較べるわけにもいきません。

一応、発振しないようになりましたが、なんか不安です。温度が変わったら?とか色々条件が変わると簡単に崩壊してしまいそうです。


22MΩのカーボン抵抗です。

赤赤青金です。サトー電気さんで買いました。

他に買ってきたのは、以下です。
TC74AC02P 2入力NOR×4
TC74HC00P 2入力NAND×4
TC74HC132P 2入力NAND×4 schmitt trigger入力
TC4093BP 2入力NAND×4 schmitt triger入力
TC7W02FU 2入力NOR×2 表面実装品
TC4001BPを超えるICはあるのでしょうか。

デジタル・デザイン・テクノロジ創刊号の付録はLattice FPGAボード

2009-03-11 01:42:26 | FPGA
今月号のトラ技にデジタル・デザイン・テクノロジ誌の創刊号の付録基板の写真が出ています。LatticeXP2というFPGAのボードです。ぷるぷるさんにこの記事のコメントで教えていただきました。以前、shirouさんのコメントでもLatticeとのことでしたが、いよいよ明らかになりました。

写真のチップには上段からLFXP2-5E、5TN144C、A838RH20と書かれています。FPGAの部屋さんに解説があります。なひたふさんの記事「LatticeのXP2をはじめます」に特徴がまとめられています。

メーカーのLatticeXP2のページから拾ってきたスペックです。
LUT 数                5
分散 RAM (Kbits)     10
EBR SRAM (Kbits)    166
EBR SRAM ブロック数   9
sysDSP ブロック数     3
18x18 乗算器数       12
PLL 数                2
最大ユーザI/O数     172

ホームページには5と書いてありますが、LUT数は5kです。LatticeXP2もXilinx Spartan3と同じで2LUTが1sliceのようです。2.5k slice搭載ということでしょうか。XC3S250Eが2448slice、4896LUTなので、ほぼ同規模といった感じです。ブロックRAMはXC3S250Eが216kbit(24kバイト)なので少し小さくなります。

ダウンロードケーブルの回路図を探してみました。
http://www.fpga.com.cn/lattice/lattice_cable.pdf (pdfです)
ここにもあるみたいです。

フラッシュ内蔵なのでコンフィグROMは不要です。写真からすると、たぶん3.3Vの水晶発振器が必要です。表面実装タイプとDIPタイプがどちらでも実装できるようなパターンになっています。3.3Vの水晶発振器はマルツで買えます(以前書いた「マルツに3.3V水晶発振器」)。

U2として14ピンのICが実装されていて、8pinのU3は未実装です。10pinのCN3はJTAGケーブルでしょうか。

初めてなので、とても楽しみです。

74HC02で38kHz発振(2)

2009-03-09 23:31:35 | 電子工作
74HC02で38kHz発振」の続きになります。

今朝の、のりたんさんのコメント「10番端子と13番端子のオシロスコープでの同時観測を希望します。」の実験をしてみました。

25us

赤い方が13pinで、発振していた矩形波です。黄色が10pinで、水晶発振子の正弦波が見えています。正弦波の方は38kHzですが、矩形波の方は1.3MHzくらいです。

拡大してみます(5us)。

このくらいでも、正弦波が結構なだらかになってきています。

さらに拡大です(1us)。

もにょもにょが見えてきました。

もいっちょ(250ns)

ぎざぎざになりました。黄色の方は、既に横線です。がたがたしてます。

これでどうだ(100ns)。


さらに行きます(25ns)。


1.3MHzって、30倍以上です。一見、平気そうに見えたのが実は拡大すると、こんなにぎざぎざでした。