パンク
電子工作関係じゃないけど...

普段乗りの軽自動車のタイヤがパンクして朝ペチャンコになってました。
ネジを踏んだようです。
空気を入れてみたら耐えているもののこのまま走るのは危険。


頑張ってスペアタイヤに交換しました。


その後休みの日にタイヤ屋さんにいって4本とも交換、ちょうど減ってて交換時期でもあったので。

若い頃はタイヤのローテーションとか自分でやってみたことはあるけど、タイヤを外すのは数10年ぶり。
ナットがやたらと固く締められてて、もしかして逆ネジなんじゃないかと疑うくらい。
スペアタイヤの空気も減ってて、以前の車のパンク修理キットにあった電動空気入れで足したりしてちょっと時間がかかりました。
こういうことがあって今後のもしもの時のために、パンク修理キット、空気圧計、をポチりました。

【Amazon.co.jp 限定】エーモン(amon) エアゲージ レッド ラバープロテクト付 タイヤゲージ 空気圧 最大測定値500kPa 4980

Ansimple 46点セット タイヤ修理ツールキット パンク修理キット 車 オートバイ 自転車 応急修理キット 収納ケース付き
Arduino Nano Everyを使ったマイクロマウス、ソフトウェア移植
以前作ったArduinoのマイクロマウスのソフトを移植しました。

以前のものはこちら。
https://cpu4edu.net/articles/20017.shtml
以前のプログラムのダウンロードはこちらからー>Arduinoマイクロマウス
https://cpu4edu.net/download.shtml

今回移植したプログラムもダウンロードできるようにしました。
基板の設計データも追加しました。
こちらから。
Arduino マイクロマウス(Nano Every 版)
https://cpu4edu.net/download.shtml

動かしてみた動画はこちら。
後は、しきい値やステップ数を調整すれば小さな迷路なら走れるようになると思います。



alt
ヘッダ付きArduino Nano Every マイクロコントローラ
Arduino Nano Every の EveryTimer
もう一つ、ライブラリマネージャーに登録されているタイマーライブラリで、EveryTimerを試しました。

これは、最初に以下のように使えます。
使いにくいところは、常にtimerをアップデートしないといけないところ。
delay(1000)で1秒待ってたりすると、その間タイマーが止まってしまいます。


#include

EveryTimer timer;

void TimerHandler1()
{
static bool toggle1 = false;
digitalWrite(LED_BUILTIN, toggle1);
toggle1 = !toggle1;
}

void setup(){
timer.Every(1000, TimerHandler1);
}

void loop()
{
timer.Update();
}



Arduino nano every のタイマ―割込み
Arduino Nano Every は以前のArduino UNO など Atmega328 で使えた、TimerOneやMsTimer2
が使えません。

探してみたらArduino Nano Everyで使いやすいタイマーありました。ライブラリマネージャーでmegaAVR_TimerInterrupt が検索すると出てきて、インストールして、TimerInterruptTest.ino を起動すると1秒間隔でLEDがON-OFFします。サンプルは長いです。

でも、timer1だけ抜き出すと簡単。
これでloop内のdelay(1000)で止まってるけど100ms毎にLEDを点滅。文字数制限のため変数名短縮、最初の2行はincludeの前にdefine入れとかないとエラーになります。


#define USE_TIMER_1 true // これをinclundeの前で定義しないとエラーになる
#define TIMER1_INTERVAL_MS 1000

#include "megaAVR_TimerInterrupt.h"

void TimerHandler1()
{
static bool toggle1 = false;
digitalWrite(LED_BUILTIN, toggle1);
toggle1 = !toggle1;
}

void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
ITimer1.init();
ITimer1.attachInterruptInterval(TIMER1_INTERVAL_MS , TimerHandler1);
}

void loop()
{
delay(10000);
}


連休中に設計
仕事なのか趣味なのかわからない感じで、設計してました。
連続回転サーボでケーブルを巻き取るクレーンのようなもの。

- CafeLog -