. JoyStick)の使い方、つなぎ方、動作原理等を回路図も使って詳しく解説 | ロジカラブログ
JoyStick)の使い方、つなぎ方、動作原理等を回路図も使って詳しく解説 | ロジカラブログ
JoyStick)の使い方、つなぎ方、動作原理等を回路図も使って詳しく解説 | ロジカラブログ

ジョイスティック(JoyStick)の使い方、つなぎ方、動作原理等を回路図も使って詳しく解説

各コンデンサの効果について・セラミックコンデンサ 通称「パスコン」と呼ばれるもので、「バイパスコンデンサ」の略です。 マイコンボードの電源両端(できるだけ近く)に接続し、外部回路からのノイズをバイパスして逃します。 サーボモーターのブラシから発生するノイズ等がマイコンボードへ侵入することを防止してノイズによる誤動作を防止します。 電解コンデンササーボモーターが動作する時や反転動作する時には大きな電流(起動電流や突入電流という)が流れます。この電流によってマイコンボードの電圧が低下するため、マイコンボードがリセットされたり、サーボが止まったり暴走して暴れたりします。電解コンデンサには電圧を蓄えることができ、マイコンボードの電源両端に接続することで突入電流による電圧低下を軽減することができます。

コンデンサを付けても、あまり激しく動かし続けると動作しなくなることがあります。この場合はサーボ用の別電源を準備しましょう。 ・アナログ出力仕様 配線図 ジョイスティックには「+5V」と書いてあっても「M5StickC Plus」の入力端子電圧仕様は3.3Vのため、ジョイスティックの電源には「3.3V」を接続しましょう。 動作確認

ジョイスティックを操作すると液晶画面に各軸のA/D変換値「X:, Y:」の「0〜4095」と動作角度「Xr:, Yr:」の「0〜180°」が表示されます。スティックを押し込むと「Press:」が0から1になります。

・シリアル出力(I2C)仕様 配線図 動作確認

ジョイスティックを操作すると液晶画面に各軸の座標データ「X:, Y:」の「0〜255」と動作角度「Xr:, Yr:」の「0〜180°」が表示されます。スティックを押し込むと「Press:」が0から1になります。

ものによって変わるとは思いますが、今回使ったものの比較では斜めで最大角度まで動作させたい場合は「アナログ出力仕様」上下左右に細かな調整をしたい場合は「シリアル通信仕様」と使い分けるのが良さそうです。

6.サンプルプログラム(コピペ)

プログラムは以下に準備しましたので「コピペ」して書き込んでください。アナログ出力仕様はこの下、シリアル通信(I2C)仕様はさらに下にあります。※コピーは下コード(黒枠)内の右上角にある小さなアイコンのクリックでもできます。

・アナログ出力仕様 #include // ヘッダーファイル // 変数宣言 float x_data; // ジョイスティックX軸 float y_data; // ジョイスティックY軸 int press; // ジョイスティック押し込みボタン float setting[16][5]; // チャンネル[0〜15]ごとの[周波数, bit数, 0゜パルス時間ms, 最大角度パルス時間ms, 最大動作角度]格納配列 float x_angle; // X軸角度指示値 float y_angle; // Y軸角度指示値 float duty_angle; // X軸角度初期値 float duty_y_angle; // Y軸角度初期値 float read_x_angle; // X軸角度現在値 float read_y_angle; // Y軸角度現在値 int cnt = 0; // カウント用 /******************* PWM出力、サーボ仕様設定関数 *******************/ void servo_set(int pin, int channel, float freq, float bit_num, float time_min, float time_max, float angle_max) < // サーボ設定値をチャンネルごとの配列に格納 setting[channel][0] = freq; // 周波数 setting[channel][1] = bit_num; // bit数 setting[channel][2] = time_min; // 0゜パルス時間ms setting[channel][3] = time_max; // 最大角度パルス時間ms setting[channel][4] = angle_max; // 最大動作角度 // PWM設定 pinMode(pin, OUTPUT); // PWM用ピンを出力設定 ledcSetup(channel, freq, bit_num); // PWM設定(チャンネル, 周波数, ビット数) ledcAttachPin(pin, channel); // PWMチャンネル割り当て(ピン番号, チャンネル) >/******************* サーボ動作実行関数 *******************/ float servo(int channel, float angle) < float resolution; // 分解能 float period; // 周期ms float duty_min; // 0゜Duty計算値 float duty_max; // 最大角度Duty計算値 float duty_active; // 動作範囲のDuty計算値 int duty_value; // PWM出力Duty値(High状態)※整数型として小数点以下切り捨て float read_angle; // PWM出力Duty値からの角度換算 // サーボ定数算出 resolution = pow(2, setting[channel][1]); // 分解能(2のbit数乗) period = 1000 / setting[channel][0]; // 周期(1000ms / 周波数) duty_min = (resolution / period) * (setting[channel][2]); // 0゜Duty計算値((分解能/周期)*0゜パルス時間μs) duty_max = (resolution / period) * (setting[channel][3]); // 最大角度Duty計算値((分解能/周期)*最大角度パルス時間μs) duty_active = duty_max - duty_min; // 動作範囲のDuty計算値 duty_value = (angle * (duty_active / setting[channel][4])) + duty_min; // 角度指定値(浮動小数点数) → PWM出力Duty値(整数)換算 if (duty_value // PWM出力実行 ledcWrite(channel, duty_value); // 指定したチャンネルにDuty値を指定してPWM出力実行 read_angle = (ledcRead(channel) - duty_min) * setting[channel][4] / duty_active; // PWM出力Duty値を取得して角度に換算 return read_angle; // 角度を返す > // 初期設定 ---------------------------------------------------------- void setup() < M5.begin(); // 本体初期化 // アナログ入力設定 pinMode(32, ANALOG); //アナログ入力 pinMode(33, ANALOG); //アナログ入力 // G36とG25は同時使用不可。使っていない方は以下のようにフローティング入力にする gpio_pulldown_dis(GPIO_NUM_36); gpio_pullup_dis(GPIO_NUM_36); // 入力設定 pinMode(0, INPUT_PULLUP); //入力設定(プルアップ) // PWM出力、サーボ仕様設定(サーボごとに使用する端子、チャンネル等を設定) // PWM出力のチャンネルは 0,1/ 2,3/ 4,5/ 6,7/ 8,9/ 10,11 /12,13 /14,15でペア ※周波数と分解能はペアで同じにする必要があります。 // (出力端子, チャンネル, 周波数, bit数, 0゜パルス時間ms, 最大角度動作時間ms, 最大動作角度) servo_set(26, 1, 50, 12, 0.5, 2.4, 180); // チャンネル1(X軸):PWM出力、サーボ仕様設定関数呼び出し servo_set(25, 2, 50, 12, 0.5, 2.4, 180); // チャンネル2(Y軸):PWM出力、サーボ仕様設定関数呼び出し // LCD表示設定 M5.Lcd.setTextFont(4); // フォント設定 M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextColor(WHITE, BLACK); // 背景、文字色 >// メイン処理 -------------------------------------------------------- void loop() < M5.update(); // ボタン状態更新 // A/D変換、角度換算処理 x_data = analogRead(32); // アナログ電圧をデジタル値に変換して取得(0〜4095) x_angle = 180 - (x_data * (180.0 / 4095.0)); //角度へ換算(動作反転) y_data = analogRead(33); // アナログ電圧をデジタル値に変換して取得(0〜4095) y_angle = y_data * (180.0 / 4095.0); //角度へ換算 // サーボ動作指定(戻り値として角度を取得) read_x_angle = servo(1, x_angle); // チャンネル1:サーボ動作実行関数呼び出し(チャンネル, 角度値) read_y_angle = servo(2, y_angle); // チャンネル2:サーボ動作実行関数呼び出し(チャンネル, 角度値) // スティック押し込みボタン検出 if (digitalRead(0)) < // スティックが押されたら press = 0; // pressを1 >else < // 押されてなければ press = 1; // pressを2 >// 液晶表示 if (cnt == 30) < // カウント30ごとに液晶表示更新 M5.Lcd.setCursor(0, 0); // 座標指定 M5.Lcd.println(" JoyStick"); // 項目表示 M5.Lcd.printf("X : %3.0f \n", x_data); // X軸アナログ値 M5.Lcd.printf("Y : %3.0f \n", y_data); // Y軸アナログ値 M5.Lcd.printf("Press : %d \n\n", press); // 押し込みボタン状態表示 M5.Lcd.printf("Xr : %3.1f' \n", read_x_angle); // x軸角度 M5.Lcd.printf("Yr : %3.1f' \n", read_y_angle); // y軸角度 cnt = 0; // カウントリセット >cnt++; // カウント +1 delay(10); // 遅延時間 > ・シリアル通信(I2C)仕様 #include // ヘッダーファイル // 変数宣言 float x_data; // ジョイスティックX軸 float y_data; // ジョイスティックY軸 int press; // ジョイスティック押し込みボタン float setting[16][5]; // チャンネル[0〜15]ごとの[周波数, bit数, 0゜パルス時間ms, 最大角度パルス時間ms, 最大動作角度]格納配列 float x_angle; // X軸角度指示値 float y_angle; // Y軸角度指示値 float duty_angle; // X軸角度初期値 float duty_y_angle; // Y軸角度初期値 float read_x_angle; // X軸角度現在値 float read_y_angle; // Y軸角度現在値 int cnt = 0; // カウント用 /******************* PWM出力、サーボ仕様設定関数 *******************/ void servo_set(int pin, int channel, float freq, float bit_num, float time_min, float time_max, float angle_max) < // サーボ設定値をチャンネルごとの配列に格納 setting[channel][0] = freq; // 周波数 setting[channel][1] = bit_num; // bit数 setting[channel][2] = time_min; // 0゜パルス時間ms setting[channel][3] = time_max; // 最大角度パルス時間ms setting[channel][4] = angle_max; // 最大動作角度 // PWM設定 pinMode(pin, OUTPUT); // PWM用ピンを出力設定 ledcSetup(channel, freq, bit_num); // PWM設定(チャンネル, 周波数, ビット数) ledcAttachPin(pin, channel); // PWMチャンネル割り当て(ピン番号, チャンネル) >/********************** サーボ動作実行関数 **********************/ float servo(int channel, float angle) < float resolution; // 分解能 float period; // 周期ms float duty_min; // 0゜Duty計算値 float duty_max; // 最大角度Duty計算値 float duty_active; // 動作範囲のDuty計算値 int duty_value; // PWM出力Duty値(High状態)※整数型として小数点以下切り捨て float read_angle; // PWM出力Duty値からの角度換算 // サーボ定数算出 resolution = pow(2, setting[channel][1]); // 分解能(2のbit数乗) period = 1000 / setting[channel][0]; // 周期(1000ms / 周波数) duty_min = (resolution / period) * (setting[channel][2]); // 0゜Duty計算値((分解能/周期)*0゜パルス時間μs) duty_max = (resolution / period) * (setting[channel][3]); // 最大角度Duty計算値((分解能/周期)*最大角度パルス時間μs) duty_active = duty_max - duty_min; // 動作範囲のDuty計算値 duty_value = (angle * (duty_active / setting[channel][4])) + duty_min; // 角度指定値(浮動小数点数) → PWM出力Duty値(整数)換算 if (duty_value // PWM出力実行 ledcWrite(channel, duty_value); // 指定したチャンネルにDuty値を指定してPWM出力実行 read_angle = (ledcRead(channel) - duty_min) * setting[channel][4] / duty_active; // PWM出力Duty値を取得して角度に換算 return read_angle; // 角度を返す > // 初期設定 ---------------------------------------------------------- void setup() < M5.begin(); // 本体初期化 Wire.begin(32, 33); // Grove端子をI2C設定(SDA, SCL) // PWM出力、サーボ仕様設定(サーボごとに使用する端子、チャンネル等を設定) // PWM出力のチャンネルは 0,1/ 2,3/ 4,5/ 6,7/ 8,9/ 10,11 /12,13 /14,15でペア ※周波数と分解能はペアで同じにする必要があります。 // (出力端子, チャンネル, 周波数, bit数, 0゜パルス時間ms, 最大角度動作時間ms, 最大動作角度) servo_set(26, 1, 50, 12, 0.5, 2.4, 180); // チャンネル1(X軸):PWM出力、サーボ仕様設定関数呼び出し servo_set(25, 2, 50, 12, 0.5, 2.4, 180); // チャンネル2(Y軸):PWM出力、サーボ仕様設定関数呼び出し // LCD表示設定 M5.Axp.ScreenBreath(9); // 液晶画面明るさレベル(標準12) M5.Lcd.setTextFont(4); // フォント設定 M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextColor(WHITE, BLACK); // 背景、文字色 >// メイン処理 -------------------------------------------------------- void loop() < // ジョイスティックI2Cデータ取得 Wire.requestFrom(0x52, 3); // I2Cデータ取得(アドレス、バイト数) while (Wire.available()) < // 受信データがあれば x_data = Wire.read(); // X軸アナログ値取得(0〜255) y_data = Wire.read(); // Y軸アナログ値取得(0〜255) press = Wire.read(); // 押し込み時ボタン状態取得(true/false) >// ジョイスティック座標-角度換算 x_angle = map(x_data, 0, 255, 0, 180); // X軸 - 角度換算 y_angle = map(y_data, 0, 255, 0, 180); // Y軸 - 角度換算 // サーボ動作指定(戻り値として角度を取得) read_x_angle = servo(1, x_angle); // チャンネル1:サーボ動作実行関数呼び出し(チャンネル, 角度値) read_y_angle = servo(2, y_angle); // チャンネル2:サーボ動作実行関数呼び出し(チャンネル, 角度値) // 液晶表示 if (cnt == 30) < // カウント30ごとに液晶表示更新 M5.Lcd.setCursor(0, 0); // 座標指定 M5.Lcd.println(" JoyStick"); // 項目表示 M5.Lcd.printf("X : %3.0f \n", x_data); // X軸アナログ値 M5.Lcd.printf("Y : %3.0f \n", y_data); // Y軸アナログ値 M5.Lcd.printf("Press : %d \n\n", press); // 押し込みボタン状態 M5.Lcd.printf("Xr : %3.0f' \n", read_x_angle); // x軸角度 M5.Lcd.printf("Yr : %3.0f' \n", read_y_angle); // y軸角度 cnt = 0; // カウント0リセット >cnt++; // カウント +1 delay(10); // 遅延時間 >

7.サンプルプログラムの詳細

・サーボの制御

「RCサーボ」の制御については以前も紹介しましたが、PWM制御とサーボの設定を行う「 servo_set ()」関数、サーボ動作を実行する「 servo ()」関数を準備して制御しています。

15行目 〜 26行目 が「 servo_set ()」関数です。ここで、チャンネルごとに各サーボの仕様に合わせたPWM制御の初期設定を行っています。

28行目 〜 52行目 が「 servo ()」関数です。ここで、指定されたサーボのチャンネルと動作角度からPWM制御の「Duty比」を算出してPWM制御でサーボの動作を実行します。さらに、戻り値として角度を返すようにしているため、メイン処理内で指定した変数に角度の値を格納して使用できます。

PWM制御とは?Arduino(ESP32)コマンドで使い方を詳しく紹介 PWM制御の基本動作からArduinoコマンドを使ったプログラミング方法、サンプルプログラムを使用して音(ブザー)と光(LED)で動作確認しながら使い方を詳しく紹介します。 logikara.blog RCサーボモータとは、使い方と簡単制御方法(Arduinoコマンド、ライブラリ不要)の紹介 ラジコンの駆動部等に使用されるRCサーボについての簡単な制御方法をサンプルプログラムで詳しく紹介します。ATOM LITE使用(M5Stack社製ESP32系マイコンボード) logikara.blog ・ジョイスティックの制御(アナログ出力仕様)

アナログ出力仕様のサンプルプログラムの 56行目 〜 63行目 でジョイスティックからのアナログ出力を接続するためのアナログ入力端子の設定と、スティックを押し込んだ時のON/OFFスイッチを接続する入力端子の設定を行なっています。

78行目 〜 82行目 でジョイスティックからのアナログ電圧をデジタル値に変換して取得(0〜4095)しサーボの動作角度に換算しています。

85行目 〜 86行目 で、使用するサーボの「チャンネル」と「動作角度」を指定して「 servo_set ()」関数を呼び出し、サーボの動作を実行します。

88行目 〜 92行目 ではスティックを押し込んだ時のボタンのON/OFF状態を取得しています。

・ジョイスティックの制御(シリアル通信(I2C)仕様)

シリアル通信(I2C)仕様のサンプルプログラムの 56行目 でGROVEコネクタの端子「32(SDA), 33(SCL)」をシリアル通信用端子として設定します。

71行目〜77行目 でジョイスティックとの通信を行なっています。シリアル通信(I2C)でX軸、Y軸の座標をそれぞれ「0〜255」で取得し、スティックを押し込んだ時のスイッチの「ON/OFF」状態を「 1 / 0 」で取得します。

// ジョイスティックI2Cデータ取得 Wire.requestFrom(0x52, 3); // I2Cデータ取得(アドレス、バイト数) while (Wire.available()) < // 受信データがあれば x_data = Wire.read(); // X軸アナログ値取得(0〜255) y_data = Wire.read(); // Y軸アナログ値取得(0〜255) press = Wire.read(); // 押し込み時ボタン状態取得(true/false) >

「 Wire . requestFrom ( 0x52 , 3 )」で通信アドレス「 0x52 」に「 3 バイト」のデータ取得をリクエストするとジョイステックからデータが送られてきます。「while文」の中で「 Wire . available ()」を実行して、受信データがある間「 Wire . read ()」を実行してデータを各「変数」に格納します。

79, 80行目 で「 map 関数」を使用してX,Y軸の座標データ「0〜255」をサーボの動作角度「0〜180(° )」に換算し各「変数」に格納しています。

座標データを、角度に換算するには「Aruduino」コマンドの「 map 関数」が便利なのでここで紹介しておきます。

「map関数」の使い方 map ( 変換対象 , 変換対象の最小値 , 変換対象の最大値 , 変換後の最小値 , 変換後の最大値 ) ;

・ 変換対象 :変換対象の変数等を指定(サンプルプログラムでは「x_data」又は「y_data」)・ 変換対象の最小値 :変換対象の最小値を指定(サンプルプログラムでは0)・ 変換対象の最大値 :変換対象の最大値を指定(サンプルプログラムでは255)・ 変換後の最小値 :変換後の最小値を指定(サンプルプログラムでは0)・ 変換後の最大値 :変換後の最大値を指定(サンプルプログラムでは180)

最後に 83, 84行目 で、使用するサーボの「チャンネル」と「動作角度」を指定して「 servo_set ()」関数を呼び出し、サーボの動作を実行します。

7.準備するもの

共立電子産業株式会社 KYOHRITSU ELECTRONIC INDUSTRY CO.,LTD. 日本ケミコン(Nippon Chemi-con) Seeedstudio

8.まとめ

LEGOで作るBluetoothラジコンカー M5StickC Plus2 + ATOM Lite M5StickC Plus2を使用してBluetoothでジョイスティック操作のLEGOラジコンの作り方を紹介。駆動はRCサーボでATOM Liteで制御します。 logikara.blog LEGOで作るBluetooth遠隔操作ラジコン(Arduinoコマンド、ESP32系マイコンATOM使用) logikara.blog ダヴィンチmini w+ 3Dプリンタの使い方③ 3DCAD編 フリーの3DCAD「Fusion360」を使用して基板を収める簡単なケースのモデリング方法から、印刷用データへ変換、実際に印刷して確認するところまで紹介します。 logikara.blog 共立電子産業株式会社 KYOHRITSU ELECTRONIC INDUSTRY CO.,LTD.

関連記事

SSD1306有機ELディスプレイOLEDの使い方、簡単2画面表示の方法も紹介 SSD1306はライブラリを準備してI2C通信と簡単なコマンドで表示可能。ATOM LITEやESP32、Arduino等に表示器を追加したい時に手軽に安価で実現できるのでとても便利です。 M5StickC Plusの使い方、初期設定、サンプルプログラム、M5StickCとの違い等を詳しく紹介

M5StickC PlusをArduino IDEやPlatformIOで使うための初期設定やサンプルプログラムでの動作確認の方法です。ビジュアルプログラミングのUiFlowの初期設定についても紹介します。

液晶、無線、SDカード、9軸センサ搭載!なんでもできる?M5Stack GRAY RCサーボモータとは、使い方と簡単制御方法(Arduinoコマンド、ライブラリ不要)の紹介 ラジコンの駆動部等に使用されるRCサーボについての簡単な制御方法をサンプルプログラムで詳しく紹介します。ATOM LITE使用(M5Stack社製ESP32系マイコンボード) ATOM LITE プログラミング初心者におすすめ超小型で高機能!

マイコンボードはRaspberry Pi、Arduino、M5Stack等がありますが、一通りやってみてそれぞれの良さはあるものの「最初に何を?」と聞かれたらATOM LITEが一番お手軽♪プログラミング初心者におすすめ

スイッチ(操作用)の使い方。便利なスイッチユニットについても詳しく紹介

スイッチとは「開閉器」とも呼ばれ電気の通り道をつないだり開いたりするものです。 スイッチには人が操作して動作する「操作スイッチ」と、状況によって動作する「検知スイッチ(センサー)」があります。 ここでは「操作スイッチ」について紹介します。

RCサーボモータとは、使い方と簡単制御方法(Arduinoコマンド、ライブラリ不要)の紹介 LEGOで作るBluetooth遠隔操作ラジコン(Arduinoコマンド、ESP32系マイコンATOM使用)

コメント

コメントをどうぞ コメントをキャンセル はじめに カテゴリー 目次 最近の投稿
  • Arduino UNO Q 使い方完全ガイド:App Lab設定からAI画像認識まで詳しく紹介
  • Arduino Nesso N1の使い方:LoRa無線通信編
  • Arduino Nesso N1の使い方:Wi-Fi通信編
  • LoRa E220 + M5StickC Plus2で無線相互通信する方法
  • Arduino Nesso N1の使い方:基礎編
タグ一覧 © 2021 ロジカラブログ.
  • ホーム
    • ロジカラブログとは?
    • 初心者最短ルート♪
    • 記事一覧
    • Arduino Uno Q
      • Arduino UNO Q 使い方完全ガイド
      • Raspberry Pi 5の初期設定、Lチカ
      • PicoW同士で簡単Bluetooth通信
      • PicoW Bluetooth(BLE)の使い方
      • Pico2W Bluetooth通信の使い方
      • PicoprobeでPicoをデバッグ
      • Pico2の使い方:MicroPython編
      • Picoの基本情報、3つの開発環境
      • PicoでMicroPython&Thonny使用
      • PicoでCircuitPython&Thonny使用
      • Picoの基本プログラムPython編
      • Picoマルチコア並列動作Python編
      • Pico本体データ記憶方法Python編
      • PicoでDCモータ速度制御(PWM)
      • Picoでステッピングモーター制御
      • PicoのためのArduino IDEの使い方
      • PicoW遠隔操作表示CircuitPython編
      • PicoW遠隔操作表示MicroPython編
      • PicoW遠隔操作表示 C言語編
      • Picoの4系統のシリアル通信使い方
      • PicoでNeoPixel簡単シンプル制御
      • Picoでタッチパネル液晶ILI9341
      • ラズパイPicoでSDカードの使い方
      • Picoで画面表示 C言語編
      • Picoで画面表示 MicroPython編
      • Picoで画面表示 CircuitPython編
      • PicoWでチャットボットの作り方
      • ラダー動作をPythonで書く方法
      • Picoシーケンサ 基板設計編
      • Picoシーケンサ 動作確認編
      • Picoシーケンサ基板の使い方
      • 自作プリント基板製造、発注方法
      • RP2040-GEEK SD&LCD搭載
      • RP2040-GEEKデータロガーの製作
      • XIAO RP2040の使い方
      • 変数について
      • 配列について
      • 演算子(条件式)について
      • if文(条件分岐)
      • switch文(複数条件分岐)
      • for文(繰返し)
      • ChatGPTがもたらす新しい可能性
      • プログラムの基本構成
      • 液晶表示の使い方(M5GFX)
      • 本体ボタンの使い方
      • 入出力端子の使い方
      • シリアル(UART)出力
      • アナログ入力(A/D変換)
      • 液晶表示器(SH1107)
      • Wi-Fi アクセスポイント、サーバー
      • Wi-Fi ローカル接続、サーバー
      • WebSocketでWi-Fi双方向通信
      • Bluetooth通信
      • WiFiMultiでNTPサーバから時間取得
      • PWM制御の使い方
      • I2C通信の使い方
      • タッチスイッチの使い方
      • CAN通信の使い方ESP32系
      • SPIFFSフラッシュメモリの使い方
      • GPSモジュールの使い方
      • 非接触ICカードの読み書き方法
      • I2C通信リレーで簡単出力増設
      • Modbus通信で温湿度測定、表示
      • Modbus通信で4CHリレー制御
      • lovyanGFX画面表示 M5Stack編
      • lovyanGFX画面表示 OLED編
      • ESP32ServoでRCサーボの使い方
      • Nesso N1:LoRa無線通信編
      • Nesso N1の使い方:基礎編
      • Nesso N1:Wi-Fi通信編
      • M5NanoC6の初期設定、使い方
      • I2C通信リレーで簡単出力増設
      • CORE S3の初期設定、基本の使い方
      • カメラ画像のスマホ,PC表示方法
      • デモ画面、基本仕様、端子配列
      • 初期設定から基本の使い方
      • 3軸加速度モニター(グラフ表示)
      • M5Stack Basicの使い方、端子配列
      • M5Stackをシリアルモニタに使用
      • M5Stack Modbus 交流電力モニタ
      • M5StickC Plus2の使い方
      • LoRa E220無線相互通信する方法
      • Bluetoothでcsvデータ保存
      • ロードセルで電子はかりの製作
      • LEGOで作るBluetoothラジコン2
      • Plus2 I2C通信で温湿度気圧測定
      • M5StickC Plusの初期設定
      • Plus WiFi遠隔操作(ブラウザ使用)
      • AtomS3の便利な使い方,日本語表示等
      • AtomS3の初期設定、端子配列
      • ATOMS3でDCモータの速度制御
      • AtomS3 WiFiラジコンの作り方
      • AtomS3 Liteの初期設定、端子配列
      • AtomS3 Lite MiniOLEDの使い方
      • WiFi アクセスポイントで近距離遠隔操作
      • ATOM LITEの初期設定
      • 定番の Lチカ!
      • いきなりIoT(簡易版)
      • ボリュームでLEDコントローラー
      • ストップウォッチの製作(タイマ割込)
      • クリスマスイルミネーションを作ろう♪
      • LEDテープでクリスマスイルミネーション
      • LEGOで作るBluetoothラジコン
      • LEGOで作るBluetoothラジコン2
      • ドットマトリクスLED
      • M5StampS3の使い方、初期設定
      • AWS請求確認、課金の止め方
      • AWS IoT① 初期設定
      • AWS IoT② UiFlowで簡単MQTT通信
      • AWS IoT③ Arduinoで簡単MQTT通信
      • 自作プリント基板製造方法
      • CORE2
      • M5Stack Basic
      • M5Stack GRAY(生産中止)
      • M5StickC Plus
      • ATOMS3 LITE
      • ATOM LITE
      • LED(発光ダイオード)
      • スイッチ(操作用)
      • ボリューム(可変抵抗器)
      • SSD1306 有機ELディスプレイ
      • RCサーボ(角度、回転)
      • ジョイスティック(JoyStick)
      • ARM版Windowsで開発環境構築
      • Raspberry Pi 5の初期設定
      • Arduino IDE 2のインストール方法
      • Arduino IDEでM5Stackの環境設定
      • ArduinoIDEでラズパイPicoの環境設定
      • Docker超入門:基本的な使い方
      • ChatGPTがもたらす新しい可能性
      • ①VS Codeのインストール
      • ②pythonのインストール
      • ③Platform IOのインストール
      • ラズパイPicoの3つの開発環境
      • UIFlow ビジュアルプログラミング
      • お試しするならmicro:bit
      • スマホでお試しmicro:bit
      • 電気とは?電圧と電流の関係
      • 電流とは?電流の動きは電子の動き
      • 抵抗とは?オームの法則の簡単な覚え方
      • 直流(DC)モーターとは?動作原理
      はじめに カテゴリー 目次 最近の投稿
      • Arduino UNO Q 使い方完全ガイド:App Lab設定からAI画像認識まで詳しく紹介
      • Arduino Nesso N1の使い方:LoRa無線通信編
      • Arduino Nesso N1の使い方:Wi-Fi通信編
      • LoRa E220 + M5StickC Plus2で無線相互通信する方法
      • Arduino Nesso N1の使い方:基礎編