スキップしてメイン コンテンツに移動

投稿

2023の投稿を表示しています

ダイクストラ法

 chat-gptにコーディングしてもらったダイクストラ 「クラスカルでパスファインダーを」ってリクエストしたら ダイクストラを勧められた クラスカルが作るのは経路でなくツリーなのだ     参考動画 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.js"></script> <div id="p5canvas"></div> <script> class Graph {   constructor() {     this.vertices = [];   }   addVertex(x, y) {     this.vertices.push({ x, y, edges: [] });   }   addEdge(source, destination, weight) {     if (this.vertices[source] && this.vertices[destination]) {       this.vertices[source].edges.push({ target: destination, weight });       this.vertices[destination].edges.push({ target: source, weight });  ...

p5.serialserverと p5.serial control と p5js用のローカルサーバーの メモ(arduinoと通信用)

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 インストール npm install  でできたようだ? node startserver.js で起動 p5.serialcontrolは  p5.serialcontrol-linux-x64.zipをダウンロードしてunzip 中に有るp5.serialcontrolに実行権限を与え実行 すると The display compositor is frequently crashing. Goodbye. のエラーが出た ので コンソールから起動する あと末尾に以下のオプションを追加 --no-sandbox これで起動した で ソースコードには以下を追加 <script language="javascript" type="text/javascript" src="https://cdn.jsdelivr.net/npm/p5.serialserver@0.0.28/lib/p5.serialport.js"></script> でクロームでhtmlファイルを開けば見れる ファイルの場所はどこでも良さそう 今回は必要なかったが忘れてた...

Arduino nano に12vを流すと挙動がおかしくなった

 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の”Heating failed”エラー原因と対処

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のアドレスを計算し直して書き出し

 Gameconquerorのjsonのアレ Gameconquerorでターゲットプログラムをリロードすると書き出したjsonファイルのパラメータのアドレスのオフセットが変わるので、 ”同じパラメータのオフセットされたアドレス”一つを入力して ”jsonファイルを読み込む”とオフセットを計算して他の全アドレスに適用して'adlist.json’のファイル名で出力するプログラム Gameconquerorで 1.ソフトのパラメータのリストを作成 2.json拡張子をつけて保存(これ大事)して終了 3.再起動して先のファイルを読み込むとアドレスがずれているので リストの中のパラメータのどれか一つのアドレスをもう一度探す(末尾3桁は前と同じアドレス) このページで 4.上部の入力フォームにさっき探したアドレスを入れる 5.入力フォーム下の”ファイルを選択”を押してGameconquerorで保存したjsonファイルを読みこむ 6.上手くいけば再計算されたアドレスのリストの入った”adlist.json”のファイル名で保存されるのでそれをGameconquerorに読み込んで終了、正確なアドレスリストが表示されるはず

バラしていたender3 を組み立てたので各種スライサーのインストールを試す

 分解していた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            ...

OpenAi Gymを録画

せっかくなので動画をとろうと ググってもコレといった解決策がないなか 参考になる部分はしつつ 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 sudo pip install moviepy      moviepyはvideo_recorder.pyの注意書きにあった 以下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()

openai gym をインストールしてルナランダーを動かすまで

chatgptに ローカルで使えないか聞いてみた chatgptはgpt3が必要で gpt3のモデルのサイズは173GBだけど ダウンロードさせないしマシンパワーも必要だから 一般向けではないよといわれたので openai gymを試すことにした pip install openai      コマンド 'pip' が見つかりません。次の方法でインストールできます:      sudo apt install python3-pip pipが入ったので      sudo pip install openai             Getting requirements to build wheel ... error             error: subprocess-exited-with-error エラー pipのアップグレード?        python3 -m pip install --upgrade pip wheelはpandasの機能っぽい      pip install pandas で      pip3.10 install openai           Successfully built openai openaiは入ったみたい     sudo pip3.10 install requests numpy tqdm tqdmはなぜ入れたのかわからないが一応 でgymのライブラリを追加      !pip3 install gym[box2d]                 error: command 'swig' failed: No such file or directory コマンドs...