PIC24F

PICSYS24-STICK

準備中

PIC24FJ64GB002チップ、USBインターフェース、LED2個、スイッチ2個を搭載したMCUモジュールです。組み立て済です。

ネットショップ

PICSYS24-STICK

PICSYS24-CORE+CLCD-BOOSTERのセンサースケッチ

CLCD-BOOSTERのセンサーを利用するスケッチ

PICSYS24-COREに、CLCD-BOOSTERを搭載し、CLCD-BOOSTERに搭載されている温度センサーと光センサーを読み取って、文字LCDに値を出力すると例をPICSYS24でスケッチしてみました。

PICSYS24-COREでCLCD-BOOSTERを利用したスケッチの実行例

上の写真を見てください。ArduinoにCLCD-BOOSTERを乗せたもの???ではありません。ベースのボードが黒く微妙にArduinoと異なってますよね。PICSYS24-COREです。:-)

PICSYS24-CORE

16ビットMCUのPIC24Fを搭載したPICSYSのコンパクトプラットフォームです。
Arduinoのリファレンスボードと同じサイズですが、8ビットMCUを利用しているArduinoに比べて高性能であるだけでなく、RAMの容量もATmega328Pに比べると8倍、Arduino MEGAに比べても2倍の16KBを搭載しており、様々な用途に余裕で対応できます。

ネットショップ:好評発売中

PICSYS24-CORE

グラフィック表示

DUO-GL128-PIC24FのグラフィックLCDは幅128×縦64ドットの表示サイズです。
横軸がX軸、縦軸がY軸で、左下が原点(0, 0)になります。

glcd1.c: グラフィック表示



#include "picsys24.h" void setup() { GLCD_initDefault() ; GLCD_drawRectangle(5, 10, 120, 50, 1) ; GLCD_drawLine(5, 10, 120, 50, 1) ; GLCD_drawLine(5, 50, 120, 10, 1) ; } void loop() { }

スイッチとLED

DUO-GL128-PIC24Fでは、グラフィックLCDの制御に多くの信号線を必要とする一方で、28ピンのPIC24Fでは使える信号線の数が限られているため、グラフィックLCDのデータ線と、スイッチの信号線を兼用する様に設計されています。このため、スイッチが接続されている信号線を単純に読むだけでは、グラフィックLCDのデータと混線してしまうという問題があります。

DUO-GL128-PIC24F用のPICSYSでは、このような問題が生じない様にシステム側で処理したスイッチのデータを読み出すための仮想スイッチを、VSW(n)の様な形式で指定して読み出せる様にしています。

swled1.c: スイッチとLED



#include "picsys24.h" void setup() {

USBディスプレイ

USBで送られてきた文字をUSBにエコーバックするとともに、LCDに表示します。

usbdisp1.c: USBからの文字列をLCDに表示



#include "picsys24.h" void setup() { GLCD_initDefault() ; Serial1_begin(19200) ; } void loop() { int c ; if (Serial1_available()) { c = Serial1_getc(); Serial1_putc(c); GLCD_putc(c) ; if (c == '\r') { Serial1_putc('\n') ;

RCサーボの利用

サーボモータが要求する電流容量などに注意する必要がありますが、DUO-GL128-PIC24FのCN4にはRCサーボ2個を接続できる様に設計されており、CN4コネクタのVCCには、USBバスから得た5Vの電源電圧が供給され、RCサーボを駆動できるようになっています。RCサーボ用の電源はUSBから確保する様に設計されているため、電池駆動時にはRCサーボを利用できないのでご注意ください。

PICSYS24では、4個までのRCサーボを任意のI/Oピンに接続し、制御することができます。
RCサーボの制御は、基本的に2つの操作で行います。例えばRB0ポートにRCサーボを接続した場合、以下の2つの操作を行います。

ビープ音の出力

PICSYS24では、1個の圧電サウンダ(あるいは相当品)を任意のI/Oピンに接続し、ビープ音を出力することができます。
圧電サウンダの制御は、基本的に2つの操作で行います。例えばRB0ポートに圧電サウンダを接続した場合、以下の2つの操作を行います。

  • pinMode(RB(0), OUT_BEEP):RB0にビープ音出力機能を割り当てる
  • digitalWrite(RB(0), 8):RB0の圧電サウンダにそのシステムで出力できる最高の周波数のビープ音を出力させる

ビープ音の出力に必要な継続的な出力処理は、PICSYS24が自動的に行います。
出力する数値が7,6,...と小さくなると、ビープ音の周波数が半分(1オクターブ)づつ下がります。

PWMによるLED表示

LEDの明るさをPWMで制御する実験をします。

PICSYS24では、4個までのPWM出力を任意のI/Oピンに接続し、制御することができます。
PWM出力の制御は、基本的に2つの操作で行います。例えばRB0ポートにLEDなどを接続した場合、以下の2つの操作を行います。

  • pinMode(RB(0), OUT_PWM1):RB0にPWM出力機能の1番目を割り当てる
  • digitalWrite(RB(0), 50):RB0のPWMデューティ比を50%に設定する

PWMパルスの継続的な出力処理は、PICSYS24が自動的に行います。

expwmled1.c: 1個のLEDのPWM制御



#include "picsys24.h"

USBによるシリアル通信

USBで送られてきた文字をUSBにエコーバックするとともに、LCDに表示します。

usbecho1.c: USBのエコーバックプログラム



#include "picsys24.h" void setup() { GLCD_initDefault() ; Serial1_begin(19200) ; // USBの初期化、COMポート的には19200ボーに設定 } void loop() { char c ; if (Serial1_available()) { c = Serial1_getc(); Serial1_putc(c); if (c == '\r')
コンテンツ配信