LV1

ランダムコントローラー1

とりあえず手っ取り早くランダムを体験してみたい人はこれで。
配線を繋ぎ、スケッチを書き込むだけで出来上がりです

スイッチ類無しでパターンはランダムのみです
ON、OFFは電源抜き差しか、スイッチ付きの電源を使います

上がニップルカップ下は旧UFO
ドームやマジックもいけるはず

■作り方
1.配線を組みパソコンとArduinoをUSBで繋ぐ
LV1配線

2.下記スケッチをコピーしてArduino IDEのスケッチに貼り付ける
(IDEに元からあるスケッチは消してから貼り付ける)
ArduinoIDE

3.書込み(コンパイル)で出来上がり。これを2個作る
書込み(コンパイル)

※時間を元にしたランダム処理なので左右タイミングをずらして電源ONしてください
※7v~12vの電源だとかなり発熱するので使わない方がいいです
(LV2以降は7v~12v電源を封印しました)

※作成、使用、部品の購入は自己責任でお願いします



//#############################################
//スケッチはここからコピー
//#############################################
#include <time.h>

//中くらいで長い回転
#define pwr_min 120    //回転速度の最小値※低すぎると動かない
#define pwr_max 200    //回転速度の最大値※255まで
#define dly_min 500    //回転時間の最小値※1000で約1秒
#define dly_max 1000   //回転時間の最大値※1000で約1秒

void setup() {
}

void loop() {
  //回転コントロール関数
  //引数:最小速度,最大速度,最小時間,最大時間,回転方向(0か1)
  rCont(pwr_min,pwr_max,dly_min,dly_max,GetRandom(0,1));
}

//「苦C」ランダム関数:minからmaxの間のランダム値を返す
int GetRandom(int min, int max){
  static int flag;

  if (flag == 0) {
    srand((unsigned int)time(NULL));
    flag = 1;
  }
  return min + (int)(rand() * (max - min + 1.0) / (1.0 + RAND_MAX));
}

//回転コントロール関数
//pmin:最小速度 pmax:最大速度 dmin:最小時間 dmax:最大時間 rot:方向
void rCont(int pmin,int pmax,int dmin,int dmax,int rot){
  int lrot;
    
  if(rot==0) lrot=10;                       //回転方向
  else if(rot==1) lrot=11;                  //10と11ピン使用
  
  analogWrite(lrot,GetRandom(pmin,pmax));   //回転速度
  delay(GetRandom(dmin,dmax));              //回転時間
      
  analogWrite(10,0);                        //休憩(念のため)
  analogWrite(11,0);
  delay(1);
}
//#############################################
//スケッチはここまでコピー
//#############################################





■カスタマイズ

スケッチの6行目から10行目の値を下記の何れかに変えたり
好みの数値に変えることでランダムの内容をカスタマイズできます

//弱め長い回転
const int pwr_min = 50; //回転速度の最小値※低すぎると動かない
const int pwr_max = 100; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 500; //回転時間の最小値※1000で約1秒
const int dly_max = 1000; //回転時間の最小値※1000で約1秒

//弱め小刻み
const int pwr_min = 50; //回転速度の最小値※低すぎると動かない
const int pwr_max = 100; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 100; //回転時間の最小値※1000で約1秒
const int dly_max = 300; //回転時間の最小値※1000で約1秒

//中くらいで長い回転
const int pwr_min = 120; //回転速度の最小値※低すぎると動かない
const int pwr_max = 200; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 500; //回転時間の最小値※1000で約1秒
const int dly_max = 1000; //回転時間の最大値※1000で約1秒

//中くらいで小刻み
const int pwr_min = 120; //回転速度の最小値※低すぎると動かない
const int pwr_max = 200; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 100; //回転時間の最小値※1000で約1秒
const int dly_max = 300; //回転時間の最小値※1000で約1秒

//強めで長い回転
const int pwr_min = 180; //回転速度の最小値※低すぎると動かない
const int pwr_max = 200; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 500; //回転時間の最小値※1000で約1秒
const int dly_max = 1000; //回転時間の最小値※1000で約1秒

//強めで小刻み
const int pwr_min = 180; //回転速度の最小値※低すぎると動かない
const int pwr_max = 200; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 100; //回転時間の最小値※1000で約1秒
const int dly_max = 300; //回転時間の最小値※1000で約1秒

//ALL
const int pwr_min = 50; //回転速度の最小値※低すぎると動かない
const int pwr_max = 200; //回転速度の最大値※MAX255まで(200位が無難)
const int dly_min = 100; //回転時間の最小値※1000で約1秒
const int dly_max = 1000; //回転時間の最小値※1000で約1秒


部品の購入等はこちら

自作コストまとめ

自作にかかったコストをまとめてみました 一部曖昧な表記や値段が変わっている物もあります 消費税や送料は計算には入れておりません ■必須工具類 1,490円~ 元々持っている物が結構あると思いますが一応計算に含めました はんだこて、はんだをダイソーで済ませば少し安くなります。当ブログの工作程度なら十分か...

関連記事

コメント

非公開コメント

このページのトップへ