第4回

今回はNeoPixelとステッピングモーターを制御して簡易的なスロットを作りました。

制作過程

スロット

モーター三つに対し、特定のキーを送ることで回転が止まり、10秒後にまた自動で回りだすプログラムを組んだ。

装飾

dfLinkを使用し、スロットがそろったらスタッフが信号を送信し、光方のパターンを変更させるプログラムを組んだ。

  1. #include <Adafruit_NeoPixel.h>
  2. #define PIN 9 // 信号用のピンを指定
  3. #define NUMPIXELS 5 // LEDの数を指定
  4. int brightness = 50; // 明るさ
  5. int flashInterval = 50; // 点滅間隔(ミリ秒)
  6. int val=0;
  7. int from_pc="0";
  8. Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  9. void setup() {
  10.   pixels.begin(); // NeoPixel出力ピンの初期化
  11.   pixels.setBrightness(brightness);
  12. }
  13. void loop()
  14.  {
  15.   if(Serial.available() > 0){
  16.     from_pc = Serial.read();
  17.   }
  18.   //1をON、0をOFFと考える
  19.   //1が送られてきたらLEDを点灯、0だったら消灯
  20.   if (from_pc=='1')
  21.   pixels.clear(); // すべてのLEDの色を0にセット
  22.   // 赤色を設定
  23.   uint32_t redColor = pixels.Color(255, 0, 0);
  24.   
  25.   // LEDを点滅させる
  26.   for(int i = 0; i < NUMPIXELS; i++) {
  27.     pixels.setPixelColor(i, redColor);
  28.   }
  29.   pixels.show(); // 色を表示
  30.   
  31.   // 点滅間隔分待つ
  32.   delay(flashInterval);
  33.   
  34.   // LEDを消す
  35.   pixels.clear();
  36.   pixels.show(); // 色を表示
  37.   
  38.   // 点滅間隔分待つ
  39.   delay(flashInterval);
  40. }

感想

短時間にしてはそれらしきものが出来たので良かったが、理想としてはスロットの当たり外れを機械が認識して、演出を変えるプログラムを作りたかったのでまだまだ修行が足りないと感じる。
また、今回私はNeoPixelのプログラムを主に担当したが、chatGPTに頼って意味が分からなくなったので今後はしっかりと理解を大切にして行いたいと思う。