2026年5月 9日 (土)

ラズパイPICO 2wでリモコンPicoCarを作ってみた

Img_4309ss
Pythonのお勉強がてらRaspberry Pi Pico2Wを2つ使ってリモコンカーを作ってみました。

これが、あまり勉強にはならなかったというか、
ネットからの情報収集だけで、ほぼ完成してしまいました。

モータードライブは秋月で購入したTB6612のユニット、
検索したらGoogleのAiがハード結線からプログラムまで教えてくれました。
Photo_20260509110901
これがちゃんと動いたのです。

コントローラーはアマゾンから購入したLCDボード、
Pico-LCD-1.14はサンプルプログラムが普通に動きました。

次はbluetoothによる通信方法、
これもそのまま使えるのがありました。
「pico同士のBLE通信」で検索したら、
ロジカラブログというところに

ラズパイPICO同士で簡単Bluetooth(BLE)通信

というのがあって、そのまま使えそうなのがありました。
ってことで、
完成してから解説を読んで勉強さてていただいています。

プログラムのリスト

ダウンロード - ble_central_lcd_button.py

ダウンロード - ble_peripheral_mot.py

 

| | コメント (0)

2026年5月 7日 (木)

Raspberry Pi PICOのPICOのヒューマンマシンインタフェース

Img_4271s
Pythonのお勉強がてら、マイコンのインタフェースを調べてみた。
picoはすごいですね、専用パーツがたくさん。

ゲーム用?
Img_4266s
サンプルプログラムを動かしてみたところ。
デバック用のボードについていますが、重ねて一体化できます。

ゲームを作る人も多いようで、ゲームが多数公開されています。
Img_4277s

タッチパネルタイプもあります。
Img_4270s

WiFiもついているのでWEBサーバーで操作もできます。
Img_4274s

Bluetoothも使えます、、、これは只今作成中。

Raspberry Pi Zero用(右側)もあります
Img_4265s
工作が不得意でもいろんなものができそうですね。

 

| | コメント (0)

2026年4月10日 (金)

自販機で購入したマイコンUIAPduino Pro Micro CH32V003 V1.4

Img_1333s
どこも在庫なし、となると入手したくなる。
調べてみたら秋葉原にある自販機で買えるらしい!
ってことで買ってきました。

思ったよりメモリーが少ない、
I2Cのデバイスをつなくと70%越え。

色々考えて?、地中の水分計を作ってみた
Img4227s
最初はキャラクターディスプレイ、使用量92%

Img_4239s
グラフィックディスプレイで使用量86%となりました。

290円という価格は素晴らしいことなんだけど、
メモリーが、、、

 

 

| | コメント (0)

2026年4月 2日 (木)

苗育成用ヒーターの温度制御

Img_4205s
ヒーターの上で苗を育てているところ。
ヒーター自身の温度はコントロールできるけど、
苗の土の温度はコントロールできないので気温などの変化で大きく変わってしまいます。
ってことで、土の温度でヒーターの温度管理をすることに。
01
使用したのは
マイコンはarduino UNO R3
温度センサーは防水温度センサーDS18B20(アマゾン)
表示用液晶AQM1602_I2C (秋月、販売コード108896)
ドライバー内蔵リレーモジュール(秋月、113573)
その他、AC100のON /OFFリレー、ボタンスイッチなど汎用部品が必要です。
Img_4215s
動作確認後、、、完成写真を取ろうとした時に、
落として液晶パネルが壊れてしまいました。
もう暖かくなってヒーターも必要ない時期、
修理するか、気に食わない部分があるので作り直すか???
それ以前に設定温度はプログラムの書き換えで対応すれば液晶パネルもボタンをいらないじゃん。
次の苗を育てる時までに決めましょ!

以下使用したプログラム
基本的には温度センサーのライブラリーにあるサンプルプログラムと液晶パネルは秋月が公開しているサンプルプログラムの寄せ集めです。
一部サブルーチンは省略しています、その部分はサンプルプロフラムを参照してください。

# include <OneWire.h>
# include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
# define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
#include <Wire.h>
#define LCD_ADRS 0x3E 
#define Relay_out   4   // Relay drive
#define Black_in    7   // Black Button switch
#define Red_in      8   // Red Button switch
char Umoji[] ="RealTemp      C ";
char Dmoji[] ="Set Temp      C ";
float Rtmp;
float Stmp = 30.0;

void setup(void)
{
 // Start up the Temperature IC Control library
  sensors.begin();
 // display init
  Wire.begin();
  init_LCD();   
 //IO init
  pinMode(Relay_out, OUTPUT);
  pinMode(Black_in, INPUT);
  pinMode(Red_in, INPUT);
  digitalWrite(Relay_out,LOW); //relay OFF  
}

void loop(void)
{
  // ボタン情報を取り込んで設定温度を更新する
  if (!digitalRead(Red_in))    Stmp += 1.0; 
  if (!digitalRead(Black_in))  Stmp -= 1.0; 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  sensors.requestTemperatures(); // Send the command to get temperatures
  Rtmp = sensors.getTempCByIndex(0);
  //液晶パネル上段に表示
  dtostrf(Rtmp,-1,1,&Umoji[9]);  // 浮動小数点データを文字列に変換
  writeCommand(0x02);            // Retern Home  
  for(int i = 0; i < 16; i++) {
   writeData(Umoji[i]);
  } 
  //液晶パネル下段に表示
  dtostrf(Stmp,-1,1,&Dmoji[9]);
  writeCommand(0x40+0x80);      // SET下段ADRESS  
  for(int i = 0; i < 16; i++) {
   writeData(Dmoji[i]);
  } 

  // 設定温度と実測温度を比較して実測温度が低ければリーレーをONする
  if (Stmp > Rtmp)  
    digitalWrite(Relay_out,HIGH);
  else
    digitalWrite(Relay_out,LOW);

  delay(500);
}

 

 

 

 

 

 

 

 

 

| | コメント (0)

2026年2月 7日 (土)

NPUってどうなのよ!

Npugpu
Macなんかだとだいぶ前からNPUが乗っている、
NPUは行列演算、GPUは簡単な演算を並列に処理するもの、
と短絡的な理解しかない。
以前、SONYのエッジAI用マイコン?で遊んでいた時には
なるほど、、、確かに高速な行列演算は必要みたい。

でも、AMDのAmuseで遊んでいると、
NPUが使われている様子がない。

いろいろいじっていたら、
たまたまNPUを使う設定に行き着いた。
同じ指示(アプリのデフォルト指示)で絵を描いてもらった。
NPUは面積でGPUの4倍、漫画ふうの絵で個人的にはいいねと思うけど、
作画はGPUが圧倒的に速い。

電力消費が少ないGPUがあればNPUはいらないのかな?

| | コメント (0)

2025年12月14日 (日)

UNO R3でLidarCarを作ってみる その3

Img_4065s
まっすぐ進まなかったので4WDにして、
L298Nもスピードコントロールを追加しました。
ソフトはほぼその2のままなので、
真っ直ぐ進むこと以外の違いはなし。

今の作りは、
一定時間情報収集して、その後モーターコントロール。
方向を変える場合はモーターを一定期間回すことになって、
その時はdelayで一定時間を確保する、
この時間もデーター収集は止まる。
ってことで、
FreeRTOSで動かしてみようと思ったら、、、
ボロボロ、どうもRPLidarのドライバーはGPIOデバイスとしか共存できないみたい?
おまけにRPLidarのシリアルは115200BPSでの受信なので
UNO R3では専念してやっと取れるスピードなので処理能力的にも無理っぽい。
あと、
このRTOSは勉強用で実用的なアプリに組み込むのは現実的じゃなさそうです。
もっとも、
Arduinoがプログラミングの勉強用なので当たり前と言えば当たり前かな?

UNO R3でLidarのコントロールはちょっと辛いですね。

 

 

| | コメント (0)

2025年11月24日 (月)

UNO Q再インストールと1ヶ月の感想

Unoq20251124
悪さをしたわけじゃないんだけど、
netは生きているんだけどPCからのArduinoAppLabが繋がらなくなりました、、、
ってことで再インストールすることに、
マニアルに丁寧な解説があったので助かりました、
具体的には
Flashing a New Image to the UNO Q
に記載された手順で問題なくインストールできました。
インストールされていたLinuxとは違うもので、
swapなどが設定されていました。
まだ更新が頻繁に行われているようです。

画面に再インストール直後の
メモリとフラッシュメモリーの状況を表示していますが、
2MB/16MBはちょっと厳しいです。

この構成だから作れた!
みたいなのを考えているのだけど、、、
ラズパイでもできるものしか思いつかない。
ST32側がITRONでARM64側の言語がC orC++だと
おもしろい物が出来そうなんだけど、、、

 

 

 

 

| | コメント (0)

2025年11月20日 (木)

ROS2でRPLidar(A1,M8)

Img_4047s
以前、ROSでRPLidarを動かしてみたのですが、
ROS2への移行に伴い再度動作確認。
マイコンはPi5の8G版、最初はDebianで!
と思っていたのですが、
あまりご機嫌が良くないのでubuntuの24.04に変更、
ROS2はJazzy、RPlidarのソフトはROS版を使用。

手順は右側のテキスト画面、拡大すれば見えます。

補足、
ディスプレイの周辺がこちゃごちゃしているのは
一枚の写真にLidarとPi5を入れたかったためで、
普段は綺麗に整頓されています。

| | コメント (0)

2025年11月 9日 (日)

UNO R3でLidarCarを作ってみる その2

Img_4041s
一応、動く形にしてみました。
まっすぐ進まなかったり、
(この時はL298nでスピードコントロールができるのをわかっていなかった)
まだまだ調整の余地はあるのだけど、
まっ動いたことにしましょ!

一応動いているところ
https://youtu.be/BZrFKSH0cH4?si=_DIsV6t-iW5WJxGf
プログラムは
RPLidarDriverのexamplesにあるプログラムをベースにモーターコントロールを追加する形で作りました。

| | コメント (0)

2025年11月 7日 (金)

UNO R3でLidarCarを作ってみる その1

Img_4026s
最初の構成はRP-Lidar(A1M8)とAdafruit_Motor_Shield。
これがデバイス単体での動作は問題ないのですが、
両方動かすと、めちゃくちゃな動きに、、、
最初はDCモータのノイズで誤動作かと思ったのですが、
モーターを回さなくてもめちゃくちゃな動き
どうやらリソースの競合みたい!ってことでドライバー部分を調べてみようと思ったのだけど、、、
深入りするのもな〜〜〜!ってことで構成変更
Img_4027s 
モータードライバーをL298Nに変更。
スピードのコントロールができない難点はありますが、
問題なく動きます。
スピードコントロールはできるようになってます。
でも解体してしてしまったので、、、

組み立てとソフトの調整はその2へ、、、
と書きつつ、動作確認が目的なので、ここでやめちゃうかも?

| | コメント (0)

より以前の記事一覧