準備中
PIC24FJ64GB002チップ、USBインターフェース、LED2個、スイッチ2個を搭載したMCUモジュールです。組み立て済です。
ネットショップ
PICSYS24-STICK
PICSYS24-COREに、CLCD-BOOSTERを搭載し、CLCD-BOOSTERに搭載されている温度センサーと光センサーを読み取って、文字LCDに値を出力すると例をPICSYS24でスケッチしてみました。
PICSYS24-COREでCLCD-BOOSTERを利用したスケッチの実行例
上の写真を見てください。ArduinoにCLCD-BOOSTERを乗せたもの???ではありません。ベースのボードが黒く微妙にArduinoと異なってますよね。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()
{
}
DUO-GL128-PIC24Fでは、グラフィックLCDの制御に多くの信号線を必要とする一方で、28ピンのPIC24Fでは使える信号線の数が限られているため、グラフィックLCDのデータ線と、スイッチの信号線を兼用する様に設計されています。このため、スイッチが接続されている信号線を単純に読むだけでは、グラフィックLCDのデータと混線してしまうという問題があります。
DUO-GL128-PIC24F用のPICSYSでは、このような問題が生じない様にシステム側で処理したスイッチのデータを読み出すための仮想スイッチを、VSW(n)の様な形式で指定して読み出せる様にしています。
swled1.c: スイッチとLED
#include "picsys24.h"
void setup()
{
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') ;
サーボモータが要求する電流容量などに注意する必要がありますが、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つの操作を行います。
ビープ音の出力に必要な継続的な出力処理は、PICSYS24が自動的に行います。
出力する数値が7,6,...と小さくなると、ビープ音の周波数が半分(1オクターブ)づつ下がります。
LEDの明るさをPWMで制御する実験をします。
PICSYS24では、4個までのPWM出力を任意のI/Oピンに接続し、制御することができます。
PWM出力の制御は、基本的に2つの操作で行います。例えばRB0ポートにLEDなどを接続した場合、以下の2つの操作を行います。
PWMパルスの継続的な出力処理は、PICSYS24が自動的に行います。
expwmled1.c: 1個のLEDのPWM制御
#include "picsys24.h"
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')