Cafe'Tec Yagiyu

のんびり気ままに技術進捗

VHDLでLチカ

最近、同時進行作業が多くなってきてます

今回はVHDLで回路を書いてDE-0でLチカしました。

開発環境はAlteraのQuartusⅡです。

 

1. QuartusⅡのインストール

DE-0は付属したCDの中にインストーラがついてきたので、そこからQuartusⅡ 9.0 Web Editionをインストールしました。

https://www.altera.co.jp/downloads/download-center.html

ここからソフトウェアを選択、QuartusⅡウェブ・エディションを選択してダウンロードすることもできます。

 

2. プロジェクトをはじめる

・(USB Blasterのドライバをインストールする)

 DE-0をPCに接続した時、「ドライバがありません」と言われました。ネットで調べてみたら、alteraのファイルの中にあるらしい...と、フォルダを開けていくと、¥altera¥90¥quartus¥drivers¥usb-blasterにありました。

コントロールパネルからデバイスマネージャーを開いて、USB-Blasterのドライバを更新します。先ほどのフォルダから参照してドライバーをインストール。正常にインストールされると「Altera USB-Blaster」として使えるようになります。

 

・プロジェクトを始める

f:id:yagiyu-tec:20161022231639p:plain

 QuatusⅡを開くと上の画像のようになりました。ここの[Create a New Project]からプロジェクトを始めていきます。

f:id:yagiyu-tec:20161022231733p:plain

Nextで次へ。

f:id:yagiyu-tec:20161022231745p:plain

続いて名前をつけます。下の2つの名前は同じにする必要があるらしいです。ここでは適当にNewとしました。そしてNext。

f:id:yagiyu-tec:20161022231830p:plain

ここでVHDLファイルを追加しますが、あとでも追加できるのでNextで次へ行きます。

f:id:yagiyu-tec:20161022231903p:plain

ここでは使うデバイスを選択します。DE-0に乗っているCycloneシリーズのチップを見ながら選択しました。FinishでNew Project Wizardを終了します。

f:id:yagiyu-tec:20161022231947p:plain

プロジェクトを無事に始めることができたら、左上の[File]から[New...]をクリックし、VHDLファイルを選択してファイルを作成します。また左上の[File]から、[Save As...]でVHDLファイルに名前をつけて保存しておきます。

 

3. コンパイル

論理合成にあたる行程です。時間がかかると聞いていましたが、今回は書いたコードが簡単だったようで、あまり時間はかかりませんでした。

f:id:yagiyu-tec:20161022232055p:plain

VHDLファイルにコードを記述したら、コンパイルを行います。上の[Processing]から[Start Compilation]でコンパイルします。エラーがあったら赤文字で現れます。その赤文字をダブルクリックすると、問題のある箇所を反転表示してくれます。便利。

間違いを訂正して保存。

成功したらこんな感じでお知らせしてくれます。(warningがありますが笑)

f:id:yagiyu-tec:20161022232114p:plain

合成した回路は、RTL Viewerで見ることができます。左側のHierarchyからプロジェクト名を右クリックし、[Locate]>[Locate in RTL Viewer]をクリックすると出てきます。

今回はこんな感じでした。

f:id:yagiyu-tec:20161022232130p:plain

 

4. ピン割り当て

f:id:yagiyu-tec:20161022232146p:plain

 書いたコードを、実際のFPGAに配線していきます。[Assignments]>[Pin Planner]からウィンドウを開き、次のような画面で作業をしていきます(すでに配線した後の画面です)。赤色になっているところが書いた回路が繋がるところ、紫になっているところはトライステートの入力に設定したところです。図のピンを右クリックして[Reserve]から[As input tristated]で設定できます。未使用ピンをトライステートの入力に設定しておくことで予想しない接続があってもハイインピーダンスなのでピンがある程度守られます。TCLファイルでこの作業を自動化できるそうなのでやってみたのですが、場所は認識されてもトライステートの入力には設定されませんでした。これはまた再挑戦してみます。

配線ができたら、コンパイルと同じように[Start Compilation]で配置配線をします。

自分でチップの中身を配線できるというのはなかなかロマンがあります。

 

5. 動作確認

f:id:yagiyu-tec:20161022232215p:plain

 Pin Plannerウィンドウを閉じて、プロジェクトウィンドウの上の[Tools]>[Programmer]をクリックして上のウィンドウを開きます。sofファイルがあることを確認し、左側の[Start]でFPGAに書き込みます。書き込み対象のハードウェアが設定されていなければ、左側のHardware Setupから設定します。成功して以下のように動作しました。

 

というわけで、FPGAも使えるようになりました。QuartusⅡはまだまだ機能があるようなので存分に使っていきたいですね。のちのちCPUも作ってみたいなーとも考えていたり。

今回は以下の本を参考にしました。

 

回路図で学べるFPGA入門 回路図は読める人のためのHDLガイド

回路図で学べるFPGA入門 回路図は読める人のためのHDLガイド

 

 

独自CPU開発で学ぶコンピュータのしくみ

独自CPU開発で学ぶコンピュータのしくみ

 

 

7net.omni7.jp

 

投げ銭していただければ、めちゃくちゃ喜ぶのでよかったらよろしくお願いします。

↓えさを投げる(Ofuseのサイトに飛びます)↓

ATmega1284p-AUでマイコンボードを自作した話

どうも、お久しぶりです。

さて、今回はArduinoIDEで動かせるマイコンボードを作ってみました。製作には1ヶ月半くらいかかりましたかね。勉強も含めてだったので長くかかりました。

f:id:yagiyu-tec:20160911210620j:plain

とりあえず製作過程を設計段階から説明していきます。

 

1.基板設計

ソフトはKicadを使って設計しました。設計にはArduinoProMiniを参考にしました。回路としては単純にした方が汎用性が利くと思ったので。

回路図はこんな感じです。まだまだ修行中ゆえに間違いがあるかもしれません。

f:id:yagiyu-tec:20160911201118p:plain

 

コアはATmega1284P-AUを使用し、水晶発振子は16MHz、書き込み部分はFTDIでの書き込みを想定して作りました。三端子レギュレータには5V1A出力のNJM2391DL1-05を使いました。

 

配線した後の図がこちらです。

f:id:yagiyu-tec:20160911202101p:plain

とりあえず配線しましたって感じですね。クオリティはこれから頑張って向上させます。Kicadは自動で直角配線を無くしてくれるので楽です。と言っても他の回路設計CADを使った事がないので他はわかりませんが。NJM2391DL1-05のコンポーネントはなかったので作りました。いつしかのトランジスタ技術を購入したら付いてきたのでしょうか。

 

2.基板発注

Elecrowに注文して出来た基板がこちらです。

5枚2レイヤー、5cm*10cmMAXで注文して$11.50、配送はOCS/ANA Expressに頼んで$13.23、合計で$24.73でした。注文してから8日くらいで来ました。早いし安かったです。特にシルクミスとかがなかったのも良かったです。Kicadでの注文方法はここと

KiCadで雑に基板を作る チュートリアル 、Elecrowのページを参考にしました。

http://www.elecrow.com/services/pcb-prototyping/5pcs-2-layer-pcb.html

 

3.部品ハンダ付け・ブートローダ書き込み

部品を少しハンダ付けしてから、ブートローダを書き込みました。ArduinoUNOを使って書き込む方法があったので、こちらを参考にしてやってみました。

Arduino IDEでATtiny他の開発(Arduino-ISP編) | Make | kosakalab

ATMEGA1284P-AUと秋月基板でArduino互換機を組む - Togetterまとめ

IDEをちょっといじって、ArduinoISPのプログラムを書き込んで、書き込み装置をArduino as ISPにして、マイコンボードを"Sanguino W/ ATmega1284p 16MHz"に設定してブートローダを書き込むと。

ヒューズビットの書き込みとかがないので楽でした。ただ書き込むときの回路接続をミスしてしまって2回ほど失敗しました(笑)

コアと水晶発振子とその周辺のコンデンサとピンヘッダをハンダ付けして書き込むとうまくいきました。そのあとで残りの部品をハンダ付けする、という段取りですね。

 

f:id:yagiyu-tec:20160911210620j:plain

というわけで、自作のマイコンボードができました。まだすべてを表面実装の部品に統一できていないので、部品を購入して改良していきたいと思います。これで何か動かしたら、またここや何か他の媒体にupしたいと思います。

 

それではまた次の更新まで。

 

 

投げ銭していただければ、めちゃくちゃ喜ぶのでよかったらよろしくお願いします。

↓えさを投げる(Ofuseのサイトに飛びます)↓

MakerFaireTokyo2016に行ってきました(後編)

というわけで後編です。

続けて撮ったりお話ししたりして見ていった展示を紹介していきます。

まだ前編を見ていない方はこちらからご覧いただけます↓

MakerFaireTokyo2016に行ってきました(前編) - Cafe'Tec Yagiyu

 

◯宙に浮く傘

f:id:yagiyu-tec:20160809170103j:plain

f:id:yagiyu-tec:20160809171750j:plain

 傘を自立飛行型ロボットにして、歩行者についてきてくれるというものです。画像計測と慣性センサからの信号をもとに制御するそうです。傘を多段型にして、隙間から空気をとりこんで浮力を得るという工夫もされています。傘を持ってたらよく手が重くなってしまうので、確立したらぜひ使いたいロボットですね。

出展者は安川真輔さん。 https://sites.google.com/site/umbrellarobot/

 

◯ロボットの自動演奏

ロボットが畳の上でドラムを叩いたりタンバリンを振ったり。自動演奏は夢がありますね。ドラムは腕の移動が大きいので制御がけっこう難しいと思います。HPを拝見したところ、ロボットの名前はこさんくん1号とこさんくん2号(?)のようです。

出展者は日本畳楽器製造 with 自動演奏ロボットさん。

http://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Robot/tatami.html

 

テスラコイル

f:id:yagiyu-tec:20160809175750j:plain

f:id:yagiyu-tec:20160809175802j:plain

人工の雷を発生させることで有名なテスラコイル。実演は見られませんでしたが、その大きさからもダイナミックな放電の様子が思い浮かべられます。(会場でパンパンと破裂音が聞こえてきてたのはこれかな...)

出展者は高エネルギー技術研究室さん。 https://htlab.net

 

酵母の仕事具合監視装置

 

f:id:yagiyu-tec:20160809190145j:plain

f:id:yagiyu-tec:20160809190426j:plain

f:id:yagiyu-tec:20160809191836j:plain発酵の様子を数値で測定して監視することで、酵母の仕事の様子を見る手間を省くというもの。装置を発酵槽の中に入れて、ホールセンサを使った比重計と温度計で測定し、サーバーに数値として記録するそうです。現在は比重計と温度センサが別々の容器にありますが、将来的には一体型にするようです。研究ノートやグラフ、図を出してわかりやすく説明してくださいました。

出展者はjmz Makerさん。 https://twitter.com/jmz

 

◯扇風琴

youtu.be

f:id:yagiyu-tec:20160809201023j:plain

演奏の様子は撮っていませんでしたので、YouTubeに上がっていた動画を。cdsセンサーで受けた光に応じて電圧を変化させて、出力する音を変化させる仕組みになっているらしいです。扇風機の羽を画像のように色と黒に分けて配置し、回転の速度の変化で光量が変化する。けっこう様になりますね(笑)面白い発想だと思います。

和田永さんを中心とする出展グループのエレクトロニコス・ファンタスティコス!さんは他にもたくさんのオリジナル楽器を生み出しているようです。ホームページを訪れると新しい発見がありそうです。

出展者は和田永「エレクトロニコス・ファンタスティコス!」さん。

http://www.toppingeast.com/program/1322/

 

MIDIオルゴール

MIDIで演奏するオルゴール、CANADEON(カナデオン)。私が見たときは黒うさPの千本桜を演奏していました。動作を見ると、爪を引いて演奏しているようだったので、ソレノイドを用いているのかなと思ったら、やっぱりそうでした。オルゴールで自分で考えた音楽を自由に演奏できるのは楽しそうです。音階が70〜80あるそうなので、かなり幅のある音を生み出せそうな感じがします。

出展者は株式会社スリックさん。 http://www.canadeon.jp/index.html

 

◯木の歯車で作る機構作品

f:id:yagiyu-tec:20160809205729j:plain

f:id:yagiyu-tec:20160809205751j:plain

(一応よく見える顔にモザイク処理をしています。)

木の歯車を組み合わせて作られた作品。ロボットアームやショベルカー、クレーン車などなど。驚くべきことに、CADを使わず、CNCも使わずに電動糸鋸やボール盤で試作に試作をくり返して製作されているそうです。それにしては、どれも精巧に作られているものばかりで、その仕上がりの美しさに感動してもしきれません。その上電気を使わずに手動で動かすことができるんですから、すごいの一言では表せません。ニコニコ動画にもYouTubeにも動画が上がっているので、ぜひ一度見てみてください。

出展者は木の歯車工房さん。 https://www.youtube.com/user/kinohaguruma

 

◯The Art of the 3D Printed Book

 

f:id:yagiyu-tec:20160809210851j:plain

f:id:yagiyu-tec:20160809210928j:plain

3Dプリンターレリーフのように出力された作品を本のような形に組み立てたもの。インターネットでダウンロードできる作品やシカゴ美術館で収蔵されている作品を元にしているものもあるそうです。ダウンロードは Orihon 3D Printed Book | Tom Burtonwood から。素晴らしいインテリアになりそうな作品です。

出展者はTom Burtonwoodさん。 http://tomburtonwood.com

 

◯自作チップマウンタ&自作リフローオーブン

f:id:yagiyu-tec:20160809212217j:plain

f:id:yagiyu-tec:20160809212229j:plain

プリント基板に部品を実装するときに必要なこのふたつ。なんと自作してしまったそうです。チップマウンタはCNCと同じような作りっぽい。リフローオーブンは、はたから見ればそのまんまオーブン。出展グループであるみんなのラボさんでは実際にこれで作品を作っているようです。制作費は15000円程度。いずれ作ってみたいです。

出展者はみんなのラボさん。 http://www.wakanyan.net

 

◯実寸にあったものを出力できる3Dプリンター

f:id:yagiyu-tec:20160809213159j:plain

f:id:yagiyu-tec:20160809213214j:plain

 テーブルを液晶画面にし、そこに手書きで出力するものを入力して3Dプリンターで出力できるというもの。CADを使う手間が省けるため、さっとものを作ってしまいたいときに便利ですね。将来的に商品化されそうな作品です。

出展者は明治大学宮下研究所さん。 http://miyashita.com

 

◯卓上真空成型機

f:id:yagiyu-tec:20160809213956j:plain

f:id:yagiyu-tec:20160809214005j:plain

台の上に対象物とプラスチックシートを置いて動作させると、簡単にトレイやパッケージなど、さまざまなものの製作に使える製品。CADを使う必要がないので、製作のプロセスが非常に容易そうです。特許も取得されているようです。

出展者は株式会社ラヤマパックさん。 http://www.rayama.co.jp/index.htm

 

◯玉乗りロボット

f:id:yagiyu-tec:20160809215219j:plain

9軸センサで傾きを感知して電流センサ、エンコーダ付きモーターで正確な制御をして玉の上で平衡状態を保つロボット。まるで倒れそうな様子を見せないのがすごいです。他にも5本指のロボットアームや動くマニュアルトランスミッションの模型、研究発表会などでベルを鳴らしてくれるだけの機械も展示していました。

出展者は東工大ロボット技術研究会。 http://titech-ssr.blog.jp

 

 

 

◯買ったグッズ

f:id:yagiyu-tec:20160809220822j:plain

f:id:yagiyu-tec:20160809220828j:plain

f:id:yagiyu-tec:20160809220829j:plain

上から、Make:Tシャツ(2500円)、MFTポスター(300円)、MFTクリアファイル(500円程度だったような)。TシャツはネイビーでMサイズは最後の一品でした。なんか得した気分です(笑)

 

 

f:id:yagiyu-tec:20160809221857j:plain

f:id:yagiyu-tec:20160809221905j:plain

会場を出るのは14:00ごろの予定でしたが、実際は15:30頃になっていました。それでもまだまだ見足りなかったです。やはりMFTは泊りがけで行かなければいけないと実感しました。

 

会場を出たあとは、秋葉原に行ってきました。秋葉原に行ったのは2回目ですが、やはり駅周辺は迷いましたね。アニメイトで弟へのお土産を購入したあと、秋月電子千石電商に行ってきました。最近作った基板に実装する部品を購入しました。

そのあとは東京の友達と合流して少し遊び、サイゼリアで晩ごはんを食べました。とても美味しかったです。

f:id:yagiyu-tec:20160809222737j:plain

 

家に着いたのは翌日の1時半頃でした。すぐに眠れると思いましたが、まだ興奮が冷めきっていなかったのか、意外となかなか寝付けることができませんでした。

 

 

今回のMakerFaireTokyoは見ることができなかった作品も多かったですが、ネットで知ったMakerさんとお話ししたり、貴重な作品のお話しを聞いたりと、とても楽しく、いい刺激になりました。この経験を活かして、今後も作品づくりや研究を進めていき、いつか、自分の作品も出展できるようになりたいです。

 

加えて、今回MFTに出展した皆様、本当にお疲れ様でした。本当に素晴らしい作品を見せていただきました。とても楽しく、あっという間の時間でした。私とお話ししてくださった方々も、失礼な点もあったかと思いますが、快く対応していただいてありがとうございました。

 

 

それでは、次回の更新まで。

投げ銭していただければ、めちゃくちゃ喜ぶのでよかったらよろしくお願いします。

↓えさを投げる(Ofuseのサイトに飛びます)↓