ビーンバック回収、テープLED、美少女ボイス担当マイコンのプログラム

Dependencies:   mbed SBDBT arrc_mbed play_mp3

main.cpp

Committer:
sopuranoaruto
Date:
2022-03-08
Revision:
3:4d2a0e4bb4d9
Parent:
2:9adbf7e03f35
Child:
4:925391180349

File content as of revision 3:4d2a0e4bb4d9:

#include "mbed.h"
#include "neopixel.h"
#include "scrp_slave.hpp"

Serial pc(USBTX,USBRX);
ScrpSlave slave(PC_12,PD_2,PH_1,SERIAL_TX,SERIAL_RX,5);
NeoPixelOut npx(PB_0,10);
bool colormode = 0;
bool stop = 0;

int i = 0;

//モード変更 50
bool get_changemode(int rx_data,int &tx_data)
{
    if(rx_data == 1) {
        if(colormode == 0){
            colormode = 1;
        }
    } else {
        if(colormode == 1){
            colormode = 0;
        }
    }
    return true;
}

//非常停止 51
bool get_stop(int rx_data,int &tx_data)
{
    if(rx_data == 0) {
        stop = 0;
    } else {
        stop = 1;
        for(i=0; i<npx.numPixels(); i++) {
            npx.setPixelColor(i,0x000000);
        }
    }
    return true;
}

int main()
{
    //モード変更
    slave.addCMD(50,get_changemode);
    //非常停止
    slave.addCMD(51,get_stop);
    //光の強さ
    npx.global_scale = 0.05f;
    //信号来ていないときは光らない
    npx.normalize = false;
    while(1) {
        //非常停止解除
        if(stop == 0) {
            if(colormode == 0) {
                //手動モード 赤
                for(i = 0; i < npx.numPixels(); i++) {
                    npx.setPixelColor(i,0xFF0000);
                    npx.show();
                    pc.printf("control\n");
                    wait(0.05);
                    if(i == npx.numPixels()) {
                        i = 0;
                    }
                }
                //自動モード 青
            } else if(colormode == 1) {
                for(i = 0; i < npx.numPixels(); i++) {
                    npx.setPixelColor(i,0x0000FF);
                    npx.show();
                    pc.printf("auto\n");
                    wait(0.05);
                    if(i == npx.numPixels()) {
                        i = 0;
                    }
                }
            }
            //非常停止
        } else if(stop == 1) {
            for(i = 0; i < npx.numPixels(); i++) {
                pc.printf("stopping\n");
                npx.setPixelColor(i,0x000000);
                npx.show();
                wait(0.05);
                if(i == npx.numPixels()) {
                    i = 0;
                }
            }
        }
    }
}