2015/01/26

ZYBOの収納ケースとACアダプタ

ZYBOの収納ケース

購入時の紙箱のままでは頼りないので,ZYBOを収納するためのケースを準備しました. そんな機会があるのかはともかくとして,持ち運びにも便利です.


ZYBOの収納ケース(蓋を閉じた状態)

ZYBOの収納ケース(蓋を開けた状態)

100円ショップで購入した,プラスチックの葉書ケースです. ZYBOは葉書よりも一回り小さい程度なので,サイズ的にピッタリでした. 葉書ケースの蓋側にドリルで穴を開け,M3ネジでZYBOの足を固定しています.


ZYBOの収納ケース(蓋側)

蓋側にZYBOを固定した理由は,各種コネクタへのアクセスのしやすさを重視したためです. この葉書ケースは,簡単に蓋と本体を分離・連結することができます. 本体側を取り払ってしまえば,ZYBOを葉書ケースの蓋に固定していることをほとんど意識しなくて良くなります. 100円ショップを何件か回り,いくつか候補を見つけましたが,最終的にこの葉書ケースにした理由はここです.


ZYBOの収納ケース(蓋と本体が分離・連結可能)

安価かつ簡単に収納ケースを作ることができますので,是非お試しください.

ZYBOのACアダプタ

年末に大阪日本橋のデジットに立ち寄った際,ちょうど良いACアダプタを見つけました. 出力はDC5V,1A,プラグ規格はφ2.1のセンタープラスですから,ZYBOに適合しています. コンセント形状が海外規格ですが,ちゃんと国内規格に変換するアダプタが付属しています. 価格は180円でした. 良い買い物ができました…これで海外出張対策も万全!?

[追記 2015/02/25] DC4.5V~5.5V出力で最低でも2.5A供給可能な外部電源が必要であると,「ZYBO FPGA Board Reference Manual」の4ページに記載されていることを教えていただきました. 私がちゃんとリファレンスマニュアルを読んでいないのがバレバレですね…. 現在のところ電源不足に陥ったような症状には遭遇していませんが,これから購入される方は,DC5V出力で2.5A以上供給できるACアダプタを探したほうが良いと思います.


ACアダプタ

2015/01/25

ZYBOでUbuntuのルートファイルシステムを使用する

はじめに

前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」で,ZYBO上でのLinux起動に成功しましたので,使用するルートファイルシステムをUbuntuのものに変更してみました. そもそも,私はまだLinuxやルートファイルシステム自体をよく理解していません. 本記事のタイトルからして適切なのか不安ですが,追々勉強して,理解しながら訂正や追記をしていきたいと思います.

下記記事を参考に作業しました.

開発環境

仮想マシン上のUbuntu 14.04 LTS 32bitで作業しました.

OS Ubuntu 14.04 LTS 32bit
作業ログ
1. microSDHCのフォーマット

前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」の内容を終えていることが前提となっています. ディレクトリ構造については,各自の環境に置き換えて読み進めてください.

microSDHC内のデータは,バックアップしておいてください. Ubuntuであれば,microSDHCを挿入すると,自動認識してファイルマネージャが開くのではないかと思います. 特に使用しませんので,ファイルマネージャは閉じても大丈夫です(下図は,Mac OS Xライクな外観にしたUbuntuのウィンドウです).


microSDHC (フォーマット前)

lsblkコマンドでmicroSDHCのマウント位置を調べました. 私の環境では,/dev/sdbでした. fdiskを開始し,pコマンドで既存パーティションを表示した後,dコマンドで既存パーティションを削除しました.

第1パーティション(プライマリ,64MByte)を作成しました. nコマンドで新規パーティションの作成を開始し,'p'でパーティションタイプをプライマリに,'1'でパーティション番号を1に設定しました. 最初セクタは入力せず,Lastセクタは'+64M'としました.

第2パーティション(プライマリ,残りの領域)を作成しました. nコマンドで新規パーティションの作成を開始し,'p'でパーティションタイプをプライマリに,'2'でパーティション番号を2に設定しました. 最初セクタとLastセクタは入力しませんでした.

第1パーティションのシステムタイプをFAT32に変更し(tコマンド),ブート可能フラグを付加しました(aコマンド).

パーティションテーブルの書込みを実行しました. 書込み後,パーティションテーブルの再読込みでエラーが発生しました. partprobeコマンドを実行しても駄目でした.

一度,microSDHCをアンマウント(取り外し)し,再度挿入することで解決しました. 一応,再度パーティションテーブルを書込みしました.

パーティション名を設定し,ファイルシステムを作成しました.

2. ルートファイルシステムの書込み

ルートファイルシステムの書込みを行いました. 下記はコマンド実行ログです. 事前に,ディレクトリ「zybo_ubuntu」を作成し,前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で作成した「BOOT.bin」をコピーしておきました. tarコマンドは,実行に6分程度かかりました.

3. BOOT.binとuImageの書込み

BOOT.binとuImage(前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で作成)をZYBO_BOOTに書き込みました.

4. devicetree.dtbの書込み

前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で使用した「zynq-zybo.dts」をコピーし,編集しました.

「zynq-zybo.dts」の変更箇所は42行目と55行目の計2箇所です.

5. uEnv.txtの書込み

「uEnv.txt」を作成し,ZYBO_BOOTにコピーしました.

「uEnv.txt」の内容は下記のとおりです.

6. 実機テスト

Linuxが起動しました!下記はTera Term上のログです.

7. apt-get

ZYBO用のEmbedded Linux をブートするSDカードの作り方」にしたがい,Tera Term上で下記コマンドを実行しておきました.

ZYBOのFile System (ramdisk)を修正してみました

はじめに

前回の記事で,ZYBO上でのLinux起動に成功しました. しかし,ZedBoardのデザインからramdisk8M.image.gzを流用したため,Linux起動時に下記のような警告が発生しています. そこで,この問題を修正するとともに,myled.koをLinux起動時にinsmodするようにramdiskを修正してみました. 初心者ですので,非効率だったり,不可解だったりする操作をしている可能性があります. その場合は,コメントなどでご指摘いただければ幸いです….

下記の記事が参考になりました.ありがとうございます.

作業ログ
  1. microSDHCカードとramdiskをマウントする
  2. ZYBOでLinuxを起動し,作業開始しました. 下記は,Tera Term上でのコマンド実行ログです.

  3. ramdiskの編集:/lib/modules以下の編集
  4. /mnt/ramdisk/lib/modules以下を編集し,myled.koを追加しました.

  5. ramdiskの編集:/etc/init.d/rcSと/usr/bin以下の編集
  6. /mnt/ramdisk/etc/init.d/rcSと/usr/bin以下を編集し,Linux起動時にmyled.koがinsmodされるようにしました.

    rcSは,「echo "++ Starting OLED Display"」より下部を下記のように変更しました. 既存記述をコメントアウトし,2行を追加記述しています.

    rcSから実行される,load_myledを作成しました.

    load_myledの内容は,下記の通りです.

  7. ramdiskとmicroSDHCカードをアンマウントする
  8. microSDHCカードに編集済みのramdisk.image.gzをコピーします.

  9. ramdisk.image.gzをuramdisk.image.gzに変換する
  10. ZYBO上のLinuxにはmkimageコマンドがないようでしたので,これ以降はPCのUbuntu上で作業を行います. microSDHC上のramdisk.image.gzをUbuntu上の任意の作業ディレクトリにコピーし,下記コマンドを実行します. 生成されたuramdisk.image.gzをmicroSDHCカードに上書きして,作業は完了です.

編集後のLinux起動ログ

myled.koがLinux起動時にinsmodされるようになりました.

製品紹介

Embedded Linux Hands-on Tutorial for the ZYBOをやってみました

はじめに

Digilentが提供している,Embedded Linux Hands-on Tutorial for the ZYBOをやってみました.

日本語情報としては,下記記事を参考にさせていただきました. Hands-on Tutorialだけでは初心者の私にはわかりづらい箇所は,ほとんど下記記事で補完されていました. 大変助かりました.

開発環境
Hardware Customization, Generate BOOT.BIN

ZYBO Base System Designのカスタマイズ関係(1. Hardware Customization, 3. Generate BOOT.BIN)は,Windows環境で行いました.

OS Microsoft Windows 7 Professional x64 Service Pack 1
Vivado Vivado 2014.4 WebPACK Edition (Windows)
SDK Xilinx SDK 2014.4
Compile U-Boot, Compile Linux Kernel以降

コンパイル環境については,Xilinx SDKを使用せず,PetaLinuxツールを使用しました. 参考にした上記記事との違いは,この点くらいです.

OS Ubuntu 14.04 LTS 32bit
PetaLinuxツール Zynq、MicroBlaze用 PetaLinux 2014.4
PetaLinuxツールのインストール

PetaLinuxツールをインストールしました.XilinxのWebサイトからFirefoxでダウンロードし,Installation Guideを参考にして,下記のようにコマンドを実行しました.

私の環境では,初回インストール時に下記メッセージが表示されてエラー終了しました.

下記コマンドでgawkをインストールすることで解決しました.

インストール中,下記のような警告が表示されました. どうやら,MicroBlazeシステムにLinuxシステムのイメージをダウンロードするために必要のようです. 今回は関係ないと判断し,無視しました.

作業ログ
1. Hardware Customization

上記の参考記事を読みながら進めました. 特に躓くことはなかったと思います. プロジェクトを開きなおすと「system_LEDs_4Bits_1.upgrade_log」が見つからないとのCritical Warningが出るので,プロジェクトから該当ファイルを削除しておきました.


Hardware Customization
2. Compile U-Boot

ここでも,特に躓くことはなかったと思います. Ubuntu上でのコマンド実行ログです.

3. Generate BOOT.BIN

参考記事と重複しますが,注意点だけ書きます.

  • workspaceのビルドが進まない
  • FSBLプロジェクトを作成後,自動的にビルドが開始されますが,進捗率が79%のまま動かなくなってしまいました. ビルドを中断させてFSBLプロジェクトを削除し,Xilinx SDKを再起動して再試行すると上手くいきました.
  • system.bitではなく,system_wrapper.bit
  • Hands-on Tutorialの3.2.10ではsystem.bitになっていますが,system_wrapper.bitでした.
4. Compile Linux Kernel

Ubuntu上でのコマンド実行ログです.

5. Test Kernel Image with Pre-built File System

参考記事にしたがい,5.2.1のzynq-zybo.dtsの編集は実行しませんでした. また,ramdisk8M.image.gzはZedBoardのデザインから流用しました.

[追記 2015/01/25] ramdisk8M.image.gzは,下記リンクからwget (ダウンロード)してきた方が良さそうです. 下記で述べているような,Linux起動時の警告が出なくなります. 「yuki-sato.com - 7. Zynq RAMディスク」が参考になりました. ありがとうございます.

Linuxが起動しました!下記はTera Term上のログです. 228行目付近で警告が出ています.ramdisk8M.image.gzをZedBoardのデザインから流用したことが原因でしょう. この問題については,次回記事「ZYBOのFile System (ramdisk)を修正してみました」で解決しました.

6. Modify Device Tree and Compose Kernel Driver

Ubuntu上でのコマンド実行ログです.

7. User Application

Ubuntu上でのコマンド実行ログです.

2015/01/14

ZYBO Base System Design (Vivado 2014.4) - 3

はじめに

本投稿は,ZYBO Base System Design (Vivado 2014.4) - 2の続きです. ソフトウェアのビルドまで完了していますので,引き続きXilinx SDK 2014.4を使用してソフトウェアを実行します.

作業備忘録
  1. FPGAにBitstreamをダウンロードする
  2. 「Xilinx Tools」 - 「Program FPGA」をクリックし,「Program FPGA」ウィンドウを開きます. 「Program」をクリックすると,FPGAにBitstreamがダウンロードされます. ダウンロードが完了すると,ZYBO上のDONE LED (緑色)が点灯します.

    Program FPGA
  3. UART,HDMIの接続を行う
  4. Tera Termを起動し,シリアルポートに接続しておきます. また,HDMIケーブルを使用して,液晶ディスプレイと接続しておきます. VGA接続でも良いと思いますが,私はまだ試していません.
  5. ソフトウェアを実行する
  6. 「Project Explorer」上で「base_demo」を右クリックし,「Run As...」 - 「Launch on Hardware (GDB)」を選択します. 「Xilinx C/C++ Application」ウィンドウが開きますので,Debug用またはRelease用の「base_demo.elf」を選択して,「OK」をクリックします. この操作により,ソフトウェアの実行が開始されます.

    Run Configurations
  7. base_demo
  8. 実行時の写真とスクリーンキャプチャです. Tera Term上から,音声出力と映像出力を操作できるものでした.

    メインメニュー

    実行開始直後の出力映像(HDMI)

    HDMIメニュー
microSDHCから起動するためには…
「C:\work\zybo_base_system\SDK\README.txt」を参照してください. これまでの作業がベースになっているため,特に迷うことはありませんでした.

2015/01/12

Ubuntu上にnxtOSEKの開発環境を構築する

はじめに

Lego Mindstorms NXTの開発環境(ARM用クロスコンパイル環境とnxtOSEK)をUbuntu上に構築しましたので,コマンドの実行履歴を参考に,作業手順をメモしておきます. 今回は下記のWebページを参考に開発環境を構築しました. なお,公式Webページの「nxtOSEK Installation in Linux (Ubuntu 11.10/10.04/9.10/8.10)」は,タイトルの通りUbuntu 11.10以前を例に記述されており,内容が少々古いようです.

私も初心者ですので,内容に誤りが含まれている場合があります. また,本記事投稿現在,サンプルプログラムのmakeが通ることは確認していますが,実機での動作確認ができていません…. つきましては,何かお気づきの際は,コメントなどでご指摘いただければ幸いです.

開発環境

仮想マシンにインストールした,Ubuntu 14.04 LTS 32bit上に構築しました.

OS Ubuntu 14.04 LTS 32bit

今回の開発環境は,下記バージョンを使用して構築しました.

GNU Binutils 2.20.1
GCC 4.4.7
Newlib 1.18.0
nxtOSEK 2.18
作業備忘録
  1. 既存環境を最新状態に更新する
  2. 下記コマンドを実行しました.

  3. ディレクトリを作成する
  4. ホームディレクトリに,ディレクトリ「ETRobo」を作成しました.

  5. インストールスクリプトを取得する
  6. gmsanchez/nxtOSEK · GitHub」で公開されている,nxtOSEK 2.18 + Ubuntu 14.04 LTS向けのインストールスクリプトを使用することにしました. 下記コマンドを実行し,gitでインストールスクリプトのリポジトリを取得しました. gitをインストールしていない場合は,先にapt-getでインストールを完了してください.

  7. 必要なライブラリをインストールする
  8. 必要なライブラリをインストールしました. 「tk-dev」および「ncurses-dev」は不要かもしれません.

  9. GNU ARMのビルドとインストールを実行する
  10. インストールスクリプトを使用して,GNU ARMのビルドとインストールを実行しました. 「Build complete!」と表示されたら,成功です. この処理は,私の環境では1時間弱かかりました.

  11. gccの状態を確認する
  12. 下記コマンドを実行し,ビルドとインストールを終えたgccの状態を確認しました.

  13. nxtOSEKのセットアップを行う
  14. 下記コマンドを実行し,必要なファイルのダウンロードと,ファイルの追加処理を実行しました.

    続いて,同じディレクトリでファイルの上書き処理を実行しました.

    テキストエディタで「tool_gcc.mak」を開きます.

    「tool_gcc.mak」の9行目を,下記のように変更します. これで開発環境の構築は完了です.

  15. インストール状態を確認する
  16. 下記コマンドを実行し,インストール状態を確認しました.

    正常終了の場合は,「helloworld_OSEK.rxe」が生成されます.

    下記のエラーメッセージでmakeが中断した場合は,「export LC_ALL=C」を実行し忘れていないか確認してください. この環境変数の変更処理は,日本語環境特有のようです.

以上,参考になれば幸いです.

2015/01/07

OpenCV 2.4.10をUbuntu 14.04 32bitにインストール

OpenCV 2.4.10を仮想マシン上のUbuntu 14.04 LTS 32bitにインストールしました. OpenCVをLinux環境にインストールしたのは初めてで,ちゃんとインストールできるまでにかなり時間がかかってしまいました…. 作業手順をメモしておきます. 掲載内容に間違いがありましたら,コメントにてご指摘いただければ幸いです.

インストール前の準備
  1. 既存環境を最新状態に更新する
  2. 下記コマンドを実行しました.

  3. OpenCVのソースファイルをダウンロードする
  4. ホームディレクトリに「OpenCV」ディレクトリを作成し,OpenCVのソースをダウンロードしました. ダウンロードした圧縮ファイルは,展開しておきました.

  5. ソースにパッチを適用する(32bit環境のみ)
  6. Ubuntu 14.04 LTS 32bitではmakeがエラー終了してしまいました. 対処方法は,core: fix x86 PIC code compilationで紹介されています. 「opencv-2.4.10_system.cpp.patch」というファイル名で,下記コードをホームディレクトリに保存してください.

    ホームディレクトリに戻り,パッチを適用してください.

インストール
シェルスクリプトの準備

作業自動化のため,下記のWebサイトを参考に,シェルスクリプトを作成しました. 下記コードを,「opencv-2.4.10.sh」というファイル名で,ホームディレクトリに保存してください.

[変更 2015/03/18] cmakeコマンドのオプション記述を変更しました.改行位置を変更したのみで,シェルスクリプトの動作に影響はありません.

シェルスクリプトの実行

シェルスクリプトを実行しました. 実行中,パスワードの入力を求められる場合があります. 私の環境では,実行完了まで1時間弱かかりました.

(参考)cmakeの実行結果

私の環境でのcmakeの実行結果は下記のとおりです. ホームディレクトリに作成されるログファイル「opencv-2.4.10_install.log」で確認できます.

動作確認

Webカメラの映像を表示するプログラムをコンパイルし,実行してみました. 私の環境では,14~16行目のようにフレームサイズとフレームレートを設定しなかった場合,端末に「select timeout」と表示されてWebカメラの映像を表示できませんでした. Webカメラは720p,30fpsにも対応している,Logicool HD Webcam C270です. 仮想マシン上で実行していることなど,環境依存の問題なのではないかと考えていますが,表示できなかった理由はわかっていません….

上記コードを「webcam.cpp」というファイル名で保存し,コンパイルと実行を行いました.

実行例です.ウィンドウがMac OS X風ですが,Ubuntuです.


webcamの実行結果

以上,参考になれば幸いです.

製品紹介
LOGICOOL ウェブカム HD画質 120万画素 C270
ロジクール (2010-08-20)
売り上げランキング: 736