島根産業技術研究センターでの公演「組み込みプログラミング入門」のサポートページです.
課題の答え
usb_cdcプロジェクトをコピーし,178行目付近のwhileループを下記のコードと書き換えます.
DEBUGSTR("USB CDC class based virtual Comm port example!\r\n");
while (1) {
/* Check if host has connected
and opened the VCOM port */
if ((vcom_connected() != 0) && (prompt == 0)) {
//vcom_write("Hello World!!\r\n", 15);
prompt = 1;
}
/* If VCOM port is opened echo
whatever we receive back to host. */
if (prompt) {
char c;
if(vcom_bread(&c, 1) == 0) {
continue;
}
if(c != 'x') {
continue;
}
char d, e;
while(vcom_bread(&d, 1) != 1) ;
while(vcom_bread(&e, 1) != 1) ;
if(e != 'z') {
vcom_write("ERR", 3);
continue;
}
switch(d) {
case '1':
Board_LED_Set(0, true);
vcom_write("OK", 2);
break;
case '0':
Board_LED_Set(0, false);
vcom_write("OK", 2);
break;
default:
vcom_write("FAIL", 4);
break;
}
}
/* Sleep until next IRQ happens */
__WFI();
}
マイコン側のUSBコネクタをPCに接続し,VCOMドライバをインストールして,
Tera TermでCOMポートに文字列を送信するとエコーが帰ってきます.
PWMをサポートしたLPCOpenライブラリ
LPC Xpressoに付属のexampleに入っているLPC OpenライブラリはPWMをサポートしていません.
LPC1347のみサポートしますが,下記のライブラリでPWMを利用できます.
ダウンロード
最新版 github:
https://github.com/sugarsweetrobotics/lpc_chip_13xx
利用方法
Download ZIPのボタンからダウンロードして展開する.展開してできたフォルダ名をlpc_chip_13xxに変更.
マイドキュメントの中の,lpc xpresso \ workspaceフォルダに入り,ダウンロードしたlpc_chip_13xxフォルダを入れ替える.
incフォルダのpwm_13xx.hをインクルードして使ってください.使い方はpwm_13xx.hを参照してください.
よくわからなかったら記事にコメントいただくかコンタクトからどうぞ.
PID制御
USBでPCに接続し,角度司令を受け取ると,その角度まで回転させます.ゲイン等もPC側から制御できるようになっています.
詳しくは上記のプレゼンテーションをごらんください.
ダウンロード
最新版 github:
https://github.com/sugarsweetrobotics/lpc_usb_motor_controller
ビルド方法
Download ZIPのボタンからダウンロードして展開する.
LPC Xpressoを起動し,ファイル>インポートからGeneric Projects > Existing Eclipse Projectを選択し,展開したフォルダを選択すると,lpc_usb_motor_controllerプロジェクトをインポートできる.
上記のPWMサポートのライブラリのインストールが成功していれば,本プロジェクトをビルドできる.
PID制御コントローラテスタ
上記のPIDコントローラをWindows PCに接続してテストするためのプログラムです.
ダウンロード
最新版 github:
https://github.com/sugarsweetrobotics/ControlTest01
ビルド方法
Download ZIPボタンからダウンロードして展開する.
Visual Studio 2013 for Windows Desktopでslnファイルを開き,ビルドして実行する.