導入編

2第章

USB 2.0 デバイス/ホスト，デッド・バンド生成機能付きPWM， 1DMA，直交エンコーダ入力内蔵

Theパワフル・マイコン
Stellaris LM3S3748
渡辺 明禎

Akiyoshi Watanabe
本章では，付属マイコン・ボードの仕様と USB ブス テ ラ リ スートローダについて説明します． また，「Stellaris って何？ LM3S3748ってどんなマイコン？」といった疑問にもお答えします．

Stellaris ファミリとLM3S3748 マイコン
● Stellaris は ARM Cortex M3 コ ア の 32 ビット・マイコン・ファミリ
付属マイコン・ボードに搭載されている LM3S3748
は， テキサス・ インスツルメンツの Stellaris ファミリの一製品です．
ア ー ム コーテックス
Stellaris ファミリは，ARM Cortex M3， またはARM Cortex M4F を採用した同社の 32 ビット・マ
イコン・ ファミリで， 世界で初めて ARM Cortex
M3 コアをシリコンに実装しました．原稿執筆時点では 284 種類ほどあり， 表 1 のラインアップで構成されています． 価格は 130 円〜と 32 ビット・ マイコンとしては非常に低価格です．

● LM3S3748 は USB デバイス / ホスト機能付きマ
イコン
付属マイコン・ ボードの LM3S3748（IQC50A0SD）
は，Stellaris ファミリの 3000 シリーズです． その概略仕様を表 2 に示します．
LM3S3748 は USB 機能が強化されており， 図 1 に示す内部ブロック図のように，32 ビット RISC CPUの ARM Cortex M3 をコアに，多くの周辺モジュールを内蔵しています．LM3S3748 のピン配置は付属マ
イコン・ボードの回路図（図 3）を参照してください．
USB デバイス / ホスト・ モジュールは，USB 2.0準拠のフル・ スピード（12 Mbps）， ロー・ スピード
（1.5 Mbps）動作に，転送形式はコントロール，インタラプト，バルク，アイソクロナスに対応しています．
また， エンドポイントの数は 8 で，FIFO 容量は 4 Kバイトです．
各周辺モジュールを使うためのドライバ・ライブラ
リ StellarisWare が ROM に内蔵されているので， このライブラリを使うことで高度なアプリケーションを簡単に開発できます．

表 1 Stellaris ファミリのラインアップ（付属マイコン・ ボードの LM3S3748 は ARM Cortex‑M3 マイコンの3000 シリーズ）
CPU コアARM Cortex‑M3
型番：LM3Sxxxxシリーズ

用

途

100/300/600/800 シリーズ

汎用1000 シリーズ

汎用，ハイバネーション・モジュール付き2000 シリーズ

CAN マイコン

3000 シリーズ

USB マイコン

5000 シリーズ

USB+CAN インターネットワーキング・マイコン

6000 シリーズ

イーサネット・マイコン

8000 シリーズ

イーサネット +CAN インターネットワーキング・マイコン

9000 シリーズ

イーサネット +USB+CAN インターネットワーキング・マイコン

110 シリーズ

汎用

230 シリーズ

34567891011121314
付録

ARM Cortex‑M4F 120 シリーズ
型番：LM4Fxxxx 130 シリーズ

2

USB デバイス・マイコン
USB OTG/ ホスト / デバイス・マイコン
モーション・コントロール＋ USB OTG/ ホスト / デバイス・マイコン

Stellaris ファミリと LM3S3748 マイコン

19

導入編

3

第注目のCライクな組み込み機器用スクリプト言語

章

Pawnの環境構築とプログラミング

2
3

兵頭 和人

Kazuhito Hyodo

Pawn とはPawn 言語は，CompuPhase 社によって開発されている組み込み機器用スクリプト言語（1）で， 下記の特徴を持っています．
（1）C 言語に似ている（2）可能な限り ANSI C で記述しているため，移植性が高い（3）C言語やC++言語で記述された関数（native functions）を組み込むことが容易である
Pawn 言語は， 拡張性の高さから恐竜型ロボット（3）
Pleo（2），やマルチプレーヤ・ゲーム SA : MP（4）など，さまざまなシステムで使用されています（5）．
Pawn は ス ク リ プ ト 言 語 に 分 類 さ れ て い ま す が，Pascal 言語や Java 言語や C# 言語と同様に， プログ1

ラムのソース・コードを中間コードに変換する「コンパイラ」と中間コードを実行する「仮想マシン」とで構成されています．
また，文法上のエラーはコンパイラによってチェックを行い， 実行時のエラー（配列境界違反，0 での除算，未定義関数の使用など）は仮想マシンでチェックを行うため，より安全かつ手軽にロボットを動作させることができます．
本書で使用するプログラミング・ システムを図 1に示します．このシステムでは，PC 上で動作するアプリケーションで Pawn のプログラムの編集やコンパイルを行い，コンパイル後の中間コードを付属マイコン・ボード上で動作している Pawn の仮想マシンに転送してロボットを動作させています．
また，Pawn 言語自体には LM3S3748 の周辺モジュールを利用する機能は含まれていないので，付属マイ45678910PC
簡易開発環境アプリケーション

付属マイコン・ボード

11
LM3S3748

ソース

GPIO

ADC

12

QEI

Pawn 仮想マシン
バイト・コード

図1

Pawn
コンパイラ

PWM

CDC

UART

13
Float

14
付録

インクルード・ファイル

SSI

スクリプト言語 Pawn を使ったプログラミング・システムの構成

Pawn とは

33

入門編

4

第章

LEDの点灯とスイッチ入力でウォーミングアップ

Pawnで
2
外部機器をコントロール 3
林原 靖男

Yasuo Hayashibara
付属マイコン・ボードを使用して，まずは最も簡単な外部機器の制御をしてみましょう．制御対象は，出力として LED， 入力としてプッシュ・ スイッチを使用します．

汎用入出力ポート（GPIO）を使用した LED の点灯
LED はよく知られているように低消費電力なので，マイコンの汎用出力ポートから直接駆動することができます．
付属マイコン・ボードには，すでに汎用入出力ポート PG2 に LED が取り付けられているので，これを点灯させます．

● LED の点灯プログラム
では，実際にプログラムで LED の点灯を確認しま
しょう．LED を点灯する Pawn プログラムをリスト１に示します．
ここで参考までに，StellarisWare を使用して同じプログラムを C 言語で記述すると， リスト 2 のようになります．比較すると Pawn のプログラムは初期設
定を省いているため，簡単に記述できることが分かります．
プログラムを少し解説します．このプログラムは汎用出力ポート PG2 を High にします．PG2 には，LED=3.3V● LED を点灯する回路
LED を点灯する回路を図 1 に示します．LED は通常のダイオードと同様に，ある値以上の電圧を加えないと電流が流れ始めません．これを順電圧と呼びます．
また，LED に電流が流れすぎないように， 直列に保護抵抗を入れます．
付属マイコン・ボードでは，LED（LG N971）に 330 Ωの抵抗が直列に入っています．各部の電圧，電流は図2 のようになります．LM3S3748 の汎用出力ポートは，VH ＝ 2.4 V 時 の 最 小 出 力 電 流 を 2 mA, 4 mA, 8 mAの三つから選択できるようになっています．LED には 3 mA 流すので，4 mA を選択します．

マイコン内部の電圧降下=0.3V 程度

567810PG2

約 3mA
LG N971

データシートから=1.95V 時の3V

1.95V

≒3mA

図 2 付属マイコン・ボードの LED 周辺回路と各部の電圧，電流

LED を点灯させるプログラム（Pawn）#include <cq_arm>
main(){
SetDefaultConfig(); // 初期化
GPIOWrite(PG2 , ON); // LED の端子に High を出力}

汎用入出力ポート（GPIO）を使用した LED の点灯

11121314
付録

LED の点灯回路494mAドライブに設定

1.05=≒330Ω 1.05V
3×10-3

リスト 1

図1145

応用編

14

第章

UVCビデオ・クラス・ドライバを作成！

1

USBウェブ・カメラを繋いで 2
画像処理にチャレンジ3
田村 修

Osamu Tamura
LM3S3748 の内蔵 USB モジュールは， デバイス機能だけでなくホスト機能も持っています． この USB
ホスト機能を使うと，USB ウェブ・ カメラを接続して画像を取り込むことができます．
本章では，USB ホスト・ アプリケーションの開発方法や USB ホストのビデオ・クラス・ドライバの構造，画像を制御に応用する方法について解説します．

USB ホスト機能のメリット● USB デバイスをマイコンの入出力に使える
ここ数年， 比較的小規模のマイコンにも，USB インターフェース・モジュールを内蔵するものが増えてきました．これらの多くは USB デバイスとして機能

USB

マウス
（a）USB デバイス

USBウェブ・カメラ（b）USB ホスト

図1

USB デバイスと USB ホストの違い

表1

USB ホスト機能に接続できるデバイスするもので， ライブラリを利用すれば，PC の USBポートに接続するデバイスを構成できます．例えば，マウスやキーボード，メモリ，あるいはセンサを接続してログを PC に送る，PC から装置を制御する， などです．
この USB デバイス機能とともに， 最近では USBホスト機能を持ったマイコンも普及し始めています．
USB ホストとは， デバイスとは逆に， さまざまなUSB デバイスを接続するための機能です．PC 側のUSB インターフェースに相当するもので， 世に出回る数多くの USB デバイスを自らの手足としてシステムに取り込むことができます．これまで手間をかけて作り込んでいた機能が，USB 経由の外部モジュールとして，小規模の組み込み機器にも手軽に実装できるようになります（図 1）．
USB デバイス機能に隠れてやや影が薄い感もありますが，マイコンが USB ホストになることで，デバイスとはまったく異なる次元の能力が得られるという
こ と を ぜ ひ 理 解 し て く だ さ い． 本 書 で 活 用 す る
LM3S3748 は， まさにこの USB ホスト機能を備えたマイコンなのです．
● ビデオ・クラス・ドライバを実装し USB ウェブ・カメラを繋ぐUSB ホスト機能に接続できるデバイスはさまざまです（表 1）．LM3S3748 では USB 規格のフル・ スピード転送（12 Mbps）までサポートしているので， ハデバイス例

クラス転送

ドライバ

サンプル・コード

マウス / キーボード / ジョイスティック

HID

インタラプト○○Storageバルク○○

USB メモリ

Audio

アイソクロナス○×

ウェブ・カメラ

Vendor/Videoバルク，アイソクロナス

××

すべて

××

BluetoothWireless Controller

567891011121314
付録

オーディオ入出力

4※ドライバ，サンプル・コードは StellarisWare に含まれるもの

USB ホスト機能のメリット

119

付録A

ロボット台車メカニズムの製作
林原 靖男

123Yasuo Hayashibara

ロボットのメカニズムの製作について解説します．
ちなみに，一般的なロボットのメカニズム開発では，まず①製図を行い，②部品を加工して，③組み合わせるという作業を行います．
今回は，電子電気回路を中心とした解説を行うので，メカニズムに関しては，市販で購入できるものを組み合わせて製作します．近年は，ロボット・コンテストなどが盛んに行われるようになったことで，いろいろな部品が入手できるようになってきました．

写真 A

ユニバーサル・プレートのカット位置● ユニバーサル・プレート
部品をマウントする（取り付ける）ベースとなる部品です．カットして使用します．
① 定規とカッターで溝を作る
気を付けるのは，カッターで切るのではなく溝を作るだけです．135 mm×110 mm（穴の数では，26 個目× 22 個目）のところにカッターで溝を作ってください（写真 A）．
② 机のへりに溝の部分を合わせて，両手で上から一気に押し込み折る
応力を集中させることで破断を発生させます（写真B）． 鋭い傷があると， 力はその点に集中的に加わるようになります．ひび割れがあるものは，その部分からパキッと折れたりしますが，それを応用したものです．逆に，メカニズムを設計するときには，応力集中が発生しないように，応力がうまく分散するように設計します．
③ RC サーボモータ取り付け用切り欠きの追加工
さらに，カットしたユニバーサル・プレートに RCサーボモータを取り付けるために追加工します．写真
C が，RC サーボモータを取り付けたようすです．RC
サーボモータの軸が中央に位置するように切り欠きを作ってください． また， 写真 D に切断する個所を示

4567891011121314
付録

写真 B

力を加えて折っているようす

ユニバーサル・プレート

131このPDFは，CQ出版社発売の「超入門! 付属ARMマイコンで始めるロボット製作」の一部見本です．
内容・購入方法などにつきましては以下のホームページをご覧下さい．
内容
http://shop.cqpub.co.jp/hanbai//books/MTR/MTRZ201204.htm
購入方法
http://www.cqpub.co.jp/hanbai/order/order.htm