แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - admin

หน้า: [1] 2 3 ... 41
1
เปลี่ยน VS Code ให้เป็นสุดยอดเครื่องมือเขียน Arduino พร้อมจำลองวงจรด้วย PlatformIO และ Wokwi

สำหรับนักพัฒนาสาย Embedded หรือผู้ที่เริ่มต้นเขียนโปรแกรม Arduino คงคุ้นเคยกับ Arduino IDE กันเป็นอย่างดี แม้ว่าในเวอร์ชันใหม่ๆ จะมีการพัฒนาขึ้นมาก แต่สำหรับงานโปรเจกต์ที่มีความซับซ้อน มีไฟล์โค้ดจำนวนมาก หรือต้องการระบบ Auto-complete (พิมพ์โค้ดอัจฉริยะ) ที่รวดเร็ว การเปลี่ยนมาใช้ Visual Studio Code (VS Code) ร่วมกับ PlatformIO ถือเป็นจุดเปลี่ยนที่ช่วยให้ชีวิตการเขียนโค้ดง่ายขึ้นแบบก้าวกระโดด

ยิ่งไปกว่านั้น วันนี้เราจะเพิ่มความสะดวกขึ้นไปอีกขั้นด้วย Wokwi ตัวจำลองการทำงาน (Simulator) ยอดนิยมที่จะช่วยให้เราทดสอบโค้ด Arduino ได้ทันทีบน VS Code โดยไม่ต้องต่อบอร์ดจริงหรือต่อสายไฟให้ยุ่งยาก!

ในบล็อกนี้เราจะพาไปดูขั้นตอนการติดตั้งและใช้งานแบบทีละสเต็ป (Step-by-Step) ตั้งแต่ศูนย์จนพร้อมใช้งานกันครับ
ขั้นตอนที่ 1: ติดตั้งโปรแกรม Visual Studio Code
1. พิมพ์คำค้นหาด้วยคำว่า vscode ด้วยกูเกิล แล้วคลิก Download


2. คลิกเลือกไฟล์ติดตั้งให้ตรงกับระบบปฏิบัติการในคอมพิวเตอรืที่ใช้งาน (ตัวอย่างใช้กับ windows)


3. คลิกขวาที่ไฟล์ที่ดาวน์โหลดสำเร็จ เลือก Run as administrator


4. คลิกเลือก I accept...


5. คลิกเลือกรายการติดตั้งที่ต้องการ (ในที่นี้เลือกทุกรายการ)


6. เมื่อติดตั้งเสร็จสิ้นคลิกที่ปุ่ม Finish


ขั้นตอนที่ 2: ติดตั้ง Extension "PlatformIO IDE"
7. คลิกไอคอนดังรูปเพื่อติดตั้งตัวเสริม


8. ตัวแรกติดตั้ง PlatformIO พิมพ์ช่องค้นหาด้วยคำว่า platform เลือกดังรูปแล้วคลิกติดตั้ง


9. คลิกที่ปุ่มดังรูป



ขั้นตอนที่ 3: ติดตั้ง Wokwi Simulator บน VS Code
10. ติดตั้งตัวเสริมตัวที่สอง ค้นหาด้วยคำว่า wokwi  เลือกดังรูปแล้วคลิกติดตั้ง


11.  คลิกที่ปุ่มดังรูป


12. สร้างโฟลเดอร์ใหม่เพื่อไว้สำหรับเก็บไฟล์งานในไดร์ฟอื่นที่ไม่ใช่ไดร์ฟ C (ในที่นี้ตั้งชื่อโฟลเดอร์ว่า PlatformIO)


13. คลิกที่ไอคอนรูปหัวมด (PlatformIO) คลิกที่ Open แล้วสร้างไฟล์งานใหม่โดยคลิกที่ New Project


14. ตั้งชื่อไฟล์, เลือกบอร์ดที่จะใช้งาน, เลือกโฟลเดอร์ที่จะเก็บไฟล์ (เลือกโฟลเดอร์ที่ได้เตรียมไว้จากข้างต้น)


15. รอ...


16. รอ..


17. รอ..


18. รอ..


19. คลิกตามรูป


20. เมื่อเสร็จจะแสดงข้อมูลในไฟล์ ini ดังรูป


21. คลิกที่หัวมด คลิก Device เพื่อดูพอร์ตอนุกรมที่คอมพิวเตอร์กำลังเชื่อมต่อ


22. เมื่อมีการเสียบบอร์ดมาภายหลัง ให้คลิกรูปบ้าน (Home) ก่อน 1 ครั้งแล้วกลับมาคลิกที่ไอคอน Device จะเห็นว่ามีพอร์ตอนุกรมเพิ่มขึ้นมา (จำพอร์ตที่จะใช้เชื่อมต่อไว้)


23. คลิกที่ไฟล์ platformio.ini เพื่อเพิ่มรายการที่จะใช้ดังรูป (จากขั้นตอน 22 พบว่าพอร์ตที่ใช้เชื่อมต่อกับบอร์คือ COM5 ดังนั้นเวลากำหนดในไฟล์ ini จึงใช้ COM5)
โค๊ด: [Select]
upload_port=COM5
upload_speed=115200
monitor_speed=9600


หมายเหตุ
-หากไม่ใส่ค่าดังกล่าวตัวโปรแกรมจะดำเนินการอัตโนมัติ อาจจะทำให้สามารถอัพโหลดได้เช่นกัน



24. ไอคอนบนจะปรากฏตัวเลขขึ้นบนไอคอน เป็นการแจ้งให้รู้ว่ามีไฟล์งานที่ยังไม่บันทึกจำนวนกี่ไฟล์


25. ทำการบันทึก


26. เขียนโค้ดโปรแกรมในไฟล์ main.cpp (จะต้องมี#include <Arduino.h> เมื่อใช้ VS-Code กับ PlatformIO)
โค๊ด: [Select]
#define LED 13
#include <Arduino.h>
void setup() {
  pinMode(LED,OUTPUT);
}
void loop() {
  digitalWrite(LED,HIGH);
  delay(1000);
  digitalWrite(LED,LOW);
  delay(1000);
}


27. เมื่อต้องการคอมไพล์ (แปลงภาษาซีเป็นภาษาเครื่อง) ให้คลิกเครื่องหมายถูกด้านล่าง หากโค้ดที่เขียนขึ้นถูกไวยกรณ์จะมีคำว่า [SUCCESS]


28. เมื่อต้องการอัพโหลดโค้ดลงบอร์ดคลิกที่หัวลูกศรด้านล่าง หากอัพโหลดผ่านจะแสดงผลดังรูป


จำลองการทำงานด้วย wokwi ในโปรแกรม VSCode+PlatformIO
29. สร้างไฟล์ใหม่โดยคลิกขวาบริเวณว่าง เลือกคลิกที่ New File...


30. ตั้งชื่อไฟล์ว่า "diagram.json" ตั้งชื่อเสร็จแล้วคลิกที่ไฟล์จะได้ดังรูป (อย่าเพิ่งคลิกที่ Get your License Key)


31. เปิดโปรแกรมบราวน์เซอร์เปิดเว็บ www.wokwi.com ทำการ sign in


32. sign in ด้วย gmail (เปิดหน้าเว็บค้างไว้)


33. กลับมาที่โปรแกรม VSCode ทำการคลิกที่  Get your License Key


34. คลิกที่ Open


35. กลับไปที่เว็บบราวน์เซอร์จะปรากฏดังรูป ให้คลิกที่ GET YOUR LICENSE


36. หน้าต่างจะปรากฏ key


37. กลับไปที่โปรแกรม VSCode คลิกที่ Open


38. คลิกที่ไฟล์ diagram.json จะยังคงขึ้นมุมขวาบนดังรูป ให้ทำการปิดโปรแกรมแล้วเปิดใหม่


39. เมื่อเปิดโปรแกรมขึ้นมาใหม่แล้วคลิกที่ไฟล์ diagram.json มุมบนจะแสดงชื่อผู้ที่ใช้งานเว็บ wokwi


40. กลับไปที่เว็บ wokwi ดำเนินการดังนี้
   - วาดวงจรเพื่อใช้ทดลองตามต้องการ
   - คลิกที่ไฟล์ diagram.json
   - คลิกในบริเวณโค้ด json แล้วเลือกทั้งหมด (Ctrl+A)
   - คลิกขวาบริเวณที่เลือกแล้วคัดลอก


41. กลับมาที่โปรแกรม VSCode คลิกขวาที่ไฟล์ diagram.json แล้วคลิกตรงคำว่า Open With...


42. คลิกเลือกตรงคำว่า Text Editor


43. คลิกที่บริเวณพื้นที่ว่างแล้ววาง (Ctrl+V)


44. บันทึกไฟล์งาน


45. คลิกที่ไฟล์ diagram.json ตัววงจรจะปรากฏขึ้น


46. ไปที่บราวน์เซอร์เปิดเว็บ https://docs.wokwi.com/vscode/project-config คัดลอกโค้ด


47. กลับมาที่โปรแกรม VSCode สร้างไฟล์ใหม่


48. ตั้งชื่อว่า wokwi.toml แล้ววางโค้ดที่คัดลอกมา


49. คลิกที่ไฟล์ main.cpp ดำเนินการคอมไพล์


50. คลิกที่ไฟล์ wokwi.toml หาที่อยู่ของไฟล์ภาษาเครื่องจากหน้าต่างผลการคอมไพล์


51. คัดลอกมาวางแทนค่าเดิม


52. บันทึกไฟล์งาน


53. คลิกที่ไฟล์ diagram.json คลิกที่ปุ่มเริ่มการจำลอง


54. ผลการจำลอง

2
วงจรการเชื่อมต่อโมดูลต่าง ๆ










3
สายสัญญาณที่เชื่อมต่อไว้แล้ว
วงจรแสดงผล LCD i2c





ตัวอย่างโค้ด
โค๊ด: [Select]
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);  /* 0x27 for PCF8574 and 0x3F for PCF8574A*/
void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.setCursor(2,0);
  lcd.print("Hello, world!");
  lcd.setCursor(4,1);
  lcd.print("LCD i2c Lab");
}
void loop()
{
}



4
สายสัญญาณที่เชื่อมต่อไว้แล้ว
วงจรแสดงผล OLED





ตัวอย่างโค้ด
โค๊ด: [Select]
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET    -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C //Address OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int x;
void setup() {
  Serial.begin(9600);
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
}
void loop(){
  display.clearDisplay();
  display.setTextColor(WHITE,BLACK);   //Text is white ,background is black
  display.setCursor(0, 0);
  display.setTextSize(2);
  display.println("OLED ");
  display.setTextSize(1);   
  display.println("Arduino Laboratory");
  display.setTextColor(BLACK,WHITE); // 'inverted' text
  display.print("www.praphas.com");
  display.setTextColor(WHITE,BLACK); // 'inverted' text again
  display.setCursor(60,0);
  display.setTextSize(2); 
  display.println(x,DEC);
  display.display(); //
  x++;
  delay(250);
}



5
สายสัญญาณที่เชื่อมต่อไว้แล้ว
วงจรแสดงผล 7 Segment ชิพ HT16K33(i2c)






ตัวอย่างโค้ด
โค๊ด: [Select]
/* pin connection
  + -> 3.3-5V
  - -> GND
  D -> SDA (A4)
  C -> SCL (A5)
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"
Adafruit_7segment display = Adafruit_7segment();
void setup() {
  display.begin(0x70);
  display.clear();
}
void loop() {
  byte x, y, d;
  bool blinkColon = false;
  display.println("Abcd");
  display.writeDisplay();
  delay(5000);
  for (int i = 0; i < 99; i++) {
    display.println(i);
    display.writeDisplay();
    delay(50);
  }
  for (float f = 0; f < 5; f += 0.01) {
    display.println(f);
    display.writeDisplay();
    delay(50);
  }
  for (float f = 10; f < 50; f += 0.1) {
    x = int(f) / 10;
    y = int(f) % 10;
    d = int(f * 10) % 10;
    display.println("   C");
    display.writeDigitNum(0, x, false);
    display.writeDigitNum(1, y, true);
    display.writeDigitNum(3, d, false);
    display.writeDisplay();
    delay(50);
  }
  for (int i = 0; i < 10; i++) {
    display.println(1234);
    blinkColon = !blinkColon;
    display.drawColon(blinkColon);
    display.writeDisplay();   
    delay(1000);
  }
}


6
สายสัญญาณที่เชื่อมต่อไว้แล้ว
วงจรคีย์แพด






ตัวอย่างโค้ด
โค๊ด: [Select]
#include <Keypad.h>
#define LED 5
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {6,7,8,9}; // Pins connected to R1, R2, R3, R4
byte colPins[COLS] = {10,11,12};      // Pins connected to C1, C2, C3
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
  Serial.begin(9600);
  pinMode(LED,OUTPUT);
}
void loop()
{
  char key = keypad.getKey();
  if (key)
  {
    Serial.println(key);
    digitalWrite(LED,HIGH);delay(200);
    digitalWrite(LED,LOW);
  }
}

7
สายสัญญาณที่เชื่อมต่อไว้แล้ว
วงจรแสดงผล LCD เชื่อมต่อแบบ 4 บิต





ตัวอย่างโค้ด
โค๊ด: [Select]
#include <LiquidCrystal.h>
/* The circuit:
 * LCD RS pin to digital pin 13
 * LCD E  pin to digital pin 12
 * LCD D4 pin to digital pin 4
 * LCD D5 pin to digital pin 5
 * LCD D6 pin to digital pin 6
 * LCD D7 pin to digital pin 7
 * LCD R/W pin to ground
*/
LiquidCrystal lcd(13,12,4,5,6,7);   // set up the LCD's connection pins
void setup()
{
  lcd.begin(16, 2);               // set LCD size
  lcd.print("hello, world!");
}
void loop() {}

8
สายสัญญาณที่เชื่อมต่อไว้แล้ว
วงจรแสดงผล 7 Segment ชิพ MAX7219





ตัวอย่างโค้ด
โค๊ด: [Select]
#include "LedControl.h"
LedControl lc=LedControl(11,13,10,1); // 11->DIN,13->CLK,10->CS,1->1devices
void setup()
{
  lc.shutdown(0, false);   // Enable display
  lc.setIntensity(0, 5);  // Set brightness level (0 is min, 15 is max)
  lc.clearDisplay(0);      // Clear display register
  Serial.begin(9600);
}
void loop()
{
  byte x, y, z;
  int i;
  for (i = 0; i < 1000; i++)
  {
    Serial.println("--" + String(i));
    x = i / 100;                    //hundred digits
    y = (i % 100) / 10;             //tens digit
    z = i % 10;                     //unit digit
    lc.setDigit(0, 3, x, false);
    lc.setDigit(0, 2, y, false);
    lc.setDigit(0, 1, z, false);
    delay(100);
  }
}

9
การเชื่อมต่อพอร์ตในภาคต่าง ๆ บนบอร์ดทดลอง
วงจรเชื่อมต่อในบอร์ดทดลอง เชื่อมต่อไว้แล้ว ผู้ใช้งานเชื่อมต่อเอง
วงจรเซนเซอร์อุณหภูมิ LM35 -
วงจรเซนเซอร์แสง LDR -
วงจรเซนเซอร์อุณหภูมิ NTC -
วงจรเซนเซอร์อุณหภูมิ DS18B20 -
วงจร 10 bit LED -
วงจร DC Motor -
วงจร Stepper Motor -
วงจร Servo Motor -
วงจรเซนเซอร์อุณหภูมิ DHT11 -
วงจรสวิตช์เอาต์พุตดิจิทัล -
วงจรสวิตช์เอาต์พุตแอนะล็อก -
วงจรแสดงผล 7 Segment 4 หลัก -
วงจรแสดงผล 7 Segment ชิพ TM1637 -
วงจรแสดงผล 7 Segment ชิพ 74HC595 -
วงจรกำเนิดค่าแรงดันแอนะล็อก (Potentiometer) -
วงจรอุณหภูมิระยะทาง Ultrasonic -
วงจรแสดงผล 7 Segment ชิพ MAX7219 -
วงจร LCD -
วงจร Keypad -
วงจรแสดงผล 7 Segment ชิพ HT16K33(i2c) -
วงจรแสดงผล OLED i2c -
วงจรแสดงผล LCD 16x2 i2c -
หมายเหตุ
   1. วงจรที่เชื่อมต่อไว้แล้วที่เป็นวงจรที่มีไฟเลี้ยง วงจรนั้น ๆ จะเชื่อมต่อไฟเลี้ยงและกราวด์ไว้ให้แล้ว
   2. วงจรที่ไม่ได้เชื่อมต่อไว้ให้ เนื่องจากให้ผู้ใช้งานสามารถเลือกใช้การเชื่อมต่อกับขาพอร์ตที่ต้องการได้

10
รายการอุปกรณ์
web www.es.co.th
ลำดับที่รายการ จำนวนตัว
10.1uF1
21N58171
3LED 3 mm1
47-Segment LTC-47271
5MINI-USB Connector1
6STEPPING-MOTOR-CON1
7Terminal Box2
8Switch Tact8
web www.allnewstep.com
ลำดับที่รายการ จำนวนตัว
1Breadbroad 170hole1
2DHT111
3Female Header 1x101
4Female Header 1x141
5Female Header 1x152
6Female Header 1x216
7Female Header 1x35
8Female Header 1x46
9Female Header 1x4-90degree2
10Female Header 1x5-90degree2
12Female Header 1x51
13Female Header 1x82
14IC: DS18B201
15IC: L293D1
16IC: ULN28031
17IC: LM351
18LDR1
19LED-BAR 10  digit1
20NTC Thermistor 10k1
21Pin Header Connector 1x40 Black1
22Pin Header Connector 1x40 Red1
23Pin Header Connector 1x40 90degree1
24POTRV09 10k1
25POT-LCD 10k1
26Resistor 10k2
27Resistor 1k5
28Resistor 22023
29Resistor 4k72
30Resistor 6801
31TR: BC5474
32น็อตสกรู M34
33เสาน็อตไนลอน4
34I.C. SOCKET DIP 16 PINS1
35I.C. SOCKET DIP 18 PINS1
โมดูลเพิ่มเติมตามใบงาน
1Arduino Nano1
27 segment 4 digit HT16K33(i2c) 1
37 segment 4 digit TM16371
47 segment 4 digit 74HC5951
57 segment 8 digit MAX72191
6LCD 16char 2 Line1
7LCD 16char 2 Line i2c1
8OLED i2c1
9DC motor1
10Stepper Motor 5V1
11Wire jumper แบบแยกเส้น1
12Wire jumper แบบแพ1
ตัวต้านทานที่ไม่สามารถสั่งผ่านเวปได้ (สามารถใช้ค่าใกล้เคียงได้)
1Resistor 820 1/4w1
2Resistor 2k7 1/4w1
รายการอุปกรณ์ร้าน allnewstep บางรายการมีจำนวนมากกว่า 1 ชิ้นต่อการซื้อ 1 ครั้งให้สังเกตุก่อนการกดซื้อ

11
ลายปริ้นวงจรบอร์ดทดลองไมโครคอนโทรลเลอร์เวอร์ชั่น 2025

ลายปริ้นที่ใช้ศึกษาในวิชาไมโครคอนโทรลเลอร์ (Arduino) เวอร์ชั่น 2025 นี้ได้ปรับปรุงจากเวอร์ชั่น 2022 โดยเพิ่มจุดเชื่อมต่อโมดูลภายนอกอีกหลายตัวเช่น
  1. โมดูลแสดงผล 7 Segment 4 Digit ที่ใช้ไอซี TM1637
  2. โมดูลแสดงผล 7 Segment 4 Digit แบบ i2c ที่ใช้ไอซี HT16K33 
  3. โมดูลแสดงผล 7 Segment 8 Digit ที่ใช้ไอซี 74HC595
  4. โมดูลแสดงผล 7 Segment 8 Digit ที่ใช้ไอซี MAX7219
  ภาคจ่ายไฟมีคอนเน็คเตอร์ USB สำหรับใช้แหล่งจ่ายไฟข้างนอกในกรณีที่โหลดใช้กระแสสูงเพื่อป้องกันไดโอดในบอร์ด Auduino เสียหาย (กรณีที่ไม่ได้ใช้กระแสสูงยังสามารถใช้ไฟที่ผ่านทางสาย USB ที่เสียบเข้าบอร์ด Arduino ได้เช่นกัน) แผ่นลายวงจรมีขนาดเท่าเดิมคือขนาด  6x4 นิ้ว รูปแบบของแผงวงจรเป็นดังรูป



ไฟล์ต้นแบบลายปริ้น (Gerber) สำหรับส่งโรงงานผลิต //ขนาดสั่งทำ 102mm x 153mm
https://drive.google.com/file/d/1eI5XAoDk2BTo-aIfM5rIS6ekw4n9UmUq

ไฟล์แบบตัดพลาสติกด้วยเลเซอร์สำหรับฐานรองกันชอร์ตพื้น (CorelDraw)
https://drive.google.com/file/d/1ZPX9yCYlgKB0mjpS4YQPlyRMbM_iK6V2

14
ออกแบบอุปกรณ์เพิ่มความชำนาญ
ออกแบบอุปกรณ์ที่เรียกกันว่า "ตาไก่" ไว้สำหรับเชื่อมต่อสายเข้าวงจร ให้ตั้งชื่ออุปกรณ์ใน easyeda ว่า Eyelets

ขนาดของตาไก่


การออกแบบตัวสัญลักษณ์


รูปร่างของตัวถัง (Footprint)


โมเดล 3 มิติสามารถดาวนโหลดจากเวปไซต์หลักได้ที่
https://www.3dcontentcentral.com/download-model.aspx?catalogid=171&id=66419

หรือจะดาวน์โหลดจากเวปครูได้ที่
https://www.praphas.coml/download/3dModelEasyEDA/User%20Library-Eyelets.wrl

15
    การออกแบบวงจรพิมพ์ไม่ว่าจะออกแบบด้วยโปรแกรมใดก็ตามต่อให้โปรแกรมนั้นมีอุปกรณ์ให้เลือกใช้มากมายสิ่งที่ต้องเจอคืออุปกรณ์ที่ต้องการใช้หาอย่างใดก็ไม่เจอซึ่งอาจเป็นได้จาก 2 สาเหตุคือ อุปกรณ์มีมากและมากจนหาไม่เจอ หรือไม่มีอุปกรณ์ที่ต้องการใช้งาน วิธีการแก้ปัญหาดังกล่าวคือการสร้างอุปกรณ์ตัวนั้นขึ้นใช้เอง บทความนี้เป็นการเรียนรู้การสร้างอุปกรณ์ขึ้นใช้งานเองที่ใช้โปรแกรม EasyEDA ในการออกแบบวงจรพิมพ์
ขั้นตอนการสร้างอุปกรณ์ใหม่ ประกอบขึ้นด้วย 3 ส่วนคือ
    - การสร้างสัญลักษณ์ (Symbol) เพื่อใช้ในการวาดผังวงจร (Schematic)
    - การสร้างตัวถัง (Footprint) ตามขนาดจริงของอุปกรณ์เพื่อใช้ในการออกแบบ PCB
    - การใส่ค่าโมเดล 3 มิติ (ขั้นตอนนี้จะมีผลตอนแสดงผล 3 มิติเท่านั้น ไม่ดำเนินการก็ได้)
ขั้นตอนมีดังนี้
1. ก่อนการสร้างอุปกรณ์ใหม่ผู้ออกแบบจะต้องมีขนาดของตัวอุปกรณ์ที่จะสร้างหาได้ 2 วิธีการคือ
    - หาดูจากดาต้าชีต
    - วัดขนาดจากตัวอุปกรณ์จริง


ขั้นตอนการสร้างสัญลักษณ์ (Symbol)
2. เริ่มจากการสร้างสัญลักษณ์ (Symbol) ดังรูป


3. ตั้งชื่ออุปกรณ์ที่ต้องการสร้าง


4. วาดตัวถัง โดยใช้ขนาดที่เหมาะสมไม่เล็กหรือใหญ่เกินไป ให้ลองวางอุปกรณ์ตัวอื่น ๆ แล้วลองเทียบสเกลดูว่าควรจะสร้างขนาดเท่าใด


5. วางขาอุปกรณ์ โดยให้จุดเชื่อมต่อวงจร (วงกลมสีเทาปลายขา) อยู่ด้านนอกตัวอุปกรณ์และอยู่ตรงจุดตัดของกริดเพื่อให้ง่ายต่องการลายสายเชื่อมต่อ


6. กรณีที่อุปกรณ์นั้น ๆ ไม่แสดงชื่อขาหรือหมายเลขขาเช่น ตัวต้านทาน ทรานซิสเตอร์ ไตรแอค เอสซีอาร์ เป็นต้น อุปกรณ์เหล่านี้ไม่จำเป็นต้องเขียนชื่อขาหรือหมายเลขขาผู้ออกแบบวงจรก็สามารถใช้งานได้ วิธีการตั้งค่าไม่ได้แสดงค่าดังกล่าวทำได้ดังรูป


7. กรณีที่ต้องการใส่หัวลุกศรสามารถทำได้ดังรูป


8. ตั้งชื่อ Pre เป็นชื่อลำดับอุปกรณ์ เวลาออกแบบวงจรโปรแกรมจะแสดงเช่นตัวต้านทานก็แสดงเป็น R1, R2, R3


9. ทำการบันทึก ทดสอบว่าอุปกรณ์ที่สร้างเข้าในโปรแกรมหรือยังโดยคลิกดังรูป


ขั้นตอนการสร้างตัวถัง (Footprint)
10. คลิกเริ่มสร้างดังรูป


11. ตั้งชื่อตัวถัง (Footprint)


12. วาง PAD โดยให้ระยะห่างตรงตามขนาดของจริง และให้ PAD จุดกลางอยู่ตรงตำแหน่งกลางการออกแบบ (เส้นกริดสีขาว) ในที่นี้ระยะห่างระหว่าง PAD มีขนาดเท่ากับ 5mm ตามแบบ แต่ในความเป็นจริงขนาดจะห่างเท่ากับ 5.08mm หรือเท่ากับ 200mil ซึ่งมีระยะห่างเท่ากับ 2 ช่องกริด(ในกรณีที่ตั้งกริดไว้ที่ 100mil)


13. คลิกคลุมทั้งหมดเพื่อแก้ไขขนาดของ PAD ที่งที่เป็นรูและขนาดของทองแดงดังรูป


14. คลิกเลือกเลเยอร์ TopSilkLayer (สีเหลือง) ทำการวาดตัวถังให้ใกล้เคียงกับขนาดจริงมากที่สุด สามารถตวัดระยะการออกแบบได้โดยใช้เครื่องมือวัดระยะ ดังรูป


15. เมื่อออกแบบครบและได้ขนาดตามต้องการให้ทำการลบเส้นวัดระยะ แล้วทำการบันทึก


16. กลับไปหน้าต่างการออกแบบสัญลักษณ์ คลิกที่ช่อง Footprint


17. คลิกค้นหา Footprint ดังรูป


18. เลือก Footprint ที่สร้างขึ้น โปรแกรมจะทำการเชื่อมต่อขาให้อัตโนมัติ หากการเชื่อมต่อไม่ถูกต้องผู้ใช้สามารถแก้ไขการเชื่อมต่อได้

   
หากตรวจสอบพบการเชื่อมต่อขาไม่ถูกต้อง อาจเกิดจากการเรียงขาไม่ถูกในขั้นตอนใดให้ไปแก้ไขในขั้นตอนนั้น เช่นในตัวอย่างการเรียงขาในขั้นตอนการสร้างสัญลักษณ์ (Symbol) ผิด ดำเนินการกลับไปแก้ไขการเรียงขาในสัญลักษณ์ใหม่ แล้วดำเนินการซ้ำในขั้นตอนกำหนด Footprint ใหม่ดังรูป


การใส่โมเดล 3 มิติ
19. โมเดล 3 มิติสามารถค้นหาและดาวน์โหลดมาใช้งานได้จากหลายเวปไซต์ที่แจกฟรี ในที่นี้ขอแนะนำ https://www.3dcontentcentral.com สำหรับตัวอุปกรณ์ในงานครั้งนี้เป็น Potentiometer สามารถเข้าไปดาวน์โหลดจากลิงค์ โดยเลือกชนิดไฟล์เป็นนามสกุล *.wrl
https://www.3dcontentcentral.com/Download-Model.aspx?catalogid=171&id=774453
สำหรับผู้ที่ไม่ได้ลงทะเบียนเวปไซต์จะไม่สามารถดาวน์โหลดได้ ครูได้ดาวน์โหลดไว้ให้แล้วโดยสามารถดาวน์โหลดได้จากลิงค์ด้านล่างนี้
http://www.praphas.com/download/3dModelEasyEDA/User%20Library-Potentiometer-3.wrl


20. ทำการสร้างไฟล์เก็บโมเดล 3D ดำเนินการดังรูป


21. เลือกไฟล์โมเดล 3 มิติที่ดาวน์โหลดมาแล้วจากขั้นตอนข้างต้น


22. กลับไปที่ไฟล์ Footprint ที่สร้างขึ้นก่อนหน้านี้ คลิกที่ช่อง 3DModel


23. ทำการค้นหาโมเดล


24. คลิกแล้วทำการปรับแก้ขนาด ตำแหน่ง


25. เมื่อปรับแก้ตำแหน่งถูกต้องแล้ว ให้ปรับมุมมองในช่องแสดงผล ให้ขาอุปกรณ์อยู่ตรงกลางของรูพอดี


26. ทำการทดสอบโดยการสร้างโปรเจคออกแบบ PCB ใหม่โดยเลือกอุปกรณ์ที่สร้างขึ้น การเลือกทำได้ดังรูป


27. ทดลองวาง 2 ตัวแล้วเชื่อมต่อขา


28. ทำการอัพเดตเป็น PCB ให้สังเกตุสายเน็ตต้องมีการเชื่อมต่อระหว่างขาอุปกรณ์


29. ทดลองแสดงผล 3D จะต้องแสดงผลโมเดล 3 มิติได้ดังรูป


หน้า: [1] 2 3 ... 41