![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
テープLEDのプログラム 改良により色、光り方などに変化の可能性有り
Dependencies: mbed SBDBT arrc_mbed play_mp3
シリアル通信可
赤コート -> 赤 青コート -> 青 自動モード -> 黄 手動モード -> 緑
美少女ボイス搭載
シリアル通信に多少のラグが発生する可能性がある。
main.cpp
- Committer:
- sopuranoaruto
- Date:
- 2022-02-05
- Revision:
- 2:9adbf7e03f35
- Parent:
- 1:677d12692be0
- Child:
- 3:4d2a0e4bb4d9
File content as of revision 2:9adbf7e03f35:
#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(colormode == 0) { colormode = 1; } else { colormode = 0; } return 0; } //非常停止 51 bool get_stop(int rx_data,int &tx_data) { if(stop == 0) { stop = 1; for(i=0; i<npx.numPixels(); i++) { npx.setPixelColor(i,0x000000); } } else { stop = 0; } return 0; } 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; } } } } }