「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



ESP32のArduino互換ボードを、Arduino-IDEから扱うこと
が出来るようになったので、あらためてLチカをやって
みることに。ただし、タイマ割り込みを使って正確な
間隔で点滅させてみるという作戦。



ESP32のタイマ割り込みについては、

https://techtutorialsx.com/2017/10/07/esp32-arduino-timer-interrupts/

こちらのサイトで詳しく解説されていたので、しばし
じっくり読んでみた。大体理解できたところで、早速
理解を元に組んでみたスケッチがこれ。
/* global variables */

volatile int interruptCounter;
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

#define LED 2


/* interrupt proccess */

void IRAM_ATTR onTimer() {  /* this function must be placed in IRAM */
  /* we will do it inside a critical section ,
     these marcos use portMUX_TYPE variable */
  portENTER_CRITICAL_ISR(&timerMux);
  interruptCounter++;
  portEXIT_CRITICAL_ISR(&timerMux);

  /* other handling code if needed */
}


void setup() {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);

  /* set prescaler 80 -> tick every 1us (80MHz / 80) */
  timer = timerBegin(0, 80, true);
  /* set the function name to call when interruption occured */
  timerAttachInterrupt(timer, &onTimer, true);
  /*  set timer-interruption-interval to 1000000 counts -> every 1s */
  timerAlarmWrite(timer, 1000000, true);
  /* enable timer */
  timerAlarmEnable(timer);
}

void loop() {
  static int light = LOW;
  static int cnt = 0;
  
  if (interruptCounter > 0) {
 
    /* This will be done inside a critical section */
    portENTER_CRITICAL(&timerMux);
    interruptCounter--;
    portEXIT_CRITICAL(&timerMux);

    light = ~ light;
    cnt++;
    
    digitalWrite(LED, light);
    Serial.print(light);
    Serial.print("   ");
    Serial.println(cnt);
  }
  
}

いくつかのポイントを押さえれば、なんとなく自由自在に
タイマ割り込み処理をいじれるようになった。

プリスケーラの設定とか、カウンタマッチの値設定とか、
カウンタ値の読み取り方法や更新方法のクリティカル
なんとかっていうマクロを使うところとかを押さえれば、
まぁイイカンジに使えるみたいだな。
そうそう、あともうひとつ。割り込み発生時に呼ばれる
関数の定義で、「IRAM_ATTR」属性っていうのをつけておく
必要があるみたい。割り込みで呼ばれる関数のコード部分
が、IRAM領域におかれている必要があるみたい。

今日は、詳しい解説はちょっと置いておいて、また明日か
明後日にでもあらためて。


実行すると、LEDが1秒ごとに点滅して、シリアルモニタに
カウンタ値とLEDの点灯/消燈が表示されるだけの仕組み。





https://www.youtube.com/watch?v=sT0O1EClP8w

ノートPCのトップに、カーボンシートを貼る動画。

この人の動画、時々見させてもらっているんだけど、
いつも思うんだけど、説明の会話のしかたとか、動画の
編集とか、とにかくわかりやすいんだよな。なんか、
コツがありそうな感じがするんだよな。

単に、「ゆっくり目に話す」とか「字幕を付ける」
なんていう単純な話だけじゃなくて、色々と、もっと
科学的なデータとかがあるような気がする。





https://twitter.com/hashtag/54%E5%AD%97%E3%81%AE%E7%89%A9%E8%AA%9E?src=hash

54字の物語。おもしろいな。

https://twitter.com/JOKERSnaKeijiji/status/1014130463927963650

これけっこう好き。






https://twitter.com/metatetsu/status/1013400855289065472

窓をなくしちゃう話。わからないでもないんだけど、
この手の話って、こち亀でネタにされていたような。

窓がなくなったら、本当に幸せかっていうと…ねぇ。
窓開かないんだよ…。そんなクルマに閉じ込められて
何時間も走るの、やだな。

そういえば、新幹線はそれに近いんだよな。外の空気
が全然吸えない。

あと、カメラとかモニター画面とかって、ダイナミック
レンジが人間の目よりずっと狭いから、それも嫌な感じ
だな。やっぱ、オイラみたいなアナログ人間は、モノを
目で見て、手足で操作して走りたい。





https://twitter.com/8go8/status/1013051996687831040

オイラ、空を飛ぶお船のが欲しい!





https://twitter.com/Wu_Niang/status/1013929797716570114

ケッテンクラート症候群。

https://twitter.com/uchujin17/status/1013864759752417282

ケッテンクラート症候群。




https://twitter.com/uta_31/status/1013569912046931969

ハネカクシが翅を隠す動画。すごい。

これは…あれだ。宇宙開発に使おう!!!





https://twitter.com/matsu000000/status/1012317467635404800

九州。





https://page.auctions.yahoo.co.jp/jp/auction/p616176856

88MAの極上品だ!!
というか、すごく実用品なのに美品だ。





https://join.biglobe.ne.jp/mobile/device/moto_e5.html

オイラ的には、こんなスマホでも多分十二分なん
だけど、通話SIMじゃなくて十分なんだよな。
SMSだけ対応しててくれれば。

…ストレージが16GBっていうのがちょっとあれか…


https://join.biglobe.ne.jp/mobile/device/zenfone_4_max_zc520kl.html

ZenFone4Maxがなかなか惹かれるんだよな。


思うんだけど、やっぱあれだな。Androidの気に入らない
ところって、メーカーなりGoogleなりが、パッチを
サクサク提供しない、もしくは、提供してもさくさく
取り込めないところなんだよな。

Windowsも、普通のPC用Linuxも、サクッと入るのに、
なんでAndroidは駄目なんだろう?

そういえば、Firefox OSのスマホ、こけちゃったけど、
あれがもしそれなりに普及してたら、セキュリティー
パッチって、サクサクあたるようになってたのかなぁ?





https://www.gizmodo.jp/2018/06/russian-lazer-space-debris.html

トールハンマーだ!!!





https://twitter.com/manna2010able/status/1013443124780150784
https://twitter.com/kannamitsuta/status/1013028777822076928

残念なことに、これが現在の日本だな。

サッカーでまた美談が有ったみたいだけど、でも、
実際はこんなもんだ。



コメント ( 0 )




まえからずっと行ってみたかった、埼玉北部の深谷。
ビデオゲームミュージアム・ロボットに行ってみた。



ここ。
https://www.google.com/maps/@36.1796105,139.2989152,20.75z

だいたいレトロゲーなんだけど、入り口付近は最近の
ゲームも置いてあるみたいだなぁ。


あちこち歩き回って、どんな機種が稼動しているかを
チェック。

パワードリフト。懐かしい。ただまぁ、オイラ的には
ドライビングシミュレータ系のゲームじゃないと満足度
が低いので、この手の大味な感じのゲームには、残念
ながら、最近は食指が伸びないのだ。



ダライアスバーストEX。



バーチャロンと、森口博子のクイズでヒューヒュー。



日産本物株式会社。



レバーとボタンでドッキングせよ。



ニンニキニキニキ。



エクセリオンがあったんだけど、クレジットが入ってて、
なんかやっていいのかどうか判らず、手を出さず仕舞い。



三輪サンちゃん。



これ初めて見た。キャプテンシルバー。
画面の感じは、いかにもDECOって感じでカルノフに似てる。



とんまなゴリラ。
やりたいなと思ったんだけど、結構長時間続いている
人がいて、断念。



カプコンクラブのPGCをもらおう!!
PGCってなんだ?

http://nitioku.blog49.fc2.com/blog-entry-308.html

プレイゲームカードらしい。



PULSAR。良く知らないんだよな。これ。



ぺったんピュー。これ、ほとんどやったことなかった
んだよな。



ゲームルールすらもはやわかってない状態で、とりあえず
100円投入。3面で16000点ちょっと。むずかしいね、これ。



これも良く知らないんだよな。虫姫さま。弾幕系は
あまり手を出したことが無いんだよな。



ドルアーガとグロブダー。
どっちかっていうと、「見てるのが好き」系。



入り口付近には、比較的新し目のゲーム。例のSWDC
(Sega World Drivers Championship)があったので、
やってみた。
まぁ、やっぱエンターテイメント系のゲームだな。



命知らずのエトランジェ。



じつはやったことないんだよな。このゲーム。
友達がエリア88にはまってたんだけど、オイラあまり
関心がなかったんだよな。

飛行機といえば、オイラはフライトシミュレータ系の
リアルな飛行を望んじゃうもんだから、こういう
「飛行機」をテーマにしたゲームっていうのと、
いわゆるシューティングゲームって、どこか頭の中で
一線を画してたんだよな。

どこかに、Top Landingができるところないかなぁ?



19XX。珍しく弾幕系でちょっとだけ手を出してみたやつ。
これと、STRIKERS1945はちょっとだけやったんだよな。
今でも見るとついやっちゃう系。



というわけで、じっくり時間掛けて眺めたものの、あまり
たくさんの機種で遊ばなかったな。見てるだけでも、
なんかこういう昔チックなゲーセンはホッとする感じ
があるんだけどな。

格闘ゲー系は、鉄拳が無かったのと、弾幕系は元々不得意
なので、台数のかなりを占める格闘ゲー、弾幕ゲーは今回
もパスかなりパスだったな。

で、入り口に大量にあるガチャガチャに目を向ける。

インベーダー。ちょっと気になったんだけど…



もっと気になるこっちをやる。戦国の茶器。
どう考えても、平蜘蛛だろう。これ1個手に入ればもう
満足だろう。

って思ってやってみたんだけど、後述。



うわさの、「暗黒の破壊神」
突入電流とかサージとか全然考えられて無いから
なのかな?



で、戦国の茶器のパンフ。上半分。



下半分。



300円投入、ガチャをまわす。「九十九茄子」。おしい。

300円投入、ガチャをまわす。「紹鴎白天目」。おしい。

300円投入、ガチャをまわす。お?桐箱がない。これは?
 と思うも、「蘭奢待」。おしい。

300円投入、ガチャをまわす。「紹鴎白天目」。ダブった。

うーん。だいたい、オイラはダブったらそこで一旦やめる
慣わしなので、いつものとおりここで打ち止め。

そういえば、井戸の茶碗も欲しかったな。


鉄剣タローより、さらに10kmほど先になるんだけど、
まぁだいたい熊谷バイパスをちょっと走れば着いちゃう
くらいなので、距離感覚的にはそんなに遠くは無い感じ。

鉄剣タローから笹目橋までは、今回も1分以内の正確さで
1時間で帰ってこれた。ロボットまでだと、プラス10km
くらい。
高速だと花園が近いんだな。帰りはともかく、行きは
渋滞で結構時間食うから、高速で途中すっ飛ばすのも
悪くないかもしれないんだけどな。

時々行きたい感じではあるんだけど、ちょっと遠いのと、
あと、松戸のあの聖地とは、雰囲気がちょっと違うん
だよな。あの駄菓子屋感というか…。



コメント ( 0 )




ESP32搭載のArduino型基板、Wemos D1R32をいじって
みることに。

まず、Arduino-IDEに環境を導入。今のバージョンは、
ちょびっとだけ古い1.8.4を使用中。(最新は1.8.5
だけど、まぁ、あまり気にせず進める)

https://www.mgo-tec.com/arduino-core-esp32-install

ここを参考にして、githubからzipファイルをダウン
ロード・解凍して、書いてあるとおりに、ディレクトリ
作って格納。get.exeを実行。
さいしょ、なんかPCの調子というか、Firefoxの調子が
わるかったらしく、get.exeがちゃんと処理を完了できて
なかったみたいで、コンパイルすると変なエラーが
でちゃう。

なので、一旦ディレクトリごと削除してから、もう一度
最初からやり直し。こんどはちゃんと設定できたみたい。


やっぱり最初はLチカからやってみる。なんといっても、
このボード、どこに何が繋がっているのかがよく判ら
ないので、Lチカすら、何番目を指定すればいいのかが
判ってない状態。


PCにUSBケーブルで繋ぐと、電源の赤LEDが点灯して、
青色LEDが1秒ごとに点滅。ちなみに、USBシリアル
変換チップはCH340。このチップは以前使っている
ので、ドライバが勝手に認識されているけど、もしか
したら、環境によってはドライバのインストールが
必要かも。


で、サンプルスケッチのblink(Lチカ)を開いて、
コンパイル。
…エラーになる。どうやら、「LED_BUILTIN」っていう
タグが内部で定義されていないからみたい。普通は
組み込みLEDといえばD13なんだけど、さっきのget.exe
で組み込まれるゴニョゴニョには定義が含まれていない
みたいだな。

#define LED_BUILTIN 13

として、13番に定義してやると、コンパイルは通って、
Wemos D1R32に書き込みが行われた。とりあえず、
自動リセット機能は旨く働いているみたいだな。
よしよし。


で、LEDはというと…光らない。どうやら、13番には
繋がって無いみたい。

どこかにLEDが配線されていることは間違いないので、
あてずっぽうで色々試してみる作戦。0番と1番は
シリアル端子だろうから、2番から指定していって、
コンパイル~書き込みをして、オシロで当たって
確認してみようかと。

で、2番。いきなりビンゴだった。LEDが点滅してる。
オシロで当たってみると、どうやらArduino Unoだと
アナログ0番にあたる端子。

えーーーーーーー???なんでこんなところにLEDを
繋いじゃうの????出力インピーダンスが大きい
センサーとか繋いじゃうと、入力値狂いまくるじゃん
よう。

でもまぁ、シルクと見合わせてみて、なんとなく
推論はできた。シルクに書かれている「IO2」とか
「IO14」って番号を指定すれば、出力できるみたい。


これが、「2番」を指定してLチカしているときの様子。
シルクのIO2番(アナログ0番の位置)にオシロの
プローブを繋ぐと、



波形が出てくる。こんな具合。




それにしても、シルクが少しつぶれていて、読みにくい
んだよな。5だか8だか判らないところとかいっぱい。

あと、I2CとかSPIとかPWMとか、どうやったら判るの?
なんてあたりもいまいち。

それにしても、Lチカが出来ちゃうと、あとは色々と
弄り回すことができる。やっぱ、Lチカ大事。

タイマ割り込みが気になっていたので、サンプルスケッチ
としてEPS32用にインストールされている、

  スケッチ例→ESP32→Timer→RepeatTimer

を開いて、そのままコンパイル・書き込み。

動いた。タイマー割り込みがこんなにサクッと動くと、
なかなか気持ちが良い。


コンパイル時に、BLE関係のファイルが見つからないとか
いってなにかメッセージが出るんだけど、とりあえず
BLE使って無いので、構わずにおいた。あとでまた
BLE使うときにあらためてなんとかしよう。


そのまえに、Wi-Fi接続でゴニョゴニョしてみよう。



コメント ( 0 )



   次ページ »