フットキーボード用のプログラムをビルドする

ガジェット製作

前回のエントリで作ったスイッチが5個ついたフットキーポード用のプログラムをビルドします。この記事、長いです。

ただビルドするだけなのに

フットキーポード用のプログラムはMicrochip社のUSBライブラリを使用しますが、ソースコードの公開についてはライセンス条件がいまいちよくわからないので、というか公開はダメっぽいので、ソースコード丸ごとの公開はできなさそうです。

そこで、公開できるようにソースコードを書き直しました。ただ、公開ソースコードのみではビルドできず、Microchip社が提供するファイルも指定する必要があります。Microchip社の開発環境は人によってインストール位置やフォルダ名など異なりますので、各自いろいろ設定する必要があります。

そこで、今回は公開ソースコードをビルドできるように設定も含めて手順を説明します。

 

準備するもの

必要なものは以下の環境です。括弧内は参考記事へのリンクです。

あと、今回作成したフットキーボード用のソースコードです。以下からダウンロードお願いします。ダウンロードしたら適当な場所に解凍しておいてください。デスクトップとかにコピーしておくとわかりやすいと思います。

 

ゴール

これから細かい作業になりますので、まずはゴールがどんな感じになるか確認しておきます。

これから、MPLABXで新規プロジェクトを作って、以下のようにファイルを設定する作業を行います。このようにファイルを設定してようやくビルドできる、という感じです。

Goal

なお、今回公開するソースコードは赤枠のもの、緑枠のものは、Microchip社から提供されているものをそのまま使います。緑枠のファイルは、Libraries for Applicationsのフォルダに入っています。それではこれからMicrochip社提供のソースも含めて設定方法をステップバイステップでご説明します。

 

新規プロジェクトを作成

まずMPLABXを立ち上げます。立ち上げたら、FileメニューからNew Project…を選択します。

new project

プロジェクト作成ウィザードのダイアログになりますので、ひとつひとつ片付けていきましょう。

まず、プロジェクトタイプを選択します。ここでは、Microchip Embedded → Standalone Projectを選択します。

A 2 select standalone

次に、PICマイコンの種類を指定します。Device欄にPIC16F1459と入力します。リストから選択できますが、かなり数が多いので直接入力した方が早いです。

select pic16f1459

次にデバッグオプション指定ですが、ここではこのままにしておきます。

select debug

次にPICKITを選択します。PICKIT3で作業しますので、PICkit3を選択します。

Select pickit

次にコンパイラを選択します。XC8を選択してください。

Select xc8

最後にプロジェクト名を入力します。何でもいいですが、ここではFootKeyboardにしました。また、プロジェクトの保存位置(Project Location)やプロジェクトフォルダ名(Project Foler)は環境毎に異なります。デフォルトでは /Users/[ホームフォルダ]/MPLABXProjectsフォルダの下に、[プロジェクト名].Xというフォルダ名で作成されます。ここで指定したフォルダ位置は覚えておいてください。後でこのフォルダにファイルをコピーしたり、この位置を指定したりします。

Specify Project Name

最後にFinishボタンをクリックして完了します。

 

ファイルをコピーする

先ほど展開したフットキーポード用のソースコードを作成したFootKeyboardフォルダにコピーします。コピーするとこんな感じになると思います。

Copy Distributed Files

次に、PIC16F1459のハードウエアプロファイルのヘッダファイルをコピーします。このファイルは、Microchip Libraries for Applicationsフォルダ内にあります。具体的には、[Libraries for Applicationsフォルダ] → USB → Device – HID – Keyboard → Firmwareにあります。ファイル名は

HardwareProfile – LPC USB Development Kit – PIC16F1459.h

です。長っ。

Hardware Profile Header File

このファイルをフットキーボードのプロジェクトフォルダにコピーして、ファイル名を “HardwareProfile.h” に変更してください。こんな感じになります。

Copy hardware profile

ちょっとここでビルドをしてみます。まだほとんど設定していないのでエラーになりますが、ここで一度ビルドしておかないとmakeファイルがきちんと生成されないことがありました。おまじないですかね。

そのおまじないですが、まず、MPLABXのプロジェクトフォルダのFootKeyboardを開いて、”Source Files”という名前のところを右クリックします。メニューがでてきますので、Add Existing Item…を選択します。

Magic 1

ファイル選択画面になりますので、先ほどFootKeyboardフォルダにコピーしたkeyboard.cを選択します。選択するとこんな感じになります。

Magic 2

この状態でビルドしてください。ビルドボタンを押せばOKです。

Build

思いっきり怒られます。というか、さらっとビルドエラーがでて終わると思います。これでOKです。

 

プロジェクトにヘッダファイルを追加する

続いて、プロジェクトにヘッダファイルを追加します。

まず、MPLABXのFootKeyboardプロジェクト、Header Filesを右クリックして、Add Existing Item…を選択します。

Add Own Headers

まず、FootKeyboardフォルダにあるヘッダファイルを3つ追加します。追加するファイルは、

  • HardwareProfile.h
  • Keyboard.h
  • usb_config.h

です。ファイル選択画面で、commandキーを押しながら選択すると複数選択できますので、この3つのファイルを選択してSelectボタンをクリックします。

Select own headers

選択すると、こんな感じになると思います。

Added header files

次に、Microchip社から提供されているヘッダファイルを追加します。このヘッダファイルは編集しませんので、フォルダを作ってそこに入れておきます。なお、このフォルダとは仮想のフォルダで、実際にどこかに作られるわけではありません。まず、MPLABXのFootKeyboardプロジェクトのHeader Filesを右クリックして、New Logical Folderを選択します。

Add Logical Folder

New Folder 1という名称のフォルダができると思います。これじゃ、そっけない名前なので名称変更します。そのフォルダを右クリックして、Rename…をします。

Rename Logical Folder

こんな感じになると思います。

Renamed USB Folder

次に、このUSBフォルダにヘッダファイルを追加します。やり方は今までと同じで、USBフォルダを右クリックしてAdd Existing Fileを選択してファイルを指定します。ちょっと大変ですが、以下のファイルを追加してください。

[Libraries for Applicationsフォルダ] – Microchip – include – USBフォルダにあるファイル
usb.h
usb_ch9.h
usb_common.h
usb_device.h
usb_function_hid.h
usb_hal.h

[Libraries for Applicationsフォルダ] – Microchip – USBフォルダにあるファイル
usb_device_local.h
usb_hal_local.h

これらのファイル追加が終わるとこのようになると思います。

header files

 

プロジェクトにソースファイルを追加する

なんかげんなりしてきましたね。。。でもあと一息ですよ。

まず、FootKeyboardフォルダにある、usb_descriptor.cをMPLABXのプロジェクトフォルダ、Source Filesに追加してください。

また、Source FilesにUSBフォルダを作成、そこに以下のファイルを追加してください。

[Libraries for Applicationsフォルダ] – Microchip – USBフォルダにあるファイル
usb_device.c

[Libraries for Applicationsフォルダ] – Microchip – USB – HID Device Driverフォルダにあるファイル
usb_function_hid.c

以下のようになればOKです。

Added Source Files

 

プロジェクト属性を設定する

ごめんなさい、まだ設定があります。
コンパイラがコンパイルするときに、ヘッダファイルを探しますので、その探す場所を教えてあげる必要があります。

まず、FootKeyboardプロジェクトを右クリックしてPropertiesメニューを選択します。

Properties Menu

プロパティ設定ダイアログが開いたら、左側のCategories領域から、XC8 Compilerを選択します。すると、XC8コンパイラの属性設定画面になります。この画面で、Include Directoriesの選択ボタンをクリックしてください。

Include Directories

ディレクトリを指定するダイアログになりますので、右上のBrowseボタンをクリックして、

[Libraries for Applicationsフォルダ] – Microchip – include

を指定します。具体的には、Microchipディレクトリを開き、そこで、includeを選択して、「開く」ボタンをクリックします。

Specify Directory

続いて、FootKeyboard.Xフォルダも指定します。

Self path

この2つのディレクトリを指定すると、以下のようになると思います。

Include Directories

OKボタンをクリックして閉じます。

これでプロジェクト属性設定OKです。

 

ビルドする

早速ビルドしてみます。ビルドボタンをクリックします。

Build

ビルドの結果はMPLABXの右下のウィンドウに表示されます。以下のように

Succeeded

BUILD SUCCESSFUL

Loading completed

が表示されればOKです。

ここでエラーになる場合、ちょっと大変かもしれませんが、もう一度手順を見直してみてください。

 

動作確認する

できあがったらフットキーボードに書き込んで動作確認します。なお、LEDは点灯したままとなります。

次回、すでに作成したMacアプリをちょっと改造して、このLEDをつけたり消したりしてみます。

 

一応使えますかね

これで一応Google ReaderやFeedlyが足で操作できるフットキーボードができました。ただ、いろいろと勉強したいので、この設定を変更するMacアプリを作っていきたいと思います。

 

変更履歴

 

日付 変更内容
2013.4.7 初版

« »