หุ่นยนต์ควบคุมผ่านอินเทอร์เน็ต สามารถควบคุมหุ่นยนต์ได้หลายวิธี ขั้นตอนการประกอบหุ่นยนต์

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

  1. หุ่นยนต์อัตโนมัติทำงานตามอัลกอริธึมที่กำหนดโดยอิงตามข้อมูลที่ได้รับจากเซ็นเซอร์
  2. หุ่นยนต์กึ่งอัตโนมัติมีหน้าที่ควบคุมโดยมนุษย์ และยังมีงานอื่นๆ ที่มันทำด้วยตัวเอง...

หุ่นยนต์กึ่งอัตโนมัติ

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

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

การควบคุมสายเคเบิล

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

ในสถานการณ์เช่นนี้ สามารถเชื่อมต่อมอเตอร์และแหล่งจ่ายไฟเข้ากับสวิตช์ได้โดยตรง ดังนั้นจึงสามารถควบคุมการหมุนไปข้างหน้า/ถอยหลังได้ สิ่งนี้ใช้กันทั่วไปในยานพาหนะ

พวกเขาไม่มีสติปัญญาและถูกมองว่าเป็น "เครื่องจักรควบคุมระยะไกล" มากกว่า "หุ่นยนต์"


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

การควบคุมหุ่นยนต์โดยใช้สายเคเบิลและไมโครคอนโทรลเลอร์ในตัว

ขั้นตอนต่อไปคือการติดตั้งไมโครคอนโทรลเลอร์บนหุ่นยนต์ แต่ยังคงใช้สายเคเบิลต่อไป การเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับพอร์ต I/O ของคอมพิวเตอร์ (เช่น พอร์ต USB) ช่วยให้คุณสามารถควบคุมการทำงานของคุณได้ การควบคุมเกิดขึ้นโดยใช้แป้นพิมพ์ จอยสติ๊ก หรืออื่นๆ อุปกรณ์ต่อพ่วง- การเพิ่มไมโครคอนโทรลเลอร์ในโครงการอาจทำให้คุณต้องตั้งโปรแกรมหุ่นยนต์ด้วยสัญญาณอินพุต


  • ข้อดีหลักเหมือนกับการควบคุมสายเคเบิลโดยตรง สามารถตั้งโปรแกรมพฤติกรรมที่ซับซ้อนยิ่งขึ้นของหุ่นยนต์และการตอบสนองต่อแต่ละปุ่มหรือคำสั่งได้ มีตัวควบคุมให้เลือกมากมาย (เมาส์ คีย์บอร์ด จอยสติ๊ก ฯลฯ) ไมโครคอนโทรลเลอร์ที่เพิ่มเข้ามามีอัลกอริธึมในตัว ซึ่งหมายความว่าสามารถโต้ตอบกับเซ็นเซอร์และตัดสินใจบางอย่างได้ด้วยตัวเอง
  • ข้อเสียรวมถึงต้นทุนที่สูงขึ้นเนื่องจากมีอุปกรณ์อิเล็กทรอนิกส์เพิ่มเติม ข้อเสียอื่นๆ จะเหมือนกับการควบคุมหุ่นยนต์โดยตรงผ่านสายเคเบิล

การควบคุมอีเธอร์เน็ต

ใช้แล้ว ขั้วต่อ อีเธอร์เน็ต RJ45- จำเป็นต้องมีการเชื่อมต่ออีเทอร์เน็ตเพื่อการควบคุม หุ่นยนต์เชื่อมต่อทางกายภาพกับเราเตอร์ จึงสามารถควบคุมผ่านทางอินเตอร์เน็ตได้ สิ่งนี้ยังเป็นไปได้ (แม้ว่าจะไม่ค่อยสะดวกนัก) สำหรับหุ่นยนต์เคลื่อนที่

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


  • ข้อดีคือสามารถควบคุมหุ่นยนต์ผ่านอินเทอร์เน็ตได้จากทุกที่ในโลก หุ่นยนต์ไม่จำกัดเวลาการทำงาน เนื่องจากสามารถใช้ Power over Ethernet ได้ โพอี ซึ่งเป็นเทคโนโลยีที่ช่วยให้พลังงานไฟฟ้าสามารถส่งไปยังอุปกรณ์ระยะไกลพร้อมกับข้อมูลผ่านมาตรฐานได้ คู่บิดโดย เครือข่ายอีเธอร์เน็ต- การใช้อินเทอร์เน็ตโปรโตคอล (IP) สามารถทำให้การออกแบบการสื่อสารง่ายขึ้นและปรับปรุงได้ ข้อดีเหมือนกับการควบคุมคอมพิวเตอร์แบบมีสายโดยตรง
  • ข้อเสียคือการตั้งโปรแกรมที่ซับซ้อนกว่าและมีข้อเสียเช่นเดียวกับการควบคุมสายเคเบิล

ควบคุมโดยใช้รีโมทคอนโทรล IR

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

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


  • ข้อดีคือต้นทุนต่ำ ในการควบคุมหุ่นยนต์ คุณสามารถใช้รีโมทคอนโทรลของทีวีธรรมดาได้
  • ข้อเสียคือต้องใช้สายตาในการควบคุม

การควบคุมด้วยวิทยุ

การควบคุมความถี่วิทยุต้องใช้เครื่องส่งและตัวรับสัญญาณที่มีไมโครคอนโทรลเลอร์ขนาดเล็กเพื่อส่ง รับ และตีความข้อมูลความถี่วิทยุ (RF) กล่องรับสัญญาณประกอบด้วย แผงวงจรพิมพ์(PCB) ซึ่งประกอบไปด้วยหน่วยรับสัญญาณและตัวควบคุมเซอร์โวมอเตอร์ขนาดเล็ก การสื่อสารทางวิทยุต้องใช้เครื่องส่งที่จับคู่/จับคู่กับเครื่องรับ คุณสามารถใช้ตัวรับส่งสัญญาณที่สามารถส่งและรับข้อมูลระหว่างสภาพแวดล้อมระบบการสื่อสารที่แตกต่างกันทางกายภาพสองแบบ

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


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

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

การควบคุมบลูทูธ

บลูทูธเป็นสัญญาณวิทยุ (RF) และถูกส่งผ่านโปรโตคอลเฉพาะเพื่อส่งและรับข้อมูล ระยะบลูทูธทั่วไปมักจำกัดอยู่ที่ประมาณ 10 เมตร แม้ว่าจะมีข้อได้เปรียบในการอนุญาตให้ผู้ใช้ควบคุมหุ่นยนต์ของตนผ่านอุปกรณ์ที่ใช้บลูทูธ โดยหลักแล้วคือโทรศัพท์มือถือ พีดีเอ และแล็ปท็อป (แม้ว่าอาจจำเป็นต้องมีการเขียนโปรแกรมแบบกำหนดเองเพื่อสร้างอินเทอร์เฟซก็ตาม) เช่นเดียวกับการควบคุมด้วยวิทยุ Bluetooth ให้การสื่อสารสองทาง


  • ข้อดี: สามารถควบคุมได้จากอุปกรณ์ที่ใช้ Bluetooth แต่ตามกฎแล้วจำเป็นต้องมีการเขียนโปรแกรมเพิ่มเติม เหล่านี้คือสมาร์ทโฟน แล็ปท็อป ฯลฯ อัตราข้อมูลที่สูงกว่าสามารถเป็นแบบรอบทิศทางได้ จึงไม่จำเป็นต้องมีแนวสายตาและสัญญาณสามารถทะลุกำแพงได้เล็กน้อย
  • ข้อบกพร่อง. จะต้องทำงานเป็นคู่ โดยทั่วไประยะทางจะอยู่ที่ประมาณ 10 เมตร (โดยไม่มีสิ่งกีดขวาง)

การควบคุมอินเตอร์เน็ตไร้สาย

การควบคุม WiFi มักเป็นตัวเลือกเพิ่มเติมสำหรับหุ่นยนต์ ความสามารถในการควบคุมหุ่นยนต์ เครือข่ายไร้สายผ่านทางอินเทอร์เน็ตมีข้อดีที่สำคัญบางประการ (และข้อเสียบางประการ) สำหรับการควบคุมแบบไร้สาย ในการตั้งค่าการควบคุมหุ่นยนต์ผ่าน Wi-Fi คุณจำเป็นต้องมีเราเตอร์ไร้สายที่เชื่อมต่อกับอินเทอร์เน็ตและมีหน่วย WiFi บนหุ่นยนต์ สำหรับหุ่นยนต์ คุณสามารถใช้อุปกรณ์ที่รองรับโปรโตคอล TCP / IP


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

ควบคุมผ่านโทรศัพท์มือถือ

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


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

ขั้นตอนต่อไปคือการใช้ไมโครคอนโทรลเลอร์ในหุ่นยนต์ของคุณให้เต็มศักยภาพ ก่อนอื่นให้ตั้งโปรแกรมอัลกอริธึมเพื่อป้อนข้อมูลจากเซ็นเซอร์ การควบคุมอัตโนมัติอาจมีรูปแบบต่างๆ:

  1. ได้รับการตั้งโปรแกรมไว้ล่วงหน้าโดยไม่มีการตอบรับด้านสิ่งแวดล้อม
  2. โดยมีการป้อนกลับของเซ็นเซอร์จำกัด
  3. พร้อมการตอบสนองของเซ็นเซอร์ที่ซับซ้อน

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


การควบคุมหุ่นยนต์ให้เลี้ยวซ้ายโดยการอ่านลูกศรชี้ไปทางซ้ายบนกระดาษนั้นทำได้ยากกว่าที่คิดไว้มาก คำสั่งบริการ เช่น "เลี้ยวซ้าย" ยังต้องมีการตั้งโปรแกรมค่อนข้างมาก การเขียนโปรแกรมคำสั่งที่ซับซ้อนมากมาย เช่น “Bring me Slippers” ไม่ใช่เรื่องเพ้อฝันอีกต่อไป แม้ว่าจะต้องมีระดับการเขียนโปรแกรมที่สูงมากและ ปริมาณมากเวลา.

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

ส่วนการปฏิบัติ

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


อิฐที่ตั้งโปรแกรมได้ LEGO EV3

วัสดุที่คล้ายกัน:

  • แผน: 1- อินเทอร์เน็ตคืออะไร (แนวคิด) 2- วิธีเชื่อมต่ออินเทอร์เน็ต 81.69kb
  • การฉ้อโกงทางอินเทอร์เน็ต 11.94kb.
  • โครงสร้างและหลักการพื้นฐานของการทำงานของอินเทอร์เน็ต 187.31kb
  • การศึกษาความเป็นไปได้ 609.73kb
  • โดยใช้เทคโนโลยีกริด 81.79kb
  • เครือข่ายข้อมูลทั่วโลกอินเทอร์เน็ต 928.45kb
  • แผนพื้นฐาน จำนวนชั่วโมงตามแผน รวม 45.76kb.
  • “SBIS++ การรายงานทางอิเล็กทรอนิกส์” ในรูปแบบอิเล็กทรอนิกส์ผ่านทางอินเทอร์เน็ต 80.99kb
  • , 243.98kb.
  • เครือข่ายอินเทอร์เน็ต บริการ www, 240.73kb.
การจำลองและการควบคุมระยะไกลของหุ่นยนต์

ผ่านทางอินเทอร์เน็ต

นักวิจัยอาวุโส ไอ.อาร์. เบลูซอฟ

1/2 ปี 2-5 ปี และนักศึกษาระดับบัณฑิตศึกษา

ศึกษาวิธีการสร้างแบบจำลองและควบคุมหุ่นยนต์สมัยใหม่ พิจารณาอัลกอริธึมสำหรับการโต้ตอบของหุ่นยนต์กับวัตถุไดนามิกที่ซับซ้อนโดยใช้ระบบการมองเห็นทางเทคนิคในลูปควบคุม กำลังศึกษาวิธีการควบคุมหุ่นยนต์จากระยะไกลผ่านทางอินเทอร์เน็ต มีการนำเสนอสถาปัตยกรรมของระบบควบคุมแบบกระจาย วิธีการถ่ายโอนข้อมูล การสร้างแบบจำลองกราฟิก และการเขียนโปรแกรมระยะไกลของหุ่นยนต์โดยใช้เทคโนโลยี Open Java และ Java3D

การแนะนำ.

คำชี้แจงของงานที่กล่าวถึงในหลักสูตร การสาธิตผลการทดลอง

การควบคุมหุ่นยนต์ในงานโต้ตอบกับวัตถุที่กำลังเคลื่อนที่

1. การตั้งค่างาน ตัวอย่าง.

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

2. การใช้ระบบการมองเห็นทางเทคนิค

อัลกอริทึมสำหรับการประมวลผลภาพวิดีโอ การกำหนดตำแหน่งของแกนและลูกตุ้ม การใช้การทำนายจลนศาสตร์ การประมวลผลผลการวัด

3. การสร้างแบบจำลองทางคณิตศาสตร์และการทดสอบอัลกอริธึมเชิงทดลอง

สมการการสั่นสะเทือนของท่อนบนระบบกันสะเทือนแบบไบฟิลาร์ อัลกอริทึมสำหรับการจับคันเบ็ดด้วยหุ่นยนต์หุ่นยนต์ สมการการแกว่งของลูกตุ้มทรงกลม อัลกอริทึมสำหรับการโต้ตอบของหุ่นยนต์กับลูกตุ้ม สถาปัตยกรรมของแท่นทดลอง การอภิปรายผลการทดลอง

การควบคุมระยะไกลของหุ่นยนต์ผ่านทางอินเทอร์เน็ต

4. การทบทวนระบบที่มีอยู่

ระบบควบคุมผ่านอินเทอร์เน็ตสำหรับหุ่นยนต์เคลื่อนที่และหุ่นยนต์ควบคุม ข้อเสียของระบบที่มีอยู่ ปัญหาการควบคุมผ่านอินเทอร์เน็ต แนวทางแก้ไข

5. สถาปัตยกรรมของระบบควบคุมหุ่นยนต์แบบกระจาย

ฮาร์ดแวร์และ การจัดโปรแกรมส่วนเซิร์ฟเวอร์และไคลเอนต์ของระบบควบคุมหุ่นยนต์แบบกระจาย องค์กรของการแลกเปลี่ยนข้อมูล

6. การเขียนโปรแกรมระยะไกลผ่านทางอินเทอร์เน็ต

ภาษาการเขียนโปรแกรมหุ่นยนต์ สภาพแวดล้อมสำหรับการเขียนโปรแกรมระยะไกลของหุ่นยนต์ผ่านทางอินเทอร์เน็ต

7. การควบคุมระบบจริง

การทดลองควบคุมหุ่นยนต์บิดเบือนและหุ่นยนต์เคลื่อนที่ผ่านอินเทอร์เน็ต การใช้สภาพแวดล้อมการควบคุมหุ่นยนต์เสมือน การอภิปรายผลการทดลอง แนวทางการวิจัยต่อไป.

การสร้างแบบจำลองกราฟิกของหุ่นยนต์

8. คอมพิวเตอร์กราฟฟิกเบื้องต้น

ระบบพิกัด การแปลงสามมิติ อัลกอริธึมที่ง่ายที่สุด

9. การสร้างแบบจำลองวัตถุเรขาคณิตใน Java3D

รู้เบื้องต้นเกี่ยวกับ Java3D คุณสมบัติของการเขียนโปรแกรมกราฟิกใน Java3D แนวคิดพื้นฐาน- การแสดงภาพวัตถุเรขาคณิตที่ง่ายที่สุดใน Java3D การจัดแสง พื้นผิว การจัดการวัตถุ การกำหนดค่าฉากแบบไดนามิกใหม่

10. คำอธิบายของจลนศาสตร์ของหุ่นยนต์

วิธีการอธิบายจลนศาสตร์ของหุ่นยนต์ ปัญหาทางตรงและทางผกผันของจลนศาสตร์ วิธีการสร้างระบบพิกัดตามลำดับ ตัวอย่าง.

11. การสร้างแบบจำลองกราฟิกของหุ่นยนต์และพื้นที่ทำงาน

การรวมวัตถุ การแปลงทางเรขาคณิต การแสดงภาพหุ่นยนต์ เรขาคณิตที่ซับซ้อน และวัตถุที่กำลังเคลื่อนที่

1

โปซิเดฟ ไอ.วี.

ความสามารถในการควบคุมหุ่นยนต์เคลื่อนที่ผ่านสถานีวิทยุจะขยายขอบเขตการใช้งานได้อย่างมาก เพื่อแก้ไขปัญหานี้ จึงมีการติดตั้งคอมพิวเตอร์แล็ปท็อปบนหุ่นยนต์เคลื่อนที่ และเชื่อมต่อโทรศัพท์มือถือที่มีโมเด็ม GPRS ไว้ การเข้าถึงอินเทอร์เน็ตได้รับการติดตั้งผ่านโมเด็ม GPRS การควบคุมและการตรวจสอบระบบหุ่นยนต์ดำเนินการผ่านอินเทอร์เน็ต โดยใช้คอมพิวเตอร์เครื่องอื่น เป็นไปได้ที่จะควบคุมเครื่องยนต์ของหุ่นยนต์ รับข้อมูลจากเซ็นเซอร์ และยังได้รับข้อมูลจากกล้องวิดีโอในขณะที่หุ่นยนต์เคลื่อนที่ Iris-1 เคลื่อนที่อีกด้วย ดังนั้นจึงเป็นไปได้ที่จะบรรลุการควบคุมระยะไกลของหุ่นยนต์เคลื่อนที่ผ่านทางอินเทอร์เน็ตโดยใช้สถานีวิทยุของโทรศัพท์มือถือที่มีโมเด็ม GPRS และด้วยเหตุนี้ ระยะทางที่หุ่นยนต์เคลื่อนที่สามารถควบคุมได้จึงเพิ่มขึ้นอย่างมาก นอกจากนี้ ขอบเขตการใช้งานของหุ่นยนต์ยังได้ขยายออกไปในแง่ของพื้นที่ที่เข้าถึงยากอีกด้วย

หุ่นยนต์เคลื่อนที่มีการใช้กันอย่างแพร่หลายในอุตสาหกรรมและครัวเรือนต่างๆ สิ่งเหล่านี้ไม่สามารถทดแทนได้: เมื่อกำจัดอุบัติเหตุที่โรงไฟฟ้านิวเคลียร์ เมื่อค้นหาและตรวจจับวัตถุระเบิด เมื่อวินิจฉัยข้อผิดพลาดในการสื่อสาร และกำจัดสิ่งเหล่านั้น มีการใช้งานหุ่นยนต์เคลื่อนที่อย่างแพร่หลายในการสำรวจก้นทะเลที่ระดับความลึกมาก ในการบิน หุ่นยนต์ไร้คนขับถูกใช้เพื่อดำเนินกิจกรรมลาดตระเวนและทำลายศัตรู หุ่นยนต์เคลื่อนที่ใช้ในการสำรวจดาวเคราะห์ดวงอื่น ระบบสุริยะ- เมื่อเร็ว ๆ นี้ หุ่นยนต์ในภาคส่วนหุ่นยนต์เคลื่อนที่ได้รับการพัฒนาอย่างรวดเร็ว ตลาดการขายหุ่นยนต์เคลื่อนที่มีมูลค่า 655 ล้านดอลลาร์ในปี 2543 และจะมีมูลค่าถึง 17 พันล้านดอลลาร์ในปี 2548

มีปัญหาเกิดขึ้นเกี่ยวกับการใช้หุ่นยนต์เคลื่อนที่แบบไดนามิกมากขึ้นในการตรวจสอบการสื่อสารและวัตถุใต้ดินทั้งที่ประดิษฐ์และจากธรรมชาติ เนื่องจากหุ่นยนต์ถูกควบคุมผ่านสายเคเบิลที่เชื่อมต่อกับรีโมทคอนโทรล ซึ่งจำกัดการเคลื่อนที่ของมัน

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

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

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

หุ่นยนต์ "Iris-1" ซึ่งเชื่อมต่อกับพีซี ได้รับการควบคุมโดยใช้ซอฟต์แวร์สำหรับห้องปฏิบัติการ ระบบไมโครซอฟต์หน้าต่าง ตัวหุ่นยนต์นั้นเชื่อมต่อกับคอมพิวเตอร์ผ่านบอร์ด PC และสายเคเบิลจากบอร์ดเหล่านั้น ใน ระบบปฏิบัติการที่ติดตั้งบนคอมพิวเตอร์ประกอบด้วยส่วนประกอบมาตรฐาน - อินเทอร์เน็ตเอ็กซ์พลอเรอร์, เครื่องนำทางอินเทอร์เน็ต ระบบนำทางอินเทอร์เน็ตมาจากนักพัฒนาหลายราย มีซอฟต์แวร์สองชุดบนคอมพิวเตอร์สองเครื่อง หนึ่งอันสำหรับหุ่นยนต์ที่เชื่อมต่อกับพีซีประกอบด้วย: ไมโครซอฟต์ วินโดวส์ NT 4.0 และซอฟต์แวร์สำหรับ "Iris-1" ในรูปแบบส่วนประกอบหลัก "LABVIEW 6.0" สำหรับควบคุมหุ่นยนต์ คอมพิวเตอร์เครื่องที่สองที่มีชุดซอฟต์แวร์อื่นสามารถเข้าถึงทั่วโลกได้ เครือข่ายคอมพิวเตอร์อินเทอร์เน็ตโดยใช้ส่วนประกอบ Microsoft Windows มาตรฐาน - Internet Explorer แต่เราใช้ Netscape Navigator รวมถึงพีซีที่เชื่อมต่อหุ่นยนต์ซึ่งควบคุมจากระยะไกล ดูแผนภาพบล็อกหมายเลข 3

เครื่องคอมพิวเตอร์ที่เชื่อมต่อกับอินเตอร์เน็ตได้ ซอฟต์แวร์สำหรับเชื่อมต่อโทรศัพท์กับคอมพิวเตอร์และซอฟต์แวร์สำหรับโมเด็ม GPRS รุ่นเฉพาะโทรศัพท์มือถือ. โทรศัพท์มือถือทำงานในช่วงความถี่ตั้งแต่ 900 MHz ถึง 1800 MHz โทรศัพท์มือถือบางรุ่นอาจมีฟังก์ชัน GPRS

โทรศัพท์ที่มี GPRS คลาส 8 และ 10 มีจำนวนการรับส่งข้อมูลและช่องรับสัญญาณต่างกัน สำหรับ GPRS คลาส 8 - สามช่องสัญญาณสำหรับการรับสัญญาณที่ความเร็ว 14.4 Kbit ต่อวินาทีและสองช่องสำหรับการส่งสัญญาณ สำหรับโทรศัพท์ที่มี GPRS ประเภท 10 เรามี 4 ช่องสำหรับการรับสัญญาณและ 2 ช่องสำหรับการส่งสัญญาณ โทรศัพท์รุ่นต่างๆ ยังมีคุณสมบัติประเภท A และ B นั่นคือรองรับโมเด็ม GPRS และการสนทนาหรือเฉพาะโมเด็ม GPRS เท่านั้น

ในระหว่างการทดลอง มีการเปิดเผยการควบคุมหุ่นยนต์ระยะไกลอย่างเสถียรผ่านโทรศัพท์มือถือ ยกเว้นกรณีการป้องกันสัญญาณวิทยุ (การรับสัญญาณไม่เสถียรระหว่างฐานและโทรศัพท์มือถือ หรือไม่มีอยู่ - การป้องกันโดยสมบูรณ์) จากโทรศัพท์มือถือหรือ การละเมิดในเครือข่ายอินเทอร์เน็ตแบบมีสายนั่นเอง

เมื่อใช้ช่องสัญญาณวิทยุจากโทรศัพท์มือถือ ความสามารถในการควบคุมระบบทั้งหมดของหุ่นยนต์ Iris-1 จากระยะไกลรวมถึงการตรวจสอบการทำงานของระบบจะยังคงอยู่ เราได้รับภาพวิดีโอขณะที่หุ่นยนต์เคลื่อนที่เป็นขาวดำ เครื่องยนต์ของหุ่นยนต์สามารถทำงานสลับกัน ซึ่งหากมีราง จะทำให้หุ่นยนต์หมุนไปในทิศทางเดียวหรืออีกทิศทางหนึ่งได้ ถ้ามอเตอร์ทำงานพร้อมกันที่ความเร็วการหมุนเท่ากันและเข้ากันในทิศทาง หุ่นยนต์จะเคลื่อนที่ตรงไปข้างหน้าหรือในทิศทางตรงกันข้าม มีข้อมูลเกี่ยวกับสิ่งกีดขวางในทิศทางการเคลื่อนที่ของหุ่นยนต์ (ไปข้างหน้า) โดยใช้เซ็นเซอร์อัลตราโซนิก เซ็นเซอร์อัลตราโซนิกประกอบด้วยสองส่วน: ตัวรับสัญญาณที่ส่งสัญญาณด้านหน้าหุ่นยนต์ไปยังสิ่งกีดขวางที่เป็นไปได้ และเครื่องส่งสัญญาณที่รับสัญญาณที่สะท้อนจากวัตถุที่เป็นไปได้ด้านหน้าหุ่นยนต์ การมีอยู่ของวัตถุที่อยู่ด้านหน้าหุ่นยนต์นั้นถูกสังเกตด้วยสายตาบนกราฟโดยผู้ปฏิบัติงานห่างจาก Iris-1 RTK หลายกิโลเมตร ในทำนองเดียวกัน ภาพของสิ่งกีดขวางเหนือหุ่นยนต์ก็สามารถมองเห็นได้โดยใช้เซ็นเซอร์ไมโครเวฟ พารามิเตอร์จากเซ็นเซอร์โฟโตพัลส์ที่ส่งผ่านอินเทอร์เน็ตโดยใช้ช่องวิทยุจากโทรศัพท์มือถือ ทำให้สามารถสร้างแบบจำลองสามมิติแบบพาราเมตริกที่กำลังเคลื่อนที่โดยมีการหน่วงเวลาโดยใช้แพ็คเกจ T-FLEX CAD 3D เวอร์ชัน 6.0 และสูงกว่า

บล็อกไดอะแกรมหมายเลข 1 เชื่อมต่อโทรศัพท์มือถือผ่านพอร์ต USB ของพีซี

บล็อกไดอะแกรมหมายเลข 2 เชื่อมต่อโทรศัพท์มือถือผ่านพอร์ต com ของพีซี

บล็อกไดอะแกรมหมายเลข 3 การควบคุมหุ่นยนต์เคลื่อนที่ "Iris - 1"

รายการส่วนประกอบสำหรับควบคุมหุ่นยนต์เคลื่อนที่ "Iris-1" ในระยะไกล

  1. คอมพิวเตอร์ที่มีโทรศัพท์มือถือเชื่อมต่อผ่านพอร์ต COM หรือ USB
  2. ช่องวิทยุพร้อมโมเด็ม GPRS ในตัวเครื่อง
  3. สถานีฐานทวนสัญญาณของบริษัทโทรศัพท์มือถือ
  4. ตัวแทนบริการเครือข่ายคอมพิวเตอร์ (Internet) ระดับโลก - ผู้ให้บริการ
  5. คอมพิวเตอร์อีกเครื่องหนึ่งเชื่อมต่อผ่านบอร์ดและสายเคเบิลจากคอมพิวเตอร์ไปยังหุ่นยนต์เคลื่อนที่
  6. คอมพิวเตอร์ที่มีหุ่นยนต์สามารถเข้าถึงเครือข่ายคอมพิวเตอร์ทั่วโลกผ่านสถานีวิทยุของโทรศัพท์มือถือ
  7. ความพร้อมใช้งานของการสื่อสารที่เสถียรในส่วนช่องสัญญาณแบบใช้สายและวิทยุของเครือข่ายคอมพิวเตอร์ (อินเทอร์เน็ต)

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

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

บรรณานุกรม

  1. เลขที่ Sh. คู่มือหุ่นยนต์อุตสาหกรรม. - 2532. - ต.1. - ม.: วิศวกรรมเครื่องกล. - 480 ค.
  2. เลขที่ Sh. คู่มือหุ่นยนต์อุตสาหกรรม. - 2533. - ต.2. - ม.: วิศวกรรมเครื่องกล. 480 ค.
  3. ฮึ. เค. กอนซาเลซ, อาร์. ลี เค. โรโบติกส์ - 2532. - อ.: มีร์. - 624ส
  4. Kuleshov V. S. Lakota N. A. Adryunin V. V. หุ่นยนต์และผู้ควบคุมจากระยะไกล - 2529. - ม.: วิศวกรรมเครื่องกล. - 328ซี
  5. Zharkov F. P. Karataev V. V. Nikiforov V. F. Panov V. S. การใช้เครื่องมือเสมือน LabVIEW - 1999. - M.: Solon-R. - 268ซี
  6. Poduraev Yu. V. พื้นฐานของเมคคาทรอนิกส์ - 2000. - ม.: MSTU "STANKIN" - 80ซ.
  7. Maksimov N.V. Partyka T.L. Popov I.I. สถาปัตยกรรมคอมพิวเตอร์และ ระบบคอมพิวเตอร์- - 2548. - อ.: ฟอรั่ม-Infra-M. - 512ส

ลิงค์บรรณานุกรม

โปซิเดฟ ไอ.วี. การควบคุมหุ่นยนต์เคลื่อนที่ "IRIS-1" โดยสถานีวิทยุโดยใช้โทรศัพท์มือถือ // การวิจัยขั้นพื้นฐาน – 2548. – ลำดับที่ 7. – หน้า 14-16;
URL: http://fundamental-research.ru/ru/article/view?id=6320 (วันที่เข้าถึง: 25/08/2019) เรานำเสนอนิตยสารที่คุณจัดพิมพ์โดยสำนักพิมพ์ "Academy of Natural Sciences"

มีคำแนะนำมากมายบนอินเทอร์เน็ตสำหรับการประกอบหุ่นยนต์รุ่นต่างๆ มาลองสร้างโมเดลของเราเองกัน Wi-Fi ที่บ้านหุ่นยนต์ใช้ข้อมูลจากฟอรัม Cyber-place บางส่วนจากร้านค้าออนไลน์ เป็นประโยชน์ในการสั่งซื้ออะไหล่จำนวนมากโดยตรงจากจีน (Ebay, Aliexpress) สิ่งนี้จะลดงบประมาณลงอย่างมาก
นำเสนอมุมมองของเขาเกี่ยวกับทฤษฎีและการออกแบบหุ่นยนต์สมัยใหม่

มุมมองการทำงานของหุ่นยนต์

  1. เคลื่อนที่ไปตามพื้นผิวตามคำสั่งของผู้ปฏิบัติงาน
  2. ออกอากาศวิดีโอด้วยมุมมองที่กว้าง

บล็อกควบคุม

คอนโทรลเลอร์ Carduino Nano V7 สากล

ไมโครคอนโทรลเลอร์: ATmega328
แรงดันไฟฟ้าขาเข้า: 5V ถึง 30V
ความถี่สัญญาณนาฬิกา: 16 MHz
หน่วยความจำแฟลช: 32 กิโลไบต์
แรม (SRAM): 2 กิโลไบต์

มาเธอร์บอร์ดหุ่นยนต์ CyberBot

บอร์ดถูกออกแบบให้เชื่อมต่อต่างๆ อุปกรณ์อาร์ดูโน่หรืออุปกรณ์อนาล็อกผ่านอินเทอร์เฟซมาตรฐาน

โมดูลควบคุมมอเตอร์ - โล่มอเตอร์

คุณสามารถเชื่อมต่อและควบคุมมอเตอร์สองตัวได้ กระแสตรงหรือสเต็ปเปอร์มอเตอร์ 4 ตัว ประกอบด้วยไดรเวอร์มอเตอร์แบบ Dual Channel HG7881
กำลังไฟ: 2.5V ถึง 12V
ปริมาณการใช้กระแสไฟต่อช่อง: สูงสุด 800 mA

มอเตอร์เกียร์

มอเตอร์เกียร์ อัตราทด 1:48
ช่วงแรงดันไฟฟ้าตั้งแต่ 3V ถึง 6V
ความเร็วการหมุนล้อ 48 ม./นาที
กระแสไฟขณะเดินเบา (6V): 120mA
ระดับเสียง:<65dB

โมดูลการสื่อสาร

เราเตอร์ WiFi ไร้สาย TP-Link 3020MR

รุ่นนี้เหมาะอย่างยิ่งสำหรับการติดตั้งเฟิร์มแวร์ของบุคคลที่สาม เลือกมาควบคุมหุ่นยนต์ของเรา เฟิร์มแวร์นี้ใช้เฟิร์มแวร์ OpenWRT เวอร์ชัน r37816
สามารถควบคุมเราเตอร์ได้จากเว็บเบราว์เซอร์ใดก็ได้ผ่านทางเว็บอินเตอร์เฟส การจัดการผ่าน telnet และ SSH ก็มีให้บริการเช่นกัน ฟังก์ชันการทำงานได้รับการขยายโดยการติดตั้งส่วนเสริมจากแค็ตตาล็อก หน่วยความจำที่พร้อมใช้งานสำหรับแอปพลิเคชัน 1.2Mb

เว็บแคมโลจิเทค E3500

กล้องที่มีความสามารถในการแก้ไขภาพ

ฮับ ​​USB

บล็อกสำหรับเชื่อมต่ออุปกรณ์ USB เข้าด้วยกัน: arduino, เราเตอร์, กล้องเว็บ

องค์ประกอบเสริม

แพลตฟอร์ม

ล้อ

ติดตั้งยางยางและเพลาสำหรับติดตั้งดิสก์ตัวเข้ารหัสแบบออปติคอลได้ ซึ่งเหมาะสำหรับการเคลื่อนย้ายแท่นบนพื้นผิว

ช่องใส่แบตเตอรี่

จำเป็นสำหรับการติดตั้งแบตเตอรี่ สำหรับหุ่นยนต์เวอร์ชันของเรา แบตเตอรี่ขนาด AA 4 ก้อนก็เพียงพอแล้ว

รัดสายไฟ

เครื่องมือเสริมสำหรับการเชื่อมต่อแต่ละองค์ประกอบ

ขั้นตอนการประกอบหุ่นยนต์

การเตรียมบอร์ดหุ่นยนต์ CyberBotเป็นสิ่งที่ยากที่สุดสำหรับผู้เริ่มต้นเพราะว่า เกี่ยวข้องกับการใช้หัวแร้ง จำเป็นต้องบัดกรี:

  1. การปิดกั้นตัวเก็บประจุตั้งแต่ 0.1 µF ขึ้นไป
  2. ตัวเก็บประจุด้วยไฟฟ้าตั้งแต่ 100 uF x 16V ขึ้นไป
  3. ตัวต้านทาน 150 โอห์ม

จะต้องติดตั้งตัวต้านทานโดยใช้อิเล็กโทรไลต์และตัวเก็บประจุแบบบล็อกหนึ่งตัวสำหรับแต่ละโมดูลที่ติดตั้ง เป็นผลให้เราควรได้รับสิ่งต่อไปนี้:

ตัวเชื่อมต่อจะช่วยให้เราสามารถเสริมไมโครวงจรด้วยเซ็นเซอร์เพิ่มเติมและช่วยให้เราไม่ต้องบัดกรีชิ้นส่วนอย่างต่อเนื่อง

เราเชื่อมต่อโมดูลควบคุมมอเตอร์ - Motor Shield - เข้ากับบอร์ดควบคุม ขันสกรูที่ช่องใส่แบตเตอรี่ ในการติดตั้งเครื่องยนต์เข้ากับแท่นคุณจะต้องใช้สลักเกลียว M3x30 เราใส่ล้อไว้บนเครื่องยนต์
เราแนบส่วนที่เหลือเข้ากับส่วนที่สองของแพลตฟอร์ม: กล้องเว็บ, เราเตอร์, ฮับ USB เราผูกสายไฟเข้าด้วยกันด้วยลวดเย็บกระดาษและจัดวางอย่างระมัดระวังเพื่อไม่ให้รบกวนองค์ประกอบอื่น ๆ

ซอฟต์แวร์

เฟิร์มแวร์สำหรับเราเตอร์ TP-Link 3020MR

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

เมื่อใช้บอร์ด อาร์ดูโน่ นาโน CH340G บนระบบ Windows จำเป็นต้องติดตั้งไดรเวอร์ CH341SER
บอร์ดจะต้องได้รับการยอมรับในระบบเป็น USB2.0 Serial

ก่อนที่จะอัปโหลดภาพร่าง เราจะตรวจสอบข้อผิดพลาดก่อน ในเมนู "ร่าง"เลือก "ตรวจสอบ/รวบรวม".
หากเกิดข้อผิดพลาดระหว่างการตรวจสอบ คอมไพเลอร์จะชี้ไปที่บรรทัดที่มีรหัสไม่ถูกต้อง หากไม่พบข้อผิดพลาดให้ไปที่เมนู "ร่าง"เลือก "โหลด".

ร่างสำหรับ Arduino Nano และ Arduino UNO

จำเป็นต้องมีไลบรารี CyberLib เพื่อให้ร่างทำงานได้

#รวม #define motors_init (D4_Out; D5_Out; D6_Out; D7_Out;) uint8_t ในไบต์; ความเร็ว uint8_t=255; การตั้งค่าเป็นโมฆะ () ( motors_init; D11_Out; D11_Low; RandomSeed (A6_Read); สำหรับ (uint8_t i = 0; i<12; i++) beep(70, random(100, 2000)); робота UART_Init(57600); wdt_enable (WDTO_500MS); } void loop() { if (UART_ReadByte(inByte)) { switch (inByte) { case "x": robot_stop(); break; case "W": robot_go(); break; case "D": robot_rotation_left(); break; case "A": robot_rotation_right(); break; case "S": robot_back(); break; } if(inByte>47 && ในไบต์<58) speed=(inByte-47)*25+5; } wdt_reset(); } void robot_go() { D4_Low; analogWrite(5, speed); analogWrite(6, speed); D7_Low; } void robot_back() { D4_High; analogWrite(5, 255-speed); analogWrite(6, 255-speed); D7_High; } void robot_stop() { D4_Low; analogWrite(5, 0); analogWrite(6, 0); D7_Low; } void robot_rotation_left() { D4_Low; analogWrite(5, speed); analogWrite(6, 255-speed); D7_High; } void robot_rotation_right() { D4_High; analogWrite(5, 255-speed); analogWrite(6, speed); D7_Low; }

ร่างสำหรับ Arduino Mega

#รวม #define motors_init (D4_Out; D5_Out; D6_Out; D7_Out;) #define robot_go (D4_Low; D5_High; D6_High; D7_Low;) #define robot_back (D4_High; D5_Low; D6_Low; D7_High;) #define robot_stop (D4_Low; D5_Low; D6_Low; D7_Low ;) #define robot_rotation_left (D4_Low; D5_High; D6_Low; D7_High;) #define robot_rotation_right (D4_High; D5_Low; D6_High; D7_Low;) uint8_t inByte; การตั้งค่าเป็นโมฆะ () ( motors_init; D11_Out; D11_Low; RandomSeed (analogRead (6)); Serial.begin (57600); wdt_enable (WDTO_500MS); ) void loop () ( if (Serial.available ()) ( inByte = Serial. อ่าน(); สวิตช์ (inByte) ( case "x": robot_stop; break; case "W": robot_go; break; case "D": robot_rotation_left; break; case "A": robot_rotation_right; break; case "S": robot_back; ) ) wdt_reset();
ซอร์สโค้ดที่นำมาจาก cyber-place.ru

บริการ

ยูทิลิตี้เทอร์มินัล

โมดูลสำหรับการทำงานกับคอนโซลจากเว็บเบราว์เซอร์

รายการคำสั่งที่ใช้บ่อยใน CyberWrt

อูนาเมะ -ก— เวอร์ชันเคอร์เนลลินุกซ์;
แมว /proc/cpuinfo- ข้อมูลเกี่ยวกับฮาร์ดแวร์
แมว /proc/meminfo- ข้อมูลเพิ่มเติมเกี่ยวกับ RAM ที่ถูกครอบครอง
ฟรี -ม— ข้อมูลเกี่ยวกับ RAM ที่ใช้แล้วและว่าง
ls /dev— แสดงอุปกรณ์ทั้งหมดในระบบ
รหัส— ข้อมูลสรุปเกี่ยวกับผู้ใช้ปัจจุบัน (เข้าสู่ระบบ, UID, GID)
ปล— กระบวนการที่โหลดทั้งหมด
วันที่- ดูวันที่/เวลา
ดีเอ็มเอสจี- ดาวน์โหลดไฟล์บันทึก
lsmod— รายการโมดูลที่โหลดเข้าสู่เคอร์เนล
เน็ตสแตท -rn- ตารางเส้นทาง
netstat -และ | grep ฟัง- รายการพอร์ตที่เปิดอยู่ทั้งหมด
netstat -tup— การเชื่อมต่ออินเทอร์เน็ตที่ใช้งานอยู่

fdisk -lข้อมูลเกี่ยวกับไดรฟ์ที่เชื่อมต่อทั้งหมด
ตึกๆ— ข้อมูล UUID เกี่ยวกับไดรฟ์ที่มีอยู่ในระบบ
เมานต์ /dev/sda1 /mnt— ติดตั้งพาร์ติชัน /dev/sda1 ไปยังจุดเมานต์ /mnt
เมานต์— ข้อมูลที่สมบูรณ์เกี่ยวกับอุปกรณ์ที่ติดตั้ง
จำนวน/เดือน— ถอนการติดตั้งพาร์ติชันจากจุดเมานต์ /mnt

ชัดเจน— การทำความสะอาดหน้าต่างเทอร์มินัล — สิ้นสุดเซสชั่น;
รหัสผ่าน— เปลี่ยนรหัสผ่านของผู้ใช้ปัจจุบัน

อัพเดต opkg– อัพเดตรายการแพ็คเกจ
อัปเกรด opkg– อัปเดตแพ็คเกจที่ติดตั้งทั้งหมด
ติดตั้งรายการ opkg แล้ว– แสดงรายการแพ็คเกจที่ติดตั้ง

ตรวจสอบประสิทธิภาพของเครื่องยนต์ในสภาพแวดล้อมการพัฒนา

ในเมนู "เครื่องมือ"เลือก "มอนิเตอร์พอร์ตอนุกรม"- ในบรรทัดเทอร์มินัลเราพิมพ์คำสั่งการเคลื่อนไหว:

เสียงสะท้อน x > /dev/ttyUSB0

หากทุกอย่างเชื่อมต่อและกำหนดค่าอย่างถูกต้องแล้วหลังจากกดปุ่ม "ส่ง"มอเตอร์ควรเริ่มหมุน

คุณสามารถหยุดการเคลื่อนไหวได้โดยใช้คำสั่ง:

เสียงสะท้อน W > /dev/ttyUSB0

ปัญหา

ความเข้ากันไม่ได้ของไมโครคอนโทรลเลอร์ Arduino Nano V3 CH340 กับเราเตอร์ TP-LINK TL-MR3020

วิธีแก้ปัญหาที่พบในฟอรัม:

  • การเชื่อมต่อตัวต้านทาน 100 โอห์มต่อพิน อสทและต่อไป +5V
  • ลดความเร็วในการเชื่อมต่อเป็น 9600
  • การถอดตัวเก็บประจุหรือการตัดร่องรอยบน Arduino
  • การเชื่อมต่อไมโครคอนโทรลเลอร์กับเราเตอร์ผ่านอินเทอร์เฟซ UART

ตามที่แสดงในทางปฏิบัติแล้ว ไม่มีวิธีใดข้างต้นที่ช่วยได้ หลังจากที่เปลี่ยนไมโครคอนโทรลเลอร์ด้วย Carduino Nano V7 แล้ว หุ่นยนต์ก็เริ่มทำงานผ่านเราเตอร์

ฉันใฝ่ฝันมานานแล้วว่าจะสร้างหุ่นยนต์ Wi-Fi ที่สามารถควบคุมจากระยะไกลได้ และในที่สุดก็ถึงวันที่ฉันสามารถควบคุมหุ่นยนต์ผ่านทางอินเทอร์เน็ต ดูและได้ยินทุกสิ่งที่เกิดขึ้นรอบตัวมัน
ขอเชิญผู้สนใจเลี้ยงแมวครับ

ส่วนประกอบต่อไปนี้ถูกใช้เพื่อสร้างหุ่นยนต์:

หุ่นยนต์ที่ฉันประกอบออกมาหน้าตาเป็นแบบนี้โดยไม่มีฝาครอบด้านบน

ตอนนี้ทุกอย่างเป็นไปตามลำดับ:

การประกอบแพลตฟอร์มหุ่นยนต์:

ตำแหน่งของส่วนประกอบบน เมนบอร์ด- ฉันติดตั้งเฉพาะ Arduino Nano, ไดรเวอร์มอเตอร์และตัวส่งสัญญาณเสียง HC:

เราเตอร์ wr703N ถูกติดไว้ที่ด้านล่างของแท่นหุ่นยนต์ด้วยเทปสองหน้า:

กล้องเว็บติดอยู่ที่มุมเฟอร์นิเจอร์ เข้ากับรูมาตรฐานของแท่นที่จัดไว้สำหรับเซอร์โวมอเตอร์:

CyberWrt เป็นเฟิร์มแวร์ที่สร้างขึ้นบนพื้นฐานของ OpenWrt และมีไว้สำหรับหุ่นยนต์ บ้านอัจฉริยะ และอุปกรณ์อื่นๆ ที่สร้างจากรุ่นยอดนิยมเป็นหลัก เราเตอร์ Tp-Link mr3020b Wr703N. CyberWrt มีปริมาณสูงสุดที่เป็นไปได้ ที่ว่างสำหรับการติดตั้งแพ็คเกจ - 1.25MB ตามค่าเริ่มต้น เว็บเซิร์ฟเวอร์จะถูกติดตั้ง และการดำเนินการทั้งหมดสามารถทำได้ผ่านเว็บอินเตอร์เฟสในตัว ทันทีหลังจากกระพริบ เราเตอร์จะพร้อมใช้งานบนเครือข่ายผ่านสายเคเบิลและ WiFi เป็นจุดเข้าใช้งาน ผ่านเว็บอินเตอร์เฟสคุณสามารถทำงานใน " บรรทัดคำสั่ง» - ผ่านทางเว็บเทอร์มินัลและเข้า ตัวจัดการไฟล์ซึ่งคุณสามารถแก้ไข ดาวน์โหลด ลบ สร้าง คัดลอกไฟล์ และอื่นๆ อีกมากมาย

หลังจากกระพริบเราเตอร์แล้วจะพร้อมใช้งานเป็นจุดเชื่อมต่อ WiFi ที่มีชื่อ "CyberBot" เราเชื่อมต่อและไปที่ หน้าแรกเราเตอร์ นี่คือลักษณะของเว็บอินเตอร์เฟสทันทีหลังจากติดตั้งเฟิร์มแวร์

ติดตั้งโมดูลไดรเวอร์ FTDI, ไดรเวอร์วิดีโอและ CyberBot-2

กระพริบคอนโทรลเลอร์ Arduino

โค้ดโปรแกรมหุ่นยนต์กลายเป็นเรื่องง่าย แต่ก็เพียงพอที่จะควบคุมหุ่นยนต์จากระยะไกลผ่านทาง เครือข่ายท้องถิ่นหรืออินเทอร์เน็ต
โค้ดนี้ได้รับการดัดแปลงสำหรับคอนโทรลเลอร์ Arduino ที่มี ATmega168/328 อยู่บนบอร์ด และใช้ไลบรารี CyberLib
ไลบรารีนี้ช่วยให้ได้รับประโยชน์สูงสุดจากคอนโทรลเลอร์และลดจำนวนโค้ดสุดท้าย
รหัสใช้ WDT เพื่อป้องกันไม่ให้หุ่นยนต์ค้าง
รหัสยังรองรับการควบคุมกล้องตามแกน X และ Y แต่ฉันไม่มีเซอร์โวฟรีและไม่สามารถใช้ฟังก์ชันนี้ได้:

รหัสสำหรับ Arduino

#รวม #รวม เซอร์โว มายเซอร์โว1; เซอร์โว มายเซอร์โว2; นานมาแล้วมิลลิส; http://cyber-place.ru/attachment.php?attachmentid=600&d=1389429469 uint8_t LedStep = 0; // เคาน์เตอร์ int ฉัน; light_stat บูลีน; uint8_t ในไบต์; ความเร็ว uint8_t=255; - ความเร็วสูงสุดโดยค่าเริ่มต้น #define init (D4_Out; D5_Out; D6_Out; D7_Out; D8_Out; D11_Out; D12_Out;) การตั้งค่าเป็นโมฆะ() ( myservo1.attach(9); // การเชื่อมต่อเซอร์โวเข้ากับพอร์ต myservo2.attach(10); // การเชื่อมต่อ เซอร์โวไปที่พอร์ต init; // เริ่มต้นพอร์ต D11_Low; // ลำโพงปิด RandomSeed (A6_Read); // รับฮอร์นค่าสุ่ม (); // เริ่มต้นพอร์ตสำหรับการสื่อสารกับ เราเตอร์ wdt_enable (WDTO_500MS) ) void loop() ( currentMillis ยาวที่ไม่ได้ลงนาม = millis(); if (LedStep == 0 && currentMillis - PreviousMillis > 500)( // หน่วงเวลา 0.5 วินาที PreviousMillis = currentMillis; LedStep = 1; ) ถ้า (LedStep == 1 && currentMillis - PreviousMillis > 500)( // หน่วงเวลา 0.5 วินาที PreviousMillis = currentMillis; LedStep = 2; ) ถ้า (LedStep == 2 && currentMillis - PreviousMillis > 500)( // หน่วงเวลา 0.5 วินาที LedStep = 0; ) if (UART_ReadByte(inByte)) //ถ้ามีอะไรมาถึง ( switch (inByte) // มาดูกันว่ามีคำสั่งอะไรบ้าง ( case "x": // Stop the robot robot_stop(); หยุดพัก;<58) speed=(inByte-47)*25+5; //принимаем команду и преобразуем в скорость } wdt_reset(); } void horn() { for(uint8_t i=0; i<12; i++) beep(70, random(100, 2000)); //звуковое оповещение } void robot_go() { D4_Low; analogWrite(5, speed); analogWrite(6, speed); D7_Low; } void robot_back() { D4_High; analogWrite(5, 255-speed); analogWrite(6, 255-speed); D7_High; } void robot_stop() { D4_Low; analogWrite(5, 0); analogWrite(6, 0); D7_Low; } void robot_rotation_left() { D4_Low; analogWrite(5, speed); analogWrite(6, 255-speed); D7_High; } void robot_rotation_right() { D4_High; analogWrite(5, 255-speed); analogWrite(6, speed); D7_Low; }

กรณี "W": // ก้าวไปข้างหน้า robot_go(); หยุดพัก;
กรณี "D": // หมุนไปทางซ้าย robot_rotation_left(); หยุดพัก;

กรณี "A": // หมุนไปทางขวา robot_rotation_right(); หยุดพัก;

กรณี "S": // เลื่อนไปข้างหลัง robot_back(); หยุดพัก;