fc2ブログ

STM32F103C8T6で遊ぶ 後編

STM32F103C8T6で遊ぶ 後編 2019年10月15日
ブートローダーを書き込んだら使ってみよう!

STM32F103C8T6と16文字2行表示のLCDを接続してテストを行います。
これも、安価に入手可能なI2C接続のLCDを使い、GNDと3.3V電源間に接続したVR 10KΩの中点をPA3のADCに入力し、
その分圧した電圧値を読み取り、電圧値とサーボ角度の表示及びSERVOモーターの角度を変えるテスト行います。
(準備するもの:STM32F103C8T6、I2C接続の16X2表示LCD、SG90サーボモーター、VR10KB、ジャンパー線等)

接続図1
私は以前から配線図を描くのに水魚堂のBSch3Vを愛用しています。
簡単な回路図から規模の大きな回路図迄、描画の自由度があり、とても重宝しています。
STM32_SERVO_LCD.gif

接続図2
fritzingは使い易くて簡単な電子工作の部品間結線を表現するのに優れています。
STM32_LCD_Servo1.gif

テスト用ソースコード
下記コードをArduino IDEにコピーして下さい。
Arduino IDEのボード設定はGeneric STM32F103C seriesを選択します。

#include "Servo.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 16, 2); //A0,A1,A2 If no jumper is used, the address is 0x27.
int servoPin = PA0; //PWM
int potPin = PA3; //ADC INPUT
Servo servo;

void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("STM32 SERVO TEST");
lcd.setCursor(0, 1);
lcd.print("SERVO ANGLE");
delay(2000);
lcd.clear();
servo.attach(servoPin);
}

void loop() {
lcd.clear();
int angle;
float Voltage;
int reading;
reading = analogRead(potPin); // PA3 Read
angle = (reading/22.7); // 180/4096
Voltage = (reading/1241.21); // 3.3/4096
servo.write(angle); // Servo angle output
lcd.setCursor(0,0); // On the first line
lcd.print("Voltage val:"); // caption title
lcd.print(Voltage); // Input Voltage value
lcd.setCursor(0,1); // On the second line
lcd.print("SERVO ANGLE:"); // caption title
lcd.print(angle); // Input angle value
delay(100);
}


動画をご覧ください。



皆様の参考になれば幸いです。

スポンサーサイト



テーマ : 電子工作
ジャンル : 趣味・実用

STM32F103C8T6ボードで遊ぶ 前編


STM32F103C8T6で遊ぶ 前編 ブートローダーを書き込む方法
2019年10月10日

 安価に入手可能なSTM32F103C8T6 開発ボードですが、通常ブートローダーが書き込まれていないのでオンボードの
マイクロUSBソケットからソースコードの書き込みが出来ません。 そこで、Aruduinoボードと同じようにArduino IDEから
プログラミング出来るように設定する必要が有ります。ブートローダーの書き込み方法を紹介するページが多くありますが、
私が参考にさせて頂いたページが、画像やリンクが充実していて理解し易いのでご紹介します。
参考サイトはCIRCUIT DIGGESTです。ここをクリックすると英文の紹介ページが開きます。

ブートローダーの書き込みに必要な物と結線の方法
Bulupill.jpg
・STM32F103C8T6(BluePill)
 ここでは、青い基板のBluePillを使いましたが、黒い基板のBluckPillでも
 同様にブートローダーが書き込めました。
・ネット接続が出来るパソコン
・USBケーブル
・FTDI USBシリアル変換モジュール
 (変換モジュールのI/O電圧設定は3.3V側にセットします)
・ブレッドボード用ジャンパー線





実体配線図を描くfritzingを試してみました。
STM32_FTDI.gif



次回はブートローダーを書き込んだSTM32F103C8T6にLCDディスプレイと
サーボ―モーターを接続します。


皆様の参考になれば幸いです。

テーマ : 電子工作
ジャンル : 趣味・実用

LEDマトリックスモジュールで遊ぶ メッセージボード後編

WiFiメッセージボードを試す 後編
WiFiモジュールESP8266 WROOM-02とLED Matrix表示器を組み合せたWiFiメッセージボードを
紹介します。使用させて頂いたライブラリーやソースファイルはGitHubからダウンロードできます。
GitHubのページを開きます。

ソースコードの変更箇所について
 先に記したGitHubのMajicDesigns/MD_MAX72XXページを開き、clone or downloadをクリックし、
Download ZIPを選択します。ZIPファイルを解凍した後、AldunoIDEにlibraryをインストールておきます。ここで使わせて頂くソースコードが、3行目のexamplesを開くと1行目の「MD_MAX72XX_Message_ESP8266」です。
「MD_MAX72XX_Message_ESP8266.ino」の変更箇所
ここでは、ESP8266 WROOM-02を使うことを前提にオリジナルの行番号を示し、変更箇所を記します。
13~17行目のESP8266 GPIOの接続先の注釈文を次のように変更します。
13 // Vcc   5V   LED基板Vcc (私の場合、3.3Vレギュレータの電流を抑える
ために敢えて5Vを使用)
14 // GND   GND
15 // DIN   GPIO 13   MOSI
16 // CS    GPIO 15   CS
17 // CLK   GPIO 14   CLK

45行目の#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HWのDevice名をICSTATION又は
FC16に変更します。
45 #define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW又は
45 #define HARDWARE_TYPE MD_MAX72XX::FC16HWに変更します。(使用する基板に合わす)

48~50行目を次のように変更します。
48 #define CLK_PIN 14 // CLK
49 #define DATA_PIN 13 // MOSI
50 #define CS_PIN 15 // CS

58~59行目" "内に使用するWiFiルーターのIDとpasswordを記入します。
58 const char* ssid = "******";
59 const char* password = "******";
351行目に次の1行を追加しました。これは、LEDの輝度をコントロールするための関数で、
私の場合は最小にセットしています。
(明るくし過ぎると消費電流が増えるために輝度を下げています)
351 mx.control(MD_MAX72XX::INTENSITY, 0x00);

使い方
WiFiモジュール基板のマイクロUSBコネクターにUSB電源を接続すると、LED表示器にIPアドレスが
スクロール表示します。このIPアドレスをPCやスマホ・タブレットのブラウザURL検索窓へ書き込み、
エントリーすると次のような画面が表示されます。
注意:LED表示器にアドレスを192.168.011.027等と表示しますが、
前側の0を省いた192.168.11.27を検索窓へ書き込みます。
MessageBox.jpg
Msg:テキストボックスに英数記号を使って文章を入力し、下側のSend Textボタンをクリックすると
WiFiルーターを経由してLED表示器にその文章がスクロール表示されます。
英数記号以外は使えませんがアイデア次第で面白く利用できると思います。

動画をご覧下さい。



皆様の参考になれば幸いです。

テーマ : 電子工作
ジャンル : 趣味・実用

LEDマトリックスモジュールで遊ぶ メッセージボード前編

WiFiメッセージボードを試す 前編
WiFiモジュールESP8266 WROOM-02とLED Matrix表示器を組み合せたWiFiメッセージボードを紹介します。
使用させて頂いたライブラリーやソースファイルはGitHubからダウンロードできます。GitHubのページを開きます。

今回は4×8×8LED Matrix表示器を2個連結してアクリル板をCNC加工したフレームに収めまてみました。
MessageBoard1.jpg

WiFiモジュール基板の回路図
LEDMatrix基板とWiFiモジュール基板を繋ぐだけの簡単な回路です。
今回はソースコードを書き換えて他にも使えるように、書き込みスイッチやUSBシリアル用のコネクターを設けました。
WiFi_Message_Board.gif

小さなユニバーサル基板に組み込んだ回路
ユニバーサル基板を適当な大きさにカットして上記の回路を組み込みました。WROOM-02は両面テープで裏向けに接着。
アドバイス:今回使ったマイクロUSBコネクターは表面実装のため、プラグの抜き差し時に大きな力が掛かると剥がれる
事が有ったので、スズメッキ線で基盤に固定して補強しています。

MessageBoard4.jpg

アクリル板をCNC加工してフレームを作りました。
次のページからDXFファイルをダウンロード出来ます
3㎜厚アクリル板を使ってLEDMatrix基板が入るフレームを作ります。(切削イメージ)
acrylic_panel_3mm.gif

出来上がった前側パネルと後ろ枠をアクリル接着剤で張り合わせます。
MessageBoard6.jpg
後ろ枠側から基板を差し込み、パネル前側からLEDモジュールを差し込むだけです。
MessageBoard5.jpg

2㎜厚アクリル板を使ってフレームの裏蓋とWiFiモジュール基板が入るケースを作ります。(切削イメージ)
acrylic_panel_2mm.gif

5㎜厚アクリル板を加工したスペーサーを介して裏蓋にWiFiモジュール基板を取り付けました。
MessageBoard3.jpg

アクリル板で作ったWiFiモジュール基板のカバーを組み立てて接着します。裏蓋及びカバーはビス止めです。
MessageBoard2.jpg

動画をご覧下さい。




次回はその2、ソースコードの説明と使い方を掲載の予定です。


テーマ : 電子工作
ジャンル : 趣味・実用

プロフィール

CNC_Paradise

Author:CNC_Paradise
木工・彫刻・機械工作・電子工作が
大好きで自作のCNCを使って工作を
楽しんでます。

最新記事
最新コメント
月別アーカイブ
カテゴリ
何でも工作室
検索フォーム
RSSリンクの表示
リンク
QRコード
QR