このページの目次
ショップ
- STM32F072-MINI
- STM32F303-MINI
取扱説明書
- 準備中
製品概要
マイクロコントローラーに要求される性能や機能の向上を背景に、ARM Cortex-M シリーズをコアとした STM32 が広く利用されるようになってきました。
STM32F072-MINIはARMCortex-M0をコアとする STM32F072CBT6、STM32F303-MINIはARMCortex-M4 をコアとするSTM32F303CBT6を搭載し、ブレッドボード上で IoT 機器の開発や実験を手軽に行うための開発ボードとして開発されました。STM32F072-MINIは開発ボードに要求される代表的な機能をバランスよく搭載した開発ボードとなっています。一方、STM32F303-MINIはデジタル処理の性能や容量を高めるとともに、高機能なアナログ機能を統合した開発ボードとなっています。STM32F072-MINIとSTM32F303-MINIは、STM32 を使用し様々な応用に取り組みたい人に最適な開発ボードです。
STM32-MINIは以下のような特徴を持っています。
- STM32F072-MINIはSTM32F072CBT6(48MHz, 128KFLASH, 16KRAM)を、STM32F303-MINIはSTM32F303CBT6(72MHz, 128KFLASH, 32KRAM)を搭載しています。
- STM32F303-MINIは、4つのオペアンプ(PGA)を内蔵しています。
- 単色のLED2個の他にWS2812B タイプのカラー LEDを1個を搭載しています。
- OLED ディスプレイ (別売: www.amazon.co.jp/dp/B0CP46CSWV/ )を接続する端子を装備しており、グラフィックスや文字の表示を行うことができます。
- Arduino IDE でプログラム(スケッチ)を開発できます。
- 開発ボードへのファームウェア等の書き込みは、USB 接続で STM32CubeProgrammer を使用して行うことができます。
- ドロップアウトが 300mV と少ない 800mA の電圧レギュレータを搭載し、STM32F072CBT6/STM32F303CBT6に安定した電源を供給できます。
Arduinoプログラミング
LEDの点滅
STM32-MINIに搭載されているLED1,LED2を交互に点灯させる例です。
void setup() {
pinMode(PA13, OUTPUT); // LED1
pinMode(PA14, OUTPUT); // LED2
}
void loop() {
digitalWrite(PA13, HIGH);
digitalWrite(PA14, LOW);
delay(1000);
digitalWrite(PA13, LOW);
digitalWrite(PA14, HIGH);
delay(1000);
}
カラーLED
STM32-MINIにはWS2812タイプのカラーLEDが搭載されています。そのカラーLEDの点灯例です。
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel strip(1, PC14, NEO_GRB + NEO_KHZ800);
int color[][3] = {
{255,0,0},
{255,255,0},
{0,255,0},
{0,255,255},
{0,0,255},
{255,0,255},
{0,0,0},
{255,255,255},
};
void setup() {
strip.begin();
strip.setBrightness(50);
strip.show();
}
void loop() {
static int idx = 0 ;
strip.setPixelColor(0, strip.Color(color[idx][0], color[idx][1], color[idx][2]));
strip.show();
idx++ ;
idx %= 8 ;
delay(1000) ;
}
OLEDディスプレイ
CN2にI2C制御のOLED(別売り)を接続して文字や図形で様々な情報を表示することができます。以下の例は文字の表示例です。
STM32は使用するI2C信号によっては、Wire(I2C)もしくはI2Cを使用した周辺機器の初期化を行う前に、I2Cの接続に使用する信号線を指定する必要がありますが、CN2のI2C1(PB6,PB7)はWireのデフォルトに設定されており追加設定なしで使用できます。
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup(void) {
// Wire.setSCL(PB6) ; // I2C1はWireのデフォルトなので設定が必要ない
// Wire.setSDA(PB7) ;
u8g2.begin();
u8g2.setFont(u8g2_font_6x10_tf);
// u8g2.setFontRefHeightExtendedText();
u8g2.setDrawColor(1);
u8g2.setFontPosTop();
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2_ascii_1();
u8g2.sendBuffer();
}
void loop() {
delay(1000) ;
}
void u8g2_ascii_1() {
char s[2] = " ";
uint8_t x, y;
for( y = 0; y < 6; y++ ) {
for( x = 0; x < 16; x++ ) {
s[0] = y*16 + x + 32;
u8g2.drawStr(x*7, y*10, s);
}
}
}
回路図
関連製品
SENSOR-BITS3
STM32-MINIに加速度、ジャイロ、温度、湿度、照度のセンサーを追加し、機能を強化します。