Pythonを使用してArduinoのコードを書いたように



注目を集める絵



先日、副業があり、アルドゥイーノにスケッチを記録する命令が到着しました。 シンプルだがボリュームがあります。 繰り返しブロック付き。 Uartでコマンドを受信する場合、各Arduino Megaポートを個別に管理する必要がありました。 シンボルを送信すると、LED(たとえば)が一定時間点灯します。 2つのチームのスケッチを書き、テストのために顧客に投げて、前払い金を受け取りました。 さらに、すべてのポートに拡張する必要がありました。



まず、私は正直に手で試しました。 最初の26個の#defineを書いた後、熱意は尽きました。 私は新鮮な空気を吸い込んで、PC(Win 7 x64)に、 Anaconda配布キットのPython 3.6が既にインストールされていることを思い出しました。 ところで、これはWindowsにPythonをインストールする最も便利な方法です。 すべてがデフォルトですでに含まれており、設定されています。パッケージマネージャーがあります。



それでは始めましょう。



フォルダーを作成します。空のファイルがあり、「arduino_gen.py」という名前と、次の内容のbatファイル「start_py.bat」という名前を付けました。



python.exe arduino_gen.py > code_out.txt

@pause








Pythonでプログラムを実行するには、このファイルが必要です

次に、Arduinoに必要なコードを生成するプログラムを作成します。



最初に、必要なすべての値を含む2つのリストを作成します。これらの値はコードで置き換えます。 名前は何でもかまいません。好みの問題です。



 chap = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] num = ['2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53']
      
      





リストを反復処理する2つの変数



 i = 0 k = 0
      
      





そして、#define PIN_a 2 ... #define PIN_Z 53を生成するループを作成しましょう



 iteration1 = True while iteration1: print('#define PIN_' + chap[i] + ' ' + num[k]) i = i + 1 k = k + 1 if i > 51: iteration1 = False print()
      
      





保存して、ファイル「start_py.bat」を実行します



結果
 #define PIN_a 2 #define PIN_b 3 #define PIN_c 4 #define PIN_d 5 #define PIN_e 6 #define PIN_f 7 #define PIN_g 8 #define PIN_h 9 #define PIN_i 10 #define PIN_j 11 #define PIN_k 12 #define PIN_l 13 #define PIN_m 14 #define PIN_n 15 #define PIN_o 16 #define PIN_p 17 #define PIN_q 18 #define PIN_r 19 #define PIN_s 20 #define PIN_t 21 #define PIN_u 22 #define PIN_v 23 #define PIN_w 24 #define PIN_x 25 #define PIN_y 26 #define PIN_z 27 #define PIN_A 28 #define PIN_B 29 #define PIN_C 30 #define PIN_D 31 #define PIN_E 32 #define PIN_F 33 #define PIN_G 34 #define PIN_H 35 #define PIN_I 36 #define PIN_J 37 #define PIN_K 38 #define PIN_L 39 #define PIN_M 40 #define PIN_N 41 #define PIN_O 42 #define PIN_P 43 #define PIN_Q 44 #define PIN_R 45 #define PIN_S 46 #define PIN_T 47 #define PIN_U 48 #define PIN_V 49 #define PIN_W 50 #define PIN_X 51 #define PIN_Y 52 #define PIN_Z 53
      
      







結果をすぐにファイルに出力する場合は、次を追加します。



python.exe arduino_gen.py > code_out.txt

@pause








その結果、ファイル「code_out.txt」を取得します。このファイルから、Arduinoの最高の伝統でコードをスケッチにコピーすると便利です。



すでにこの段階で、大量の変数が生成された場合にArduinoに十分なメモリがあるかどうか疑問がありました。 しかし、先を見据えて、スケッチの編集についてわかるように、十分なメモリがあったと言います。







次に、理解しやすいコードの残りの部分を説明します。 しかし、まずは考慮してください



簡略化されたスケッチ
 //   #define PIN_a 2 #define PIN_b 3 //  #define TIME_a 10000 #define TIME_b 10000 //   boolean ledState_a = false; boolean ledState_b = false; int time_a = 0; int time_b = 0; void setup() { //  Serial.begin(9600); for (int i = 2; i <= 53; i++) pinMode(i, OUTPUT); } void loop() { if (Serial.available() >0) { int x = Serial.read(); //a if(x == 'a'){ ledState_a = true; time_a = TIME_a; x = 0; } //b if(x == 'b'){ ledState_b = true; time_b = TIME_b; x = 0; } } //   //a if(ledState_a == true){ time_a = time_a - 1; digitalWrite(PIN_a, HIGH); } if(time_a == 0){ ledState_a = false; } if(ledState_a == false){ digitalWrite(PIN_a, LOW); } //b if(ledState_b == true){ time_b = time_b - 1; } if(time_b > 0){ digitalWrite(PIN_b, HIGH); } if(time_b == 0){ digitalWrite(PIN_b, LOW); ledState_b = false; } //   delay(1); }
      
      







ここでは、最初に4ブロックのコードを生成する必要があります。 そして最後に2つのブロック。 その後、顧客は、大文字が到着したときに出力状態が変更されるように、作業のロジックを変更したいと考えました。 私はコードを書き直しました:



 //    -   //A if(x == 'A'){ digitalWrite (PIN_A, !digitalRead(PIN_A)); x = 0; }
      
      





Pythonを使用してスケーリング



 i = 26 iteration7 = True while iteration7: print() print('//' + chap[i]) print("if(x == '" + chap[i] + "'){") print(' digitalWrite (PIN_' + chap[i] + ', !digitalRead(PIN_' + chap[i] + '));') print(' x = 0;') print(' }') i = i + 1 if i > 51: iteration7 = False print() print('}') print()
      
      





最後に何が起こったのですか



非常に長いコード、私は警告しました!
//ピンを設定します

#define PIN_a 2

#define PIN_b 3

#define PIN_c 4

#define PIN_d 5

#define PIN_e 6

#define PIN_f 7

#define PIN_g 8

#define PIN_h 9

#define PIN_i 10

#define PIN_j 11

#define PIN_k 12

#define PIN_l 13

#define PIN_m 14

#define PIN_n 15

#define PIN_o 16

#define PIN_p 17

#define PIN_q 18

#define PIN_r 19

#define PIN_s 20

#define PIN_t 21

#define PIN_u 22

#define PIN_v 23

#define PIN_w 24

#define PIN_x 25

#define PIN_y 26

#define PIN_z 27

#define PIN_A 28

#define PIN_B 29

#define PIN_C 30

#define PIN_D 31

#define PIN_E 32

#define PIN_F 33

#define PIN_G 34

#define PIN_H 35

#define PIN_I 36

#define PIN_J 37

#define PIN_K 38

#define PIN_L 39

#define PIN_M 40

#define PIN_N 41

#define PIN_O 42

#define PIN_P 43

#define PIN_Q 44

#define PIN_R 45

#define PIN_S 46

#define PIN_T 47

#define PIN_U 48

#define PIN_V 49

#define PIN_W 50

#define PIN_X 51

#define PIN_Y 52

#define PIN_Z 53



//時間を設定します

//ここでは、ほとんどの場合、修正が必要です

//たとえば、1秒は1000ではなく、865などです。

//ストップウォッチを測定する必要があり、必要に応じて、

//何らかの要因で削減

#define TIME_a 1000

#define TIME_b 1000

#define TIME_c 1000

#define TIME_d 1000

#define TIME_e 1000

#define TIME_f 1000

#define TIME_g 1000

#define TIME_h 1000

#define TIME_i 1000

#define TIME_j 1000

#define TIME_k 1000

#define TIME_l 1000

#define TIME_m 1000

#define TIME_n 1000

#define TIME_o 1000

#define TIME_p 1000

#define TIME_q 1000

#define TIME_r 1000

#define TIME_s 1000

#define TIME_t 1000

#define TIME_u 1000

#define TIME_v 1000

#define TIME_w 1000

#define TIME_x 1000

#define TIME_y 1000

#define TIME_z 1000

#define TIME_A 1000

#define TIME_B 1000

#define TIME_C 1000

#define TIME_D 1000

#define TIME_E 1000

#define TIME_F 1000

#define TIME_G 1000

#define TIME_H 1000

#define TIME_I 1000

#define TIME_J 1000

#define TIME_K 1000

#define TIME_L 1000

#define TIME_M 1000

#define TIME_N 1000

#define TIME_O 1000

#define TIME_P 1000

#define TIME_Q 1000

#define TIME_R 1000

#define TIME_S 1000

#define TIME_T 1000

#define TIME_U 1000

#define TIME_V 1000

#define TIME_W 1000

#define TIME_X 1000

#define TIME_Y 1000

#define TIME_Z 1000



// LEDの論理状態(yes / no)

ブールledState_a = false;

ブールledState_b = false;

ブールledState_c = false;

ブールledState_d = false;

ブールledState_e = false;

ブールledState_f = false;

ブールledState_g = false;

ブールledState_h = false;

ブールledState_i = false;

ブールledState_j = false;

ブールledState_k = false;

ブールledState_l = false;

ブールledState_m = false;

ブールledState_n = false;

ブールledState_o = false;

ブールledState_p = false;

ブールledState_q = false;

ブールledState_r = false;

ブールledState_s = false;

ブールledState_t = false;

ブールledState_u = false;

ブールledState_v = false;

ブールledState_w = false;

ブールledState_x = false;

ブールledState_y = false;

ブールledState_z = false;

ブールledState_A = false;

ブールledState_B = false;

ブールledState_C = false;

ブールledState_D = false;

ブールledState_E = false;

ブールledState_F = false;

ブールledState_G = false;

ブールledState_H = false;

ブールledState_I = false;

ブールledState_J = false;

ブールledState_K = false;

ブールledState_L = false;

ブールledState_M = false;

ブールledState_N = false;

ブールledState_O = false;

ブールledState_P = false;

ブールledState_Q = false;

ブールledState_R = false;

ブールledState_S = false;

ブールledState_T = false;

ブールledState_U = false;

ブールledState_V = false;

ブールledState_W = false;

ブールledState_X = false;

ブールledState_Y = false;

ブールledState_Z = false;



//時間を保存するための変数

int time_a = 0;

int time_b = 0;

int time_c = 0;

int time_d = 0;

int time_e = 0;

int time_f = 0;

int time_g = 0;

int time_h = 0;

int time_i = 0;

int time_j = 0;

int time_k = 0;

int time_l = 0;

int time_m = 0;

int time_n = 0;

int time_o = 0;

int time_p = 0;

int time_q = 0;

int time_r = 0;

int time_s = 0;

int time_t = 0;

int time_u = 0;

int time_v = 0;

int time_w = 0;

int time_x = 0;

int time_y = 0;

int time_z = 0;

int time_A = 0;

int time_B = 0;

int time_C = 0;

int time_D = 0;

int time_E = 0;

int time_F = 0;

int time_G = 0;

int time_H = 0;

int time_I = 0;

int time_J = 0;

int time_K = 0;

int time_L = 0;

int time_M = 0;

int time_N = 0;

int time_O = 0;

int time_P = 0;

int time_Q = 0;

int time_R = 0;

int time_S = 0;

int time_T = 0;

int time_U = 0;

int time_V = 0;

int time_W = 0;

int time_X = 0;

int time_Y = 0;

int time_Z = 0;



void setup(){

//初期化を書き換えませんでした

Serial.begin(9600);

for(int i = 2; i <= 53; i ++)

pinMode(i、OUTPUT);

}

void loop(){

if(Serial.available()> 0){

int x = Serial.read();



//到着したことを確認します



// a

if(x == 'a'){

ledState_a = true;

time_a = TIME_a;

xは0です。

}



// b

if(x == 'b'){

ledState_b = true;

time_b = TIME_b;

xは0です。

}



// c

if(x == 'c'){

ledState_c = true;

time_c = TIME_c;

xは0です。

}



// d

if(x == 'd'){

ledState_d = true;

time_d = TIME_d;

xは0です。

}



// e

if(x == 'e'){

ledState_e = true;

time_e = TIME_e;

xは0です。

}



// f

if(x == 'f'){

ledState_f = true;

time_f = TIME_f;

xは0です。

}



// g

if(x == 'g'){

ledState_g = true;

time_g = TIME_g;

xは0です。

}



// h

if(x == 'h'){

ledState_h = true;

time_h = TIME_h;

xは0です。

}



//私

if(x == 'i'){

ledState_i = true;

time_i = TIME_i;

xは0です。

}



// j

if(x == 'j'){

ledState_j = true;

time_j = TIME_j;

xは0です。

}



// k

if(x == 'k'){

ledState_k = true;

time_k = TIME_k;

xは0です。

}



// l

if(x == 'l'){

ledState_l = true;

time_l = TIME_l;

xは0です。

}



// m

if(x == 'm'){

ledState_m = true;

time_m = TIME_m;

xは0です。

}



// n

if(x == 'n'){

ledState_n = true;

time_n = TIME_n;

xは0です。

}



// o

if(x == 'o'){

ledState_o = true;

time_o = TIME_o;

xは0です。

}



// p

if(x == 'p'){

ledState_p = true;

time_p = TIME_p;

xは0です。

}



// q

if(x == 'q'){

ledState_q = true;

time_q = TIME_q;

xは0です。

}



// r

if(x == 'r'){

ledState_r = true;

time_r = TIME_r;

xは0です。

}



// s

if(x == 's'){

ledState_s = true;

time_s = TIME_s;

xは0です。

}



// t

if(x == 't'){

ledState_t = true;

time_t = TIME_t;

xは0です。

}



//あなた

if(x == 'u'){

ledState_u = true;

time_u = TIME_u;

xは0です。

}



// v

if(x == 'v'){

ledState_v = true;

time_v = TIME_v;

xは0です。

}



// w

if(x == 'w'){

ledState_w = true;

time_w = TIME_w;

xは0です。

}



// x

if(x == 'x'){

ledState_x = true;

time_x = TIME_x;

xは0です。

}



// y

if(x == 'y'){

ledState_y = true;

time_y = TIME_y;

xは0です。

}



// z

if(x == 'z'){

ledState_z = true;

time_z = TIME_z;

xは0です。

}

//大文字が来たら、状態を変更します



// A

if(x == 'A'){

digitalWrite(PIN_A ,! digitalRead(PIN_A));

xは0です。

}



// B

if(x == 'B'){

digitalWrite(PIN_B ,! digitalRead(PIN_B));

xは0です。

}



// C

if(x == 'C'){

digitalWrite(PIN_C ,! digitalRead(PIN_C));

xは0です。

}



// D

if(x == 'D'){

digitalWrite(PIN_D ,! digitalRead(PIN_D));

xは0です。

}



// E

if(x == 'E'){

digitalWrite(PIN_E ,! digitalRead(PIN_E));

xは0です。

}



// F

if(x == 'F'){

digitalWrite(PIN_F ,! digitalRead(PIN_F));

xは0です。

}



// G

if(x == 'G'){

digitalWrite(PIN_G ,! digitalRead(PIN_G));

xは0です。

}



// H

if(x == 'H'){

digitalWrite(PIN_H ,! digitalRead(PIN_H));

xは0です。

}



//私

if(x == 'I'){

digitalWrite(PIN_I ,! digitalRead(PIN_I));

xは0です。

}



// J

if(x == 'J'){

digitalWrite(PIN_J ,! digitalRead(PIN_J));

xは0です。

}



// K

if(x == 'K'){

digitalWrite(PIN_K ,! digitalRead(PIN_K));

xは0です。

}



// L

if(x == 'L'){

digitalWrite(PIN_L ,! digitalRead(PIN_L));

xは0です。

}



// M

if(x == 'M'){

digitalWrite(PIN_M ,! digitalRead(PIN_M));

xは0です。

}



// N

if(x == 'N'){

digitalWrite(PIN_N ,! digitalRead(PIN_N));

xは0です。

}



// O

if(x == 'O'){

digitalWrite(PIN_O ,! digitalRead(PIN_O));

xは0です。

}



// P

if(x == 'P'){

digitalWrite(PIN_P ,! digitalRead(PIN_P));

xは0です。

}



// Q

if(x == 'Q'){

digitalWrite(PIN_Q ,! digitalRead(PIN_Q));

xは0です。

}



// R

if(x == 'R'){

digitalWrite(PIN_R ,! digitalRead(PIN_R));

xは0です。

}



// S

if(x == 'S'){

digitalWrite(PIN_S ,! digitalRead(PIN_S));

xは0です。

}



// T

if(x == 'T'){

digitalWrite(PIN_T ,! digitalRead(PIN_T));

xは0です。

}



// U

if(x == 'U'){

digitalWrite(PIN_U ,! digitalRead(PIN_U));

xは0です。

}



// V

if(x == 'V'){

digitalWrite(PIN_V ,! digitalRead(PIN_V));

xは0です。

}



// W

if(x == 'W'){

digitalWrite(PIN_W ,! digitalRead(PIN_W));

xは0です。

}



// X

if(x == 'X'){

digitalWrite(PIN_X ,! digitalRead(PIN_X));

xは0です。

}



// Y

if(x == 'Y'){

digitalWrite(PIN_Y ,! digitalRead(PIN_Y));

xは0です。

}



// Z

if(x == 'Z'){

digitalWrite(PIN_Z ,! digitalRead(PIN_Z));

xは0です。

}



}

// a

if(ledState_a == true){

time_a = time_a-1;

digitalWrite(PIN_a、HIGH);

}



if(time_a == 0){

ledState_a = false;

}



if(ledState_a == false){

digitalWrite(PIN_a、LOW);

}



// b

if(ledState_b == true){

time_b = time_b-1;

digitalWrite(PIN_b、HIGH);

}



if(time_b == 0){

ledState_b = false;

}



if(ledState_b == false){

digitalWrite(PIN_b、LOW);

}



// c

if(ledState_c == true){

time_c = time_c-1;

digitalWrite(PIN_c、HIGH);

}



if(time_c == 0){

ledState_c = false;

}



if(ledState_c == false){

digitalWrite(PIN_c、LOW);

}



// d

if(ledState_d == true){

time_d = time_d-1;

digitalWrite(PIN_d、HIGH);

}



if(time_d == 0){

ledState_d = false;

}



if(ledState_d == false){

digitalWrite(PIN_d、LOW);

}



// e

if(ledState_e == true){

time_e = time_e-1;

digitalWrite(PIN_e、HIGH);

}



if(time_e == 0){

ledState_e = false;

}



if(ledState_e == false){

digitalWrite(PIN_e、LOW);

}



// f

if(ledState_f == true){

time_f = time_f-1;

digitalWrite(PIN_f、HIGH);

}



if(time_f == 0){

ledState_f = false;

}



if(ledState_f == false){

digitalWrite(PIN_f、LOW);

}



// g

if(ledState_g == true){

time_g = time_g-1;

digitalWrite(PIN_g、HIGH);

}



if(time_g == 0){

ledState_g = false;

}



if(ledState_g == false){

digitalWrite(PIN_g、LOW);

}



// h

if(ledState_h == true){

time_h = time_h-1;

digitalWrite(PIN_h、HIGH);

}



if(time_h == 0){

ledState_h = false;

}



if(ledState_h == false){

digitalWrite(PIN_h、LOW);

}



//私

if(ledState_i == true){

time_i = time_i-1;

digitalWrite(PIN_i、HIGH);

}



if(time_i == 0){

ledState_i = false;

}



if(ledState_i == false){

digitalWrite(PIN_i、LOW);

}



// j

if(ledState_j == true){

time_j = time_j-1;

digitalWrite(PIN_j、HIGH);

}



if(time_j == 0){

ledState_j = false;

}



if(ledState_j == false){

digitalWrite(PIN_j、LOW);

}



// k

if(ledState_k == true){

time_k = time_k-1;

digitalWrite(PIN_k、HIGH);

}



if(time_k == 0){

ledState_k = false;

}



if(ledState_k == false){

digitalWrite(PIN_k、LOW);

}



// l

if(ledState_l == true){

time_l = time_l-1;

digitalWrite(PIN_l、HIGH);

}



if(time_l == 0){

ledState_l = false;

}



if(ledState_l == false){

digitalWrite(PIN_l、LOW);

}



// m

if(ledState_m == true){

time_m = time_m-1;

digitalWrite(PIN_m、HIGH);

}



if(time_m == 0){

ledState_m = false;

}



if(ledState_m == false){

digitalWrite(PIN_m、LOW);

}



// n

if(ledState_n == true){

time_n = time_n-1;

digitalWrite(PIN_n、HIGH);

}



if(time_n == 0){

ledState_n = false;

}



if(ledState_n == false){

digitalWrite(PIN_n、LOW);

}



// o

if(ledState_o == true){

time_o = time_o-1;

digitalWrite(PIN_o、HIGH);

}



if(time_o == 0){

ledState_o = false;

}



if(ledState_o == false){

digitalWrite(PIN_o、LOW);

}



// p

if(ledState_p == true){

time_p = time_p-1;

digitalWrite(PIN_p、HIGH);

}



if(time_p == 0){

ledState_p = false;

}



if(ledState_p == false){

digitalWrite(PIN_p、LOW);

}



// q

if(ledState_q == true){

time_q = time_q-1;

digitalWrite(PIN_q、HIGH);

}



if(time_q == 0){

ledState_q = false;

}



if(ledState_q == false){

digitalWrite(PIN_q、LOW);

}



// r

if(ledState_r == true){

time_r = time_r-1;

digitalWrite(PIN_r、HIGH);

}



if(time_r == 0){

ledState_r = false;

}



if(ledState_r == false){

digitalWrite(PIN_r、LOW);

}



// s

if(ledState_s == true){

time_s = time_s-1;

digitalWrite(PIN_s、HIGH);

}



if(time_s == 0){

ledState_s = false;

}



if(ledState_s == false){

digitalWrite(PIN_s、LOW);

}



// t

if(ledState_t == true){

time_t = time_t-1;

digitalWrite(PIN_t、HIGH);

}



if(time_t == 0){

ledState_t = false;

}



if(ledState_t == false){

digitalWrite(PIN_t、LOW);

}



//あなた

if(ledState_u == true){

time_u = time_u-1;

digitalWrite(PIN_u、HIGH);

}



if(time_u == 0){

ledState_u = false;

}



if(ledState_u == false){

digitalWrite(PIN_u、LOW);

}



// v

if(ledState_v == true){

time_v = time_v-1;

digitalWrite(PIN_v、HIGH);

}



if(time_v == 0){

ledState_v = false;

}



if(ledState_v == false){

digitalWrite(PIN_v、LOW);

}



// w

if(ledState_w == true){

time_w = time_w-1;

digitalWrite(PIN_w、HIGH);

}



if(time_w == 0){

ledState_w = false;

}



if(ledState_w == false){

digitalWrite(PIN_w、LOW);

}



// x

if(ledState_x == true){

time_x = time_x-1;

digitalWrite(PIN_x、HIGH);

}



if(time_x == 0){

ledState_x = false;

}



if(ledState_x == false){

digitalWrite(PIN_x、LOW);

}



// y

if(ledState_y == true){

time_y = time_y-1;

digitalWrite(PIN_y、HIGH);

}



if(time_y == 0){

ledState_y = false;

}



if(ledState_y == false){

digitalWrite(PIN_y、LOW);

}



// z

if(ledState_z == true){

time_z = time_z-1;

digitalWrite(PIN_z、HIGH);

}



if(time_z == 0){

ledState_z = false;

}



if(ledState_z == false){

digitalWrite(PIN_z、LOW);

}



遅延(1);



}



この混乱を生成するPythonコード
 chap = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] num = ['2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53'] i = 0 k = 0 iteration1 = True while iteration1: print('#define PIN_' + chap[i] + ' ' + num[k]) i = i + 1 k = k + 1 if i > 51: iteration1 = False print() i = 0 iteration2 = True while iteration2: print('#define TIME_' + chap[i] + ' ' + '1000') i = i + 1 if i > 51: iteration2 = False print() i = 0 iteration3 = True while iteration3: print('boolean ledState_' + chap[i] + ' ' + '= false;') i = i + 1 if i > 51: iteration3 = False print() i = 0 iteration4 = True while iteration4: print('int time_' + chap[i] + ' ' + '= 0;') i = i + 1 if i > 51: iteration4 = False i = 0 iteration5 = True while iteration5: print() print('//' + chap[i]) print("if(x == '" + chap[i] + "'){") print(' ledState_' + chap[i] + ' = true;') print(' time_' + chap[i] + ' = TIME_' + chap[i] + ';') print(' x = 0;') print(' }') i = i + 1 if i > 51: iteration5 = False print() print('}') print() i = 0 iteration6 = True while iteration6: print() print('//' + chap[i]) print("if(ledState_" + chap[i] + " == true){") print(' time_' + chap[i] + ' = time_' + chap[i] + ' - 1;') print(' digitalWrite(PIN_' + chap[i] + ', HIGH);') print(' }') print() print("if(time_" + chap[i] + " == 0){") print(' ledState_' + chap[i] + ' = false;') print(' }') print() print("if(ledState_" + chap[i] + " == false){") print(' digitalWrite(PIN_' + chap[i] + ', LOW);') print(' }') i = i + 1 if i > 51: iteration6 = False print() print('delay(1);') print() print('}') print('NEW VERSION') i = 26 iteration7 = True while iteration7: print() print('//' + chap[i]) print("if(x == '" + chap[i] + "'){") print(' digitalWrite (PIN_' + chap[i] + ', !digitalRead(PIN_' + chap[i] + '));') print(' x = 0;') print(' }') i = i + 1 if i > 51: iteration7 = False print() print('}') print()
      
      







PS:自動化の目標の1つは、ヒューマンエラーを回避することでした。スケッチがコンパイルを拒否したとき、私は驚きました。 その理由は、急いでブナを1つ繰り返してアルファベットを書いたからです。



PPS:顧客はひどく喜んでおり、合意以上の支払いをし、さらにコードを読者と共有することさえ許されました。



紳士のPythonを学びましょう!



All Articles