|
|
BASICでPIC32を制御しよう! |
|
|
|
- ORANGE pico type Cはファーム書込み済PIC32MX搭載です。
- 電源ONと同時にORANGE BASICが起動します。
- 作成したプログラムをEEPROMに保存し、起動時に自動実行できます。
|
1,000円で実数BASIC |
|
|
|
マイコン回路 |
PIC32MXを使った推奨回路はデータシートに公開されています。
この通りに作成しなくても動作しますが、VCAPに接続する10μFを忘れないでください。
|
|
ORANGE pico type C |
ORANGE pico type Cの回路は非常にシンプルで
ユニバーサルバードやブレッドボードでも簡単に作れます。
自分で部品を集めて制作した場合は、
PIC32MXにファームウェアを書き込む必要があります。
ファームウェアのダウンロードや書込み方法は、
ORANGE pico 資料集(共通)にあります。
|
ORANGE pico type C 回路図 |
クロス開発 |
ORANGE pico type Cとパソコンを接続し、プログラムの転送を行ったり、コンソールとしてキーボードの代わりに操作できます。
接続にはオレンジピコショップで販売している「USBシリアルモジュール+ケーブル」が便利です。
接続は以下の通りです。
USBシリアルモジュール |
マイコン回路(ORANGE pico typeC) |
3.3V |
VDD (JP3の1番ピン) |
TXD |
RXD (JP3の2番ピン) |
RXD |
TXD (JP3の3番ピン) |
GND |
GND (JP3の4番ピン) |
パソコン側のターミナルソフトは以下のように設定します。
通信速度 |
115200bps |
受信改行コード |
CR |
送信改行コード |
CR |
ローカルエコー |
なし |
端末ID |
VT100 |
ターミナルソフトを接続し、CRを送信してOKが返れば接続完了です。
|
|
セルフ開発 |
ORANGE pico type Cのファームはtype Aと共通ですので、テレビやPS/2キーボードを接続することもできます。
接続にはR3(10k)、R4(10k)、R5(560)、R6(240)が必要です。
ORANGE pico type Aの回路図を参照してください。
また、PS/2キーボードとの接続には+5Vが必要ですが、「USBシリアルモジュール+ケーブル」からとることができます。
ORANGE pico type CにテレビやPS/2キーボードを接続するためのシールドも販売中です。
|
|
TFT液晶出力 |
制御するI/Oと競合しない限り、
TFT液晶(ILI9341互換コントローラー搭載品)も使用することができます。
接続はTFT液晶のピン番(1~8)を対応するCPUのピンに接続します。
CPUのピン番号 |
信号 |
TFT液晶のピン番号 |
13 (28) |
VDD |
1(VCC) |
8 (19,27) |
GND |
2(GND) |
26 |
CS |
3(CS) |
5 |
PORT9/RST |
4(RESET) |
21 |
PORT8/DC |
5(DC/RS) |
22 |
PORT7/MOSI |
6(SDI/MOSI) |
25 |
PORT6/SCK |
7(SCK) |
3 |
PORT5 |
8(LED) |
14 |
PORT4 |
9(SDO/MISO) |
ORANGE picoのデフォルトはビデオ出力になっています。
ORANGE picoが起動したら、ターミナルソフト(またはキーボード)から spitft 1と入力してください。
(spitftのパラメーターは2~4も指定できます。それぞれ90度ずつ回転した表示となります。)
リセットがかかり再起動します。
再起動後は、ビデオ出力が無効になりTFT液晶が有効になります。
PORT5がTFT液晶のバックライトを制御します。
spitft 1で再起動されたときに自動でPORTがHIGHになり、バックライトが点灯します。
ビデオ出力/TFT液晶出力の情報は、CPU内部に記憶されますので、
次の再起動時もTFT液晶が有効になります。
ビデオ出力にもどすには spitft 0と入力してください。
|
|
PWM制御の例 |
「ハードウェアの準備】
RGBフルカラーLEDは秋月電子で購入できます。
【接続方法】
OSTA5131A |
ORANGE pico |
1. Pure Green Anode
|
間に220Ωの抵抗を入れて、PORT4(CPUの14番ピン)
|
2. Blue Anode
|
間に75Ωの抵抗を入れて、PORT2(CPUの16番ピン)
|
3. Common Cathode
|
GND(CPUの19番ピンなど) |
4. Red Anode
|
間に220Ωの抵抗を入れて、PORT3(CPUの15番ピン) |
【プログラムのポイント】
最初に一度だけioctrlで指定ポートをPWM制御用に変更します。(第2パラメーターに200を指定します。)
pwmのパラメーターは順に、ポート番号、周波数、デューティー比です。
サンプルぷとグラムでは、周波数は1000Hz固定、デューティー比(0~100%)です。
rnd(101)で0~100の乱数を返します。
|
【サンプルプログラム】
100 RED_LED = 3
110 GREEN_LED = 4
120 BLUE_LED = 2
130 ' ----- init -----
140 ioctrl BLUE_LED, 200
150 ioctrl RED_LED, 200
160 ioctrl GREEN_LED, 200
170 ' ----- PWM control -----
180 control@
190 pwm BLUE_LED, 1000, rnd(101)
200 pwm RED_LED, 1000, rnd(101)
210 pwm GREEN_LED, 1000, rnd(101)
220 pause 500
230 goto control@
|
|
|
I2C通信の例 【LCD ACM1602を使う】 |
【ハードウェアの準備】
I2C接続キャラクタLCDモジュールは秋月電子で購入できます。
【接続方法】
ORANGE picoのI2Cは2chあります。
I2C1はPS/2キーボードに、I2C2はEEPROMに接続されています。
EEPROMのアドレスがLCDモジュールと同じものを使用しますので、
キーボードとの併用をあきらめて、I2C1に接続します。
LCD ACM1602 |
ORANGE pico |
1:VSS
|
GND(CPUの27番ピンなど)
|
2:VDD
|
3.3V(CPUの28番ピンなど)
|
3:Vc
|
4.7kΩを入れて3.3Vに接続 |
4:SCL
|
CPUの17番ピン(4.7kΩでプルアップ) |
5:SDA
|
CPUの18番ピン(4.7kΩでプルアップ)
|
★バックライトに接続していません。
バックライトを有効にする場合の接続方法は
付属のデータシートを参照してください。
|
【サンプルプログラム】
100 CH = 1
110 SLAVE_ADDRESS = &h50
120 cls
130 i2ci CH, 75
140 gosub init@
150 lcd$ = "- ORANGE pico -"
160 gosub display@
170 end
180 ' --- init ---
190 init@
200 i2cw(CH, SLAVE_ADDRESS, "\x00\x01")
210 pause 5
220 i2cw(CH, SLAVE_ADDRESS, "\x00\x38")
230 pause 5
240 i2cw(CH, SLAVE_ADDRESS, "\x00\x0f")
250 pause 5
260 i2cw(CH, SLAVE_ADDRESS, "\x00\x06")
270 return
280 ' --- display ---
290 display@
300 length = len(lcd$)
310 for i = 1 to length
320 s$ = mid$(lcd$, i, 1)
330 s$ = format$("\x80%s", s$)
340 i2cw(CH, SLAVE_ADDRESS, s$)
350 next
360 return
|
|
|
|
|
|
|
|
|
|
|
|