ele-diary 趣味の電子工作ブログ

電子工作関係の記録です。

Onion Omegaを入手

f:id:pau2000:20151027235924j:plain

kickstarterで申し込んでいた、Onion Omegaが届きました! Arudinoよりは賢くて、Raspberry piよりちょっとお手軽っていう感じの、CPUボードです。 小さくていい感じかも。

軽く動かしてみたんですが、RaspberrypiだとSDカードを作るとこから始めないといけないのが、 さっくりOSが起動して、無線LAN認識するとこまではいけたのでお手軽でよいかと思います。

Ubuntuで設定はちょっとはまりポイントありましたが(^^;また後で書きます。

FPGAでコンビニチャイム

久々の更新です。 せっかくFPGAがプログラムできるようになったので、ありがちなネタではありますがチャイムを実装してみました。 ファミマチャイムです。

といっても、こちら github.com で公開されているものを、ありがたく使わせていただいてます。

FPGAボードは手持ちのSpartan-3 Evaluation kitDigilent Inc. - Digital Design Engineer's Source です。Spartan3なので、今となっては若干古めですが、趣味には十分です。 サンプルではALTERA用になっていますが、XILINXのISEでコンパイルするには若干の修正が必要でした。

一般的にはシステムクロックが違うと修正が面倒なのですが、たまたまシステムクロックは同じ50MHzでした。 オーディオ出力は、FPGAのピンを適当な電解コンデンサでDCカットしてそのままLINE入力に直結です。

ちゃんとフィルタを入れれば、もう少し綺麗に聞こえそうです。

f:id:pau2000:20150510143000j:plain

Xlinix書き込みケーブルのケースを3Dプリンタで作成

以前、FPGA書き込み用のケーブルを自作しました。techblog.hatenablog.jp これを、せっかくなのでケースに入れてみようかと。 完成品がこんな感じです。

f:id:pau2000:20150510142616j:plainf:id:pau2000:20150510142637j:plain 箱型の本体と、ふたをそれぞれ別々に作って、はめこんであります。

3Dデータの作成

3Dプリンタで一番手間がかかるのが、データの作成です。 無料のCADソフトもいろいろとありますが、ここではopenscadを使って作ってみました。 openscadは、物体を記述するスクリプト言語のようなもので、プログラムをしている感じに近いです。

たとえば今回作ったコードの一部はこんな感じです。これで、切り欠きつきの板ができます。

module wall_usbcn()
{
    translate([t/2,w/2,h/2])
    rotate([90,0,90])
    difference() {
        cube([w,h, t], center = true);
        translate([0,-1,0]) cube([10,8,2], center=true);
        }
}

そんなこんなで,次のような感じの物ができました。 f:id:pau2000:20150510171056p:plain

印刷

PRN3Dという3Dプリンタキットで印刷。これくらいのサイズのもので、だいたい1時間くらいでできました。 これはこれで、ノウハウがいろいろあるんですが(^^; また別の記事にでもしようかと思います。

arduino互換のadafruit proを試す

adafruit proというボードを買ってみました。arduino互換で、小さくて良さそうかなと。 そのままIDEが使えると思い込んでいたんですが、ちょっと面倒なところがあったので、メモ。 f:id:pau2000:20150505174718j:plain

IDEの設定

互換品なので、IDEがそのままで使えません!adafruit用の設定ファイルを、現行のIDEに追加する必要があります。一番簡単なのはadafruitが公開しているadafruit設定済みのIDEに入れ直してしまうこと。 自分の場合は、今までの環境を残しておきたかったのとバージョンが下がるのも嫌だったので、設定ファイルのみを追加することに。

https://learn.adafruit.com/introducing-pro-trinket/setting-up-arduino-ide

この辺にさらっと書いてありますが、要はダウンロードした設定ファイルを、

IDEのプログラムフォルダの中の設定ファイルに、 C:\Program Files (x86)\Arduino\hardware 手でマージしろ、ということです(--)

Windowsドライバのインストール

さらに、Windowsの場合はドライバのインストールが必要です。 どうも中の仕組み的に、USB-シリアルではなく、AVRでソフト的にUSBを実現しているようで、FTDIドライバのほかにドライバインストールが必要です。 このへんhttps://learn.adafruit.com/introducing-pro-trinket/downloadsにさらっと書いてありますが、はまりどころかもしれません。

というわけで やっとLチカにたどりつきました(^^;

f:id:pau2000:20150505174707j:plain

Xilinx書き込みケーブルを自作

XilinxFPGAの開発環境を個人で揃えようとすると、プログラマが結構高かったりします。 そこで自作することにしました。FTDIチップを使ったものだと、比較的安価に揃えることができます。

回路はこんな感じで、秋月のFTDI変換ボードに直結です。 本当は100ΩくらいのRを入れた方がいいはずですが、手元に無かったので(^^;ここではダイレクトに行きます。

f:id:pau2000:20150409002409p:plain

ソフトの方は、xc3sprogを使いました。FTDIチップをJTAGとして扱えるものはいろいろあるのですが、 環境としてubuntuで動くものが欲しかったので。 コンパイルは、libftdiを入れていけばすんなり make installでいけるようです。

はまったのはここから。ISEでふつうにbitファイルを生成します。MCSファイルではどうも私の環境ではうまくいきませんでした。 FPGAには書きこみできますが、どうしてもフラッシュメモリにはかけないのです。しかも、正常に書き込めてベリファイもできているようにみえて、 起動すると動かないという紛らわしいパターン。 なぜか、以下のようにbitファイルを直接書き込むとうまくいけました。FPGA直接も、フラッシュメモリへの書き込みも両方OKです。

sudo xc3sprog -v -c ftdi -p 1 ./test.bit

f:id:pau2000:20150409002439j:plain