工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

赤外線センサーを使用した目のモーショントラッキング

コンポーネントと消耗品

>
SparkFun Arduino Pro Mini 328-5V / 16MHz
× 1
Pro Trinket / ItsyBitsy用のAdafruitLiIon / LiPolyバックパックアドオン
× 1
NeoPixelストリップ
× 1
QTR-1A反射率センサー
× 1
3.7 VLiPoバッテリー
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

赤外線センサーを使用して目の動きを感知し、LEDを制御しました。

NeoPixelLEDアイボール

NeoPixelLEDテープを使用しています。 LEDは68個です。

<図>

LEDは両面テープでボウルに固定され、次の順序で配線されます。

<図>

目のモーショントラッキング

回路図面

<図>

センサー

アイトラッキングには2つのセンサーQTR-1Aを使用しました。 QTR-1Aは、目の幅程度の距離でプラスチックシート上に配置されます。

<図>

センサー部分とマイクロコントローラー部分はそれぞれクリップで眼鏡に固定されていました。

<図> <図>

Arduinoコード

虹彩が1つのセンサーに近づくと、反射光が減少し、センサー値が増加します。逆に、虹彩が遠ざかると、反射光が増加し、フォトリフレクターのセンサー値が減少します。

LED眼球の瞳孔の左右の動きは、1つのセンサー値の増減を感知して制御します。

まばたきをすると、両方のセンサー値が減少するため、2つのセンサー値が同時に減少すると、LED眼球のまぶたが下がります。

  #include  #include  #define NUM_SENSORS 2 //使用されたセンサーの数#defineNUM_SAMPLES_PER_SENSOR 10 //平均化#defineEMITTER_PIN QTR_NO_EMITTER_PIN int iniSensorValL、sensorVal;; #define PIN A3Adafruit_NeoPixel led =Adafruit_NeoPixel(68、PIN、NEO_GRB + NEO_KHZ800); int blackNum =24; intpupilNum =12; uint32_t color; int bright =40; byte eyeColor; int LR =7; boolean lid =false; int cnt =0; //ブラックアイL&Rアニメーションint blackLED [15] [24] ={{12,32,35,55,68,68,68,68,68,68,68,68,68,68,68、 68,68,68,68,68,68,68,68,68}、{12,13,31,36,54,55,68,68,68,68,68,68,68,68,68、 68,68,68,68,68,68,68,68,68}、{11,13,14,30,37,53,54,56,68,68,68,68,68,68,68、 68,68,68,68,68,68,68,68,68}、{10,11,14,15,29,38,52,53,56,57,68,68,68,68,68、 68,68,68,68,68,68,68,68,68}、{9,10,11,12,15,16,28,33,34,39,51,52,55,56,57、 58,68,68,68,68,68,6 8,68,68}、{0、8、9、10、11、12、13、16、17、27、32、35、40、50、51、54、55、56、57、58、59、 67,68,68}、{0、1、7、8、9、10、13、14、17、18、26、31、36、41、49、50、53、54、57、58、59、 60,66,67}、{1、2、6、7、8、9、14、15、18、19、25、30、37、42、48、49、52、53、58、59、60、 61,65,66}、{2、3、5、6、7、8、15、16、19、20、24、29、38、43、47、48、51、52、59、60、61、 62,64,65}、{3、4、5、6、7、16、17、20、21、23、28、39、44、46、47、50、51、60、61、62、63、 64,68,68}、{4、5、6、17、18、21、22、27、40、45、46、49、50、61、62、63、68、68、68、68、68、 68,68,68}、{4、5,18,19,26,41,48,49,62,68,68,68,68,68,68,68,68,68,68,68,68、 68,68,68}、{4,19,20,25,42,47,48,63,68,68,68,68,68,68,68,68,68,68,68,68,68、 68,68,68}、{20,21,24,43,46,47,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68、 68,68,68}、{21,23,44,46,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68、 68,68,68}}; //瞳孔L&RアニメーションnintpupilLED [15] [12] ={{33,34,68,68,68,68,68,68,68,68,68,68}、{32,33,34,35,68,68,68 、68,68,68,68,68}、{12,31,32,33,34,35,36,55,68,68,68,68}、{12,13,30,31,32,33 、34,35,36,37,54,55}、{13,14,29,30,31,32,35,36,37,38,53,54}、{14,15,28,29,30 、31,36,37,38,39,52,53}、{15,16,27,28,29,30,37,38,39,40,51,52}、{16,17,26,27 、28,29,38,39,40,41,50,51}、{17,18,25,26,27,28,39,40,41,42,49,50}、{18,19,24 、25,26,27,40,41,42,43,48,49}、{19,20,23,24,25,26,41,42,43,44,47,48}、{20,21 、22、23、24、25、42、43、44、45、46、47}、{21、22、23、24、43、44、45、46、68、68、68、68}、{22 、23,44,45,68,68,68,68,68,68,68,68}、{22,45,68,68,68,68,68,68,68,68,68,68}}; //まぶたの点滅inteyelid =0; int eyelidNum [8] ={0,4,8,16,24,34,44,56}; inteyel idLED [56] ={64,65,66,67,58,59,60,61,56,57,62,63,49,50,51,52,47,48,53,54,38,39、 40,41,46,55,36,37,42,43,26,27,28,29,35,44,24,25,30,31,15,16,17,18,34,45,23、 32,13,14,19,20,6,7,8,9}; QTRSensorsAnalog qtra((unsigned char []){0、1}、NUM_SENSORS、NUM_SAMPLES_PER_SENSOR、EMITTER_PIN); unsigned int SensorValues [NUM_SENSORS]; void flash (int eyelid、int LR){if(eyelid!=8){// Pewter for(uint16_t i =0; i  0.985 &&rasioR <0.985){// right for(int i =LR; i <12; i ++){blink(0、i); delay(40); LR =i; }} else if(rasioL <0.985 &&rasioR> 0.985){// left for(int i =LR; i> 2; i-){blink(0、i); delay(40); LR =i; }} else if(lid ==false &&rasioL <0.96 &&rasioR <0.96){//まばたきを閉じるfor(int i =1; i <9; i ++){blink(i、LR); delay(40);ふた=真; }} else if(lid ==true &&rasioL> 0.96 &&rasioR> 0.96){//点滅して開くfor(int i =8; i> 0; i-){blink(i、LR); delay(40);ふた=false; }} else if(lid ==false &&rasioL> 0.96 &&rasioR> 0.96){//通常// cnt ++; //まぶた=0; if(LR <=7){for(int i =LR; i <=7; i ++){blink(0、i); delay(40); LR =i; }} else {for(int i =LR; i> =7; i-){blink(0、i); delay(40); LR =i; }} Serial.println( "通常時"); } //初期値の更新if(cnt> 10){iniSensorValL =SensorValL; iniSensorValR =SensorValR; cnt =0; }}  

操作


製造プロセス

  1. 製品設計で天然素材を使用することになった理由は何ですか?
  2. パルス光センサー
  3. Raspberry piを使用したTMP006温度センサーPythonライブラリ、
  4. PythonとRaspberryPiの温度センサー
  5. RPiを備えたライントラッキングセンサー
  6. Raspberry PiのHAでのモーションセンサー、アラーム、ビデオ録画
  7. ラズベリーパイ用DIY赤外線モーションセンサーシステム
  8. RaspberryPiを使用したモーションセンサー
  9. Leap Motionレーザータンク!
  10. Arduinoを使用したDIY赤外線ハートビートセンサー
  11. 赤外線センサーの温度測定