- Видео 83
- Просмотров 76 877
Songchai Weerathaweemas
Таиланд
Добавлен 19 ноя 2015
ช่องสำหรับผู้ที่ต้องการศึกษาความรู้
- Microprocessor
- Microcontroller
- Computer Programming
- EMBEDDED SYSTEM AND ALGORITHMS
- INSTRUMENTATION ENGINEERING LABORATORY 1
- Internet of Thing
จากผู้สอนภาควิชาวิศวกรรมการวัดและควบคุม
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
- Microprocessor
- Microcontroller
- Computer Programming
- EMBEDDED SYSTEM AND ALGORITHMS
- INSTRUMENTATION ENGINEERING LABORATORY 1
- Internet of Thing
จากผู้สอนภาควิชาวิศวกรรมการวัดและควบคุม
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
RFID check-in and checkout system with LINE Notify
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things
จัดทำโดย
นายกรกิจ ฉันทโสภณ 64010011
นางสาวสิริกร พร้อมประพันธ์ 64011304
หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3)
ภาควิชาวิศวกรรมการวัดและควบคุม
คณะวิศวกรรมศาสตร์
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
จัดทำโดย
นายกรกิจ ฉันทโสภณ 64010011
นางสาวสิริกร พร้อมประพันธ์ 64011304
หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3)
ภาควิชาวิศวกรรมการวัดและควบคุม
คณะวิศวกรรมศาสตร์
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
Просмотров: 72
Видео
Text Detection in Images
Просмотров 477 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นางสาว ปัณฑารีย์ คำสีวาด รหัส 64010510 นางสาว พรรณภรณ์ มหากุศล รหัส 64010563 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
การวัดระดับน้ำแจ้งเตือนผ่าน LINE
Просмотров 857 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นายจิรทีปต์ คอนดี 64010105 นายเสฎฐวุฒิ วัฒนาไชย 64010944 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
การสร้าง OCR โดยใช้ Tesseract
Просмотров 1417 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นายสุกฤษฎิ์ เครือปรเมษฐ์ 64010907 นายอานนท์ แม้นชัยภูมิ 64011020 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
การตรวจจับสัตว์มีพิษเข้าบ้าน ด้วย Cira Core AI
Просмотров 1697 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นาย ศุภวุฒิ ธัญญรักษ์ 64010863 นางสาว สุพัตรา หล้าพูน 64010921 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
ระบบตรวจสอบอุณหภูมิและความชื้นของ KDMC ด้วย IoT
Просмотров 767 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นายชญานนท์ เปรมปรีดี 64010137 นางสาวเพชรดา มะเปลี่ยนสี 64010626 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
เซนเซอร์ตรวจจับสิ่งกีดขวางของรถยนต์
Просмотров 867 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นางสาวนลินี แสงยศ 64010422 นางสาวนัทธนันท์ นิลเพ็ชร 64010424 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
Object Detection
Просмотров 797 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นายปริญญา ไพศาลพันธุ์ 64011184 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
FIT CAL Chatbot
Просмотров 437 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นายแด่ภูไพร หวังภูกลาง รหัสนักศึกษา 64010275 นายสราวุฒิ สิงห์บูรณา รหัสนักศึกษา 64010880 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
การนับจำนวนวัวในฟาร์ม
Просмотров 287 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย 64010428 นาย นันทกร ประมวลศิลป์ 64010901 นางสาว สิริบูรณ์ อู่ทอง หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
App. แปล 5 ภาษาแล้วอ่านออกเสียง
Просмотров 248 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นางสาวกนกวรรณ รัตนาคะ 64010004 นายทัพฟ้า วริศนนท์ 64010287 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
Real Time Object Detection Using Yolo V3
Просмотров 1658 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นางสาวพิกัลยา นาคสุข 64010584 นายกิตติพัฒน์ เหล่าเลิศวรกุล 64011054 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
Vision Text Scanner Proofread
Просмотров 698 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นางสาวณัฐติกา แก้วมีบุญ รหัส 64010235 นางสาวศศิกานต์ ทองชาติ รหัส 64010835 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
Smart Parking
Просмотров 1038 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นาย กิตติพนธ์ พีรศานติกุล 64010057 นาย ศุภณัฐ เมืองชื่น 64010857 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
AI Virtual Mouse
Просмотров 488 месяцев назад
โครงงานนี้เป็นส่วนหนึ่งของวิชา Artificial Intelligence and Internet of Things จัดทำโดย นำย นัทธพงศ์ ทองวิไล 64010426 นำย ปฏิพล สิริสุชีพ 64010474 หลักสูตรวิศวกรรมเมคคาทรอนิกส์และออโตเมชัน (แขนงวัดและควบคุม ชั้นปีที่ 3) ภาควิชาวิศวกรรมการวัดและควบคุม คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
Fall Detection with Artificial Intelligence
Просмотров 478 месяцев назад
Fall Detection with Artificial Intelligence
การตรวจจับไฟไหม้แบบ real time ผ่านโปรแกรม Python
Просмотров 2218 месяцев назад
การตรวจจับไฟไหม้แบบ real time ผ่านโปรแกรม Python
Speech Recognition ตรวจจับคำพูดและแปลภาษาด้วย AI
Просмотров 688 месяцев назад
Speech Recognition ตรวจจับคำพูดและแปลภาษาด้วย AI
Object Detection with Machine Learning
Просмотров 398 месяцев назад
Object Detection with Machine Learning
Bird detection and warning in Industrial
Просмотров 140Год назад
Bird detection and warning in Industrial
การประยุกต์ใช้งาน IoT และเซ็นเซอร์วัดอัตราการเต้นของหัวใจ
Просмотров 452Год назад
การประยุกต์ใช้งาน IoT และเซ็นเซอร์วัดอัตราการเต้นของหัวใจ
การเก็บสถิติจำนวนรถยนต์ด้วยปัญญาประดิษฐ์
Просмотров 93Год назад
การเก็บสถิติจำนวนรถยนต์ด้วยปัญญาประดิษฐ์
ระบบรดน้ำต้นไม้ผ่านโทรศัพท์มือถือและสัญลักษณ์มือ
Просмотров 298Год назад
ระบบรดน้ำต้นไม้ผ่านโทรศัพท์มือถือและสัญลักษณ์มือ
Face Mask Detection Using Machine Learning
Просмотров 106Год назад
Face Mask Detection Using Machine Learning
Dog Breed Classification การแยกพันธุ์สุนักด้วย AI
Просмотров 138Год назад
Dog Breed Classification การแยกพันธุ์สุนักด้วย AI
ขอบคุณครับอาจารย์
ถ้าเอานิ้วออก BPM จะอยู่ที่เท่าไรคะ
มีCode ให้ไปศึกษาต่อมั๊ยครับอาจารย์
พิมพ์ตาม video ได้เลย จะได้เข้าใจมากขึ้น
มีข้อสังเกต 3 ประเด็น 1. โมเดล (model) ของ AI ที่นักศึกษานำมาใช้งานไม่ได้กล่าวถึงรายละเอียดต่างๆ อย่างเช่น ใช้ trained data มีอะไรบ้าง เป็นต้น เพื่อใช้เป็นข้อพิจารณาในการนำโมเดลมาประยุกต์ใช้งาน 2. ทำไม ? ใช้แต่อักษรภาษาอังกฤษที่เป็นตัวพิมพ์ ไม่ทดลองใช้ตัวอักษรภาษาอังกฤษที่เขียนด้วยมือ 3 ทำไม ? ไม่ทดลองกับภาษาไทยด้วย ทั้งตัวพิมพ์และเขียนด้วยมือ 4. ไม่ได้ Real-time (เวลาจริง) ข้อคิดเห็น 1. การนำโมเดลของ AI ที่ผ่านการ trained มาประยุกต์ใช้งาน ไมได้ถือว่า เป็นการพัฒนาองค์ความรู้ด้านการออกแบบ AI แต่เป็นการใช้งานในลักษณะ End-user 2. ผลจากการไม่ได้ออกแบบโมเดล AI ด้วยตนเอง และ/หรือ การไม่ได้ trained โมเดล AI ตามวัตถุประสงค์ที่ต้องการใช้งาน จึงไม่สามารถแปลตัวอักษรภาษาไทย ทั้งตัวพิมพ์และตัวเขียน หรือแม้แต่อักษรอังกฤษตัวเขียน
ผมรบกวนคัดลอก Source code อาจารย์ได้ไหมครับ
ได้ครับ
int val; int nb; void setup() { Serial.begin(9600); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, INPUT); } void loop() { if (Serial.available() > 0) { int data = Serial.read(); Stop(); Serial.print(data); if (data == 'R') { digitalWrite(9, HIGH); digitalWrite(8, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); } else if (data == 'L') { digitalWrite(9, LOW); digitalWrite(8, HIGH); digitalWrite(6, LOW); digitalWrite(7, HIGH); } else if (data == 'F') { digitalWrite(9, LOW); digitalWrite(8, HIGH); digitalWrite(6, HIGH); digitalWrite(7, LOW); } else if (data == 'B') { digitalWrite(9, HIGH); digitalWrite(8, LOW); digitalWrite(6, LOW); digitalWrite(7, HIGH); } else if (data == 'H') { digitalWrite(9, LOW); digitalWrite(8, HIGH); digitalWrite(6, LOW); digitalWrite(7, HIGH); } else if (data == 'G') { digitalWrite(9, LOW); digitalWrite(8, HIGH); digitalWrite(6, LOW); digitalWrite(7, HIGH); } else if (data == 'I') { digitalWrite(9, HIGH); digitalWrite(8, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); } else if (data == 'J') { digitalWrite(9, HIGH); digitalWrite(8, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); } } } void Stop() { digitalWrite(9, LOW); digitalWrite(8, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); } อันนี้คือโค้ดในคลิปครับเผื่อใครอยากได้
อันนี้เป็นสือการสนของ ป ตรี หรือ ป โทครับอาจารย์
ปริญญาตรีครับ
อยากเก่งเหมือนพี่เขาเลยครับ😅
ผมขอเรียนทางยูทูปกับอาจารย์ด้วยนะครับ ขอขอบคุณอาจารย์อย่างสูงที่กรุณาแบ่งปันคลิปดีๆ แบบนี้ ให้แก่ผู้สนใจทั่วไปด้วยนะครับ
ขอ code คำส้่ง หน่อยครับ
load library มา แล้วเปิดตัวอย่างขึ้นมา code อยู่ตรงนั้นครับ
ขอบคุณครับ
ต่อเข้าหน้าจอLCD คอมพิวเตอร์ได้มั้ยคะ
หมายถึงส่งมาแสดงผลที่เครื่อง computer ใช่ไหม แนะนำให้ไปศึกษาวิธีการส่งแบบ MQTT และวิธีการแสดงผลผ่าน Node-Red ครับ
@@songchaii ขอบคุณค่ะ
อาจารย์ครับผมทดสอบหมุนไปหมุนกลับปรากฏว่าตำแหน่งจะเพี้ยนไปเรื่อยๆครับ ค่า x เท่ากันทั้ง 2 direction ครับ
สิ่งแรกคือตรวจสอบไฟเลี้ยง microstep driver ว่าเพียงพอไหม อันที่สองตรวจสอบ microstep driver ว่ายังดีอยู่ไหม
@@songchaii ขอบคุณครับอาจารย์ เมื่อคืนหลังจากที่ถามอาจารย์ก็พยายามหาสาเหตุจนพบว่าวางตำแหน่ง enable / disable ในโปรแกรมไม่ดีครับ เวลาสั่ง direction เลยเพี้ยนไป
ขอบคุณครับ 🙏
ขอโค้ดหน่อยค่ะ idline 0630434745
ขอปรึกษาส่วนตัวๆได้ไหมครับ
ถามตรงนี้ได้เลย
@@songchaii ขอบคุณครับ ผมทดลองตามตัวอย่างจากในเวปนี้ www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html ที่เป็น excample 5 ใช้ VR มาปรับความเร็วของมอเตอร์ ถ้าเราต้องการใช้ Encoder มาแทนตัว VR เราจะเขียนคำสั่งอย่างไรครับ ตามด้านล่างนี้เป็น Example 5 ที่คัดลอกมาวางไว้ครับ #include <AccelStepper.h> // Define the stepper and the pins it will use AccelStepper stepper1(AccelStepper::DRIVER, 9, 8); // Define our three input button pins #define LEFT_PIN 4 #define STOP_PIN 3 #define RIGHT_PIN 2 // Define our analog pot input pin #define SPEED_PIN 0 // Define our maximum and minimum speed in steps per second (scale pot to these) #define MAX_SPEED 500 #define MIN_SPEED 0.1 void setup() { // The only AccelStepper value we have to set here is the max speeed, which is higher than we'll ever go stepper1.setMaxSpeed(10000.0); // Set up the three button inputs, with pullups pinMode(LEFT_PIN, INPUT_PULLUP); pinMode(STOP_PIN, INPUT_PULLUP); pinMode(RIGHT_PIN, INPUT_PULLUP); } void loop() { static float current_speed = 0.0; // Holds current motor speed in steps/second static int analog_read_counter = 1000; // Counts down to 0 to fire analog read static char sign = 0; // Holds -1, 1 or 0 to turn the motor on/off and control direction static int analog_value = 0; // Holds raw analog value. // If a switch is pushed down (low), set the sign value appropriately if (digitalRead(LEFT_PIN) == 0) { sign = 1; } else if (digitalRead(RIGHT_PIN) == 0) { sign = -1; } else if (digitalRead(STOP_PIN) == 0) { sign = 0; } // We only want to read the pot every so often (because it takes a long time we don't // want to do it every time through the main loop). if (analog_read_counter > 0) { analog_read_counter--; } else { analog_read_counter = 3000; // Now read the pot (from 0 to 1023) analog_value = analogRead(SPEED_PIN); // Give the stepper a chance to step if it needs to stepper1.runSpeed(); // And scale the pot's value from min to max speeds current_speed = sign * (((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED); // Update the stepper to run at this new speed stepper1.setSpeed(current_speed); } ความต้องการใช้งาน เพื่อหันกล้องดูดาวครับ facebook.com/groups/711823398888858/permalink/7622364901167972/
@@kamesuph7790 ก่อนอื่นต้องเข้าใจวิธีการอ่าน Encoder ก่อน ถ้ายังไม่เข้าใจก็จะทำไม่ได้ ให้ไปทำความเข้าใจวิธีอ่าน Encoder ที่ www.zonemaker.com/article/14/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-incremental-rotary-encoder-%E0%B8%AD%E0%B9%88%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B8%AD%E0%B8%87%E0%B8%A8%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AB%E0%B8%A1%E0%B8%B8%E0%B8%99 จากนั้นก็เอาตัวเลขค่า encoder ไปแทนค่า VR
มีลิงค์โค้ดไหมครับ
code แสดงให้บน video แล้ว สามารถเขียนตามได้เลย โดยแต่ละเงื่อนไข code จะคล้ายๆ กัน สามารถ copy แล้วไปวางและแก้ไขได้เลยครับ
อาจารย์ สอน ต่ออุปกรณ์ และ โปรแกรม ได้ละเอียด ชัดเจน มาก ผมมือใหม่ ทำตาม คลิปสอน ครั้งแรก โปรแกรม ก็ทำงานได้สมบูณร์เลย ขอบคุณที่่ให้ความรู้
ถ้าใช้ardunio uniเป็นusb to ttlรันโค้ดลงmicrochipต้องใช้โปรเเกรมไหนเขียนโค้ดสั่งmicrochipหรอคะ
ใช้ Arduino IDE ได้ครับ ดูตัวอย่างตามนี้ ruclips.net/video/JYPHBnDzM2E/видео.html
สอนละเอียดดีมากครับ ขอบคุณครับ
เอา code จากไหนครับ
พิมพ์ตามที่สอนได้ครับ code ไม่ยาวมาก
ขอบคุณสำหรับความรู้ครับอาจาร์ย
สอนผสมโค้ดแสดงขึ้นแค่จอLcdหน่อยครับ
ขอบคุณครับ
ขอแนะนำชุดคิทสำหรับนักเรียนครับ
อาจารย์มีไฟล์ให้มั้ยครับ
ไฟล์อะไร
ถ้าไฟล์ power point ให้เข้าไปดูของภาค computer www.ce.kmitl.ac.th/subject.php?action=view&SUBJECT_ID=345
จะหาดูการเขียนโค้ดได้ที่ไหนคะ
ตามนี้เลยไหมคะ
@@sarintipsripon2214 ก็พิมพ์ตาม video ได้เลยครับ
โปรแกรมที่ใช้ทดลองที่ 3 ----------------------------------- #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.init(); // or lcd.begin(); lcd.backlight(); // on back light lcd.setCursor(1,0); // ตัวอักษรที่ 1, บรรทัดที่ 0 lcd.print("Instrument Dept."); lcd.setCursor(0,1); // ตัวอักษรที่ 0, บรรทัดที่ 1 lcd.print(10,DEC); // ตัวเลขฐาน 10 } void loop() {}
โปรแกรมที่ใช้ทดลองที่ 2 ----------------------------------- //timer setup for timer1. For arduino uno or any board with ATMEL 328/168. //timer1 will interrupt at 1Hz boolean toggle1 = 0; void setup() { pinMode(13, OUTPUT); //set timer1 (16 bit) interrupt at 1Hz TCCR1A = 0; // set entire TCCR1A register to 0 TCCR1B = 0; // same for TCCR1B TCNT1 = 0; //initialize counter value to 0 // set compare match register for 1hz increments OCR1A = 15624; // = (16*10^6) / (1*1024) - 1 (must be <65536) // turn on CTC mode TCCR1B |= (1 << WGM12); // Set CS12 and CS10 bits for 1024 prescaler TCCR1B |= (1 << CS12) | (1 << CS10); // enable timer compare interrupt TIMSK1 |= (1 << OCIE1A); sei(); //allow interrupts } ISR(TIMER1_COMPA_vect){//timer1 interrupt 1Hz toggles pin 13 (LED) //generates pulse wave of frequency 1 Hz/2 = 0.5kHz (takes two cycles for full wave- toggle high then toggle low) if (toggle1){toggle1 = 0;} else{toggle1 = 1;} digitalWrite(13,toggle1); } void loop() {}
โปรแกรมที่ใช้ทดลองที่ 1 ----------------------------------- const byte ledPin = 13; const byte interruptPin = 2; volatile byte state = 1; void setup() { pinMode(ledPin, OUTPUT); pinMode(interruptPin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE); } void blink() { state=0;} void loop() { if(state==0) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); state=1; } }
โปรแกรมที่ใช้ทดลองใน Lab ------------------------------------------------------ //DS3231 RTC connected via I2C #include <LiquidCrystal.h> #include <Wire.h> #define DS3231_I2C_ADDRESS 0x68 const int pin_RS = 8; //set LCD pin const int pin_EN = 9; const int pin_d4 = 4; const int pin_d5 = 5; const int pin_d6 = 6; const int pin_d7 = 7; const int pin_BL = 10; LiquidCrystal lcd(pin_RS,pin_EN,pin_d4,pin_d5,pin_d6,pin_d7); void setup() { Wire.begin(); lcd.begin(16, 2); //set DS3231 seconds, minutes, hours, day, date, month, year //setDS3231time(14,16,16,3,13,04,21); //หากจะตั้งเวลาให้เอา comment หน้าค าสั่งนี้ออกแล้วใส่เวลาใหม่ให้ตรง } void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year) { // sets time and date data to DS3231 Wire.beginTransmission(DS3231_I2C_ADDRESS); Wire.write(0); // set next input to start at the seconds register Wire.write(decToBcd(second)); // set seconds Wire.write(decToBcd(minute)); // set minutes Wire.write(decToBcd(hour)); // set hours Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday) Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31) Wire.write(decToBcd(month)); // set month Wire.write(decToBcd(year)); // set year (0 to 99) Wire.endTransmission(); } byte decToBcd(byte val){ return( (val/10*16) + (val%10) );} byte bcdToDec(byte val){ return( (val/16*10) + (val%16) );} void readDS3231time(byte *second,byte *minute,byte *hour,byte *dayOfWeek,byte *dayOfMonth,byte *month,byte *year) { Wire.beginTransmission(DS3231_I2C_ADDRESS); Wire.write(0); // set DS3231 register pointer to 00h Wire.endTransmission(); Wire.requestFrom(DS3231_I2C_ADDRESS, 7);//read from DS3231 total 7 bytes // request seven bytes of data from DS3231 starting from register 00h *second = bcdToDec(Wire.read() & 0x7f); *minute = bcdToDec(Wire.read()); *hour = bcdToDec(Wire.read() & 0x3f); *dayOfWeek = bcdToDec(Wire.read()); *dayOfMonth = bcdToDec(Wire.read()); *month = bcdToDec(Wire.read()); *year = bcdToDec(Wire.read()); } void loop() { int x; byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); lcd.setCursor(0, 0); if (hour<10) {lcd.print("0");} lcd.print(hour, DEC); lcd.print(":"); if (minute<10) {lcd.print("0");} lcd.print(minute, DEC); lcd.print(":"); if (second<10) {lcd.print("0");} lcd.print(second, DEC); lcd.print(" "); lcd.print(dayOfMonth, DEC); lcd.print("/"); lcd.print(month, DEC); lcd.print("/"); lcd.print(year, DEC); x = analogRead(0); // read switch lcd.setCursor(0, 1); if (x < 60) {lcd.print ("Right ");} else if (x < 200) {lcd.print ("Up ");} else if (x < 400) {lcd.print ("Down ");} else if (x < 600) {lcd.print ("Left ");} else if (x < 800) {lcd.print ("Select");} else {lcd.print (" ");} delay(250); }
โปรแกรมข้อ 3.8 import processing.serial.*; import java.awt.event.KeyEvent; import java.io.IOException; Serial myPort; String data=""; float roll, pitch; void setup() { size (960, 640, P3D); myPort = new Serial(this, "COM4", 9600); // starts the serial communication myPort.bufferUntil(' '); } void draw() { translate(width/2, height/2, 0); background(33); textSize(22); text("Roll: " + int(roll) + " Pitch: " + int(pitch), -100, 265); // Rotate the object rotateX(radians(roll)); rotateZ(radians(-pitch)); // 3D 0bject textSize(30); fill(0, 76, 153); box (386, 40, 200); // Draw box textSize(25); fill(255, 255, 255); text(" Instrumentation Engineering", -183, 10, 101); } // Read data from the Serial Port void serialEvent (Serial myPort) { // reads the data from the Serial Port up to the character '.' and puts it into the String variable "data". data = myPort.readStringUntil(' '); // if you got any bytes other than the linefeed: if (data != null) { data = trim(data); // split the string at "/" String items[] = split(data, '/'); if (items.length > 1) { //--- Roll,Pitch in degrees roll = float(items[0]); pitch = float(items[1]); } } }
โปรแกรมข้อ 3.6 #include <Wire.h> // Wire library - used for I2C communication int ADXL345 = 0x53; // The ADXL345 sensor I2C address float X_out, Y_out, Z_out; // Outputs float roll,pitch,rollF,pitchF=0; void setup() { Serial.begin(9600); // Initiate serial communication for printing the results on the Serial monitor Wire.begin(); // Initiate the Wire library // Set ADXL345 in measuring mode Wire.beginTransmission(ADXL345); // Start communicating with the device Wire.write(0x2D); // Access/ talk to POWER_CTL Register - 0x2D // Enable measurement Wire.write(8); // Bit D3 High for measuring enable (8dec -> 0000 1000 binary) Wire.endTransmission(); delay(10); //Off-set Calibration //X-axis Wire.beginTransmission(ADXL345); Wire.write(0x1E); Wire.write(1); Wire.endTransmission(); delay(10); //Y-axis Wire.beginTransmission(ADXL345); Wire.write(0x1F); Wire.write(-2); Wire.endTransmission(); delay(10); //Z-axis Wire.beginTransmission(ADXL345); Wire.write(0x20); Wire.write(-9); Wire.endTransmission(); delay(10); } void loop() { // === Read acceleromter data === // Wire.beginTransmission(ADXL345); Wire.write(0x32); // Start with register 0x32 (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(ADXL345, 6, true); // Read 6 registers total, each axis value is stored in 2 registers X_out = ( Wire.read() | Wire.read() << 8); // X-axis value X_out = X_out / 256; //For a range of +-2g, we need to divide the raw values by 256, according to the datasheet Y_out = ( Wire.read() | Wire.read() << 8); // Y-axis value Y_out = Y_out / 256; Z_out = ( Wire.read() | Wire.read() << 8); // Z-axis value Z_out = Z_out / 256; // Calculate Roll and Pitch (rotation around X-axis, rotation around Y-axis) roll = atan(Y_out / sqrt(pow(X_out, 2) + pow(Z_out, 2))) * 180 / PI; pitch = atan(-1 * X_out / sqrt(pow(Y_out, 2) + pow(Z_out, 2))) * 180 / PI; // Low-pass filter rollF = 0.94 * rollF + 0.06 * roll; pitchF = 0.94 * pitchF + 0.06 * pitch; Serial.print(rollF); Serial.print("/"); Serial.println(pitchF); }
โปรแกรมข้อ 3.4 #include <Wire.h> // Wire library - used for I2C communication int ADXL345 = 0x53; // The ADXL345 sensor I2C address float X_out, Y_out, Z_out; // Outputs void setup() { Serial.begin(9600); // Initiate serial communication for printing the results on the Serial monitor Wire.begin(); // Initiate the Wire library // Set ADXL345 in measuring mode Wire.beginTransmission(ADXL345); // Start communicating with the device Wire.write(0x2D); // Access/ talk to POWER_CTL Register - 0x2D // Enable measurement Wire.write(8); // (8dec -> 0000 1000 binary) Bit D3 High for measuring enable Wire.endTransmission(); delay(10); } void loop() { // === Read acceleromter data === // Wire.beginTransmission(ADXL345); Wire.write(0x32); // Start with register 0x32 (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(ADXL345, 6, true); // Read 6 registers total, each axis value is stored in 2 registers X_out = ( Wire.read()| Wire.read() << 8); // X-axis value X_out = X_out/256; //For a range of +-2g, we need to divide the raw values by 256 Y_out = ( Wire.read()| Wire.read() << 8); // Y-axis value Y_out = Y_out/256; Z_out = ( Wire.read()| Wire.read() << 8); // Z-axis value Z_out = Z_out/256; Serial.print("Xa= "); Serial.print(X_out); Serial.print(" Ya= "); Serial.print(Y_out); Serial.print(" Za= "); Serial.println(Z_out); }
ขอบคุณครับ
ขอบคุณครับ
App. Blynk ข้างในต้องตั้งค่ายังไงมั้งครับ
ไปศึกษา visual pin help.blynk.cc/en/articles/512061-what-is-virtual-pins
วัดฝุ่นละอองแล้วบันทึกข้อมูลลงในไหนค่ะ
วัดแล้วแสดงผลที่จอ LCD และส่งไปที่ App. Blynk เพื่อแสดงผล ไม่ได้เก็บข้อมูลไว้ครับ
อาจารย์สอนได้ดีมากๆครับผม ขอบคุณครับ
พี่คะมีโค้ดตัวอย่างมั๊ยคะพอดีหนูจะขอไปทำSTEMส่งครูอ่ะค่ะ
ไม่มี พิมพ์ตาม video ได้
สนใจคับ
มีขายเป่ลาคับ
ทำเองครับ
ขอบคุณในความรู้ครับ
มีสไลด์เนื้อหาจะดีมากครับถือว่าดีมากที่ทำเนื้อหาแบบนี้ออกมาเป็นกำลังใจให้ครับบ้านเราต้องการคนแบบนี้อีกเยอะๆครับ
><
มีไฟล์ ให้ผมได้ศึกษาไหมอาจารย์
แค่ที่สอนดูให้หมดก็เยอะแล้ว แล้วก็ไปฝึกเอง ruclips.net/p/PLLqGUgxVKIbFnbgBxG3g1EAQzcv_7rTgY
ใครยังไม่เคยเรียนภาษา C เข้าไปดูวิชานี้สอนภาษา C ด้วย ruclips.net/p/PLLqGUgxVKIbHSDSkgM4VP1zFVZqeeEEpM
ผมอยากเรียนคณะวิศวะมากๆเลยครับ แต่ไม่มีโอกาศได้เรียนเลยครับ
ศึกษาและฝึกฝนเองได้ครับเดี๋ยวนี้มีใน internet ทุกอย่าง เรียนเองก็เก่งได้
@@songchaii ขอบคุณมาครับ ผมจะพยายามครับ
ได้ความรู้มากครับ
Write a program that loads a series of integers and then transforms it by cyclically moving the given parts of the string from position p to the position q until two equal positions are entered. In doing so, cycle to the right if so p<q, and scroll left if it is p>q. Entrance One line of standard input contains the number of array elements n (1<n≤200) and then, in each of n of the following lines of the standard input, there is one member of the series. In the following lines, two integers are entered, p and q (0≤p,q<n), separated by a blank until a row is entered in which the numbers are equal. Exit Each element of the standard output prints one element of the transformed string. Can someone help me with this?? Thanks