##問題と実現したいこと
STMicroのL6470をラズベリーパイからPythonで動かしています。
レジスタに保存されたパラメータを取り出してみようとチャレンジしているのですがうまくいきません。
やり方をご存じの方がいらっしゃれば教えていただけないでしょうか。
下のソースコードを実行すると”None”が出力されます。
よろしくお願いいたします。
##環境
Raspberry Pi: Model3B
Python: 3.7.3
IDE: VSCODE
ステッピングモータドライバ: AE-L6470DRV(秋月電子)
モータ: ST-42BYH1004-5013
電源: 12VDC
##ソースコード
import wiringpi as wp import RPi.GPIO as GPIO import struct SPI_CH = 0 SPI_HZ = 1000000 GPIO_NUM = 25 GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_NUM, GPIO.IN) def L6470_Write(channel, data): for da in data: wp.wiringPiSPIDataRW(channel, struct.pack('B', da)) #初期化 def L6470_Init(channel): L6470_Write(channel, [0x00,0x00,0x00,0xc0]) L6470_Write(channel, [0x05,0x00,0x0e]) L6470_Write(channel, [0x06,0x00,0x0e]) L6470_Write(channel, [0x07,0x00,0x0e]) L6470_Write(channel, [0x08,0x00,0x01]) L6470_Write(channel, [0x15,0x03,0xFF]) L6470_Write(channel, [0x16,0x07]) L6470_Write(channel, [0x09,0x5A]) #KVAL_HOLD L6470_Write(channel, [0x0A,0x6A]) L6470_Write(channel, [0x0B,0x6A]) L6470_Write(channel, [0x0C,0x6A]) print(L6470_Write(channel, [0x29])) #KVAL_HOLDの値(0x5A)を表示させたいが出力は”None”が表示 def L6470_Move(channel, n_step): if (n_step < 0): drc = 0x40 stp = -1 * n_step else: drc = 0x41 stp = n_step stp_h = (0x3F0000 & stp) >> 16 stp_m = (0x00FF00 & stp) >> 8 stp_l = (0x0000FF & stp) L6470_Write(channel, [drc, stp_h, stp_m, stp_l]) if __name__ == '__main__': wp.wiringPiSPISetup(SPI_CH, SPI_HZ) L6470_Init(SPI_CH) L6470_Move(SPI_CH, -800*128)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。