Pythonで計測器制御 pyvisaを使う

以下を参考に動かしてみた。 qiita.com

pip install pyvisa

またはwinなら以下でインストール

py -m pip install pyvisa

このコードで動いた

import pyvisa

rm = pyvisa.ResourceManager()
visa_list = rm.list_resources()
usb1 = visa_list[0]
inst_1 = rm.open_resource(usb1)

inst_1.write('*IDN?')
out = inst_1.read()

# queryを用いてももちろんOK
# out = inst_1.query('*IDN?')

print(out)
# (計測器の情報)

以下の応答が返った

Agilent Technologies,34410A,MY47012224,2.35-2.35-0.09-46-09

指定したファイル以外を再帰的に全て削除

このスクリプトをフォルダに置いて実行すると、指定ファイル以外のファイルを再帰的に削除します。

#!/usr/bin/python3
"""

指定したファイル名のファイル以外を再帰的に削除する
本スクリプトのあるフォルダ及びそのサブフォルダ内のファイルを削除する。

 DATE        VER   NAME     COMMENT
 2020/12/01  0.00  garyo     NEW

"""
import os
import glob

TARGET_FILE="para.dat"  #削除せず残すファイル名


def pathJoin(path,filename):
    return (os.path.join(path,filename))

#ファイルリストを得る。pathの最後に"/"がないと一つ上のフォルダから返す
def getFileList(path,filename):
    return (glob.glob(pathJoin(os.path.dirname(path) + "/**/",filename), recursive=True))

cnt = 0
notDeleteCnt = 0
flist = getFileList(os.getcwd() + "/","*.*")
for item in flist:
    if item != __file__:    #自分自身は消さない
        filename = os.path.basename(item)
        if filename.upper() != TARGET_FILE.upper():
            os.remove(item)
            cnt = cnt + 1
        else:
            #print(item)
            notDeleteCnt = notDeleteCnt + 1
            
print("DELETE:" + str(cnt) + "  UNDELETE(" + TARGET_FILE + "):" + str(notDeleteCnt))
print("END")

ステピィングモーターを動かす

CNCシールドのX軸を動かす

 

```

int DIR_PORT_X = 5;
int STEP_PORT_X = 2;
int ENABLE_PORT_X = 8;

void setup() {
pinMode(STEP_PORT_X,OUTPUT);
pinMode(DIR_PORT_X,OUTPUT);
pinMode(ENABLE_PORT_X,OUTPUT);

digitalWrite(ENABLE_PORT_X,LOW);
}
void loop() {
digitalWrite(DIR_PORT_X,HIGH);
for(int x = 0; x < 400; x++) {
digitalWrite(STEP_PORT_X,HIGH);
delay(2);
digitalWrite(STEP_PORT_X,LOW);
delay(2);
}
delay(1000);

digitalWrite(DIR_PORT_X,LOW);
for(int x = 0; x < 400; x++) {
digitalWrite(STEP_PORT_X,HIGH);
delay(2);
digitalWrite(STEP_PORT_X,LOW);
delay(2);
}
delay(1000);
}

```

f:id:garyo:20210415091107j:plain

CNCシールドの回路図

 

https://zenn.dev/_kazuya/articles/7b8a421b1b1b4f

こちらを参考にする

CNCシールドの使い方は以下を参照

kats-eye.net4

 

Gコードは以下を参照。

ArduinoGRBLを書いて、G90で絶対値指定、G91で相対指定になる。絶対値指定の時はX0で原点に行く。X1を2回打っても動かない。相対指定に変えるとX1,X1と打つと2回動く。G91で相対指定にして位置を動かした後、G92X0Y0Z0を入れるとその場所が原点となる。

 

cnc-selfbuild.blogspot.com

 

kats-eye.net

CNCシールドの回路図

blog.protoneer.co.nz

 

elecdove.blog.fc2.com

 

sousaku.hatenablog.jp

フルパスファイル名と日付をサブディレクトリ込みで取得する方法

FullPath_date.bat

@echo START > dir.txt
for /R  %%A in (*) do @echo %%A,%%~tA >> dir.txt

コマンドライン

for /R  %A in (*) do @echo %A %~tA

以下の記事を移動 garyohosumemo.blogspot.com

ScratchでArduinoを動かす

セットアップ

以下のサイトで紹介されています。 https://www.pc-koubou.jp/magazine/21643

コードサンプル

以下のサイトで簡単な例が紹介されています。 Scratch(スクラッチ)とArduino(アルデュイーノ)をScrattino2でつないでプログラミング │ 子供のプログラミング