2022年3月28日月曜日

arduino⑤ sdc,photodiode/interrupt,color, dtl/scrtn3,port open!,ble,ws2811

sample sd readwrite.inoをunoでやった CSは4でないといかんかった

3.3vではうごかん 5vにつなぐ

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

https://iot.keicode.com/arduino/arduino-ir-led-photodiode.php を元に

フォトダイオードのスイッチ的使い方をまなぶ

光があたっている場合は1.2vなのでLow、光があたらないと5.0VなのでHigh

それで選り分けしてブザーを鳴らせる 

https://www.petitmonte.com/robot/howto_cnz1023.html フォトインタラプタ

ーーーーーーーーーーーーーーーーーーーー

https://create.arduino.cc/projecthub/electropeak/color-recognition-w-tcs230-sensor-and-arduino-184f58  color sensor for arduino

--------------------------

ch_arduino [プログラミング言語「ドリトル」] (eplang.jp) linuxはjavaを要す、サーボ不可

https://lab.yengawa.com/project/scrattino3/  最新版は管理者でなくてもできた、サーボ可

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Arduino: /dev/ttyACM0 - Permission Denied [SOLVED] - ShellHacks これ重要

----------------------------------------------------------------------------------------------

5分でできる!BluetoothでArduino遠隔操作ラジコンカー製作 (DCモーター制御) スケッチコード付き - 代継の挑戦日記 (配送シェアサービス、コード、IoT、中国ネタ) ウインドアバフト社長 ブログ (windabaft.co.jp)

----------------------------------------------------------------------------------------------

ws2811 LED  所謂ネオピクセルだが、4ピン仕様になっているのでテープとはまた

違う取り扱いが必要 人形の目を光らせ、呪いの人形にする - Qiita に詳しい

端っこの最初をデジタルの2につなぐ、あとはチェーンで最後の端はフリーとなる

#include <Adafruit_NeoPixel.h> #define LEDPIN 2 #define NUMLED 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMLED, LEDPIN, NEO_RGB + NEO_KHZ800); typedef struct { int r; int g; int b; } RGB; String eyes_color[] = {"#000000", "#0000ff", "#ff0000", "#ff00ff", "#00ff00", "#00ffff", "#ffff00", "#ffffff"}; int eyes_colorCount = sizeof(eyes_color) / sizeof(eyes_color[0]); int eyes_color_cur = 0 , eyes_color_to=1; RGB rgb_hex2dec(String hexstr){ RGB rgb; long val = strtol(&hexstr[1], NULL, 16); rgb.r = (int) (val >> 16 & 0xff); rgb.g = (int) (val >> 8 & 0xff); rgb.b = (int) (val & 0xff); return rgb; } boolean compareRGB(RGB a, RGB b){ return ((a.r == b.r)&&(a.g == b.g)&&(a.b == b.b)); } void changeLED(RGB from1, RGB to1, RGB from2, RGB to2){ RGB s[] = {from1, from2}, t[] = {to1, to2}, d[2]; for(int i=0; i<2; i++){ d[i].r= (s[i].r < t[i].r)?1:((s[i].r > t[i].r)?-1:0); d[i].g= (s[i].g < t[i].g)?1:((s[i].g > t[i].g)?-1:0); d[i].b= (s[i].b < t[i].b)?1:((s[i].b > t[i].b)?-1:0); } while(!compareRGB(s[0],t[0]) && !compareRGB(s[1],t[1])){ for(int i=0; i<2; i++){ if(s[i].r != t[i].r){ s[i].r += d[i].r; } if(s[i].g != t[i].g){ s[i].g += d[i].g; } if(s[i].b != t[i].b){ s[i].b += d[i].b; } } setLED(s[0], s[1]); delay(5); } }