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

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

MPLAB X IDEでconfiguration bitの設定をする方法

PIC16F819で久々に開発してて、Configuration bitの設定を忘れてしまいがちなので備忘録。

Windowメニューから、PIC Memory Views → Configuration bitsと降りていくと、GUI設定画面が出てきます。 ここで、適宜設定すると、ソースコードに書き出すことができます。

f:id:pau2000:20161223165038j:plain

それにしても古いバージョンのIDEや、古いコンパイラではすべて流儀が違うようで、検索でヒットする情報がかなり使えないことが多いです。 勘弁してほしい。。

Onion Omega を、Ubuntu からアクセス

Onion Omegaは、超小型のCPUボードで、それなりに強力なCPUが乗っているのと、Wifiが標準ということで遊びがいがあります。 USB接続すると、USB serial に見えるようで、ログインしてターミナルに入れます。

ただ、デフォルト状態のUbuntu Linux(15.04)に直結してログインしようとすると。。/dev/ttyUSBのパーミッション問題があり、 onionのサイトの説明 How do I connect to the Omega via Serial? : Onion Corporation の通りにはいきません。。。

以下のような設定ファイルを/etc/udev/rules.d以下において、USBシリアルを差したときのパーミッションを指定してあげる必要がありました。

  $ cat /etc/udev/rules.d/71-usbserial.rules
  #
  # persistent names for USB-serial I/F devices

  KERNEL=="ttyUSB*",MODE="0666"

さてさて、やっと本格的にonionをいじれそうです。

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