Talaan ng mga Nilalaman:

Machine ng Pagpipili ng Bahagi ng CNC: 9 Mga Hakbang (na may Mga Larawan)
Machine ng Pagpipili ng Bahagi ng CNC: 9 Mga Hakbang (na may Mga Larawan)

Video: Machine ng Pagpipili ng Bahagi ng CNC: 9 Mga Hakbang (na may Mga Larawan)

Video: Machine ng Pagpipili ng Bahagi ng CNC: 9 Mga Hakbang (na may Mga Larawan)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Nobyembre
Anonim
Machine ng Pagpipili ng Bahagi ng CNC
Machine ng Pagpipili ng Bahagi ng CNC

Kung ikaw ay isang seryosong tagagawa tulad ng sa akin, malamang na mayroon kang hindi mabilang na mga resistors, capacitor, at iba't ibang mga elektronikong sangkap na nakahiga. Ngunit may isang pangunahing problema: Paano sinusubaybayan ng isa kung ano o ilan sa ilang bagay ang mayroon sila? Para sa isyung ito, lumikha ako ng isang makina ng CNC na nakakakuha ng impormasyon mula sa isang database ng MySQL na pagkatapos ay napupunta at kinukuha ang item na hiniling. Bilang karagdagan sa back-end ng database, gumawa ako ng isang front-end na webpage na nagbibigay-daan para sa mga gumagamit na mag-login at pagkatapos ay lumikha ng mga kategorya ng mga bahagi, magdagdag ng mga bagong bahagi, at baguhin ang dami ng mga bahagi. Sa ganitong paraan maaaring mai-account ang bawat solong item, tulad ng isang stock management system.

Mga Bahagi:

  • Arduino UNO at Genuino UNO
  • Mga Machine Screw: 8mm, 3mm, 4mm
  • MOSFET N-channel
  • Rectifier Diode 1N4001
  • Stepper Motor NEMA 17 x2
  • Driver DRV8825 para sa Stepper Motors x2
  • Kapasitor 100 µF x2
  • DFRobot Servo Gripper
  • DFRobot Timing Belt x2
  • DFRobot 5MM Timing Pulley x2
  • DFRobot Linear Bearing 6mmx12mm x2
  • DFRobot Ball Bearing 8mmx12mm

Hakbang 1: Teorya

Image
Image

Ang batayan ng sistemang ito ay upang subaybayan ang imbentaryo. Halimbawa, kung ang isang tao ay bibili ng 20 Arduino Uno boards madali nilang maidaragdag ang halagang iyon sa isang table sa database. Ang kategorya ay "Arduino", pangalan ng "Uno", at isang dami ng 20. Para sa maraming tao, ang may-ari ng bahaging iyon ay magiging username ng taong nagdagdag nito. Magsasama rin ang bahagi ng data tungkol sa lokasyon nito sa isang grid. Kailan man magbago ang halaga ng bahagi ay pipiliin ng makina ng CNC ang bahaging iyon at ibigay ito sa gumagamit.

Hakbang 2: Database

Database
Database
Database
Database

Kailangan ko ng isang nasa lahat ng lugar na database na maaaring ma-access ng parehong Python at PHP. Kailangan din itong madaling gamitin nang may maraming suporta, na ginagawang perpektong database server ang MySQL. Nagsimula ako sa pamamagitan ng pag-download ng installer ng MySQL mula sa https://dev.mysql.com/downloads/windows/installer/ at pagkatapos ay pinatakbo ito. Pinili kong i-install ang server (syempre), at pati na rin ang workbench, shell, at mga utility. Kapag pinili mo ang isang username at password siguraduhing tandaan ito, tulad ng parehong mga kredensyal na kinakailangan sa lahat ng mga file na PHP at script ng Python. Matapos simulan ang server paganahin ito upang tumakbo bilang isang proseso ng background sa gayon ito ay palaging magiging aktibo. Mula dito sa lahat ng bagay ay dapat na baybayin at sa eksaktong parehong pagkakasunud-sunod tulad ng mayroon ako nito. Susunod, lumikha ng isang bagong database (schema) na tinatawag na "mga bahagi". Pagkatapos ay idagdag ang mga sumusunod na talahanayan: "kategorya", "bahagi", at "mga gumagamit". Sa talahanayan ng mga kategorya idagdag ang mga sumusunod na haligi sa eksaktong pagkakasunud-sunod na ito: "id" -int (11), PK, AI; "pangalan" -varchar (45); "may-ari" - varchar (45).

Sa talahanayan ng mga bahagi idagdag ang mga sumusunod na haligi sa eksaktong pagkakasunud-sunod na ito: "id" -int (11), AI, PK; "kategorya" -varchar (45); "pangalan" -varchar (45); "dami" -int (11); "may-ari" -varchar (45); "locationX" -int (11); "locationY" -int (11);

Sa talahanayan ng mga gumagamit idagdag ang mga sumusunod na haligi sa eksaktong pagkakasunud-sunod na ito: "id" -int (11), AI, PK; "username" -varchar (45); "password" -varchar (128);

Hakbang 3: Pag-set up ng Apache

Pag-set up ng Apache
Pag-set up ng Apache
Pag-set up ng Apache
Pag-set up ng Apache
Pag-set up ng Apache
Pag-set up ng Apache

Ang mga webpage na aking nilikha ay gumagamit ng HTML, CSS, Javascript, at PHP. Magsimula sa pamamagitan ng pag-download ng pinakabagong bersyon ng apache mula sa https://www.apachelounge.com/download/ at i-unzip ito, ilipat ang folder sa direktoryo ng C: \. Susunod, mag-download ng PHP mula sa https://windows.php.net/download#php-7.2 at tiyaking ito ang bersyon ng Ligtas na Thread. I-unzip ito, palitan ang pangalan nito sa "PHP", at ilipat ito sa direktoryo ng C: \. Pagkatapos ay pumunta sa C: / Apache24 / conf / httpd.conf at i-edit ito. Idagdag ang mga sumusunod na linya sa ibaba mismo ng seksyon:

LoadModule php7_module C: /PHP/php7apache2_4.dll

DirectoryIndex index.html index.php

Application ng AddHandler / x-httpd-php.php

PHPIniDir "C: / PHP"

Pagkatapos ay subukan ang iyong server sa pamamagitan ng pagpapatakbo ng httpd.exe na matatagpuan sa folder ng bin. Tumungo sa "localhost /" sa iyong browser at tingnan kung ang pahina ng hello world ay lalabas. Kung gagawin ito, hurray, mayroon ka na ngayong isang lokal na webserver.

Hakbang 4: Pag-set up ng PHP

Pag-set up ng PHP
Pag-set up ng PHP
Pag-set up ng PHP
Pag-set up ng PHP

Upang mai-set up ang MySQL para sa PHP maraming bagay ang dapat gawin. Una, palitan ang pangalan ng "php.ini-Recommended" sa "php.ini" at pagkatapos ay buksan ito sa notepad. Tumungo sa seksyon ng mga extension at idagdag o i-unsment ang "extension = php_mysqli.dll" na hahayaan ang PHP na makipag-usap sa MySQL server. Ngayon i-restart ang httpd.exe at lumikha ng isang bagong file na tinatawag na "phptest.php" at ilagay sa file. Pumunta ngayon sa localhost / phptest.php at tingnan kung lalabas ang impormasyon ng iyong browser.

Hakbang 5: Pagdidisenyo ng Makina

Pagdidisenyo ng Makina
Pagdidisenyo ng Makina
Pagdidisenyo ng Makina
Pagdidisenyo ng Makina
Pagdidisenyo ng Makina
Pagdidisenyo ng Makina

Nagsimula ako sa pamamagitan ng paglikha ng ilang mga pangunahing bahagi sa Fusion 360: isang 6mm rod, linear tindig, at isang stepper motor. Pagkatapos ay binaybay ko ang dalawang pamalo sa kabuuan upang mabuo ang y axis, at naglagay din ng isang belt ng tiyempo sa paligid ng stepper motor at tindig. Nagdagdag din ako ng isang x axis, pati na rin. Pagkatapos ay nagsimula akong mag-print ng 3D ng iba't ibang mga bahagi at din ang router ay pinatuon ang dalawang mga panel sa gilid.

Hakbang 6: Paggawa ng Makina

Paggawa ng Makina
Paggawa ng Makina
Paggawa ng Makina
Paggawa ng Makina
Paggawa ng Makina
Paggawa ng Makina

Natapos akong dumaan sa maraming mga pag-ulit ng bawat bahagi, kaya kung may iba na kung bakit. Nagsimula ako sa pamamagitan ng pag-sanding ng bawat bahagi at pagkatapos ay pagbabarena ng bawat butas sa mga naka-print na bahagi ng 3D. Pagkatapos ay inilagay ko ang mga linear bearings sa mga butas at pinatakbo ang mga 6mm rods sa pamamagitan ng mga ito. Inilagay ko rin ang mga stepper motor sa kani-kanilang mga lokasyon pagkatapos na ikabit ang mga pulley sa kanilang mga shaft. Ang timing belt ay nakuha looped sa paligid ng bawat isa sa dalawang panig para sa parehong palakol. Maya-maya napagtanto ko na ang mahigpit na pagkakahawak ay magiging masyadong masalimuot, kaya't sa halip ay pumili ako ng isang electromagnet. Mayroon din akong kaunting tulong habang itinatayo ito, sa anyo ng isang pusa.

Hakbang 7: Arduino Code

Code ng Arduino
Code ng Arduino

Ang aking batayan para sa makina na ito ay ang GRBL. Ang pagsisimula ng code ay naglilista ng iba't ibang mga parameter, tulad ng distansya bawat pag-ikot, mga offset, at mga sakop. Ginamit ko ang library ng BasicStepperDriver upang makontrol ang mga driver ng stepper motor na DRV8825. Ang mga driver ng stepper ay nakatakda na gumamit ng 1/32 micro-stepping, pinapataas ang resolusyon. Kailan man "mag-boot up" ang makina dumadaan ito sa isang homing series kung saan ang bawat axis ay tumatakbo hanggang sa maabot nito ang isang limit switch. Pagkatapos ay gumagalaw ito batay sa offset sa isang itinakdang lokasyon at itinakda ang lokasyon sa 0, 0. Ngayon tuwing nakakatanggap ito ng isang command na ilipat sa pamamagitan ng serial lumilipat ito sa lokasyon ng grid.

Hakbang 8: Program sa Python

Pinili kong gamitin ang Flask bilang isang webserver na makakatanggap ng GET mga kahilingan mula sa pangunahing website. Ang mga kahilingan ay binubuo ng pangalan at kategorya ng bahagi. Matapos pangasiwaan ito ng Flask ang data ay ma-parse, pagkatapos ang MySQL server ay natanong upang malaman ang lokasyon ng bahagi. Pagkatapos ang python script ay nagpapadala ng isang utos sa Arduino, na tumutukoy kung saan ang bahagi.

Hakbang 9: Gamit ang Part Picker

Gamit ang Part picker
Gamit ang Part picker
Gamit ang Part picker
Gamit ang Part picker
Gamit ang Part picker
Gamit ang Part picker
Gamit ang Part picker
Gamit ang Part picker

Naibigay ko ang mga file ng website sa aking github repository: https://github.com/having11/cnc_part_picker_webpages Palitan ang mga nawawalang parameter sa mga PHP file para sa iyong tukoy na MySQL server. Ilagay ang mga file sa folder ng htdocs sa folder ng Apache. Patakbuhin lamang ang script ng python at pagkatapos ay kailan man nabago ang halaga ng bahagi ang machine ay pupunta sa lokasyon na iyon at makuha ito. Hanapin ang mga 3D print file dito at ang mga webpage file dito.

Inirerekumendang: