BASICPIC32制御しよう!   
 
  • 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番ピン)

パソコン側のターミナルソフトは以下のように設定します。
通信速度 1152000bps 
受信改行コード 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キーボードを接続するためのシールドも販売中です。

ORANGE pico type C専用ビデオシールド基板
オレンジピコショップで販売中
 
 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