icon
icon

PythonでArduinoを操作する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでArduinoを操作する方法について現役エンジニアが解説しています。Arduinoとは、マイコンボード及び専用のIDEで構成されるシステムのことです。シリアル通信を使ってUSBで接続されたパソコンとArduinoボードをPythonで操作する方法について説明します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

PythonでArduinoを操作する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでArduinoを操作する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

1時間でできる無料体験!

 

Arduinoとは

Arduinoとは、マイコンボード、および専用のIDEで構成されるシステムのことを言います。

ボードにはジャンパーワイヤーを接続するための接続ポートがあり、そこからブレッドボードに配線することで電子制御を行うことができる基板になっています。

一方IDEはC++ 言語をベースに作られたArduino言語をプログラムを作成し、コンパイル、デバッグ、そしてボードへの転送までを一貫して行います。

もともとは、2005年にイタリアで「学生がシンプルで安価に電子制御を行えるようにする」ことを目的に、Arduinoプロジェクトが発足されたことがきっかけです。

ボードの仕様はオープンソースで公開されているため、自分でAruduinoと互換性のある基板を簡単に設計できます。
 

[PR] Pythonで挫折しない学習方法を動画で公開中

Arduinoを操作する方法

Arduinoで作成した制御を外部システムから操作する方法はいくつかありますが、その中でよく使われる仕組みがシリアル通信と呼ばれる仕組みです。

パソコンとArduinoボードをUSBで接続することでプログラム上でボードにメッセージを送信できます。

逆にArduinoボードからプログラムで情報を受け取ることができます。

PythonでArduinoとシリアル通信を行う場合は、PySerialを使うことで簡単にできます。
 

実際に書いてみよう

それでは実際にArduinoをPythonで操作してみましょう。
 

用意するもの

  • Arduinoボード(互換機でも大丈夫です)
  • LED
  • 抵抗(330Ωあるといいです)
  • USBケーブル(Arduinoボードと接続できるもの)

 

接続

LEDのアノード(足が長い方)がデジタルの2番側、カソード(足の短い方)がGND側になるように接続します。

抵抗はLEDの破損を防ぐためにつなげます。

コード

Arduinoに書き込むコードは以下の通りです。

書き込むときには事前にArduino IDEをインストールします。

void setup() {
  // 2番ピンをアウトプットに設定
  pinMode(2, OUTPUT);
  Serial.begin(9600);
}

byte inputData;
void loop() {
  // シリアルデータを受信したら処理を実行する
  if (Serial.available() > 0) {
    inputData = Serial.read();
    switch(inputData){
      case '0':
        digitalWrite(2, LOW);
        Serial.println("turn off");
        break;
      case '1':
        digitalWrite(2, HIGH);
        Serial.println("turn on");
        break;
      default:
        break;
    }
  }
}

書き込みを行ったときにIDEの右下に表示しているポートはPythonでシリアル通信をするために必要なので、メモしておきましょう。


続いて、Arduinoとシリアル通信をするためのPythonコードです。

PySerialをインストールしてない場合は、以下のコマンドでインストールしておきます。

pip install pyserial

ソースコードは以下です。
YOUR_PORTに関しては、先程メモしたポートに書き換えます。

import serial
import time

#  COMポートを開く
print("Open Port")
ser =serial.Serial("YOUR_PORT", 9600)
while True:
    try:
        command = input("type 0 or 1: ")
        if command == "0" or command == "1":
            ser.write(command.encode())
        else:
            print("ignore command")
    except KeyboardInterrupt:
        break

print("Close Port")
ser.close()

プログラムを実行するとテキスト入力ができる状態になるので、半角で0を入力するとLEDが消灯し、1を入力するとLEDが点灯します。

プログラムを終了するときは、Ctrl(Macの方はCmd)+Cを入力します。


 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

今回はPythonを使ってArduinoを操作する方法を紹介しました。

パソコンからUSB経由でマイコンと通信を行う方法はIoTや実験のデータ測定などでよく使われるので、知っていると便利です。
 

監修してくれたメンター

メンター三浦

モバイルゲームを運用している会社のエンジニアをしています。趣味でWEB開発やクラウドコンピューティングもやっており、ソフトもハードもなんでもやります。

TechAcademyジュニアではPythonロボティクスコースを担当しています。好きな言語はPython, Node.js。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する