0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

電子工作メモ

Last updated at Posted at 2024-03-21

電子工作メモ

Freenove というところのRaspi Pico 用のアルティメットスターター キットを買ったので、少しずつ電子工作の勉強をする。

Picoについて

※TODO:完全ガイドでまとめておく

  • 電源

    • pico(RP2040) は 3.3v で動作する。

    • 給電方法

      • USBに給電 : 自動的に5Vで給電
        • VBUSは直結されているので5Vが出る
        • VSYSも5Vがでる
      • VBUSに給電: 5Vを給電する
        • ※USB端子と直結されているので電流がUSBに逆流する可能性があり、PC等を壊す可能性があるのでUSBを使う場合はVSYSを使うこと。
      • VSYSに給電: 1.8~5.5Vで給電する(コンバータが内蔵されているため)
        • USBを同時に使用するときに注意。USBからも給電されるため、VSYS側の電源に電流が流れるため、VSYS電源を切っておくこと
        • VSYSはpico動作用の電圧3.3Vしか生成しないので、VBUSに5Vが出力されないことに注意
    • VBUS: USB端子とつながっているので、USB給電の場合に5Vが出る。

    • VSYS: USB端子との間にダイオードが入っており、USBに電流が逆流しないようになっている。

    • 3V3 : 3.3V が供給される端子

  • 機能

    • ADC : アナログ信号
    • PWM : パルス幅変調信号
    • UART: シリアル通信
    • SPI : シリアル通信
    • I2C : シリアル通信

参照

MicroPython

メモ

まずはMicroPythonで始める。

  • StartHere を読む

    • 3種類の言語で試せる
      • C: IDEとして Arduino IDE を使う
      • Processing
      • MicroPython: IDEとして Thony を使う
  • スターターキットのPythonドキュメントを読む。

  • 開発環境構築

    • Thonyインストール

      • 「実行」-「インタプリタ設定」

        • インタプリタ「MicroPython(Raspberry Pi Pico)」を選ぶ
        • ポートは pico を認識しているCOMポートか自動検出を選ぶ
      • 特にエラーが出てなければOK

        // シェルに以下を記述して動作すればOK
        print("Hello World!")
        
    • MicroPythonのファームウェアをpicoに書き込む

      1. uf2 ファイルをダウンロードする。
        bootselボタンを押しながらpicoを起動すると、USBメモリのように見えるので、エクスプローラでuf2ファイルをコピーするだけ。
        ※参照

      2. Thonyでインストール
        「実行」-「インタプリタ設定」から"Install or update MicroPython" を起動。
        bootselボタンを押しながらpicoを起動する。
        Target volume に pico のドライブを指定し、MicroPython variant に "Raspberry Pi・Pico/Pico H" を選択。バージョンは最新を選択。

    • 実行

      • pico の ルートに、"main.py" というファイルを保存すると起動時に実行される。

その他

動作確認

00.1_main/main.py

これを pico のトップフォルダにおいておけば、トップフォルダの py ファイルを実行してくれる。

import uos as os
import uerrno as errno
iter = os.ilistdir()
IS_DIR = 0x4000
IS_REGULAR = 0x8000
index = 0

try:
    while True:
        # トップフォルダのファイルとディレクトリを調べる 
        entry = next(iter)
        filename = entry[0]
        file_type = entry[1]
        # 自分は無視
        if filename == 'main.py':
            continue
        else:
            # ディレクトリは無視
            if file_type == IS_DIR:
                continue
            # ファイルの場合は実行する
            else:
                exec(open(filename).read(), globals())
        # 100回まで実行する
        if index == 100:
            break
        index += 1
except StopIteration:
    pass

オンボードLED

一般的なLED

ボタンとLED

テーブルランプ

LEDバー

PWMを使ったLED

RGBLED

NeoPixel

ブザー

シリアル通信(UART)

流れる水のように光るLED

MatrixLED

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?