#include "meArm.h"#include /* Color sorter using MeArm and TSC * mearm library by https://github.com/yorkhackspace/meArm*///pins for meArmint basePin = 11;int elbowPin = 10;int shoulderPin = 9;int gripperPin = 6;//pins for color sensor//s0 & s1 frequency output scaling//s0 = yellow//s1 = green//s0(yellow) s1(green) //L L = power down no output//L H = 2%//H L = 20%//H H = 100% * (use this setting)////EO = set to low - low to enable fo setting aboveint s2 = 7; //color sensor pin s2 to Arduino pin 7int s3 = 8; //color sensor pin s3 to Arduino pin 8int outPin = 4; //color sensor pin OUT to Arduino pin 4//meArm arm: get below parameters from ik_calibrationmeArm arm( 180,0, -pi/2, pi/2, //Base (-90 to 90 degrees) 125,37, pi/4, 3*pi/4, //Shoulder ( 45 to 135 degrees) 89,44, 0, -pi/4, //Elbow ( 0 to -45 degrees) //40,120, pi/2, 0); //Gripper open to close ( 90 to 0 degrees) 105,130, pi/2, 0); //Gripper open to close ( 90 to 0 degrees)boolean DEBUG = true;void setup() { arm.begin(basePin, shoulderPin, elbowPin, gripperPin); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT); pinMode(outPin, INPUT); //out from sensor becomes input to arduino Serial.begin(9600); //turn on serial port //move the arm to the home position arm.gotoPoint(0,80,60); delay(1000); arm.closeGripper(); delay(100);}void loop() { //***** grab a color token ***** arm.openGripper(); //token location arm.gotoPoint(-131,131,-17); delay(100); //grab it arm.closeGripper(); delay(100); //bring it up arm.gotoPoint(-130,130,35); //***** take it to color sensor arm.gotoPoint(-172,0,35); delay(2000); //identify color char color = get_color(); switch(color) { case 'r': //red arm.gotoPoint(70,170,50); delay(500); //pause arm.openGripper(); break; case 'y': arm.gotoPoint(110,170,50); delay(500); //pause arm.openGripper(); break; case 'g': arm.gotoPoint(170,170,50); delay(500); //pause arm.openGripper(); break; case 'u': //unidentified. reject arm.gotoPoint(-180,50,50); delay(500); //pause arm.openGripper(); break; } delay(500); return; }char get_color() { int R; int G; int B; char color; //read red component digitalWrite(s2, LOW); digitalWrite(s3, LOW); R = pulseIn(outPin, LOW); //read green component digitalWrite(s2, HIGH); digitalWrite(s3, HIGH); G = pulseIn(outPin, LOW); //let's read blue component digitalWrite(s2, LOW); digitalWrite(s3, HIGH); B = pulseIn(outPin, LOW); //*********** calibration required *************** //Color sensor is very sensitive to ambient light. You must calibrate following range of values for green, red, and yellow chips. //The following values are obtained when a color token is placed at appprox 1 inch from the sensor //Color //RGB values for tokens are: //red: 30
的#include“meArm.h” <br>的#include <br>/ *彩色分選器利用MeArm和TSC <br>* mearm庫由https://github.com/yorkhackspace/meArm <br>* / <br><br>對meArm //銷<br>INT basePin = 11; <br>INT elbowPin = 10; <br>INT shoulderPin = 9; <br>INT gripperPin = 6; <br><br>//引腳顏色傳感器<br>// S0&S1頻率輸出縮放<br>// S0 =黃色<br>// S1 =綠色<br>// S0(黃色)S1(綠色)<br>// LL =掉電沒有輸出<br>// LH = 2%<br>// HL = 20%<br>// HH = 100%*(使用該設置)<br>// <br>// EO =為低-低,以使上述FO設置<br><br>INT S2 = 7; //顏色傳感器銷S2到Arduino的銷7 <br>INT S3 = 8; //顏色傳感器銷S3到Arduino的銷8<br>INT outPin = 4; //顏色傳感器插腳OUT給Arduino的銷4 <br><br>// meArm臂:得到從以下參數ik_calibration <br>meArm臂(<br>180,0,-pi / 2,π/ 2,//基地(-90到90度)<br>125,37, π/ 4,3 * pi / 4的,//肩(45至135度)<br>89,44,0,-pi / 4,//彎頭(0到-45度)<br>// 40120,PI / 2,0) ; //爪打開以關閉(90至0度)<br>105130,PI / 2,0); //爪打開以關閉(90至0度)<br><br>的布爾DEBUG =真; <br><br>空隙設置(){ <br>arm.begin(basePin,shoulderPin,elbowPin,gripperPin); <br>pinMode(S2,OUTPUT); <br>pinMode(S3,OUTPUT); <br>pinMode(outPin,INPUT); 從傳感器// out變為輸入至Arduino的<br><br>Serial.begin(9600); //轉串口<br><br>//臂移動到起始位置<br>arm.gotoPoint(0,80,60); <br>延遲(1000); <br>arm.closeGripper(); <br>延遲(100); <br>} <br><br>空隙環(){ <br><br>// *****抓住一個顏色標記***** <br><br>arm.openGripper(); <br> <br>//令牌位置<br>arm.gotoPoint(-131,131,-17); <br>延遲(100); <br><br>//搶它<br>arm.closeGripper(); <br>延遲(100); <br><br>//把它<br>arm.gotoPoint(-130,130,35); <br><br>// *****把它帶到顏色傳感器<br>arm.gotoPoint(-172,0,35); <br>延遲(2000); <br><br>//識別顏色<br>炭色= get_color(); <br><br>開關(顏色){ <br>情況下為'r'://紅色<br>arm.gotoPoint(70,170,50); <br>延遲(500); //暫停<br>arm.openGripper(); <br>打破; <br>情況下“Y”:<br>arm.gotoPoint(110,170,50); <br>延遲(500); //暫停<br>arm.openGripper(); <br>打破; <br>情況下的“g”:<br>arm.gotoPoint(170,170,50); <br>延遲(500); //暫停<br>arm.openGripper(); <br>打破; <br>情況下,'U'://不明。拒絕<br>arm.gotoPoint(-180,50,50); <br>延遲(500); //暫停<br>arm.openGripper(); <br>打破; <br>} <br> <br>延遲(500); <br>返回; <br> <br>} <br><br>炭get_color(){ <br><br>INT R; <br>INT G; <br>INT B; <br><br>字符顏色; <br> <br>//讀取紅色成分<br>digitalWrite(S2,LOW); <br>digitalWrite(S3,LOW); <br>R = pulseIn(outPin,LOW);<br><br>//讀取綠色分量<br>digitalWrite(S2,HIGH); <br>digitalWrite(S3,HIGH); <br>G = pulseIn(outPin,LOW); <br> <br>//讓我們讀藍色成分<br>digitalWrite(S2,LOW); <br>digitalWrite(S3,HIGH); <br> <br>B = pulseIn(outPin,LOW); <br><br>// ***********需要校準*************** <br>//顏色傳感器是環境光非常敏感。您必須校準以下為綠色,紅色和黃色的籌碼值的範圍。<br>當彩色標記被放置在從所述傳感器appprox 1英寸獲得//以下值<br>//顏色<br>為令牌// RGB值是:<br>//紅色:30
正在翻譯中..

#包括“meArm.h”<br>#包括<br>/*使用MeArm和TSC的色選機<br>*mearm圖書館https://github.com/yorkhackspace/mearm<br>*/<br>//粉針<br>內部基脚=11;<br>int elbowPin=10;<br>內肩銷=9;<br>內夾持器蛋白=6;<br>//顏色感測器插腳<br>//s0&s1頻率輸出比例<br>//s0=黃色<br>//s1=綠色<br>//s0(黃色)s1(綠色)<br>//L L=斷電無輸出<br>//L H=2%<br>//H L=20%<br>//H H=100%*(使用此設定)<br>//<br>//EO=設定為低-低,以啟用上面的fo設定<br>int s2=7;//顏色感測器插腳s2到Arduino插腳7<br>int s3=8;//顏色感測器引脚s3到Arduino引脚8<br>int OUT pin=4;//顏色感測器引脚輸出到Arduino引脚4<br>//meArm:從ik_校準中獲取以下參數<br>瘦弱的手臂(<br>180,0,-pi/2,pi/2,//Base(-90到90度)<br>125,37,pi/4,3*pi/4,//肩部(45至135度)<br>89,44,0,-pi/4,//Elbow(0到-45度)<br>//40120,pi/2,0);//夾持器打開到關閉(90到0度)<br>105130,pi/2,0);//夾持器打開到關閉(90到0度)<br>布林調試=真;<br>無效設定(){<br>臂。開始(基脚、肩釘、肘釘、夾持器);<br>pinMode(s2,輸出);<br>pinMode(s3,輸出);<br>pinMode(outPin,INPUT);//out from sensor成為arduino的輸入<br>Serial.begin(9600);//打開串列埠<br>//把手臂移到原位<br>高托邦武裝部隊(0,80,60);<br>延遲(1000);<br>手臂。閉合夾持器();<br>延遲(100);<br>}<br>無效迴圈(){<br>//*****獲取顏色標記*****<br>手臂。打開夾持器();<br>//權杖位置<br>高托邦武裝(-131131,-17);<br>延遲(100);<br>//抓住它<br>手臂。閉合夾持器();<br>延遲(100);<br>//把它拿上來<br>高托邦武裝部(-130130,35);<br>//*****帶到顏色感測器<br>高托邦手臂(-172,0,35);<br>延遲(2000年);<br>//識別顏色<br>char color=獲取顏色();<br>開關(顏色){<br>大小寫'r'://red<br>哥托邦武裝部(70170,50);<br>延遲(500);//pause<br>手臂。打開夾持器();<br>休息;<br>案例“y”:<br>哥托邦武裝部隊(110170,50);<br>延遲(500);//pause<br>手臂。打開夾持器();<br>休息;<br>案例“g”:<br>哥托邦手臂(170170,50);<br>延遲(500);//pause<br>手臂。打開夾持器();<br>休息;<br>案例'u'://身份不明。拒絕<br>上臂杆(-180,50,50);<br>延遲(500);//pause<br>手臂。打開夾持器();<br>休息;<br>}<br>延遲(500);<br>回報;<br>}<br>字元獲取顏色(){<br>內景R;<br>內景G;<br>內景B;<br>字元顏色;<br>//讀取紅色組件<br>數位寫入(s2,低);<br>數位寫入(s3,低);<br>R=脈衝星(輸出,低);<br>//讀取綠色組件<br>數位寫入(s2,高);<br>數位寫入(s3,高);<br>G=脈衝星(輸出,低);<br>//讓我們讀一下藍色部分<br>數位寫入(s2,低);<br>數位寫入(s3,高);<br>B=脈衝星(輸出,低);<br>//***********需要校準***************<br>//顏色感測器對環境光非常敏感。必須校準綠色、紅色和黃色晶片的以下值範圍。<br>//當在距離感測器1英寸的appprox處放置顏色標記時,將獲得以下值<br>//顏色<br>//權杖的RGB值為:<br>//紅色:30<br>
正在翻譯中..
