コントールパネル → プログラムと機能 → Windowsの機能の有効化と無効化 → ☑Windows Subsystem for Linux
これをセットしてリブートすれば、準備完了です。後は、Windows store から Ubuntu を
入れるだけです。
Windows store → 検索 → WSL → Ubuntu を選択インストール
今回は bash を使う事が主目的でなくあくまで TeraTerm の代わりをできるかを目的として
おります。そして自動ログインしてコマンド実行をしたリクエストがあったので軽くテスト
してみました。この辺りは bash + expect があれば何とかなるかなと思っておりました。
始めて使う Ubuntu なので良くわかりませんが、 apt-get expect とやっても無いと言われ
ます。どうもパッケージDBを更新する必要があるようです。
> sudo apt-get update
これで更新されたようです。必要なパッケージを入れてみます。
> sudo apt-get install screen
> sudo apt-get install expect
これで自動実行に必要なパッケージは揃いました。screen はシリアルアクセスの時に
便利なパッケージです。今は知りませんが uucp のオーナーで dialer のグループで
なとアクセスできなかったり面倒くさい思い出ばかりです。なので、モードは甘くして
おきます。使うシリアルは aliexpress で 300円ぐらいで買ったシリアルでポートです。
ポート(COMとLPT) USB-SERIAL CH340(COM3)
COM3 へは Ubuntuからは /dev/ttyS3 でアクセスできます。
>sudo chmod 666 /dev/ttyS3
> sudo screen ttyS3 115200
何かつながっていれば、確認できる筈です。
auto.sh
#!/usr/bin/expect -f
set
timeout 10
spawn
sudo
screen
/dev/ttyS3
9600
expect
"sbin:"
//sudo
のパスワードを聞かれる
send
"ひみつ\r"
//
ひみつのパスワードを送る
send
"\r"
expect
"login:"
send
"manager\r"
expect
"Password:"
send
"でもでも\r"
expect
"g401>"
send
"lo\r"
expect
"g401>"
send
"^a K\r"
//
screen
から抜ける
sleep
5
send
"y\r"
#interact
expect eof
簡単にルーターのコンソールにシリアルでログインして抜けられました。
続けて ssh してみます。
auto.sh
#!/usr/bin/expect -f
set
timeout 10
spawn
/usr/bin/ssh
sbin@server
expect
"Password:"
send
"ひみつ\r"
expect
"]"
send
"ls -l \r"
expect
"]"
send
"exit\r"
#interact
expect eof
sshでも自動でログインできますね。お手軽に自動化できそうです。
因みにログを取る場合は、
./auto.sh > log &
でlog に書かれます。
そう言えばフォントも変えておきます。
UbuntuMono-R.ttf を落としていれます。regedit で
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
にアクセスして
000 REG_SZ Ubuntu Mono
を登録します。あとは bash のプロパティで
Ubuntu Monoを設定すればフォントも変わります。
そう言えば Ubuntu は全て sudo で管理者コマンドを実行します。su か su - に切り替えます。
> sudo passwd root
これで root のパスワードを設定します。
続いて root になるため自分をrootグループに加えます。
sbin@sbin-g4:~$ cat /etc/group
root:x:0:sbin
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sbin
これで、su で root になれます。
しばらく使ってみると、ストレスを感じます。ターミナルが酷くて vi が変になります。
これは使えません。評判の良さそうな wsltty を入れてみます。
これでかなり良くなりました。あれ、そう言えば日本語のロケールが無い事に今更気が付きます。まあ無くてもいいのですが、折角なのでいれます。
>su
ロケールが追加されました。ロケールを切り替えます。続いて時間も東京にします。
# update-locale LANG=ja_JP.UTF8
# dpkg-reconfigure tzdata
最後に間に合わないマニュアルも入れておきます。
# apt -y install manpages-ja manpages-ja-dev
大夫ストレスがなくなりました。ターミナルは TeraTerm のようにバックグランドは
白が好きです。前景色を黒、背景色を白に設定すると同じようになります。
ところが 端末タイプを xterm-256color に設定しているとあちこちカラーで色分けされて
いるのですが、黄緑とか見えにくい色が多用されています。ストレスです。
$ dircolors -p > ~/.dircolors
現在の設定を .dircolors に書き出します。この中で 01;32 に設定されている部分が見え
にくいので 01;34 に書き換えます。
$ dircolors -b > ~/.dircolors
で書き換えるか、ターミナルを立ち上げ直します。最初から .dircolors があるか .bashrc
でテストされていますので、立ち上げ直せば設定されます。
ところが、プロンプトが未だに黄緑色で苛っとします。
これは、.bashrc に PS1 で選定がありました。
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
\[\033[01;32m\と32m で黄緑が指定されているので 34に変更します。
これでようやくターミナルとして使えるようになりました。簡単なスクリプトは、ローカル
で実行できるようになったので便利です。
そう言えばWindows とファイルをやり取りする場合のパスが深いので HOMEを移動される
設定をしてみましたが、止めました。 移動すると Permissionが 7777 になってしまい
ssh が秘密キーで使えなくなります。
ショートカットを行きと戻りを作って行き来した方が良さそうです。テキストファイルは
ターミナルにドロップすれば、パスに変換されるので不自由ありません。ターミナルからは
/mnt/c/xxx でWindows の全域にアクセス可能です。
これでストレスなく 使える環境になりました。
WSL2 には暫く上げる予定はありません。 Hyper-V がサポートされ tcp-dump も動く
ようですが、古い VMWare が動かなくなってしまい副作用もあるので予定なしです。
長い連休中に頼んであった 差動赤外線センサを付けてみた。
USB充電タイプで、マイクロUSBのケーブルが1本付いているだけです。正転、反転はスイッチですが、軸回転のスイッチは押し込んだ時オンです。説明書は中国語なので全くわかりません。
プラスのビットも挿さったまま付属してました。押し込むとスイッチが入るので使いやすそうです。航空便の送料込みで4980円でした。
ところが開発が遅れに遅れ、代替え機に現行機種の Bluetooth でどうか聞かれたのでもちろん Yes と即答。
当時 Anova は買い手がついて 280億で売れたそうだ。
ところで写真のようにしっかり筋が入っております。まあグラム200円ですから。しっかり筋切りしてから Anova してます。レアーとミディアムに。
ついでにガーリックオイルも作ってまぶしてます。スライスした大蒜をオリーブオイルで湯煎しました。肉になじませてから、Anova しました。
あとは食べる直前に少し焼くだけです。バターが切れていたので大蒜オイルで焼きました。時間があれば澄ましバターを作っておくと良いかも知れません。Anova しないでステーキを焼く場合は澄ましバターを用意してます。
レアーは今回は52度で2時間湯煎してます。中まで52度の温度がしっかり入っていますがレアー状態です。
今朝のヨーグルトももうすぐ出来ます。
毎日のように発生します。
ホームゲートの設置が追いつきません。
何年も掛けてチンタラ設置してるから
前々から回転速度は気になっていたのですが。中々手つかずでした。
先生のページの様にPWMでコントロールして、Gコードに速度を埋め込むのも手ですが、MACH3から変えた場合影響が出そうなので、単純に計ることにしました。センサーは GP2A200LCS と言う秋月で売っているシャープの反射型赤外線センサーをつけて Arduino で読んでみました。最初は、パルスから次のパルスの時間を割り込み処理して計っておりました。
ところがI2C 16x2 のLCD も秋月で買ってきて付けたら正確に表示できません。
表示は、結構めんどくさいサンプルがついていて表示できました。そして簡単に使えるI2CRequiredCrystal を頂いてきて更に簡単に表示できるようになります。
そうシリアル表示と同じように lcd.print() が使えます。誤算だったのは I2C でこれを使う場合は割り込みが使われています。割り込み中に割り込みが掛かって表示が狂います。
そこで計測は割り込みで差分を取る方法を諦めて、パルス関数で計りました。ローとハイの時間を計って 1/T してあげます。60を結果で割ると回転数になります。
中々正確に計れます。10ns 以上あれば結構正確に計れるようです。念のためデジタルオシロでパルス幅を計り換算すると表示結果と一致するので良しとしましょう。
ここまで来るのに別 なところで嵌りました。1回転に一回パルスが出れば問題ありませんが、2、3回出ていました(笑)。これではだめですね。スピンドルの冷却フィンを使って計るのですが、余計な所でも反射してます。最終的には養生テープを貼り付けて1回のパルスにしました。以外と簡単な方法で済みました。
もう何十年も半田付けなんてご無沙汰しておりましたが、楽しいもんですね。一応一通り作業ができる環境は整った気がします。
これで CNC3020 はかなり良くなりました。このケースのように殆どは 3D プリンタで済んでしまうので、活躍の機会は基板の切削が中心となりそうです。今回MACH3をWindows10へ移行できたこととUSBカメラによる原点合わせが簡単になった意義は非常に大きいです。
そして原点センサーも1ポートに集約できてすっきりしました。
これからも、Arduino は活躍する予感がします。今回は使わなかったのですが、Visual Micro と言うVisualStudio のプラグインを知りました。これを使うと普段のようにArduino のC++ であってもインテリセンスが使えるようになると言うことです。そしてオンラインデバッグも可能らしいので、そのうち試そうかと思います。
BlogTouch Proが突然投稿出来なくなってしまい。テストしてます。
テーマの問題かとも思ったのですが、そうでもありません。Android の Bloger Pro からこの写真は投稿出来ました、
BlogTouch Pro がらの投稿は