AT SAMの部屋(7) XiaoでもGo!TinyGoでポーリング、結果はChannelへ

pollingApin
Joseph Halfmoon

前回端子からの割り込みやってしまいました。普通は先にポーリングだったかなあ、ということで今回は端子のポーリングしてみます。ポーリングはGoroutineにお任せして、結果はchannelで受け取ると。ついでに無関係なLEDもチカチカさせたりして並行に処理している雰囲気をだすってもんかと。ありがち?

“AT SAMの部屋(7) XiaoでもGo!TinyGoでポーリング、結果はChannelへ” の続きを読む

AT SAMの部屋(6) XiaoでもGo! TinyGoでタクトスイッチからの割り込み受け

XiaoDUT_schematicA
Joseph Halfmoon

Go言語プログラムをマイコンで走らせることができるTinyGoの練習台にSeeduino Xiaoを使っております。Xiaoだろうと他のボードだろうと、ArmだろうとRISC-Vだろうと、似たようなソースで似たようなことができる気がします。ハードが異なる部分は要対応ですが。今回はスイッチからの割り込みを受けてみます。

“AT SAMの部屋(6) XiaoでもGo! TinyGoでタクトスイッチからの割り込み受け” の続きを読む

AT SAMの部屋(5) XiaoでもGo!秋月AQM1602をTinyGoで制御してみる

XiaoGoAQM1602
Joseph Halfmoon

Go言語で書いたプログラムをMCU上で走らせることができるTinyGoは、多くのマイコンボードをサポートしているだけでなく、定番の周辺デバイスも多数サポートしています。直接デバイスとしてのサポートが無くても、I2CやSPIといった標準インタフェースをサポートしてくれているので楽。今回は秋月製の定番LCDを接続。 “AT SAMの部屋(5) XiaoでもGo!秋月AQM1602をTinyGoで制御してみる” の続きを読む

モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE

KYINTR_EC
Joseph Halfmoon

前々回にZephyrのデバイスツリーが分かったかのようなことを書いてしまいましたが、あれは一時の気の迷いでしたね。全然分かっちゃおりませんでしたな。今回、スイッチから割り込みを受けようとしてまた迷宮に迷いこみました。そういう時は素直にサンプルソースなど真似してみるべしと。やってみました。 “モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE” の続きを読む

AT SAMの部屋(4) XiaoでもGo!Goroutineで並行処理、どこまでいけそう?

XiaoGoroutineEC
Joseph Halfmoon

Go言語で組み込みマイコンをプログラムできることを学んだのでGoしてます。マイブームってやつです。さて、Go言語には Goroutine という「簡易的な」並行処理の仕組みがあります。他の言語にもある Coroutine のGo版かと。時間シビアな目的には適さないような気もしますが、どのくらいな感じなの?

“AT SAMの部屋(4) XiaoでもGo!Goroutineで並行処理、どこまでいけそう?” の続きを読む

忘却の微分方程式(47) 反復練習11、部分空間の基底1組と次元を求める Maxima

e18_002
Joseph Halfmoon

今回は、前回と「違う問題」なのだけれどMaxima上で行っている処理はといえばほぼほぼ同じ。でもま、やらないことには先に進まないのでほぼほぼ同じようなことをダラダラ実施。そんなんで良いのか?良いわけないですが。

“忘却の微分方程式(47) 反復練習11、部分空間の基底1組と次元を求める Maxima” の続きを読む

ぐだぐだ低レベルプログラミング(64) ARM64(AArch64)、シフト付きadd

addSFTc_EC
Joseph Halfmoon

Armは64ビット化するときに32ビットであった「余計なもの」を捨ててます。しかしレジスタをシフトしてから演算という命令は捨てなかったです。アドレス計算などに便利なようでいて、実はそれほど頻繁に使う分けでもない命令(個人の感想です。)RISC-Vなどは持ってない類。もはやArmの伝統といっても良い機能かと。

“ぐだぐだ低レベルプログラミング(64) ARM64(AArch64)、シフト付きadd” の続きを読む

鳥なき里のマイコン屋(156) Wio TerminalでもGo! TinyGoで5機種目

wioTerminalTinyGo
Joseph Halfmoon

マイコン上でのGo言語(TinyGo)の動作確認、Wio Terminalにて5機種目であります。米MicroChip社のATSAMD51P20搭載、Arm Cortex-M4Fコアであります。既に確認済のSeeeduino XiaoのATSAMD21マイコンの上位機種です。例によって吉例Lチカ行ってみます。

“鳥なき里のマイコン屋(156) Wio TerminalでもGo! TinyGoで5機種目” の続きを読む

手習ひデジタル信号処理(36) IIRフィルタ、直交する正弦波発生器その1

BlockDiagram
Joseph Halfmoon

前回はIIRフィルタを使って正弦波を生成でした。今回はその応用であります。直交する正弦波、要するにSin波とCos波、位相90度ずれた波の生成です。例によって今回はブロックダイアグラムをシミュレーションしてPC上で確認です。実際に三上先生の教科書のコードを実機で動作させるのはまた次回の予定。

“手習ひデジタル信号処理(36) IIRフィルタ、直交する正弦波発生器その1” の続きを読む

データのお砂場(30) R言語、UKgas、英国のガス消費量4半期毎

stPlot
Joseph Halfmoon

R言語所蔵のサンプルデータをABC順にみております。今回登場は1960年代から80年代中盤にかけての英国のガス消費量のデータです。時系列データの定番サンプル的なやつ。結構あちこちで目にするような気がします。データは天然ガス限定と書いていないですが、今や無色無臭の天然ガスも、ガス臭い、いや、きな臭くなった世界。

“データのお砂場(30) R言語、UKgas、英国のガス消費量4半期毎” の続きを読む

ブロックを積みながら(66) Node-RED、TCP requestノード

tcpEC
Joseph Halfmoon

前回はUDPパケットを対向機にECHOしてもらってUDP in/out の動作を見てみました。今回はTCP requestノードを使って 送信したTCPパケットを前回同様にECHOしてもらって動作確認したいと思います。TCPはハンドシェークが必要なので実際に流れるパケットの様子は複雑ですが、表向きは超簡単!ホントか?

“ブロックを積みながら(66) Node-RED、TCP requestノード” の続きを読む

やっつけな日常(17) スマホでGo!GoのポインタはCとは違うケド、ちょっとだけよ。

result
Joseph Halfmoon

Go言語を始めて喜んだことの一つにポインタがあります。一瞬、ポインタがあれば「やりたい放題」と思ったのですが違いました。Goのポインタはほぼ安全。Cのように不作法な操作は許してくれないことが分かりました。でもねえ、やっぱり「危ない」ポインタ操作をやりたい人はいたみたい。その名もunsafeモジュール。

“やっつけな日常(17) スマホでGo!GoのポインタはCとは違うケド、ちょっとだけよ。” の続きを読む

うさちゃんと一緒(7) TCPパケットをオウム返しでtelnet、Rabbit4000

telnet
Joseph Halfmoon

前回はUDPでしたが、今回はTCPのパケットをうさちゃん(Rabbit4000)にオウム返ししてもらいます。使うポートは23。telnetであります。Scapyも使ってみますが、TCPは3wayハンドシェイクしないといけないので本来の telnet コマンドにご登場願う、と。あれtelnetインストールしてなかった?

“うさちゃんと一緒(7) TCPパケットをオウム返しでtelnet、Rabbit4000” の続きを読む

鳥なき里のマイコン屋(155) RISC-VでもGo!TinyGoで4機種目 MaixBit

maixBitGOHELLO
Joseph Halfmoon

Go言語の動作確認、Androidスマホで始め、Linux機、Windows機でOK。TinyGoを導入し、ラズパイPicoSeeeduino XiaoBBC micro:bitと3機種でもOKです。今回はマイコン4機種目、64ビットRISC-V機、Kendryte K210搭載Sipeed MAiX Bit。

“鳥なき里のマイコン屋(155) RISC-VでもGo!TinyGoで4機種目 MaixBit” の続きを読む