ESPでhttps

マイコンからホームページの情報を読み取る必要が出て来たが,意外に苦労したので,分かったことを書いておこうと思う.近年はほとんどのホームページはhttpsになっており,httpに比べてアクセスするのが複雑になった.wifiを使いたかったので,ESP8266にmicropythonを入れてhttpsを読み取ろうと思ったが,EPS32を使ってなんとか繋ぐことに成功した.基本的な作業はdebian13で行った. まず,EPS8266にmicropythonを入れる作業である.https://micropython.org/download/ESP8266_GENERIC/から現在の最新であるESP8266_GENERIC-20250415-v1.25.0.binを取ってきた.そして,書き込みtoolであるesptoolをaptでinstallする.ESP8266ボードをUSBに接続して, esptool --port /dev/ttyUSB0 erase_flash esptool --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 ESP8266_GENERIC-20250415-v1.25.0.bin のようにして,書き込みをする. 次に,micropythonの動作確認である.シリアルのターミナルを使うのだが,今回はgtktermというのを使ってみた.これをaptで入れてから, gtkterm -p /dev/ttyUSB0 -s 115200 と立ち上げる.設定を変える必要があったら,Configuration-Portから変更できる. そして,ESP8266ボードのRSTボタンを押すと,micropythonのプロンプトがターミナルに表示される. ここまではあっさりと進んだが,その後は試行錯誤が必要だった.このversionのmicropythonにはusslというmoduleが無いことが分かり,v1.20.0やv1.12にはusslがあることを確認したが,いくつかの原因でerrorが出てしまう.ESP32で無いと動かないと判断して,手元にあるEPS-WROOM32を使うことにした. debianでは,ESP32に必要なesptoolのファイルが欠けているようで, wget https://raw.githubusercontent.com/espressif/esptool/refs/heads/master/esptool/targets/stub_flasher/1/esp32.json mv esp32.json stub_flasher_32.json sudo cp stub_flasher_32.json /usr/lib/python3/dist-packages/esptool/targets/stub_flasher/ とする必要があった.また,esptoolで書き込む際には,BOOTボタンを押したまま,ENボタンを押して離し,BOOTボタンを離すことによって,BOOTモードに移行しておく.binをhttps://micropython.org/download/ESP32_GENERIC/から取って来るのだが,最新版はusslが無かったので,今回はv1.20.0を使った.そしてハマったのが書き込みで,アドレスを指定しないといけなくて, esptool --port /dev/ttyUSB0 --baud 460800 write_flash 0x1000 ESP32_GENERIC-20230426-v1.20.0.bin としたら良いということに気づくのにかなり時間がかかってしまった.micropythonのページにはチャンと書いてあるのだが,ESP8266と同じだろうと思って読み飛ばしていた.ENがリセットボタンに対応することにも注意が必要である. やっと準備が終わったのだが,その後もネットの情報を頼りに,usocketを使ったプログラムをいじってみたが,errorが出てうまく行かず,最終的にはurequestsを使ったらアクセスすることに成功した.そのプログラムが以下のものです. import urequests import ussl import network import utime ssid = "wifi_ssid" passkey = "wifi_password" timeout=30 wifi= network.WLAN(network.STA_IF) wifi.active(True) while True: wifi.connect(ssid, passkey) to=timeout while not wifi.
Read more...

Gimpのスクリプト

画像を加工するときには,gimpを時々使っている. 単純な作業を繰り返し行うときには,自動化すると便利である. Gimpでは,以前からscript-fuというスクリプトが使えて,自動化することが出来たが,これはschemeという言語を使っているので,それに不慣れなので,あまり使いやすくは無かった. schemeは,括弧を沢山使う言語で,配列やループなどを使うのが大変で,少なくとも私には複雑な処理をするスクリプトを作るのは困難だった. しかし,最近のgimpには,python-fuが組み込まれていて,pythonを使ってスクリプトを書くことができる. Debian13では,Gimp 3.0になっているし,少し古いubuntuでも,snapで3.0をインストールすることができ,python-fuを使うことができる.

python-fuは,Filters - Development - Python-Fu - PythonConsoleでコンソールを立ち上げて,そこから使うことができる. プログラム自体はpythonが使えれば問題無いのだが,少しクセもある. GimpのコマンドはHelp - Procedure Browserから調べることができるのだが,そのままでは使えないのである. 例えば,現在openしている画像のリストを得るgimp-get-imagesというコマンドは,python-fuでは,Gimp.get_imagesとなる. もう一つ例を挙げておくとgimp-image-get-layersは,Gimp.Image.get_layersとなる. “-“が”_“になるのはまだ良いとして,“gimp-“が"Gimp.“などとなるのは,moduleやクラスの名前となっているからのようです. 他にも,Gimp.SelectionやGimp.DrawableやGimp.Channelなどがあるようである.

また,python-fuで作ったスクリプトをメニューなどに登録する方法がまだ分かっていない. 今後は,script-fuよりもpython-fuを使うようになると思う.

Read more...

light-locker

安定したシステムを運用したいPCには,私はdebianを使うようにしている.Debian 13 Trixieがそろそろリリースされそうだが,少し前からフライングで使い始めている.軽い環境が好きなので,環境としてはLXDEを主に使っているが,新しくインストールしたPCでは,しばらく放置していると,画面が消えて動かなくなっていることに気がついた.少し調べてみたら,light-lockerという画面ロックツールが,画面をロックしていて,通常はマウスやキーボードを使うと復帰するのだが,それが時々うまく行かなくなっているということが分かった.別のスクリーンセーバーを使えば良いのかも知れないが,面倒だけどpkillすると使えるようになる.uninstallしても良いのかな.

Read more...

attiny261

昔まとめて買ったattiny261を使い切って無くなってしまった. 今は上位互換の861は売っているけど,261は売っているのを見かけないので,今後は861を使うしか無いかな. 昔よりも価格が高くなっているので,261で十分な回路には261を使いんだけど,仕方ありません. 互換性の問題で,そのシリーズを使い続けているが,そろそろ新しい型番の安価なtinyも試してみたいとは思う. 例えば,attiny202とかは,adcや16bitのタイマーもあるので,代替できるはずだけど,プログラムや回路を作り換えるのが面倒だし,202はUPDIという新しい書き込み方式を取っているので,まだ手を出していない.

最近,attiny261を使って回路を作っていたが,ノイズが発生して困っていた. 動作の確認のためにLEDをつけていたのだが,そこに比較的大きな電流が流れていたので,それが原因の可能性があると思って,LEDを動かなくしたら,ノイズが無くなった. 新しく回路を作ると,想定外のところで問題が生じることが多く,その原因を発見するのに苦労する.

以前は,adcが不要なときにはattiny2313を,adcが必要なときにはattiny261/861を,沢山のIOが必要なときにはatmegaまたはarduinoを使っていた. 新しい様々なICが開発されているので,今後はどの目的にどのICを使うかを考えていこうと思う.

Read more...

linuxでVPN

VPN接続をする必要があるときには,openconnectを使っている. debianやubuntuでインストールするには,aptでopenconnectをinstallすれば良い. いろいろなVPNソフトがあるが,それに応じて下の表のようにprotocolを選ばなければならない.

protocol VPN
Cisco's AnyConnect SSL VPN
nc Juniper SSL VPN
pulse Pulse/Ivanti Connect Secure SSL VPN
gp Palo Alto Networks GlobalProtect SSL VPN
f5 F5 Big-IP SSL VPN
fortinet Fortinet Fortigate SSL VPN
array Array Networks AG SSL VPN
そして,以下のように実行して,idとパスワードを入力すれば,VPNに接続できる.
sudo openconnect --protocol=gp -v server
vオプションは何となく付けています.
Read more...

プリント基板の作成

電子回路を自作するときには,昔はユニバーサル基板を使っていた.しかし,同じ回路を複数作る場合には,面倒である.そのような場合には,銅基板をエッチングすると良い.パターンをレーザープリンターで転写シートに印刷して,それを銅基板と重ねて,アイロンで加熱して押し付けることによって,インクを銅基板に移して,その後で余分な紙を除去することによって,マスキングを作っていた.また,エッチングは塩化鉄だと使いにくいので,過二硫酸ナトリウムを水に溶かしたもので,エッチングを行っていた.溶液が透明なので,銅が溶けている様子がよく分かって良い.

今回,複数の基板を作る必要性が出てきたが,穴あけも面倒だし,業者に頼んで見ることにした.どの業者を使おうか迷ったのだが,結局PCBWayというところに注文した.比較的安いのと,自分の作る基板の情報を公開することもできるのが面白そうなので,そこに頼むことにした.5cm角ぐらいの一層の基板が5枚で$5と送料でした.KiCADで回路図を作って,ガーバーdataを作ったのだが,いろいろと初めてのことがあって,手間取った.dataが間違っていて,使えないものが出来ないか心配だったが,一応大丈夫だった.一つ間違えたのが,三端子レギュレーターやトランジスタのfootprintがよく分からなかったので,SIPにしていたが,穴が少し小さくて,1.0mmのドリルで穴を広げる必要があったことである.正しくは,TO-220-3というfootpringを選ばなければいけなかった.

やり方は一通り理解できたので,今後はプリント基板は業者に頼むことが増えると思う.

Read more...

VESTAのインストール

結晶構造を表示するプログラムとしては,VESTAを使わせてもらっているが,今回は正式なリリース前にOSをインストールしたので,VESTAを入れるのに苦労するだろうと思って,まだイントールしていなかった. でも,やってみたら簡単だったので,やり方を書いておく. VESTAはMateriAppsに入っているので,以下のようにしてMateriAppsのrepositoryをaptに登録すれば良い.

wget https://sourceforge.net/projects/materiappslive/files/Debian/setup.sh
sudo sh setup.sh
sudo apt update

そしたら,aptでvestaをインストールできるようになる. ちなみに,curlが入っていなくてシェルスクリプトがエラーを出したので,それもaptで入れる必要があった. Debian 13のtrixie用のものはまだ準備されていないのではと思っていたら,すでに用意されていたようである. 感謝したい.

Read more...

Juliaのインストール

Juliaのインストールの仕方を調べると,公式サイトにはjuliaupを使うように書いてある. しかし,シェルスクリプトを読んでみると,ユーザーのhomeの下に,いろいろとファイルが置かれるようで気持ち悪い. そこで,手動でやってみた. 以下のようにして,現時点での最新のものを取ってきて,移動させて,シンボリックリンクを張った.

wget https://julialang-s3.julialang.org/bin/linux/x64/1.11/julia-1.11.5-linux-x86_64.tar.gz
tar -xvzf julia-1.11.5-linux-x86_64.tar.gz
sudo mv julia-1.11.5 /opt/
sudo ln -s /opt/julia-1.11.5/bin/julia /usr/local/bin/julia

私が初めてjuliaを使ったときには,まだversionが1以下だったが,1.11まで来ている. 最近はあまり使っていないので,どう変わっているのかよく理解していないが. 文字列の扱いが少し面倒で,文字列操作が必要なときには,ついrubyでやってしまう. 今度,何かに使ってみよう.

Read more...

Thunderbirdのショートカットは危険

普段はThunderbirdでメールを読んでいるのだが,特定の人からのメールが消えてしまった.webメールを使ったときに,そのメールを発見したのだが,Thunderbirdでは見えない.いろいろと調べてみたら,スレッドを無視するように設定されて,そのメールに返信すると,そのスレッドに属することになるので,無視されて表示されていないということが判明した.そのメールを表示できるようにするには,メニューからViewのThreadsでIgnored Threadsにチェックを入れれば良い.スレッドを無視する設定は,ショートカットのKに割り当てられていて,メールを読んでいる時に,誤ってKを押してしまうと,このような状況になってしまう.無視を解除するのもKで出来るが,注意が必要だ.あとAを押すとarchiveされるらしく,それも注意が必要だ.調べてみたら,3つのメールがArchivesの中に入っていたので,以前に誤ってAを押してしまったのだろう.

Read more...

Trixieのインストール

やはり新しい新しいkicadを使う必要性が出てきたので,メインのOSをDebian 13に更新した.インストールしたらgrubが立ち上がらなくなって少し苦労したが,インストールし直して,無事に動くようになった./homeフォルダはOSとは別のパーティションにしているので,dataはそのまま使えるので,それほど苦労せずに環境を移行できる.kicadもversion 9.0となった.小さなトラブルとしては,pdfで文字化けが起こった.pdffontsで使っているフォントを調べて,結局はfonts-takanoをインストールしたらほぼ解消した.texはサイズが大きいので,帰るときにインストールしようと思う.

Read more...