Skip to content

Commit

Permalink
Merge pull request #2 from FabLabWgtn/master
Browse files Browse the repository at this point in the history
correct the branch
  • Loading branch information
drachezoil committed Sep 21, 2015
2 parents f66c870 + a06b959 commit 27c6ea6
Show file tree
Hide file tree
Showing 201 changed files with 87 additions and 19,047 deletions.
42 changes: 6 additions & 36 deletions arduino_code/openKnitting_handMadepcb_v0_1/communication.h
Expand Up @@ -13,14 +13,9 @@ class communication {
endLines* myEndlines;
solenoids* mysolenoids;
unsigned long lastSendTimeStamp;
int readCnt;
unsigned int received;
unsigned int lastReceived;
unsigned int bitRegister16Solenoid[16];
char receivedBin[201];
int dataSize;
boolean dataReplace;
boolean startSend200pix;
byte footer;
char lf;
public:
Expand All @@ -38,21 +33,11 @@ class communication {
dataSize = 201;
footer = 126;
dataReplace = false;
readCnt = 0;
lf = '@'; // AT in ASCII
// table - bit encoding
unsigned int bitRegister16SolenoidTemp[16] =
{
32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1
};
for (int i = 0; i < 16; i++) {
bitRegister16Solenoid[i] = bitRegister16SolenoidTemp[i];
}
Serial.setTimeout(10);
}

// send data to processing

void sendSerialToComputer() {
if ( (myEncoders->lastencoder1Pos != myEncoders->encoder1Pos) || (millis() - lastSendTimeStamp) > 500 ) {
lastSendTimeStamp = millis();
Expand All @@ -66,9 +51,8 @@ class communication {
} else {
Serial.print("0");
}
//myEncoders->last_8segmentEncoder
//myEncoders->_8segmentEncoder
/*
/*myEncoders->last_8segmentEncoder
myEncoders->_8segmentEncoder
if(myEncoders->last_8segmentEncoder){
Serial.print("1");
}else{
Expand All @@ -79,52 +63,37 @@ class communication {
}else{
Serial.print("0");
}
*/
/*
Serial.print(",");
if(myEndlines->started){
Serial.print("1");
}else{
Serial.print("0");
}
*/
/*
Serial.print(",");
//Serial.print(_status);
//Serial.print(",");
Serial.print(_status);
Serial.print(",");
for(int i=0;i<16;i++){
if(mysolenoids->solenoidstateOn[i]){
Serial.print("1");
}else{
Serial.print("0");
}
}
/*
Serial.print(",");
Serial.print(myEncoders->encoder1Pos);
Serial.print(",");
Serial.print(mysolenoids->currentStitchSetup );
Serial.print(",");
Serial.print(mysolenoids->currentSolenoidIDSetup);
Serial.print(mysolenoids->currentPixState);
Serial.print(",");
*/
//Serial.print(mysolenoids->currentPixState);
//Serial.print(",");

/*
Serial.print(myEndlines->valueEndLineLeft);
Serial.print(",");
Serial.print(myEndlines->valueEndLineRight);
Serial.print(",");
Serial.print(myEncoders->directionEncoders);
Serial.print(",");
Serial.print(myEncoders->lastDirectionEncoders);
*/

Serial.println(lf);
myEncoders->lastencoder1Pos = myEncoders->encoder1Pos;
}
Expand All @@ -142,6 +111,7 @@ class communication {
dataReplace = false;
}
}

// send to processing
void sendCurrentPixelArray() {
Serial.println(lf);
Expand Down
3 changes: 3 additions & 0 deletions arduino_code/openKnitting_handMadepcb_v0_1/defined_knitic.h
Expand Up @@ -10,6 +10,9 @@
#define encoder0PinA 2
#define encoder0PinB 3
#define encoder0PinC 4
#define piezoPin 9
#define endLineLeftAPin A1
#define endLineRightAPin A0
#endif

#endif
Expand Down
106 changes: 19 additions & 87 deletions arduino_code/openKnitting_handMadepcb_v0_1/encoders.h
Expand Up @@ -20,23 +20,22 @@ table encoder position an values id
#include "defined_knitic.h"

class encoders{
public:
short directionEncoders;
private:
short directionEncoders;
short lastDirectionEncoders;
int encoder1Pos;
int encoder4Pos;
int lastencoder1Pos;
int lastencoder4Pos;
boolean last_8segmentEncoder;
public:
int encoder1Pos;
int lastencoder1Pos;
int stitch;
int lastStitch;
int headDirection;
//boolean lastState8segmentEncoder;
//boolean state8segmentEncoder;
boolean _8segmentEncoder;
boolean last_8segmentEncoder;

encoders(){
}

~encoders(){
}

Expand All @@ -59,92 +58,49 @@ class encoders{
void calculateDirection(){
lastDirectionEncoders = directionEncoders;
directionEncoders = 0;
if(digitalRead(encoder0PinA)== HIGH){
// directionEncoders is ON for encoder A
//Serial.println("A:HIGH ENCODER");
directionEncoders += 1;
}
else{
// directionEncoders is OFF for encoder A
directionEncoders += 0;
//Serial.println("A:LOW ENCODER");
}
if(digitalRead(encoder0PinB)== HIGH){
// directionEncoders is ON for encoder B
directionEncoders +=3;
//Serial.println("B:HIGH ENCODER");
}
else{
directionEncoders +=5;
//Serial.println("B:LOW ENCODER");
}

if(digitalRead(encoder0PinA)== HIGH){ directionEncoders += 1;}
else{ directionEncoders += 0;}
if(digitalRead(encoder0PinB)== HIGH){ directionEncoders +=3;}
else{ directionEncoders +=5;}

last_8segmentEncoder = _8segmentEncoder;
_8segmentEncoder = (digitalRead(encoder0PinC)==HIGH);
/*
Serial.print(lastDirectionEncoders);
Serial.print("-");
Serial.println(directionEncoders);
Serial.print("-");
Serial.println(_8segmentEncoder);
*/
}

// Use call from normal loop
void loopNormal(){
calculateDirection();
if(lastDirectionEncoders!=directionEncoders){
//Serial.print(lastDirectionEncoders);
//Serial.print("-");
//Serial.println(directionEncoders);
if(
( lastDirectionEncoders==OFF_OFF && directionEncoders==OFF_OFF) ||
if((lastDirectionEncoders==OFF_OFF && directionEncoders==OFF_OFF) ||
(lastDirectionEncoders==OFF_OFF && directionEncoders==ON_OFF) ||
(lastDirectionEncoders==ON_OFF && directionEncoders==ON_ON) ||
(lastDirectionEncoders==ON_ON && directionEncoders==OFF_ON) ||
(lastDirectionEncoders==OFF_ON && directionEncoders==OFF_OFF)

){
(lastDirectionEncoders==OFF_ON && directionEncoders==OFF_OFF)){
headDirection =-1;
if( encoder1Pos==-2000){
encoder4Pos = 1020;//255 * 4
encoder1Pos = 255;
//Serial.print("start value");
}
encoder4Pos-=1;
if(encoder4Pos<0){
encoder4Pos=0;
}
/*
Serial.print(headDirection);
Serial.print("-Left:");
Serial.println(encoder4Pos);
Serial.println(encoder1Pos);
*/
}
else if(
(lastDirectionEncoders==OFF_ON && directionEncoders==ON_ON) ||
else if((lastDirectionEncoders==OFF_ON && directionEncoders==ON_ON) ||
(lastDirectionEncoders==ON_ON && directionEncoders==ON_ON) ||
(lastDirectionEncoders==ON_ON && directionEncoders==ON_OFF) ||
(lastDirectionEncoders==ON_OFF && directionEncoders==OFF_OFF)||
(lastDirectionEncoders==OFF_OFF && directionEncoders==OFF_ON)

){
(lastDirectionEncoders==OFF_OFF && directionEncoders==OFF_ON)){
headDirection =+1;
if( encoder1Pos==-2000){
encoder4Pos = 0;
encoder1Pos = 0;
//Serial.print("start value");
}
encoder4Pos+=1;
if(encoder4Pos>1020){//255 * 4
encoder4Pos=1020;
}
/*
Serial.print(headDirection);
Serial.print("-Right:");
Serial.println(encoder4Pos);
Serial.println(encoder1Pos);
*/
}
}

Expand All @@ -162,31 +118,16 @@ class encoders{
// Use called by attachInterrupt(encoder0PinA, encoderChange, CHANGE);
void loopAttachInterrupt(){
calculateDirection();

if(lastDirectionEncoders!=directionEncoders){
if(
lastDirectionEncoders==OFF_ON || directionEncoders==ON_OFF
){
if(lastDirectionEncoders==OFF_ON || directionEncoders==ON_OFF){
headDirection =-1;
//Serial.print(encoder1Pos);
//Serial.println("-Left");
/*if( encoder1Pos==-2000){
encoder1Pos = 255;
}*/
encoder1Pos-=1;
if(encoder1Pos<0){
encoder1Pos=0;
}
}
else if(
lastDirectionEncoders==ON_ON || directionEncoders==OFF_OFF
){
else if(lastDirectionEncoders==ON_ON || directionEncoders==OFF_OFF){
headDirection =1;
//Serial.print(headDirection);
//Serial.println("-Right");
/*if( encoder1Pos==-2000){
encoder1Pos = 0;
}*/
encoder1Pos+=1;
if(encoder1Pos>255){
encoder1Pos = 255;
Expand All @@ -197,17 +138,8 @@ class encoders{
// encoder position had changed
if(encoder1Pos!=lastencoder1Pos){
stitch = (encoder1Pos)-28;
/*if( encoder1Pos !=0 ){
stitch = (encoder1Pos)-28;
}
else{
stitch = -28;
}*/
}
}



};
#endif

Expand Down
23 changes: 6 additions & 17 deletions arduino_code/openKnitting_handMadepcb_v0_1/endLines.h
Expand Up @@ -3,20 +3,16 @@

#include "arduino.h"
#include "sound_alerts.h"
#include "defined_knitic.h"

class endLines{
private:
soundAlerts* mySoundAlerts;
// analog arduino pin
int endLineLeftAPin;
int endLineRightAPin;
encoders* myEncoders;
int filterValueLeftMin;
int filterValueRightMin;
int filterValueLeftMax;
int filterValueRightMax;
int maxLeft;
int maxRight;

public:
int valueEndLineLeft;
Expand All @@ -28,26 +24,19 @@ class endLines{
}

void setup(){
maxLeft = 0;
maxRight= 0;
endLineLeftAPin = 1;
endLineRightAPin = 0;
filterValueLeftMin = FILTER_VALUE_LEFT_MIN;
filterValueRightMin = FILTER_VALUE_RIGHT_MIN;
filterValueLeftMax = FILTER_VALUE_LEFT_MAX;
filterValueRightMax = FILTER_VALUE_RIGHT_MAX;
pinMode(endLineLeftAPin,INPUT);
pinMode(endLineRightAPin,INPUT);
}

void setPosition(encoders* _myEncoders, soundAlerts* _mySoundAlerts){
void setPosition(encoders* _myEncoders){
myEncoders = _myEncoders;
mySoundAlerts = _mySoundAlerts;
}

void loop(){
// Left end of line - looking change phase
if( myEncoders->headDirection==-1){
valueEndLineLeft = analogRead(endLineLeftAPin);
if( valueEndLineLeft <filterValueLeftMin || analogRead(endLineLeftAPin) >filterValueLeftMax){
if( valueEndLineLeft <FILTER_VALUE_LEFT_MIN || analogRead(endLineLeftAPin) >FILTER_VALUE_LEFT_MAX){
if(myEncoders->_8segmentEncoder){
phase = 1;
}
Expand All @@ -59,7 +48,7 @@ class endLines{
// Right end of line - looking change phase
if( myEncoders->headDirection==1){
valueEndLineRight = analogRead(endLineRightAPin);
if( valueEndLineRight <filterValueRightMin || analogRead(endLineRightAPin) >filterValueRightMax){
if( valueEndLineRight <FILTER_VALUE_RIGHT_MIN || analogRead(endLineRightAPin) >FILTER_VALUE_RIGHT_MAX){
if(myEncoders->_8segmentEncoder){
phase = 0;
}
Expand Down

0 comments on commit 27c6ea6

Please sign in to comment.