สารบัญ:

เครื่องหยิบชิ้นส่วน CNC: 9 ขั้นตอน (พร้อมรูปภาพ)
เครื่องหยิบชิ้นส่วน CNC: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องหยิบชิ้นส่วน CNC: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องหยิบชิ้นส่วน CNC: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: เครื่อง CNC ที่ทันสมัยที่สุดในโลก 8 2024, กรกฎาคม
Anonim
เครื่องหยิบชิ้นส่วน CNC
เครื่องหยิบชิ้นส่วน CNC

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

ส่วนประกอบ:

  • Arduino UNO & Genuino UNO
  • สกรูเครื่อง: 8mm, 3mm, 4mm
  • MOSFET N-channel
  • วงจรเรียงกระแสไดโอด 1N4001
  • สเต็ปเปอร์มอเตอร์ NEMA 17 x2
  • ไดรเวอร์ DRV8825 สำหรับสเต็ปเปอร์มอเตอร์ x2
  • ตัวเก็บประจุ 100 µF x2
  • DFRobot Servo กริปเปอร์
  • DFRobot Timing Belt x2
  • DFRobot 5MM Timing Pulley x2
  • DFRobot ลิเนียร์แบริ่ง 6mmx12mm x2
  • DFRobot ลูกปืน 8mmx12mm

ขั้นตอนที่ 1: ทฤษฎี

Image
Image

พื้นฐานของระบบนี้คือการติดตามสินค้าคงคลัง ตัวอย่างเช่น ถ้ามีคนซื้อบอร์ด Arduino Uno จำนวน 20 บอร์ด พวกเขาสามารถเพิ่มจำนวนนั้นลงในตารางฐานข้อมูลได้อย่างง่ายดาย หมวดหมู่จะเป็น "Arduino" ชื่อของ "Uno" และจำนวน 20 สำหรับหลาย ๆ คน เจ้าของส่วนนั้นจะเป็นชื่อผู้ใช้ของบุคคลที่เพิ่มเข้าไป ส่วนนี้จะรวมข้อมูลเกี่ยวกับตำแหน่งบนกริดด้วย เมื่อใดก็ตามที่จำนวนชิ้นส่วนเปลี่ยนแปลง เครื่อง CNC จะเลือกชิ้นส่วนนั้นและมอบให้กับผู้ใช้

ขั้นตอนที่ 2: ฐานข้อมูล

ฐานข้อมูล
ฐานข้อมูล
ฐานข้อมูล
ฐานข้อมูล

ฉันต้องการฐานข้อมูลที่แพร่หลายซึ่งสามารถเข้าถึงได้โดยทั้ง Python และ PHP นอกจากนี้ยังต้องใช้งานง่ายด้วยการสนับสนุนมากมาย ทำให้ MySQL เป็นเซิร์ฟเวอร์ฐานข้อมูลที่สมบูรณ์แบบ ฉันเริ่มต้นด้วยการดาวน์โหลดตัวติดตั้ง mysql จาก https://dev.mysql.com/downloads/windows/installer/ แล้วจึงเรียกใช้ ฉันเลือกที่จะติดตั้งเซิร์ฟเวอร์ (แน่นอน) รวมถึงโต๊ะทำงาน เชลล์ และยูทิลิตี้ด้วย เมื่อคุณเลือกชื่อผู้ใช้และรหัสผ่าน อย่าลืมจำไว้ เนื่องจากจำเป็นต้องใช้ข้อมูลประจำตัวเดียวกันนี้ในไฟล์ PHP และสคริปต์ Python ทั้งหมด หลังจากเริ่มต้นเซิร์ฟเวอร์แล้ว ให้เปิดใช้งานเป็นกระบวนการพื้นหลัง เพื่อให้เซิร์ฟเวอร์ทำงานอยู่เสมอ จากนี้ไปในทุกสิ่งจะต้องสะกดและในลำดับเดียวกันกับที่ฉันมีอยู่ ถัดไป สร้างฐานข้อมูลใหม่ (สคีมา) ที่เรียกว่า "ส่วนประกอบ" จากนั้นเพิ่มตารางต่อไปนี้: "หมวดหมู่", "ชิ้นส่วน" และ "ผู้ใช้" ในตารางประเภทให้เพิ่มคอลัมน์ต่อไปนี้ในลำดับที่แน่นอนนี้: "id" -int(11), PK, AI; "ชื่อ" -varchar(45); "เจ้าของ" - varchar(45)

ในตารางชิ้นส่วน เพิ่มคอลัมน์ต่อไปนี้ในลำดับที่แน่นอนนี้: "id" -int(11), AI, PK; "หมวดหมู่" -varchar(45); "ชื่อ" -varchar(45); "ปริมาณ" -int(11); "เจ้าของ" -varchar(45); "locationX" -int(11); "locationY" -int(11);

ในตารางผู้ใช้ เพิ่มคอลัมน์ต่อไปนี้ในลำดับที่แน่นอนนี้: "id" -int(11), AI, PK; "ชื่อผู้ใช้" -varchar(45); "รหัสผ่าน" -varchar(128);

ขั้นตอนที่ 3: การตั้งค่า Apache

การตั้งค่า Apache
การตั้งค่า Apache
การตั้งค่า Apache
การตั้งค่า Apache
การตั้งค่า Apache
การตั้งค่า Apache

หน้าเว็บที่ฉันสร้างใช้ HTML, CSS, Javascript และ PHP เริ่มต้นด้วยการดาวน์โหลด apache เวอร์ชันล่าสุดจาก https://www.apachelounge.com/download/ และแตกไฟล์ ย้ายโฟลเดอร์ไปที่ไดเร็กทอรี C:\ ถัดไป ดาวน์โหลด PHP จาก https://windows.php.net/download#php-7.2 และตรวจสอบว่าเป็นเวอร์ชัน Thread Safe แตกไฟล์ เปลี่ยนชื่อเป็น "PHP" แล้วย้ายไปยังไดเร็กทอรี C:\ จากนั้นเข้าไปที่ C:\Apache24\conf\httpd.conf แล้วแก้ไข เพิ่มบรรทัดต่อไปนี้ด้านล่างส่วน:

LoadModule php7_module C:/PHP/php7apache2_4.dll

DirectoryIndex index.html index.php

แอปพลิเคชัน AddHandler/x-httpd-php.php

PHPIniDir "C:/PHP"

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

ขั้นตอนที่ 4: การตั้งค่า PHP

การตั้งค่า PHP
การตั้งค่า PHP
การตั้งค่า PHP
การตั้งค่า PHP

ในการตั้งค่า MySQL สำหรับ PHP ต้องทำหลายสิ่งหลายอย่าง ขั้นแรก เปลี่ยนชื่อ "php.ini-recommended" เป็น "php.ini" แล้วเปิดใน notepad ไปที่ส่วนส่วนขยายและเพิ่มหรือยกเลิกการใส่เครื่องหมาย "extension=php_mysqli.dll" ซึ่งจะทำให้ PHP สื่อสารกับเซิร์ฟเวอร์ MySQL ตอนนี้รีสตาร์ท httpd.exe และสร้างไฟล์ใหม่ชื่อ "phptest.php" แล้วใส่ลงในไฟล์ ไปที่ localhost/phptest.php และดูว่าข้อมูลเบราว์เซอร์ของคุณปรากฏขึ้นหรือไม่

ขั้นตอนที่ 5: การออกแบบเครื่องจักร

การออกแบบเครื่อง
การออกแบบเครื่อง
การออกแบบเครื่อง
การออกแบบเครื่อง
การออกแบบเครื่อง
การออกแบบเครื่อง

ฉันเริ่มต้นด้วยการสร้างชิ้นส่วนพื้นฐานใน Fusion 360: แกน 6 มม. ตลับลูกปืนเชิงเส้น และสเต็ปเปอร์มอเตอร์ จากนั้นฉันก็ขยายสองแท่งข้ามเพื่อสร้างแกน y และใส่เข็มขัดเวลารอบสเต็ปเปอร์มอเตอร์และตลับลูกปืนด้วย ฉันยังเพิ่มแกน x ด้วย จากนั้นฉันก็เริ่มพิมพ์ 3D ชิ้นส่วนต่างๆ และ CNC กำหนดเส้นทางสองแผงด้านข้าง

ขั้นตอนที่ 6: การสร้างเครื่องจักร

การทำเครื่อง
การทำเครื่อง
การทำเครื่อง
การทำเครื่อง
การทำเครื่อง
การทำเครื่อง

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

ขั้นตอนที่ 7: รหัส Arduino

รหัส Arduino
รหัส Arduino

พื้นฐานของฉันสำหรับเครื่องนี้คือ GRBL จุดเริ่มต้นของโค้ดแสดงรายการพารามิเตอร์ต่างๆ เช่น ระยะทางต่อการหมุน ออฟเซ็ต และขอบเขต ฉันใช้ไลบรารี BasicStepperDriver เพื่อควบคุมไดรเวอร์สเต็ปเปอร์มอเตอร์ DRV8825 ไดรเวอร์ stepper ถูกตั้งค่าให้ใช้ 1/32 micro-stepping เพื่อเพิ่มความละเอียด เมื่อใดก็ตามที่เครื่อง "บูทเครื่อง" เครื่องจะผ่านลำดับกลับบ้านโดยที่แต่ละแกนจะก้าวไปจนกระทั่งถึงลิมิตสวิตช์ จากนั้นจะย้ายตามออฟเซ็ตไปยังตำแหน่งที่ตั้งไว้และตั้งค่าตำแหน่งเป็น 0, 0 ตอนนี้เมื่อใดก็ตามที่ได้รับคำสั่งย้ายผ่านอนุกรมจะย้ายไปยังตำแหน่งกริดนั้น

ขั้นตอนที่ 8: โปรแกรม Python

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

ขั้นตอนที่ 9: การใช้เครื่องมือเลือกชิ้นส่วน

การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน
การใช้เครื่องมือเลือกชิ้นส่วน

ฉันได้ให้ไฟล์เว็บไซต์ในที่เก็บ github ของฉัน: https://github.com/having11/cnc_part_picker_webpages แทนที่พารามิเตอร์ที่ขาดหายไปในไฟล์ PHP สำหรับเซิร์ฟเวอร์ MySQL เฉพาะของคุณ ใส่ไฟล์ลงในโฟลเดอร์ htdocs ในโฟลเดอร์ Apache เพียงเรียกใช้สคริปต์ python จากนั้นเมื่อใดก็ตามที่มีการเปลี่ยนแปลงจำนวนชิ้นส่วน เครื่องจะไปยังตำแหน่งนั้นและรับมัน ค้นหาไฟล์การพิมพ์ 3 มิติที่นี่และไฟล์หน้าเว็บที่นี่

แนะนำ: