見出し画像

Arduino体験記 #01 とりあえず触ってみた

とあることから、Arduinoにふれることになりまして、やってみたら意外と面白くって、ちょっと続きそうと思っています。

とはいうものの、電子工作も初心者、プログラミングも初心者なので、最初は「ブレッドボードってなんやねん?!」から始まりました。

Arduinoって何?

Arduinoは、プログラミングと電子工作を組み合わせて、簡単にアイデアを形にできるツールです。初心者でも扱いやすいマイコンボードとして有名で、LEDを光らせるところからロボットを動かすまで、幅広いプロジェクトに対応しています。

私がArduinoに興味を持ったきっかけは「とあること」から始まりました(詳細はまた別の機会に!)。一見ハードルが高そうに見えたのですが、触ってみると意外と簡単で、楽しさにハマっています。

とりあえず触ってみた

最初に取り組んだのは、ブレッドボードにLEDをつないで点灯させること。ですが、ここで「ブレッドボードって何?」という壁にぶつかりました。

白い板がブレッドボード

ブレッドボードは部品を簡単に接続できるツールで便利。はんだづけとかしなくっていいんだーとちょっとした喜びが。そのあとは、ネットの情報やChatGPTに頼りながら、なんとか配線してコードを書き、LEDを点滅させることに成功!小さな成功体験が嬉しいもんだなと。

超音波センサーとサーボモーター

「とあること」から、インプットの部材には超音波センサーを、アウトプットの部材にはサーボモーターを利用するってことだったので、手探りで配線からしてみることに。とはいうものの、やりかたなんてわからないわけですが、こんなときにもChatGPTで。

超音波センサー (HC-SR04)VCC → Arduinoの5Vピン
GND → ArduinoのGNDピン
Trig → Arduinoのデジタルピン9
Echo → Arduinoのデジタルピン8


サーボモーター (SG90)赤線 (VCC) → Arduinoの5Vピン
茶色 (GND) → ArduinoのGNDピン
オレンジ (Signal) → Arduinoのデジタルピン3

ChatGPTより

便利ですね。こんなふうに答えてくれるんだから…

そして配線はこんな感じで。これはTinkerCADで作成。

コードはChatGPTで

実は、プログラミングはChatGPTにかなり助けてもらっています。ゼロからはじめようとすると、取っ掛かりすらつかめないので。

#include <Servo.h>

// サーボモーターの初期化
Servo myServo;

// 超音波センサーのピン定義
const int trigPin = 9;
const int echoPin = 8;

// 変数定義
long duration;
int distance;

void setup() {
  // 超音波センサーのピンモード設定
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  // サーボモーターのピンを設定
  myServo.attach(3);

  // シリアルモニタを開始
  Serial.begin(9600);

  // サーボモーターを初期位置に設定
  myServo.write(90);
}

void loop() {
  // 超音波センサーで距離を測定
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Echoピンのパルス幅を計測
  duration = pulseIn(echoPin, HIGH);

  // 距離計算 (cm)
  distance = duration * 0.034 / 2;

  // シリアルモニタに距離を表示
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  // 距離に応じてサーボモーターを動かす
  if (distance < 20) {
    myServo.write(0);  // 物体が近い場合
  } else if (distance < 50) {
    myServo.write(90); // 中間距離の場合
  } else {
    myServo.write(180); // 物体が遠い場合
  }

  delay(500); // 0.5秒待機
}

時間が取れたので、これをコピペせずに、ポチポチと入力をしてみた。ゆっくり入力していくと「あー、これはこういう意味なのね」と気づけるものですね。

こんな感じに

このあと数値をちょっといじってみて、動き方を変えてみながら仕上がったのはこんな感じ。

まだまだ簡単なものですが、初めての電子工作とプログラミングでここまでできたのは、大きな一歩だなと。意外とできるもんだなと。

やろうと思ったら、できるもんですね。ということで、ちょとずつ進歩したらこちらのマガジンに追記していきます。

最後に

毎朝Voicyで音声配信しております。

また、僕についての情報やお問い合わせは

をご覧ください。

いいなと思ったら応援しよう!

のざたん|会いに行けるセンセイ
いただいたサポートは、誰でも教員と会って話せる『会いに行けるセンセイ』の活動に利用させていただきます。