前回、ラズパイでBLEセントラルを作りました。読み出した電圧をWebに表示します。 ●プログラム from bluepy import btle import time deviceAddr = "C
前回までに、AE-ESP32-WROOM-32E-MINIボードにA-Dコンバータをつなぎ、その電圧を送信するBLEペリフェラルを作りました。ここではラズパイでそのデータを受けるセントラルを作ります。
前回、ESP32ボードに18ビットA-Dコンバータをつないで動作させました。第2回でBLEのプログラムを作りましたが、1時間ほどで暴走しました。そのスケッチを新しいマイコン・ボードAE-ESP32-W
M5STAMP C3に代わる低価格なマイコン・ボードを探しました。 ESP32-WROOM-32はデバイスのリビジョンが更新によって2021年の夏ごろにEになりました。メーカは新しい設計のESP32-
前回、マイコン・ボードM5STAMP C3にA-DコンバータMCP3421をつなぎました。得られたデータをBLEで送信します。 その前に、MCP3421に内蔵する基準電圧は2.048Vだったので、入力
離れたところの電圧を測ってラズパイに表示するリモート電圧計を作ります。最初はアナログ入力用のデバイスを実験します。 ●M5STAMP C3のA-Dコンバータ <注;M5STAMP C3ボードはBLE部
前回、iframeで四つの画像を表示しました。ここでは、四つの画像ファイルを出力してtableタグで表示する方法を検討します。 ●プログラム tableのタグを埋め込みました。 pio.write_i
前回、温度のデータを使ってゲージを描画しました。ここではBME680が出力する四つのデータを同時に表示する方法を考えます。最初はiframeを用いる方法です。 ●プログラム 温度はtemp1.html
前回、BME680のデバイス・ドライバを入れて、温度、湿度、気圧、空気の汚れのデータが、/sys/bus/i2c/devices/1-0076/iio:device0フォルダに保存されることを確認しま
センサの値をグラフにラズパイのディスプレイに表示する連載です。GUIのグラフはplotlyライブラリを使います。利用するデバイスはボッシュのBME680で、BMP/BMEシリーズのMEMSセンサです。
前回まで、ハーフブリッジ回路のドライブを実験しました。同じPチャネルとNチャネルのペアの回路をもう1組用意します。Hブリッジ回路になります。追加した下のブロックを回路図の右側に配置すれば、一般的はHブ
前回、デッド・タイムをうまく確保できませんでした。 プログラムを修正して、GP2、GP3、GP4、GP5の各端子の波形を見ます。オシロスコープが2チャネルなので、GP2の立ち上がり位置を基準に並べてい
●PWM信号の反転 PWM出力の極性を設定する関数があります。一つのスライスにはAとBがあるので、両方を同時に設定できます。 static void pwm_set_output_polarity (
PicoのPWM波形をGP2以外にGP3にも同じものを出力します。GP3の信号を用いてPチャネルのMOSFET 2SJ681を駆動します。 ●PチャネルのMOSFET 2SJ681のおもなスペック ド
PicoのPWM波形の作成方法がわかったので、最初に、発振器のときと同じく10kHzのPWMを作成します。 ●プログラム wrapだけで10kHzを得ました。 #include "pico/stdli
前回、wrapを使って、システム・クロック125MHzを1MHzに落としました。もう一つの分周器を使って、もっと周波数を下げます。 ●固定小数点形式 uint8_t div = 2;uint8_t f
PicoからPWM出力をします。PWMはどのGPIOからでも出力できます。ここでは、GPIO2、GPIO3、GPIO4、GPIO5の4本を最初に利用します。 ●PWMの周波数 Picoは125MHzの
次の構成で、パワーMOSFETのスイッチング波形が見れると思ってゲートに発振器の出力をつなぎました。 最初に使用したMOSFETは、東芝TK100E08N1(Nチャネル、80V/100A)です。 波形
マイコンの出力電流は4mAぐらいです。MOSFETをつなぐと、数Aから数十Aの電流をON/OFFできるようになります。最初に、中電力用MOSFETの特性を見ます。 ●TK100E08N1のおもな特徴
第1回で、リアルタイム・クロックRTCのドライバを導入して動かしました。ここでは、詳しく機能を見ていきます。 ●コマンド hwclockは、次のように引数を指定できます。 読み出すのは、下記のどちらで
前回、ダウンロードしたサンプル・プログラムをコンパイルしました。Downloadsフォルダに入ったままだと違和感があるので、contecというフォルダを作り、ファイル・マネージャでコピーをします。 ●
コンテックから、ラズパイの上に重ねて使う各種ボードが発売されました。出荷は、4月の末から5月の中頃です。 製品のトップページ CPI-RAS Raspberry PiにRAS機能およびRTC機能、8
使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi OS(32ビット)5.10.17 Python3 3.7.3 gpiozero
使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi OS(32ビット)5.10.17 Python3 3.7.3 gpiozero
使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi OS(32ビット)5.10.17 Python3 3.7.3 gpiozero
使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi OS(32ビット)5.10.17 Python3 3.7.3 gpiozero
gpioファンクションの中にmask関連があります。どういう機能なのか確認しました。 ●MASK関連gpioファンクション ファンクション 要約 void gpio_set_outover (uint
前回、スイッチが押されると、LEDを点灯させるというプログラムを作りました。while()文でループを作り、定期的に、if()文で、スイッチの状態を見に行きます。これをポーリングといいます。 このプロ
Lチカでgpioの出力を扱いました。ソース・プログラムです。 /** * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * * SPDX-License
前回、10ビットA-DコンバータMCP3008を利用しました。ここでは12ビットA-DコンバータMCP3208を使います。ビット数が増えると、より細かくアナログ電圧を扱えます。言い換えれば、量子化誤差
SPIバスは、I2Cよりデータの転送速度を高くできます。 Picoにはspi0とspi1のバスがあります。チップ・セレクトCS信号は、ユーザがGPIOピンを独自に制御するプログラムを書きます。 クロッ
低価格湿度センサのAHT20をつなぎました。使用したAdafruitのブレークアウト・ボードは、STEMMA QT(JST SH 4ピン)コネクタは2か所に装着されていて、どちらにつないでもかまいませ
温度センサTMP117は、動作温度範囲;-55~+150℃で、確度;-20~+50℃の範囲で±0.1℃(最大値)と、小数点第一位までが信頼できます。読み出すデータは16ビットで0.0078125°C
i2cは、クロックSCLとデータSDA信号のタイミングを利用したバスです。Picoではi2c0とi2c1の二組のバスがサポートされ、いろいろなピンで利用できるので、汎用性が高いです。 次に示すのは、そ
ラズパイのi2ctoolsにあるi2cdetectと同じものが、pico\pico-examples\build\i2c\bus_scanに入っています。最初に、このソースを利用して、i2cscann
Picoのスペックにクロックは最大133MHzと書かれています。RP2040 Datasheetの「2.15. Clocks」には、分周器を使って、マイコンの周辺モジュール用のクロックが作られている図
マイコンは、たくさんの機能や周辺モジュールを内蔵しているので、一つのピンに複数の機能を割り当てています。利用者が、自分でどの機能を使うかを最初に定義します。Arduinoでは、限定していますが、Pic
第2回でUARTでラズパイとPicoを接続しました。printf文を使って出力します。 ●ソースとCMakeLists.txt Hello, World!のプログラムに必要なのは、ソース・プログラムと
Lチカから始めます。すでにソースはpico/pico-examples/blinkにあります。入っているのは、 blink.c CMakeLists.txt の二つです。blink.cは普通のLEDを
前回、開発システムをインストールし、実行ファイルをPicoに書き込んで動作を確かめました。実機を目の前にして利用する使いかたでは、今回の説明はスキップしてください。 ここでは、リモートで開発する手順を
Picoのプログラミングをするうえで、とても有用なのが、ドキュメントです。Cortex-M0+というマイコン自体の解説、周辺機器をつなぐときのサンプル回路やサンプル・プログラム、C/C++やMicro
●標準入出力 プログラムでprintfやscanfは標準入出力が使われます。ここでは、UART0ポートを通して利用します。 Pico UART0名称 Pico 物理的ピン番号 Pico GPIOピン番
C/C++言語でPicoのプログラムを作ります。開発環境はラズパイ4です。 使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi O
使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi OS(32ビット)5.10.17 Python3 3.7.3 gpiozero
使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi OS(32ビット)5.10.17 Python3 3.7.3 gpiozero
SPIバスは、I2Cバスに比べて転送速度が速いため、グラフィックの表示や表示面積の大きな表示器で使われます。マニュアルでは、board.SPI() → busio.SPIと書かれているので、busio
I2Cバス用センサは、前回のようにライブラリがあれば、すぐに使えました。I2Cのリード/ライトを個別にプログラミングします。と思ったのですが、すでに気圧センサLPS25HBの記事がありました。 Cir
I2Cバスには、複数のデバイスをつなげて利用できます。Picoをマスタ、デバイスをスレーブと呼びますが、昨今の用語の使いかたの変更により、将来は呼び方が変わるかもしれません。Picoはマスタが複数いて
I2Cが使えるライブラリが複数あります。最初は、実績のあるbusioモジュールを使います。 ●OLEDディスプレイの配線 OLEDボードの端子 Picoの端子(GPIO) 名称 GND GND GND
audiobusioモジュールは、オーディオのディジタル入出力を扱います。S/PDIFは含まれておらず、出力はI2S、入力はPDMです。 audiocoreモジュールは、メモリ内のデータ、wavデータ
PWM出力用のモジュールがpwmioです。周波数、デューティ比を変化させて実行してみます。 ●周波数 800Hz、デューティ50%の波形(黄色)です。 import pwmio import time
RP2040 Datasheetによれば、Picoのアナログ入力は5本あります。1本はチップにある温度センサに直接つながっています。前回のmicrocontroller.cpu.temperature
microcontrollerモジュールは、CPUの諸情報、特定なピンへのアクセスに使われます。 import microcontroller print(microcontroller.cpu.te
ディジタル入出力digitalioモジュールを調べます。 ●出力 前回、動作確認に使ったLチカのプログラムです。 import digitalio from board import * import
連載のSTEP1はとてもコンパクトなTrinket M0を、STEP2はArduino MEGAと大きさが同じGrand Central M4 Expressを利用しました。STEP3はAdafrui