以前修理したけどブログにアップできなかったもの その1 です。
なお、修理前の画像は撮り忘れたので修理後の画像のみです。
名鉄7000系パノラマカー(旧動力 白線なし)を修理しました。
修理箇所は運転台窓枠が折れて紛失していた所と車体左側ひび割れの2ヶ所です。
運転台の窓枠は、プラモデルの赤ランナーを使用してヒートペンで再生しました。
が、仕上げが甘くガタガタになってしまいました…
車体左側のひび割れも、プラモデルの赤ランナーとヒートペン塞いだのですが、微妙に赤の色合いが異なったため逆に目立つ結果に…
いつか時間が出来たら、修理し直したいです…
2017年9月18日月曜日
2017年9月3日日曜日
【音声改造】オリジナルガシャット作製その5 『動作確認動画とプログラム公開』
新しい仮面ライダーの放送が始まりましたが、私はまだガシャットを弄っています。
という事で今回は、前回修正したスケッチが正常に動作するか検証していました。
動画にするとこんな感じです。
ガシャット挿入音の再生中にキメワザスロットのボタンを押下しても次処理のキメワザ待機音は実行せず、ガシャット挿入音の再生が終了した後にボタンを押下することでキメワザ待機音が鳴るようになりました。
スケッチが長くなってしまったのでvoid loopの所のみ抜粋してありますがこんな感じです。
ガシャットの個体差による認識率の問題はありますが、現時点での課題はほぼほぼ解決したので、次は音ネタ探しに移ります。
さてさて、何が良いでしょうかねぇ
という事で今回は、前回修正したスケッチが正常に動作するか検証していました。
動画にするとこんな感じです。
スケッチが長くなってしまったのでvoid loopの所のみ抜粋してありますがこんな感じです。
void loop(){ current_state[0] = digitalRead(BUTTON_1_PIN); current_state[1] = digitalRead(BUTTON_2_PIN); current_state[2] = digitalRead(BUTTON_3_PIN); if(memcmp(before_state, OFF_OFF_OFF, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ wait = 1; action = set_action(LEVEL_1); }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ wait = 1; action = set_action(GASHAT_IN); }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ if(single_mode_flag == false){ wait = 1; action = set_action(GASHAT_NAME); }else{ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(GAME_CLEAR); }else{ wait = 1; action = set_action(GAME_OVER); } } single_mode_flag = !single_mode_flag; }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ slot_in_time = 0; slot_in_flag = true; wait = 1; action = set_action(GASHAT_IN); }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ wait = 1; action = set_action(LEVEL_1); }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ wait = 1; action = set_action(GASHAT_IN); }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ critical_mode_flag = true; slot_in_time = 0; slot_in_flag = true; wait = 1; action = set_action(WEAPON_C_READY); } }else if(memcmp(before_state, ON_OFF_OFF, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ if(s_process_ID == 3 && slot_in_time >= 40){ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } s_process_ID = 0; }else{ ; } }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(LEVEL_2); }else{ if(s_process_ID == 3 && slot_in_time >= 40){ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } s_process_ID = 0; }else{ ; } } }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ wait = 1; action = set_action(LEVEL_2); } }else if(memcmp(before_state, OFF_ON_OFF, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ if(s_process_ID == 2 && slot_in_time >= 40){ wait = 1; action = set_action(GENRE); s_process_ID = 0; }else{ ; } }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(LEVEL_3); }else{ if(s_process_ID == 2 && slot_in_time >= 40){ wait = 1; action = set_action(GENRE); s_process_ID = 0; }else{ ; } } }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ wait = 1; action = set_action(LEVEL_X); }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ wait = 1; action = set_action(LEVEL_3); } }else if(memcmp(before_state, OFF_OFF_ON, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ wait = 1; action = set_action(LEVEL_1); }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ wait = 1; action = set_action(GASHAT_IN); }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(CRITICAL_READY); }else{ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_STRIKE); }else{ wait = 1; action = set_action(CRITICAL_STRIKE_KAI); } } critical_mode_flag = !critical_mode_flag; } }else if(memcmp(before_state, ON_ON_OFF, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(DRIVER_CLOSE); }else{ if(slot_in_time >= 40){ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } }else{ s_process_ID = 3; } } }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(DRIVER_CLOSE); }else{ if(slot_in_time >= 40){ wait = 1; action = set_action(GENRE); }else{ s_process_ID = 2; } } }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ if(s_process_ID >= 1 && slot_in_time >= 40){ switch(s_process_ID){ case 1: wait = 1; action = set_action(CRITICAL_READY); critical_mode_flag = !critical_mode_flag; break; case 2: wait = 1; action = set_action(GENRE); break; case 3: randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } break; } s_process_ID = 0; }else{ ; } }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ if(slot_in_time >= 40){ if(critical_mode_flag == false){ wait = 1; action = set_action(CRITICAL_READY); }else{ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_STRIKE); }else{ wait = 1; action = set_action(CRITICAL_STRIKE_KAI); } } critical_mode_flag = !critical_mode_flag; }else{ s_process_ID = 1; } } }else if(memcmp(before_state, ON_OFF_ON, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(LEVEL_2); }else{ ; } } }else if(memcmp(before_state, OFF_ON_ON, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ if(critical_mode_flag == false){ wait = 1; action = set_action(LEVEL_3); }else{ ; } } }else if(memcmp(before_state, ON_ON_ON, N_BUTTON) == 0){ if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } }else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){ wait = 1; action = set_action(GENRE); }else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){ s_process_ID = 0; slot_in_flag = false; critical_mode_flag = false; wait = 1; action = set_action(GASHAT_OUT); }else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){ ; }else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){ randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } }else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){ wait = 1; action = set_action(GENRE); }else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){ if(s_process_ID >= 1 && slot_in_time >= 40){ switch(s_process_ID){ case 1: wait = 1; action = set_action(CRITICAL_READY); critical_mode_flag = !critical_mode_flag; break; case 2: wait = 1; action = set_action(GENRE); break; case 3: randNumber = random(2); if(randNumber == 0){ wait = 1; action = set_action(CRITICAL_FINISH); }else{ wait = 1; action = set_action(CRITICAL_FINISH_KAI); } break; } s_process_ID = 0; }else{ ; } } } if(wait >= 1) { flash_led(action); wait = 0; }else{ wait++; } before_state[0] = current_state[0]; before_state[1] = current_state[1]; before_state[2] = current_state[2]; if(slot_in_flag == true){ if(slot_in_time < 5000){ slot_in_time++; }else{ slot_in_time = 0; } } delay(50); }他の方が作製する際の参考になれば良いのですが…
ガシャットの個体差による認識率の問題はありますが、現時点での課題はほぼほぼ解決したので、次は音ネタ探しに移ります。
さてさて、何が良いでしょうかねぇ
【その6に続きます。】
登録:
投稿 (Atom)