ROS2 – 11 เขียน Node ภาษา C++ แบบ OOP

เขียน Node ภาษา C++ แบบ OOP OOP ก็คือ “ธรรมชาติของวัตถุ” หมายความว่า OOP จะมองสิ่งแต่ละสิ่งถือเป็น “วัตถุชิ้นหนึ่ง” (Object) มันจะมีสีแดงหรือสีเขียว ยาวหรือสั้น มันก็คือวัตถุชิ้นหนึ่งเหมือนกัน และเราสามารถกำหนดประเภทหรือคลาสให้กับวัตถุเหล่านั้นได้ นอกจากนี้ เมื่อ OOP มองทุกสิ่งถือเป็นวัตถุชิ้นหนึ่งแล้ว ยังสามารถคิดต่อไปอีกว่า “วัตถุแต่ละอย่างนั้น ต่างก็มีลักษณะและวิธีการใช้งานเป็นของตัวเอง” หมายความว่า วัตถุแต่ละชนิดหรือแต่ละชิ้นต่างก็มีรูปร่าง ลักษณะ และการใช้งาน (การกระทำ)…

ROS2 – 10 เขียน Node ภาษา C++ เบื้องต้น

เขียน Node ภาษา C++ เบื้องต้น การทำงานของ ROS จะแบ่งเป็น Node แต่ละ Node จะทำหน้าที่เฉพาะเช่น Node เซนเซอร์อุณหภูมิ, Node เซนเซอร์ความเร็ว, Node ควบคุมมอเตอร์, Node Lidar เป็นต้น แต่ละ Node จะประสานข้อมูลกันผ่าน Topic เช่นเซนเซอร์ Encoder จะ Publish ข้อมูลความเร็ว…

ROS2 – 9 เขียน Node ภาษา Python แบบ OOP

เขียน Node ภาษา Python แบบ OOP การเขียนโปรแกรมเชิงวัตถุ OOP (Object Oriented Programming) เป็นวิธีการเขียนโปรแกรมที่นำแนวคิดในโลกของความเป็นจริงมาใช้กับในโลกของการเขียนโปรแกรมในการที่ โปรแกรมเมอร์ สร้างซอฟต์แวร์ขึ้นมาเพื่อแก้ไขปัญหาต่างๆ OOP เป็นวิธีการเขียนโปรแกรมรูปแบบหนึ่ง โดยมองสิ่งต่างๆในระบบเป็นวัตถุ (Object) ชิ้นหนึ่งที่มีหน้าที่และความหมายในตัว โดยวัตถุๆนั้น ก็มี คุณสมบัติ (Attributes) และ พฤติกรรม (Method,Behavior) หรือการกระทำของมัน เป็นการมองบนพื้นฐานความเป็นจริงมากขึ้น คำศัพท์ที่จำเป็นต้องทราบสำหรับการเขียนโปรแกรมเชิงวัตถุในภาษา Python…

ROS2 – 8 เขียน Node ภาษา Python เบื้องต้น

เขียน Node ภาษา Python เบื้องต้น Node :เป็นกระบวนการที่ใช้ในการดำเนินการโปรแกรมต่าง ซึ่ง ROS ได้รับการออกแบบให้เป็นระบบแบบแยกส่วนในระดับที่ละเอียด ระบบควบคุมหุ่นยนต์มักจะประกอบด้วยหลายโหนด ตัวอย่างเช่นหนึ่งโหนดควบคุม laser range-finder, หนึ่งโหนดควบคุมมอเตอร์ล้อ, หนึ่งโหนดทำการแปลงค่าต่างๆ, หนึ่งโหนดทำการวางแผนเส้นทาง, หนึ่งโหนดให้มุมมองกราฟิกของระบบและอื่น ๆ เป็นต้น 1 : สร้าง Package ภาษา Python สร้าง Package ภาษา Python…

ROS2 – 7 สร้าง Package ภาษา C++

Packages : เป็นโปรแกรมหลักที่ใช้ในการบริหาร บริการ จัดการซอฟต์แวร์ต่างๆใน ROS ซึ่งอาจจะประกอบไปด้วย ROS runtime processes (nodes), a ROS-dependent library, datasets, configuration files, และโปรแกรมอื่นๆที่จำเป็นสำหรับการจัดการและการใช้งาน สำหรับนักพัฒนาที่ออกแบบและสร้าง Packages เมื่อสร้างเสร็จแล้วก็สามารถปล่อย Packages นี้ให้แก่บุคคลที่สนใจอื่นๆได้ 1 : สร้าง Workspace ROS2 สร้าง Workspace…

ROS2 – 6 สร้าง Package ภาษา Python

Packages : เป็นโปรแกรมหลักที่ใช้ในการบริหาร บริการ จัดการซอฟต์แวร์ต่างๆใน ROS ซึ่งอาจจะประกอบไปด้วย ROS runtime processes (nodes), a ROS-dependent library, datasets, configuration files, และโปรแกรมอื่นๆที่จำเป็นสำหรับการจัดการและการใช้งาน สำหรับนักพัฒนาที่ออกแบบและสร้าง Packages เมื่อสร้างเสร็จแล้วก็สามารถปล่อย Packages นี้ให้แก่บุคคลที่สนใจอื่นๆได้ 1 : สร้าง Workspace ROS2 สร้าง Workspace…

ROS2 – 5 ติดตั้ง Visual Studio Code บน Ubuntu 20.04

ติดตั้ง Visual Studio Code บน Ubuntu 20.04 Visual Studio Code เป็นโปรแกรมแก้ไขโค้ดโอเพนซอร์ซที่มีประสิทธิภาพซึ่งพัฒนาโดย Microsoft มีการรองรับการดีบักในตัว, การควบคุม Git แบบฝัง, การเน้นไวยากรณ์, การเติมโค้ดให้สมบูรณ์, เทอร์มินัลรวม, การรีแฟคเตอร์โค้ด และตัวอย่างข้อมูล Visual Studio Code เป็นแบบข้ามแพลตฟอร์ม พร้อมใช้งานบน Windows, Linux และ macOS…

ROS2 – 4 สร้าง Workspace ROS2

ภาพองค์ประกอบโครงสร้าง (Layout) ของ Workspace ใน ROS ใน 1 Workspace จะมี Package ก็ได้ขึ้นอยู่กับโปรแกรมที่เราเขียนลงไปโดยสำหรับ ROS แต่จะรองรับอยู่ 2 ภาษาคือ Python และ C++ บทความการสร้าง Workspace ROS2 ด้วย Colcon เครื่องมือช่วยสร้าง ROS2 รุ่น Foxy และสั่งให้ Ubuntu…

ROS2 – 3 ติดตั้ง Colcon เครื่องมือช่วยสร้าง ROS2

ติดตั้ง Colcon เครื่องมือช่วยสร้าง และ Build ROS2 รุ่น Foxy 1 : ทดสอบการทำงาน ROS2 เบื้องต้น ทดสอบการทำงาน ROS2 เบื้องต้น ตามขั้นตอนลิงค์ด้านล่าง ทดสอบการทำงาน ROS2 เบื้องต้น 2 : ติดตั้ง Colcon เริ่มการติดตั้งโดย เปิด Terminal (เทอร์มินัล) ใช้คำสั่ง ตอบ…

ROS2 – 2 ทดสอบการทำงาน ROS2 เบื้องต้น

เริ่มแรก เรากำลังจะทำการทดสอบ Node 2 อัน ที่เป็นเดโม มาพร้อมกับการติดตั้งอยู่แล้ว 1 คือ Node talker ที่ทำหน้าที่พูด โดยการสุ่มตัวเลข แล้วส่งตัวเลขนั้นออกไป และ 2 คือ Node listener ทำหน้าที่รับฟัง โดยการรับตัวเลขที่ส่งออกมาจาก talker  — แล้วแสดง 1 : ติดตั้ง ROS2 Foxy บน Ubuntu…

ROS2 – 1 ติดตั้ง ROS2 Foxy บน Ubuntu 20.04

Robot Operating System(ROS) เป็นระบบที่สร้างขึ้นเพื่อทำให้เกิดความยืดหยุ่นในการเขียนซอฟต์แวร์ควบคุมหุ่นยนต์ ซึ่งใน ROS จะรวบรวมชุดเครื่องมือและชุดคำสั่งต่างๆที่จำเป็นในการพัฒนาหุ่นยนต์เอาไว้ ซึ่งสิ่งต่างๆเหล่านี้จะลดความยุ่งยากในการสร้างในการพัฒนาหุ่นยนต์ที่มีความซับซ้อน และทำให้มีประสิทธิภาพในการพัฒนาหุ่นยนต์หลากหลายรูปแบบ การพัฒนาหุ่นยนต์ในสมัยก่อนจะเป็นการพัฒนาแบบตัวใครตัวมัน ทำให้ความรู้หรือข้อมูลต่างๆถูกเก็บไว้ที่คนๆเดียวหรือเก็บเป็นความลับอยู่ในองค์กรนั้นๆ ซึ่งการพัฒนารูปแบบนี้ทำให้ยากต่อการพัฒนาหุ่นยนต์เพราะเนื่องจากผู้พัฒนาจำเป็นจะต้องพัฒนาหุ่นยนต์เองในทุกๆส่วนไม่ว่าจะเป็นระบบรับรู้ของหุ่นยนต์ ระบบขับเคลื่อนของหุ่นยนต์ รวมไปถึงกระบวนการทำงานต่างๆที่มีความซับซ้อน ส่งผลให้ ROS ถูกนำมาใช้งานเพื่อให้การพัฒนาหุ่นยนต์ที่มีความซับซ้อนเป็นไปได้อย่างรวดเร็ว ROS ถูกสร้างบนพื้นฐานของการสนับสนุนให้พัฒนาซอฟต์แวร์ของหุ่นยนต์ที่สามารถทำงานร่วมกันได้ ตัวอย่างเช่นห้องปฏิบัติการหนึ่งอาจมีผู้เชี่ยวชาญในการทำแผนที่สภาพแวดล้อมในร่ม และสามารถให้การสนับสนุนการสร้างแผนที่ให้กับองค์กรอื่นๆได้ บางกลุ่มอาจมีผู้เชี่ยวชาญในการใช้แผนที่เพื่อนำทาง บางกลุ่มอาจค้นพบวิธีการมองเห็นด้วยคอมพิวเตอร์ที่ทำงานได้ดีสำหรับการรับรู้วัตถุขนาดเล็กในพื้นที่ที่มีความยุ่งเหยิง ROS ได้รับการออกแบบมาเพื่อการทำงานร่วมกันและต่อยอดซึ่งกันและกันโดยเฉพาะ 1 : ติดตั้ง Ubuntu 20.04…

ติดตั้ง Ubuntu 20.04 บน Virtual Machine (VirtualBox)

บทความการติดตั้ง Ubuntu 20.04 บน VirtualBox โดยใช้ Windows10 Ubuntu คือระบบปฎิบัติการ Linux ชนิดหนึงซึ่ง ลีนุกซ์ (Linux) ก็เป็นระบบปฏิบัติการเช่นเดียวกับ Dos , Window หรือ Unix โดยลีนุกซ์นั้นจัดว่าเป็นระบบปฏิบัติการยูนิกซ์ประเภทหนึ่ง โครงการ Ubuntu มีการออกรุ่นของระบบปฏิบัติการทุก 6 เดือน แต่ละรุ่นใช้เรียกโดยโค้ดเนม และเลขกำกับรุ่น ตามการพัฒนา ซึ่งใช้ตามเลขปีคริสต์ศักราชและเดือนที่ออก เช่น…

การติดตั้ง Driver CH340G บน Windows 10

การติดตั้ง Driver CH340G บน Windows 10 สำหรับการติดต่อสื่อสารหรือจะอัปโหลดโปรแกรมลงบอร์ด PLC หรือบอร์ดอื่นๆ ที่ใช้ชิป USB to Serial CH340 หรือ CH340G นั้น บนระบบปฏิบัติการ Windows จำเป็นต้องติดตั้ง Driver สำหรับชิปตัวนี้ก่อน ไม่อย่างนั้น Windows จะไม่สามารถติดต่อกับบอร์ดตัวนั้นๆ ได้ รายการอุปกรณ์ 1. PLC Board FX1N-14MR…

การใช้งานจอ LCD 1602 กับ Arduino Keyestudio PLUS

การใช้งานจอ LCD 1602 กับ Arduino บทความนี้ กล่าวถึงขั้นตอนการใช้งานจอ I2C LCD 1602 กับ Arduino Keyestudio PLUS โดยใช้ Character LCD เป็นจอที่แสดงผลเป็นตัวอักษรตามช่องแบบตายตัว เช่น จอ LCD ขนาด 16×2 หมายถึงใน 1 แถว มีตัวอักษรใส่ได้ 16 ตัว และมีทั้งหมด 2…

การใช้งาน ATmega32 ภาษาซี กับ 7 Segment

การใช้งาน ATmega32 ภาษาซี กับ 7 Segment Seven Segment Display (SSD) เป็นอุปกรณ์แสดงผลแบบคลาสสิกสำหรับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลระดับล่าง 7 Segment คือหน้าจอแสดงผลตัวเลข – ตัวอักษร (ได้บางตัว) ที่มีหน้าจอทำมาจากการจัดวางหลอด LED ในแนวยาว เมื่อทำให้หลอด LED แต่ละดวงติดพร้อมกัน ก็จะทำให้แสดงออกมาเป็นตัวเลขทรงเหลี่ยมได้ การเขียนโปรแกรมนั้นง่ายมาก อาจแสดงถึงตัวเลขและตัวอักษรภาษาอังกฤษบางตัว การสั่งงาน 7 Segment 7…

โปรแกรมแรก VB.NET กับ Visual Studio 2015

โปรแกรมแรก VB.NET กับ Visual Studio 2015 ภาษา VB.NET ซึ่งได้รับการต่อยอดมาจากภาษายอดนิยมอย่าง VB6 นั่นเอง สิ่งสำคัญที่เพิ่มเข้ามาใหม่ใน VB.NET ก็คือความสามารถด้าน OOP (Object Oriented Programming: การเขียนโปรแกรมเชิงวัตถุ) ที่ได้รับการปรับปรุงจนเรียกได้ว่า VB.NET นั้นเป็นภาษา OOP สมบูรณ์แบบ ในขณะที่ VB6 นั้นเป็นภาษาที่อ้างอิงถึง OO แต่ว่าไม่ได้เป็นภาษาที่มีความสามารถด้าน OOP…

โปรแกรมแรก ภาษาปาสคาล กับ Arduino

โปรแกรมแรก ภาษาปาสคาล กับ Arduino ตัวอย่างง่ายๆซึ่งจะใช้ช่องทางติดต่อการสื่อสารผ่านพอร์ทอนุกรม (Serial Port) จากคอมพิวเตอร์ไปที่ Arduino UNO R3 เพื่อทำการควบคุมการทำงาน เปิด/ปิด หลอดไฟ LED ที่เชื่อมต่อกับขา 13 ซึ่งมาพร้อมกับบอร์ดอยู่แล้ว โดยใช้ แอปพลิเคชั่นลาซารัส (Lazarus IDE) เขียนโปรแกรมด้วยภาษาปาสคาล (Pascal) และสามารถนำไปใช้งานกับคอมพิวเตอร์ เครื่องอื่นๆได้ หลักการทำงานของการติดต่อนี้ จะเป็นการติดต่อด้วย สตริง (String) หรือ…

เปิดปิดไฟ LED ของ Arduino ด้วยภาษา C#

เปิดปิดไฟ LED ของ Arduino ด้วยภาษา C# ตัวอย่างง่ายๆซึ่งจะใช้ช่องทางติดต่อการสื่อสารผ่านพอร์ทอนุกรม (Series Port) จากคอมพิวเตอร์ไปที่ Arduino UNO R3 เพื่อทำการควบคุมการทำงาน เปิด/ปิด หลอดไฟ LED ที่เชื่อมต่อกับขา 13 ซึ่งมาพร้อมกับบอร์ดอยู่แล้ว โดยใช้ Visual Studio 2015 เขียนโปรแกรมด้วยภาษา C# ทำ GUI (graphical user…

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save