起動オプションで --debug
blender --debug
起動オプションで --debug
blender --debug
chat-gptにコーディングしてもらったダイクストラ
「クラスカルでパスファインダーを」ってリクエストしたら
ダイクストラを勧められた
クラスカルが作るのは経路でなくツリーなのだ
参考動画
rampsのarduinoとp5jsで通信したくなったので試行錯誤
p5.serialserverとp5.serial control が必要なようだ
(ローカルだけだとp5.serialcontrolはいらなかった、かつ
p5.serialcontrolはボーレート9600固定みたい。
macならなんとかなるみたいらしいが)
で
以下のサイトを参照
https://fabacademy.org/2022/labs/cpcc/students/garrett-nelson/assignments/week15/
https://itp.nyu.edu/physcomp/labs/labs-serial-communication/two-way-duplex-serial-communication-using-p5js/
p5.serialserverは
gitでクローンして(多分カレントディレクトリにクローンされた?)
git clone https://github.com/vanevery/p5.serialserver.git
ローカルサーバーから起動しないとリソースとか読み込まないときなど
index.htmlを用意して
ターミナルでカレントディレクトリをファイルのフォルダにして
npx --yes @js-primer/local-server
Arduino nanoに12v定電圧電源をつないで使っていると挙動がおかしくなった
USB経由だと普通に動くのでオンボードのレギュレータが怪しい
調べるとレギュレータの放熱ができず壊れたようす
”電圧降下分は熱となり
L7805 では接合部 (ジャンクション) と周囲 (アンビエント) との熱抵抗 θja は TO-220 で 60°C/W
Tj = (損失電力) * (熱抵抗) + (周囲温度)
ここで出力電流で 300mA 、周囲温度 30°C としたら、 (損失電力) = (入力電力) - (出力電力) はおよそ (12V * 0.3A) - (5V * 0.3A) = 2.7W - 1.5W = 2.1W ですから、 上の式とから次のようになります。
Tj = 1.2W * 60°C/W + 30°C = 126°C + 30°C = 156°C
絶対最大定格で動作時のジャンクションの最高温度は 125°C”
となるとヒートシンク必要なので外部にレギュレータをつけた
いまは普通に動いている
Ender3がピピピピ鳴りながら停止する
RAMPSにボードを変えてMarlinを入れてからホットエンドのPIDの調節をしていなかったので
出たエラーのよう
設定時間内に設定温度に達しないとエラーになる
MarlinのThermal Runaway Protection機能らしい
今回は
MarlinのPIDの自動調節Marlin Autotuneで解決
GコードのM303がそのコマンドらしく、230℃で設定する場合
M303 S230 C8 U1
となる
試してみるとエラーはでなくなった。
他には
Thermal Runaway Protectionの
エラー判断の基準の時間と温度の設定が
Configuration_adv.hできるらしい
または
ヒーターカートリッジを50wにして早く温度を上げると
よさそう
今のヒーターは16.4Ω35wほど
(24v×24v)/16.4Ω=35
35w?40w無い?
なんで35w なんで
Gameconquerorのjsonのアレ
分解していたEndaer3を組み立てた
curaはUSB 認識せず
pronterfaceはTypeError:Pen():argumentsナンタラのエラー解決できず見送り
!usr/bin/python3.9 に書き換え、その他諸々もダメだった
sli3erでusbシリアル通信はできることを確認
usbの権限を書き換えてなかったことがわかる
”ubuntuでUSBシリアルデバイス等を扱う際、挿入時に書き込み・実行権限が付与されないため、挿入のたびに毎回権限をつけてやる必要がある。”らしいので
sudo usermod -a -G dialout username
sudo chmod a+rw /dev/ttyUSB0
*usernameはユーザーネーム
毎回は面倒なので
書き込み、実行権限の自動付与
まずは、以下コマンドで設定ファイルを開く。
sudo gedit /lib/udev/rules.d/50-udev-default.rules
(old)
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
(new)
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout", MODE="0777"
で
MatterControlに行き着く
MONOをインストール
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
MatterControlのdebをインストールしようとするとmono-completeじゃないとダメ
らしいので
sudo apt-get install mono-complete
ゲットした
でMatterのインストールができた
MatterControlを起動しようとするとエラー
X11 Error: BadMatchなんたら
以下の対応で解決
Find MatterContorl's appsettings.json file, typically /usr/lib/mattercontrol/appsettings.json
Open in appsettings.json in your favorite text editor.
Change Color and Depth parameters to "24"
Should look like this:
"Color": 24,
"Depth": 24,
これで起動できたが画面がおかしいウィンドウの中がバグってるように見える
フルスクリーンにしないと処理が進まないようだ
ウィドウを拡大縮小したり最大化すると再描画され最初の画面がでてきた
画面右上の縦に点3つのボタンを押すとShowControlsのタブを開くチェックボックスがある
チェックを入れてタブを開くとxyzその他のコントロールが開きUSB経由でコントロールできるようにはなった
ender3のミドルウェアはMarlinのヘッダーを書き換えたことは覚えていた
のでその時のファイル一式を探し出した
arduinoIDEのimageを実行するとhomeにarduinoフォルダができるので
そこにMarlinをフォルダごとマルっと置く
hardwareフォルダを作りその中にsanguinoのボード設定をフォルダごと入れる
home
|- arduino
| - Marlin
| - hardware - sanguino
sanguinoは古いからかIDEでは扱ってないみたい
ググってもコレといった解決策がないなか
参考になる部分はしつつ
video_recorder.pyの中身とか見ながら
たどり着いた回答が以下のコード
pythonはインデントにうるさかった
Atomエディタ終了してた
あと追加で色々いれた
sudo がないと not writeable とか言われた
sudo pip install --upgrade gym
sudo pip install gym[atari]
pip install ffmpeg
sudo pip install ffmpeg
sudo pip install imageio-ffmpeg
以下pythonのコード
内容はともかく
録画できたので良しとする
import gym
from gym.wrappers.monitoring.video_recorder import VideoRecorder
env=gym.make("LunarLander-v2",render_mode="rgb_array")
vid = VideoRecorder(env, "./video.mp4")
env.action_space.seed(42)
observation, info = env.reset(seed=42)
for _ in range(1000):
observation, reward, terminated, truncated, info = env.step(env.action_space.sample())
vid.capture_frame()
if terminated or truncated:
observation, info = env.reset()
env.close()
vid.close()
PCとのシリアル通信が原因の一つらしい '/home/usename/.arduino15/packages' を消すといいらしい ので消すと治った IDEの起動中にフリーズしてたのが治った Downloading index: library_ind...