วันพฤหัสบดีที่ 28 พฤษภาคม พ.ศ. 2558

วันที่ 9 ขอการฝึกงานที่ FIBO

1.ตอนเช้าได้ทำด้ทสเต็ปมอเตอร์ครับโดยการเขียนโปรแกรมโดนการเขียนให้สเต็ปมอเตอร์หมุนได้ 1 ลอบ ดดนการคำนวนจากสเป็คมอเตอร์ที่ให้มา จะเป็น 1.8 ถ้าอยากให้หมุน 1 รอบ จะไ้เป็น 360 องศาจะได้สูตร โดนนำ 1.8 ไปหาร 360 จะได้ 200 จะเป็น 1 รอบพอดีครับจะได้โปรแกรมประมาณนี้ครับ

#define EN 8
#define X_DIR 5
#define X_STP 2
void step (boolean dir, byte dirPin, byte stepperPin, int steps) 
    digitalWrite (dirPin, dir); 
    delay (50); 
    for (int i = 0; i <steps; i++)
   { 
   digitalWrite (stepperPin, HIGH); 
   delayMicroseconds (800); 
   digitalWrite (stepperPin, LOW); 
   delayMicroseconds (800); 
   } 
void setup () 
{
   pinMode (X_DIR, OUTPUT); 
   pinMode (X_STP, OUTPUT); 
   pinMode (EN, OUTPUT); 
   digitalWrite (EN, LOW); 
void loop ()
   step (false, X_DIR, X_STP, 200);  
   delay (1000); 
}

 2.ทำโปรแกรมรับค่าจากเอ็นโค้ดเดอร์โดยโจทย์ที่ได้คือถ้าหมุนตามนาฬิกาจะนับรอบเป็นบวก แต่ถ้าหมุนทวนเข็มนาฬิกาจะให้ค่าติดลบครับจากการเขียนโปรแกรมยังไม่เส็ดครับเลยได้โปรแกรมประมาณนี้ครับ
int A = 2;
int B = 3;
int rotate = 0;
void setup() 
{
  pinMode(B,INPUT_PULLUP);
  attachInterrupt(0, Interrupts, LOW);
  Serial.begin(9600); 
}

void loop() 
{
  Serial.println(rotate);
  delay(200);
}
void Interrupts()
{     
  if (digitalRead(B)==HIGH)
  {
  rotate++;
  }
  else 
  {
  rotate--; 
  }  
}

 

วันพุธที่ 27 พฤษภาคม พ.ศ. 2558

วันที่ 8 ของการฝึกงานที่ FIBO

1.ตอนเช้าผมเขียนโปรแกรมคอนโทรลสเต็ปมอเตอร์แต่ความสามารถผมยังไม่ถึงเลยจำเป็นต้องหยุดไวก่อนครับแต่ความพยายามให้มากกว่านี้ครับผมคึกษาที่
     http://www.arduinothai.com/product/271/cnc-shield-v3
     http://blog.protoneer.co.nz/arduino-cnc-shield-v3-00-assembly-guide/
2.ตอนบ่ายอาจารย์ให้ทำคำสั่ง arduino รับค่าจาก VR แล้วให้แสดงที่ 7-segment ในหัวข้องที่ว่า VR อ่านค่าได้ที่ 0-1023 แต่อาจารย์ให้แสดงผมที่ 7-segment เป็น 0-99 แล้วให้ทำ ผมจึงได้แนวคิดที่ว่าต้องทำให้มันยาบขึ้นโดยค่า VR ที่ได้มา เป็นค่า 0-1023 มี 1024 จำนวนทำยังไงถึงจะไปแสดงเป็น 0-99 โดยมี 100 จำนวน ผมจึงแบ่ง 1024 เป็น 100 ส่วน จะได้ ค่าแสดงผลที่ 7-segment มีค่าเป็น 1 โดยค่า VR จะอยู่ที่ 10.33 แล้วอาจารยืให้อธิบายให้อาจารย์เข้าใจทำเอาผมนั่งทบทวนอยู่นายเลยครับโดย
หน้าตาของโปรแกรมจะประมาณนี้ครับ
int poten = A3; //analog pin 0 int A = 6; int B = 7; int C = 8; int D = 9; int E = 10; int F = 11; int G = 12; //pin6 to pin12 is A-G int CO1 = 5; int CO2 = 4; int CO3 = A2; //pin4 5 และ A2 คือให้ตัวแปล CO1-CO3 const int segs[7] = { A, B, C, D, E, F, G }; const byte numbers[10] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101,0b1111101, 0b0000111, 0b1111111, 0b1101111 }; int digit1 = 0; int digit2 = 0; int digit3 = 0; void setup() { Serial.begin(9600); //อ่านค่า LDR pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(CO1, OUTPUT); pinMode(CO2, OUTPUT); pinMode(CO3, OUTPUT); //สั่ง A-G และ CO1-CO3 เป็น OUTPUT } void loop() { int VR = analogRead(poten); //อ่านค่า LDR แล้วไปเก็บในLDRReading VR=VR/113.66; //ให้ VRหาร10.33เพื่อให้ค่ามันอยู่ที่99เพื่อจะนำไปแสดงผล lightDigit3(numbers[digit3]); //เรียกใช้ฟังก์ชัน lightDigit3 ที่อยู่ด้านล่าง delay(5); lightDigit2(numbers[digit2]); //เรียกใช้ฟังก์ชัน lightDigit2 ที่อยู่ด้านล่าง delay(5); lightDigit1(numbers[digit1]); //เรียกใช้ฟังก์ชัน lightDigit1 ที่อยู่ด้านล่าง delay(5); digit3 = VR%10; //เอาค่าเศษที่ได้มาแสดง เช่น 1หาร10 =0.1 เอา1มาแสดง digit2 = (VR%100)/10; digit1 = (VR%1000)/100; //ได้ค่าVRนำมาคำนวนเพื่อแสดงออก segment แต่ละตัว } void lightDigit1(byte number) { //แสดง segment ตัวที่3 digitalWrite(CO1, HIGH); digitalWrite(CO2, HIGH); digitalWrite(CO3,LOW); Segments(number); } void lightDigit2(byte number) { //แสดง segment ตัวที่2 digitalWrite(CO1, HIGH); digitalWrite(CO2, LOW); digitalWrite(CO3, HIGH); Segments(number); } void lightDigit3(byte number) { //แสดง segment ตัวที่1 digitalWrite(CO1, LOW); digitalWrite(CO2, HIGH); digitalWrite(CO3,HIGH); Segments(number); } void Segments(byte number) { for (int i = 0; i < 7; i++) { int bit = bitRead(number, i); digitalWrite(segs[i], bit); } }
3.อาจารย์ได้พาพี่ไนท์ไปเทียบราค่าสินค่าผมจึงได้ตามไปด้วนครับซึ่งอาจารย์ได้พาเที้ยวชมสินค่ามากมายเลยครับอาจารย์ใจดีมากเลยครับพาเที้ยวแถมยังเลี้ยงข้าวอีกด้วยครับมีขนมครกอีกด้วยครับ
ผมได้รู้ว่าสิ่งของยิ่งขยันเดินยิ่งราคาถูกครับ

วันอังคารที่ 26 พฤษภาคม พ.ศ. 2558

วันที่ 7 ของการฝึกงานจร้า

1.อาจารย์ที่มหาวิทยาลัยราชกัชอุดรมานิเทศที่ FIBO ครับคือผมดีใจมากครับที่อาจารย์มาเยี่ยมหลังจากที่อาจารย์มาถึง อาจารย์ สยามได้ทำการต้อนรับอาจารย์ที่มาเป็นอย่างดีครับ
 - อาจารย์สยามได้แนะนำ FIBO ให้อาจารย์ที่มานิเทศฟันว่าที่ FIBO มีอะไรบ้าง
 - ผมได้อธิบายว่าผมมาที่ FIBO ผมทำอะไรบ้างในแต่ละวันครับ



2.ตอนบ่ายมาพี่ปูได้ให้ของเล่นมาครับคือสเต็ปมอเตอร์แล้ว Ardorno uno มาผมจึงต้องมาศึกษาดาต้าชีท ของเจ้าสเต็ปมอเตอร์ ว่าต้องคอนโทรลยังไงสิ่งนี้คือเป็นสิ่งที่ผมชอบอยู่แล้วครับผมอยากทำมานานแล้วครับว่าแล้วก้ไปศึกษาก่อนนะครับผมหวังว่าผมจะต้องทำได้ในวันนี้หรือพรุ่งนี้ครับ



วันจันทร์ที่ 25 พฤษภาคม พ.ศ. 2558

วันที่ 6 ของการฝึกงานที่ FIBO

1.วันี้ผมทำโปรแกรมอดูโนทังวันเลยครับพี่ไนท์ให้งานมาคือมีโจทย์ว่ากดสวิทช์ S1 ให้ไปแสดงผลที่ 7-segment จะให้นับขึ้นที่ละ 1 กดสวิทช์ S2 จะนับขึ้นที่ละ 10 กดสวิทช์ S3 จะนับขึ้นที่ละ 100 กดสวิทช์ S4 เคลียร์หน้าจอให้กับมาเป็น 000 เหมือนเดิมผมใช้เวลาทำอยู่สองวันครับแต่พี่ไนท์สอนดีมากครับคือพี่แกจะให้รองทำก่อนแล้วทำไม่ได้จะสอนที่หลังครับซึงหน้าตาของผลลับจะเป็นแบบนี้ครับ




                                      หน้าตาของผมลัพธ์ครับ                                      







หน้าตาของโปรแกรมครับผม




const byte SEVEN_SEG[7] = {6, 7, 8, 9, 10, 11, 12};
const byte ZeroToNine[10][7] = 
 {1,1,1,1,1,1,0},
 {0,1,1,0,0,0,0},
 {1,1,0,1,1,0,1},
 {1,1,1,1,0,0,1},
 {0,1,1,0,0,1,1},
 {1,0,1,1,0,1,1},
 {1,0,1,1,1,1,1},
 {1,1,1,0,0,0,0},
 {1,1,1,1,1,1,1},
 {1,1,1,1,0,1,1}};;
  int counter = 0;
  
    int p = 0;
    int q = 0;
    int r = 0;
  void setup() 
   {
     pinMode(A2,OUTPUT);
     pinMode(4,OUTPUT);
     pinMode(5,OUTPUT);
     for (int i = 0; i < 11; i++) 
   {
     pinMode(SEVEN_SEG[i], OUTPUT);
     digitalWrite(SEVEN_SEG[i], HIGH );
   }
     
     pinMode(2,INPUT_PULLUP);
     pinMode(3,INPUT_PULLUP);
     pinMode(14,INPUT_PULLUP);
      pinMode(15,INPUT_PULLUP);
    } 
  void loop()
  {
     if (digitalRead(14) == LOW) 
  {
    counter++;
    r =  counter % 10;    
    q = (counter % 100)/10;
    p = (counter % 1000)/100;
    delay(5);
    while (digitalRead(14) == LOW);
  }
   
   if (digitalRead(3) == LOW) 
  {
//    counter=counter+10;
    counter+=10;
    r =  counter % 10;
    q = (counter % 100)/10;
    p = (counter % 1000)/100;
    delay(5);
    while (digitalRead(3) == LOW);
  }
   if (digitalRead(2) == LOW) 
  {
//    counter=counter+10;
    counter+=100;
    r =  counter % 10;
    q = (counter % 100)/10;
    p = (counter % 1000)/100;
    delay(5);
    while (digitalRead(2) == LOW);
  }
   if (digitalRead(15) == LOW) 
  {
    counter=0;
    r = 0;   
    q = 0;
    p = 0;
    delay(5);
    while (digitalRead(15) == LOW);
  }
   
        Bass1(p);
        delay(6);    
        Bass2(q);
        delay(6);   
        Bass3(r);  
        delay(6); 
  }  
   
 void Bass1(int x)
  {           
    int i = 0;
  for (int k = 0; k < 7; k++) 
     {
       digitalWrite(A2,LOW);
       digitalWrite(4,HIGH);
       digitalWrite(5,HIGH);
       digitalWrite(SEVEN_SEG[k], ZeroToNine[i+x][k] );
     }
  }
     void Bass2(int y)
  {           
    int i = 0;
  for (int k = 0; k < 7; k++) 
     {
       digitalWrite(A2,HIGH);
       digitalWrite(4,LOW);
       digitalWrite(5,HIGH);
       digitalWrite(SEVEN_SEG[k], ZeroToNine[i+y][k] );
     }
  }
   void Bass3(int z)
  {           
    int i = 0;
  for (int k = 0; k < 7; k++) 
     {
       digitalWrite(A2,HIGH);
       digitalWrite(4,HIGH);
       digitalWrite(5,LOW);
       digitalWrite(SEVEN_SEG[k], ZeroToNine[i+z][k] );
     }
     
  }

วันศุกร์ที่ 22 พฤษภาคม พ.ศ. 2558

วันที่ 5 ของการฝึกงานที่ FIBO

1.ไปถึงห้องเจอโจทย์ที่พี่ให้ไว้ให้

ซึงผมก็ทำตังแต่ 9.00น - 12.00น เลยครับก็ได้ศึกษาก่อนคือผมเข้าไปหาข้อมูลใน www.google.com จึงได้เขียนโปรแกรมเป็นแบบนี้เลยครับ              int S1 = 2;                                                                int S2 = 3;
int S3 = 14;
int S4 = 15;
 int VR = A3;
int VR2= 0;
void setup(){
pinMode(S1,INPUT);
pinMode(S2,INPUT);
pinMode(S3,INPUT);
pinMode(S4,INPUT);
for (int i=6; i <= 13; i++){
pinMode(i,OUTPUT);
}
for (int j=13; j >= 6; j--){
pinMode(j,OUTPUT);
}
}
void loop(){
if(digitalRead(S1)==HIGH){
for(int i=6; i <= 13; i++){
digitalWrite(i,HIGH);
delay(500);
digitalWrite(i,LOW);
delay(500);
}
}
if(digitalRead(S2)==HIGH){
for(int j=13; j >= 6; j--){
digitalWrite(j,HIGH);
delay(500);
digitalWrite(j,LOW);
delay(500);
}
}
if(digitalRead(S3)==HIGH){
for(int i=6; i <= 13; i++){
digitalWrite(i,HIGH);
delay(700);
digitalWrite(i,LOW);
delay(700);
}
for(int j=13; j >= 6; j--){
digitalWrite(j,HIGH);
delay(700);
digitalWrite(j,LOW);
delay(700);
}
}
if(digitalRead(S4)==HIGH){
for(int i=6; i <= 13; i++){
digitalWrite(i,HIGH);
delay(200);
digitalWrite(i,LOW);
delay(200);
}
for(int j=13; j >= 6; j--){
digitalWrite(j,HIGH);
delay(200);
digitalWrite(j,LOW);
delay(200);
}
}
if(digitalRead(VR)==HIGH){
for(int i=6; i <= 13; i++){
digitalWrite(i,HIGH);
delay(VR);
digitalWrite(i,LOW);
delay(VR);
}
for(int j=13; j >= 6; j--){
digitalWrite(j,HIGH);
delay(VR);
digitalWrite(j,LOW);
delay(VR);
}
}
                                                                         }
จะได้ไฟวิ่งตามรูปนี้เลยครับ

2.ตอนบ่ายพี่ไนท์ให้ทำวงจรกด สวิทช์ S1 แล้ว 7-segment ติดเป็นเลข 1 กดครั่งที่ 2 เป็นเลข กดสวิทช์ S2 นับขึ้นครั่งละ 10 จึงได้ทำจะได้โปรแกรมประมาณนี้ครับ
const byte SEVEN_SEG[7] = {6, 7, 8, 9, 10, 11, 12}; const byte ZeroToNine[10][8] = { {1,1,1,1,1,1,0}, {0,1,1,0,0,0,0}, {1,1,0,1,1,0,1}, {1,1,1,1,0,0,1}, {0,1,1,0,0,1,1}, {1,0,1,1,0,1,1}, {1,0,1,1,1,1,1}, {1,1,1,0,0,0,0}, {1,1,1,1,1,1,1}, {1,1,1,1,0,1,1}}; ; void setup() { pinMode(A2,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); for (int i = 0; i < 7; i++) { pinMode(SEVEN_SEG[i], OUTPUT); digitalWrite(SEVEN_SEG[i], HIGH ); } digitalWrite(A2,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); } void loop() { int i = 0; for (int k = 0; k< 7; k++) { digitalWrite(A2,LOW); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(SEVEN_SEG[k], ZeroToNine[i][k] ); } delay(6); for (int k = 0; k< 7; k++) { digitalWrite(A2,HIGH); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(SEVEN_SEG[k], ZeroToNine[i+1][k] ); } delay(6); for (int k = 0; k< 7; k++) { digitalWrite(A2,HIGH); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(SEVEN_SEG[k], ZeroToNine[i+2][k] ); } delay(6); }

แต่ปัญหาคือผมยังทำ INPUT รับค่าจากสวิทช์ไม่ได้ซึงผมต้องกลับมาอ่านหนังสือใหม่ครับ
ซึงปัญหาไม่ได้เกิดจากสิ่งได๋ซึ่งมันเกิดจากตัวผมเองที่ความรู้ยังไม่มีพอที่จะทำได้ ผมต้องขยันเป็น 2 หรือ 3 เท่าครับ

วันพฤหัสบดีที่ 21 พฤษภาคม พ.ศ. 2558

ฝึกงานวันที่ 4 ครับผม

1.ตอนเช้าเวลา 9.30น ดูน้องปีหนึงแข่งขันหุ่นยนต์อัตโนมัติซ฿งน้องเก่งมากครับ
2.ได้ศึกษามอเตอร์ทางเว็บไซต์ผมอยากรู้ว่าจะคอนโทรลมอเตอร์ต้องมีอะไรบ้างต้องทำอย่างไรถึงจะคอนโทรลมอเตอร์ตามใจได้แบบง่ายๆๆ แต่อ่านดูแล้วมันไม่ง่ายเลยครับศึกษาจาก
3.อ่านวิธีคอนโทรลด้วย อดูโน่
4.พี่ไนท์ให้ทำวงจร รีเลย์ผมได้ออกแบบแล้วลงแผ่นปริ้นซึงทำตังแต่บ่ายโมงจนถึงเลิกงานเลยครับซึงผมก็ใช้ความสามารถที่เรียนอิเล็กทรอนิกส์มาทำสุดฝีมือเลยครับซึงพี่ไนท์ก็เป็นคนที่ให้คำแนะนำเปนอย่างดีเลยครับส่วนผลงานดูได้ตามรูปภาพเลยครับ





วันพุธที่ 20 พฤษภาคม พ.ศ. 2558

วันที่ 3 ของการฝึกงาน

1.ผมได้ทำความรู้จักกับ ปากกา 3d printing ว่ามันทำงานยังไงได้ทำรูป สี่เหลี่ยม ซึงผมก็เคยดูแต่ในยูทูปไม่เคยรองเล่นดูแต่พอเล่นแล้วรู้สึกชอมมากครับหลังจากนั้นก็ได้ศึกษาว่าวงจรกาทำงานมันเป็นอย่างไร





2.ตอนบ่ายพี่ได้ให้งานมาออกแบบซึ่งเป็นวงจรตัดไฟที่จ่ายให้กับมอเตอร์โดยใช้ delay ในการตัดไฟ
  แล้วพี่พาไปซือของที่ บ้านหม้อ ซึ่งได้เลือกของมาทำหลายย่างเลยครับได้ดูวัสดุที่จะนำมาทำวงจรด้วย
ซึ่งผมก็ข้อนข้างตื่นเต้นมากที่เรียนอิเล็กทรอนิกส์แล้วมาเจออุปกรณ์อิเล็กทรอนิกส์มากขนาดนี้
ซึ่งเป็นการดีที่จะไปเลือกซือมาทำของเล่นหรือชิ้นงานครับ



วันอังคารที่ 19 พฤษภาคม พ.ศ. 2558

วันที่ 2 ของการฝึกงานที่ FIBO

1.ได้ศึกษาโปรแกรม อดูโน่

  - ทำวงจรไฟไฟกระพริบ
  - เขียนโปรแกรมไฟกระพริบอย่างง่าย
2.ได้ดูโปรเจค
 

วันจันทร์ที่ 18 พฤษภาคม พ.ศ. 2558

มาฝึกงาทที่ FIBO วันแรก

1.ทำความรู้จักกับอาจารย์กับพี่ๆพี่ FIBO
  -อาจารย์ให้ประกอบหุ่นยนต์ 2 ตัว
2.อาจารย์ให้นิยามคำว่า FIBO
  -เป็นสถาบันที่เทียบเท่าคณะ
  -เป็นสถาบันที่ให้ปริญญาเฉพาะทางได้
  -เป็นศูนย์วิจับ ROBOTY
3.แนะนำตัวกับอาจารย์
  -บอกในสิ่งที่ตัวเองเรียนมา
  -บอกในสิ่งที่ตังเองอยากที่จะรู้
  -บอกข้อด้อยและข้อเด้นของตัวเอง
4.อาจารย์จะเน้นในระเบียบวินัย
  -เรื่องการตรงต่อเวลา
  -ระเบียบในการแต่งกาย
  -ถ้ามีวินัยสิ่งที่ตามมาคือความก้าวหน้าของสังคม
5.อาจารย์ให้เลือกกลุ่งที่จะเรียนรู้กับรุ่นพี่
6.เข้าฟังพี่พรีเซ้น 3D printer
7.พี่สอนทำ Blogger การใช้งาน
8.พีให้งานมาอ่านเรื่อง ARDUINO

วันแรกของการฝึกงานที่ fibo

วันแรกมีความประทับใจมากที่ได้มาที่ FIBO