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

投稿

Arduinoでc1815を使ってs2k2232のゲートに12vをかけて12vを制御(オープンコレクタ)

ファンのコントロール基板のaruduinoをうっかりショートさせ壊したので作り直すことに 一応geminiにも聞いてみたら先の回路でなくオープンコレクタを薦められたのでgeminiの指示どうりに作ることにした トランジスタ x1 mosfet    x1 抵抗 1k x2 抵抗 150 x1 でできた 回路シミュは”Circuit Simulator Applet” https://www.falstad.com/circuit/ でcpuファンの青い線がpwmの信号線ってgeminiが教えてくれた 次回はそれでいこう 

blenderで面と線の交点をだす 線を交点まで伸ばす アドオンとスクリプト

chatgptに聞きながらだ2日ほどでできた bl_info = { "name": "Edge-Plane Intersection (Multi)", "author": "ChatGPT + You", "version": (1, 1), "blender": (2, 80, 0), "location": "3Dビュー > 編集モード > メッシュ > Edge-Plane Intersection (Multi)", "description": "複数エッジの頂点を面の交点にスナップ", "category": "Mesh", } import bpy import bmesh from mathutils import geometry def get_global_coords(obj, v): return obj.matrix_world @ v.co def get_local_coords(obj, global_co): return obj.matrix_world.inverted() @ global_co class MESH_OT_edge_plane_intersection_multi(bpy.types.Operator): bl_idname = "mesh.edge_plane_intersection_multi" bl_label = "Edge-Plane Intersection (Multi)" bl_options = {'REGISTER', 'UNDO'} @classmethod def poll(cls, context): obj = context.active_object return (obj is not...

brltty のcpu時間が多い問題

brttyなるプロセスが結構なcpu時間を占めていたのでchatgptに聞いてみると CH340のUSBシリアルのトラブルの根本的な問題もこの辺にあったらしいのでbrttyを削除することに アップデートで再インストールされるのでそのへんも含めて対処 chatgpt曰く 💡補足 Ubuntu や Debian は、USBシリアル変換器(CH340など)を点字ディスプレイと誤認しがちです。 brltty の自動起動によって /dev/ttyUSB0 が brltty に占有され、Arduino や ESP32 が認識されなくなる問題もよく報告されています。 らしい sudo apt remove brltty ✅ 再インストールを防ぐ対策まとめ ✅ 1. brltty を完全削除して再インストールされないようにロック sudo apt purge brltty sudo apt-mark hold brltty ✅ 2. udev が brltty を起動しないようにする 点字ディスプレイではなく**USB接続のシリアル変換器(CH340など)**を使っていると、brltty がこれを「点字ディスプレイ」と誤認して起動することがあります。 対策:udev ルールを無効化 sudo mkdir -p /etc/udev/rules.d sudo touch /etc/udev/rules.d/99-nobrltty.rules 次にこの内容を追加します: echo 'ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", OPTIONS+="ignore_device"' | sudo tee -a /etc/udev/rules.d/99-nobrltty.rules これは例として CH340 シリアル変換チップ(1a86:7523) に対して brltty が干渉しないようにする設定です。他のデバイスを使っている場合は lsusb で idVendor と idProduct を調べてください。 ✅ 3. GRUBのカーネルオプションで brltty を無効化(上級者向け) sudo nano /e...

EPUBからJPEG

EPUBの中のJPEGのファイル名が連番でないのでMCOMIXで読みにくい問題を解決するべく ChatGptがだしたパイソンコード epubリーダーの見開き設定とか思うようにできなかったので epubを解凍してjpegのファイルを連番に書き換えるコード 以下のフォルダの構成が前提 manga/ (manga.epub) ├ OLEBPS/ └ META-INF/ -----以下コード--------- import os import glob import re import zipfile import sys import shutil  # フォルダ削除用 # コマンドライン引数からEPUBファイル名を取得 if len(sys.argv) < 2:     print("❌ 使用方法: python3 rename_images.py <epubファイル名>")     sys.exit(1) EPUB_FILE = sys.argv[1] # 出力ディレクトリ(EPUBファイル名からフォルダ名を作成) EXTRACT_DIR = os.path.splitext(EPUB_FILE)[0]  # 例: "manga.epub" → "manga" # ① EPUBを解凍 print(f"📖 EPUBを解凍中: {EPUB_FILE} → {EXTRACT_DIR}/") os.makedirs(EXTRACT_DIR, exist_ok=True) with zipfile.ZipFile(EPUB_FILE, 'r') as zip_ref:     zip_ref.extractall(EXTRACT_DIR) # ② OEBPSフォルダを探す(デフォルト: OEBPS, なければ他をチェック) oebps_path = os.path.join(EXTRACT_DIR, "OEBPS") if not os.path.exists(oebps_path):     possible_dirs = glob.glob(os.path.join(EXTRACT_DIR, "*...

ytdlpでダウンロードした自動生成翻訳した字幕の文章ダブるのが設定で直せないのでjsで再処理

ytdlpの字幕問題 20250121付 かりに以下の動画の自動生成からの翻訳字幕をダウンロードすると Greedy Meshing Voxels Fast - Optimism in Design Handmade Seattle 2022 1 00:00:00,000 --> 00:00:02,389 彼はVoxleyのシステムエンジニアで、 2 00:00:02,389 --> 00:00:02,399 彼はVoxleyのシステムエンジニアで、 こうなるのでjsで再編集、下のボタンを押してファイルを読み込むと 結果がテキストエリアに あとはコピペする 最初の3行ぐらい消えるが 直すのめんどいのでそのまま

Arduinoでc1815を使ってs2k2232のゲートに12vをかけて12vを制御

  ヒーターにかける12vを制御するためのmosfetのゲートをc1815に12vを引っ張ってきてarduinoを使って制御 arduinoの5vでmosfetの駆動はできるがゲートとドレイン?の電圧差が熱になるらしくmosfetがアツアツになるのでゲート回路を追加 回路図は上、左がオフ、右がオン 回路は同じ、アクティブロー?なのでarduinoの出力はプログラムで反転する +5vとスイッチははarduinoの出力もどき 4.7kの数値はchatgptのオススメ 1k(Rg)はゲート抵抗 数値はchatgptのオススメ 100k(Rgs)はゲート・ソース抵抗数値は10kでも良いらしかったが 上のRgの10倍以上の数値は必要らしい 12vの下の2kの数値はchatgptのオススメ 右上の4オームは負荷(ヒーター) 参照 https://ana-dig.com/fet_gate2/ https://detail-infomation.com/gate-driver-type/#google_vignette https://code4fukui.github.io/circuitjs1/war/circuitjs.html

Arduino IDE が "Downloading index: library_index.tar.bz2" で固まる問題

PCとのシリアル通信が原因の一つらしい '/home/usename/.arduino15/packages' を消すといいらしい ので消すと治った IDEの起動中にフリーズしてたのが治った Downloading index: library_index.tar.bz2 とダウンロード中だったが終了したので起動中のフリーズが起こるようになった

u8glib フォントサイズ メニューの表示

u8glib フォントサイズ u8g.setFont(u8g_font_6x10) u8g.setFont(u8g_font_6x13) u8g.setFont(u8g_font_7x14) u8g.setFont(u8g_font_8x13) u8g.setFont(u8g_font_9x14) u8g.setFont(u8g_font_9x18) u8g.setFont(u8g_font_7x14B) ← このように’B’をつけるとボールドになるフォントも有る 下のようなメニュー表示の矢印を表示したい > Menu 1 _ Menu 2 _ Menu 3 こうなった(矢印部分だけ) char *menuicon[] = { ">\0_\0_", "_\0>\0_", "_\0_\0>", }; u8g.drawStr(0, 15, &menuicon[mainManu][0]); u8g.drawStr(0, 30, &menuicon[mainManu][2]); u8g.drawStr(0, 45, &menuicon[mainManu][4]); 注意点はNULL文字の追加とポインタとアドレス指定

CH340の/dev/usb0と/dev/ttys0の競合の解決

arduinoを引っこ抜くと /dev/usb0がIDEで表示されなくった /dev/ttys0と競合するらしい 以下のサイトで解決 https://gist.github.com/dattasaurabh82/082d13fd61c0d06c7a358c5e605ce4fd /dev/ttyUSB0が出来てる 何故かchromeと干渉してるみたい ブラウザを終了しないと出てきた/usb0が消える 2025/5/28追記 2025/5/28にchatgptに聞いた brttyを消したほうが話が早い

arduino覚書 dialout,IDE,U8glibなど

2024/10/6 arduinoの備忘録 買い置きのarduino nanoはパチもんなのでシリアル通信チップがめんどくさい ドライバのインストール(多分ch340)と sudo adduser username dialout が必要 atpでインストールしたIDEはバグっぽい ライブラリのパスが通らない ので arduino IDEはimageファイルを使用する ライブラリは.arduino15のlibrariesに入れるしかない LCDのライブラリはU8glibを使おう 備忘録と忘備録どちらでもいいようだがIMEは備忘録しか変換候補にでない

Ubuntuローカルでjsを走らせる時の注意点

久しぶりにJsを使おうとしたらサーバーをたてないとエラーを吐くことから忘れていたので備忘禄 chatgpt曰く Python 3の場合: ターミナルを開く。 JavaScriptやHTMLファイルがあるディレクトリに移動します。 (以下の文字列を変改する必要が有るよ) cd /path/to/your/project 次のコマンドを実行してサーバーを立てます。 python3 -m http.server これでローカルサーバーがポート8000で立ち上がります。ブラウザで以下のURLにアクセスして確認します。 http://localhost:8000 前はnode.jsつかってたのを思い出したがこっちのほうが簡単だった

raspiでseleniumの自動化用のファイル作り直し

2024/2/17に不注意でraspiのsdカードを壊し jupyterファイルのバックアップを取らずにos再インストールを試みるという 愚行を重ねたためまたjupyterで作業ファイルを作ることになったので念の為 残しておく 途中なので要らない行も有るかも これだけ再現できればやってたことは出来るのでよき from selenium import webdriver from selenium.webdriver import Chrome, ChromeOptions from selenium.webdriver.common.keys import Keys from selenium.webdriver.common. action_chains import ActionChains from  selenium.webdriver.common.by  import By from selenium.webdriver.chrome. service import Service  import time options1=ChromeOptions() extension_path ='/home/pi/selenium1/Mouse- Coordinates.crx' options1.add_extension( extension_path) path1 = '/usr/bin/chromedriver' driver1=Chrome(service= Service(path1),options= options1) url1 = ' https://www.google.co.jp/ ' driver1.get( url1 )  actions=ActionChains(driver1) def pointclick(px,py):   actions.move_by_offset(px, py).click().perform()   actions.move_by_offset(-px,- py).click().perform() serch_input=driver1.find_ element(By.NAME,"q") serch_input.send_...

raspi4 のmicrosdが壊れたようなのでos再インストール

2024/2/17  raspiを終了するときに直接 電源コネクタ抜いてたらraspiが起動しなくなった os再インストールをしようとするが書き込みが19%で止まる フォーマットも途中で止まる microsdは壊れたようだ ウィドウのraspiアイコンからシャットダウン か sudo poweroff  でないとSDカードが壊れるらしい 128gb 800円弱のLAZOS の sdカードを買ってきた rpi-imagerでosを再インストール 最後の最後でfatでosがなんたらエラー 最初にsdカードを初期化する必要があったようだ rpi-imagerのCHOOSE OSから一番下のEraseで初期化 これでosがインストールできるようになった os は raspbian 64bit bookworm とりあえず動いている ただデフォのconfig.txtをモニタ関連だけ書き換えても動かなかったので 以下を使用 コメントアウト部分は載せてない disable_overscan=1 dtparam=audio=on arm_64bit=1 [pi4] # Enable DRM VC4 V3D driver on top of the dispmanx display stack dtoverlay=vc4-fkms-v3d max_framebuffers=2 [all] hdmi_force_hotplug=1 hdmi_ignore_edid=0xa5000080 hdmi_cvt=1024 600 60 3 hdmi_group=2 hdmi_mode=88 start_x=1 gpu_mem=128 #以下はアクセスLEDチカチカを消すだけ (今回効いてない?) dtparam=pwr_led_trigger=none,pwr_led_activelow=on dtparam=act_led_trigger=none,act_led_activelow=on dtparam=pwr_led_trigger=none,pwr_led_activelow=on 日本語IMEがないのでfcitx5をインストール sudo apt install fcitx5-mozc im-config -n fcitx5 再起動でいけた 最初 ibus-mozcをインスト...

Ubuntu でマウスのダブルクリックの間隔を変更する場合

 アクティビティを開き”アクセシビリティ”で検索するとメニューが出る マウスがチャタリングするのでダブルクリックの間隔を調整しようと検索すると 「アクティビティ画面を開き、 universal access  または ユニバーサルアクセス と入力します。」 とあるのが何故かユニバーサルアクセスは無く変わりに’アクセシビリティ’だった

ダイクストラ法

 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 なんで