# Hệ thống Điện > Break Out Board, Controller >  Test Raspberry PI 2 Chạy Linuxcnc (Machinekit).

## katum573

Tìm hoài không biết post chỗ nào nếu sai chỗ nhờ Admin move giùm, thank.

Tình hình thời gian này trời mưa quá không làm máy được với lại cũng rảnh rỗi nên nghiên cứu linuxcnc thử.

Đầu tiên là tính thử với board BeagleBone Black ghóp tiền hoài vẫn không đủ (do rảnh rỗi nhiều) mà ngân sách không được lấy (buồn). sẵn nhà còn board Raspberry PI2 nên lấy ra ngâm cứu.

Board Raspberry Pi 2
OS Raspbian (Jessie).
kernel RT-PREEMPT realtime kernel
install link : Debian Jessie on arm7 (RPi2).
http://www.machinekit.io/docs/gettin...ling-packages/

Driver Step : RKD514L-A


Step 5 phase Quinstep.


GPIO direct step/dir driver.
Pin 29 GPIO5 -> X step
Pin 31 GPIO6 -> X Dir
Pin 32 GPIO12 -> Y Step
Pin 33 GPIO13 -> Y Dir
Pin 35 GPIO19 -> Z Step
Pin 37 GPIO26 -> Z dir

Do chân ra của Raspberry là 3v3 nên chạy chưa ngon lắm để vài hôm nữa làm cái board đệm test tiếp.

----------

biết tuốt, Bongmayquathem, CBNN, dangduc, Ga con, h-d, Haoquang_90, huanpt, Minh Phi Nguyen, Nam CNC, nhatson, secondhand, tcm, Tuanlm

----------


## Bongmayquathem

hay quá. Bác có thể hướng dẫn setup trên linuxcnc đựoc ko ạ. Tại e thấy lúc đầu vào linuxcnc nó chỉ cho chọn vài loại card nó hỗ trợ thôi, thông dụng là LPT.

----------


## nhatson

> Tìm hoài không biết post chỗ nào nếu sai chỗ nhờ Admin move giùm, thank.
> 
> Tình hình thời gian này trời mưa quá không làm máy được với lại cũng rảnh rỗi nên nghiên cứu linuxcnc thử.
> 
> Đầu tiên là tính thử với board BeagleBone Black ghóp tiền hoài vẫn không đủ (do rảnh rỗi nhiều) mà ngân sách không được lấy (buồn). sẵn nhà còn board Raspberry PI2 nên lấy ra ngâm cứu.
> 
> Board Raspberry Pi 2
> OS Raspbian (Jessie).
> kernel RT-PREEMPT realtime kernel
> ...


dùng gpio có đệm cũng sẽ jitter nên chắc ko ngon, đổi qua dùng cổng spi với PLUTO hay mesa 7i90
mà em nhớ machinekit có làm mạch giao tiếp chạy spi với pic32 thì phải

----------


## katum573

> dùng gpio có đệm cũng sẽ jitter nên chắc ko ngon, đổi qua dùng cổng spi với PLUTO hay mesa 7i90
> mà em nhớ machinekit có làm mạch giao tiếp chạy spi với pic32 thì phải


Do mình nghiên cứu là chính và dùng những board thông dụng với linh kiện có sẵn tại VN nên PLUTO hay mesa mình không tính dùng vì phải phụ thuộc phần cứng của họ PIC32 cũng có board cho Raspberry nhưng mình lại không biết về PIC32 với lại khi PIC32 cũng xuất tín hiệu điều khiển qua GPIO thôi. mình tính làm board đệm vì GPIO chỉ ra 3v3 mà driver lại cần 5v trên machinekit có 1 số board đệm cho BeagleBone có schematic mình cũng nghiên cứu vài cái thấy cũng hay lắm http://blog.machinekit.io/p/hardware-capes.html




> hay quá. Bác có thể hướng dẫn setup trên linuxcnc đựoc ko ạ. Tại e thấy lúc đầu vào linuxcnc nó chỉ cho chọn vài loại card nó hỗ trợ thôi, thông dụng là LPT.


linuxcnc mình thấy driver hỗ trợ cho các board cũng không nhiều lắm mình chỉ nghiên cứu trên 2 board là BeagleBone và Raspberry thôi. để mai nếu rảnh thì mình sẽ hướng làm về con Raspberry này.

----------

CKD

----------


## nhatson

> Do mình nghiên cứu là chính và dùng những board thông dụng với linh kiện có sẵn tại VN nên PLUTO hay mesa mình không tính dùng vì phải phụ thuộc phần cứng của họ PIC32 cũng có board cho Raspberry nhưng mình lại không biết về PIC32 với lại khi PIC32 cũng xuất tín hiệu điều khiển qua GPIO thôi. mình tính làm board đệm vì GPIO chỉ ra 3v3 mà driver lại cần 5v trên machinekit có 1 số board đệm cho BeagleBone có schematic mình cũng nghiên cứu vài cái thấy cũng hay lắm http://blog.machinekit.io/p/hardware-capes.html
> 
> 
> linuxcnc mình thấy driver hỗ trợ cho các board cũng không nhiều lắm mình chỉ nghiên cứu trên 2 board là BeagleBone và Raspberry thôi. để mai nếu rảnh thì mình sẽ hướng làm về con Raspberry này.


mesa thì card cũng ko rẻ
pluto có thể dùng với bất cứ fpga nào, bác làm 1 bài hd cái linuxcnc tren rpi 3 được ko, em tèo ở cổ chảy RT kenel, sau khi cài thi ko thể khởi động được RP2 giờ ko dễ để mua và chậm nữa
https://github.com/tinkercnc/spi-fpga-driver

----------


## katum573

> mesa thì card cũng ko rẻ
> pluto có thể dùng với bất cứ fpga nào, bác làm 1 bài hd cái linuxcnc tren rpi 3 được ko, em tèo ở cổ chảy RT kenel, sau khi cài thi ko thể khởi động được RP2 giờ ko dễ để mua và chậm nữa
> https://github.com/tinkercnc/spi-fpga-driver


fpga thì mình chua nghiên cứu bao giờ, rpi 3 nếu bác cài kernel giống trên machinekit hướng dẫn thì thay dòng  bcm2709-rpi-2-b.dtb thành bcm2710-rpi-3-b.dtb thử xem có chạy được không, do mình không có RP3 để test.

sudo -s
apt-get install linux-image-rpi2-rt
cd /boot
echo kernel=$(ls kernel_rt*.img) >> config.txt
echo device_tree=dtbs_rt/bcm2709-rpi-2-b.dtb >> config.txt

sudo -s
apt-get install linux-image-rpi2-rt
cd /boot
echo kernel=$(ls kernel_rt*.img) >> config.txt
echo device_tree=dtbs_rt/bcm2710-rpi-3-b.dtb >> config.txt

nếu bác không sửa file config.txt  được trên RPI thì có thể sửa trên windows cũng đựoc \boot\config.txt đến dòng cuối cùng bác thấy dòng này *device_tree=dtbs_rt/bcm2709-rpi-2-b.dtb* thì đổi thành *device_tree=dtbs_rt/bcm2710-rpi-3-b.dtb*

----------

Bongmayquathem, CKD, dangduc, nhatson, secondhand

----------


## CKD

Cụ katum573 có vẻ rành về lĩnh nhỉ.
Hy vọng được chia sẻ nhiều hơn về linux cnc. Thấy nó có nhiều cái hay, nhất là có thể can thiệp vào core xử lý để vận hành với rất nhiều mô hình máy khác nhau. Mà mình thì mù tịt linux

----------


## katum573

> Cụ katum573 có vẻ rành về lĩnh nhỉ.
> Hy vọng được chia sẻ nhiều hơn về linux cnc. Thấy nó có nhiều cái hay, nhất là có thể can thiệp vào core xử lý để vận hành với rất nhiều mô hình máy khác nhau. Mà mình thì mù tịt linux


Mình thì không rành về linuxcnc lắm vì chỉ mới nghiên cứu có 2 tuần thui, nhưng linux OS thì cũng tạm dùng. bác đừng nghĩ linux nó khó nên không dám thử vì trên phương diện người dùng giao diện của nó bây giờ cũng tương đương với windows thui, nó chỉ khó ở các dòng lệnh mà các dòng lệnh này người dùng bình thường ít khi dùng.
Để can thiệp vào core của linux nó phức tạp lắm vì phải hiểu về quy tắc hoạt động của hệ điều hành, cách quản lý các tác vụ của HĐH, quản lý tài nguyên của phần cứng nữa .v.v. cái này rất nhức đầu, nên cần cả 1 tập thể mới làm được.

Linuxcnc thì chỉ là 1 ứng dụng người dùng bình thường nó không liên quan gì tới core của linux, trong linuxcnc có 1 lớp driver gọi là HAL driver( Hardware Abstraction Layer). lớp này sẽ giao tiếp với realtime kernel (mình chỉ nhớ được 2 loại Xenomai và rt-preempt) để truy xuất phần cứng, trong linux mọi truy xuất phần cứng đều phải qua kernel không được phép truy cập trực tiếp như trong windows và hành động này phải được cấp quyền bởi root (cái này thì linuxcnc tự lo rồi). vậy để vận hành nhiều mô hình khác nhau chạy trên linuxcnc nếu phần cứng do bác thiết kế thì bác phải viết 2 driver 1 cho kernel của linux và 1 là HAL driver cho linuxcnc.

Sorry các bác tính làm hướng dẫn config linuxcnc nhưng do mới nghiên cứu với lại tài liệu từ nhiều nguồn nên không thể gom lại được, để mình test cách config đơn giản nhất rồi làm hướng dẫn sau, chắc cũng mất vài ngày.

----------

CKD, doanthienthinh, Nam CNC, nhatson, secondhand, tcm

----------


## katum573

Mình mới đo xung ra của con raspberry xong, xung mầu xanh là từ GPIO của RPI, xung mầu vàng là từ con 74LS244, các bác xem thử giùm mình liệu với xung này jitter có xảy ra không.
config chạy là 400 xung 1mm vi bước là 4 quay video lúc đang chạy file. mình test trên motor thì thấy chạy ngon hơn khi chưa có con 74LS244.

----------

thuhanoi

----------


## nhatson

> Mình mới đo xung ra của con raspberry xong, xung mầu xanh là từ GPIO của RPI, xung mầu vàng là từ con 74LS244, các bác xem thử giùm mình liệu với xung này jitter có xảy ra không.
> config chạy là 400 xung 1mm vi bước là 4 quay video lúc đang chạy file. mình test trên motor thì thấy chạy ngon hơn khi chưa có con 74LS244.


muốn xem jitter ko thì phải để DIV time lớn, chay xung liên tục nếu các xung ổn định là ít jitter, còn các xúng co dan liên tục thì la jitter lớn mà em sure là lớn

ví dụ với mach3

----------

huynhbacan, katum573, Tuanlm

----------


## katum573

Hướng dẫn cài linuxcnc trên Raspberry PI 2

Cài Rasbian trên RPI2 thì các bác có thể tìm trên mạng trang chủ của Rasberry.
https://www.raspberrypi.org/document...ages/README.md
Cài Machinekit thì theo link sau : 
http://www.machinekit.io/docs/gettin...ling-packages/

Config server chứa các gói của Machinekit cho apt. (màu xanh là dòng lệnh các bác có thể copy paste trực tiếp vào cửa sổ console)

mở console ta nhập vào :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 43DDF224 

sudo sh -c \ 
"echo 'deb http://deb.machinekit.io/debian raspbian main' > \
 /etc/apt/sources.list.d/machinekit.list" 

(chú ý : 3 dòng trên là 1 dòng lệnh)

sudo apt-get update

Cài realtime kernel cho RPI2 (RT-PREEMPT  realtime kernel).

sudo apt-get update (có thể bỏ qua bước này vì trên đã chạy rồi)
update bootloader cho RPI

sudo apt-get install -y raspberrypi-bootloader

install kernel.

sudo -s 
apt-get install linux-image-rpi2-rt
cd /boot echo kernel=$(ls kernel_rt*.img) >> config.txt

RPI2 thì chạy dòng này 
echo device_tree=dtbs_rt/bcm2709-rpi-2-b.dtb >> config.txt

RPI3
echo device_tree=dtbs_rt/bcm2710-rpi-3-b.dtb >> config.txt
(chưa test thử bác nào thử rồi thì cho ý kiến).

echo dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0 dwc_otg.nak_holdoff=0 >> cmdline.txt

Thoát ra khỏi root 
exit

install machinekit vì ta dùng kernel rt-preempt nên cài gói này  machinekit-rt-preempt.

sudo apt-get install machinekit-rt-preempt machinekit-dev

install manual.

sudo apt-get install machinekit-manual-pages (gói này mình cài không được và cũng không quan trọng lắm).

khởi động lại hệ thống để chạy trên kernel rt.

Do mình mới nghiên cứu linuxcnc chỉ khoảng 10 ngày thôi, với lại mình không phải là dân cơ khí hoặc chuyên về cnc nên hiểu biết còn hạn chế mình biết cái gì thì share cái đó nên các bác thông cảm và góp ý thêm nhé.

Mình chỉ nghiên cứu và có mottor step nên chỉ nói về step.

Để tạo config riêng cho hệ thống của mình ta có nhiều cách tạo như sau.
- Machinekit → cài đặt những hệ thống được cài đặt sẵn (vi dụ: như sim chứa những hệ thống chạy ảo, by_interface chứa những cài đặt sãn của LPT, mesa pluto.., ARM thì chứa config của những board đệm cho BeagleBone..v..v).
- Machinekit Pncconf wizard → cài đặt config cho servo.
- Machinekit Stepconf wizard → cài đặt config cho step.
Đầu tiên ta vào  Machinekit Stepconf wizard.


nhấn start ra bảng sau.

mấy dòng trên chác các bác cũng hiểu rồi. nhấn tiếp forward

Ở đây ta có :  
Machine name : tên máy cần đặt (VD: mình đặt là katum-mill thì thư mục chứa config và tiêu đề của máy đều có tên này).
Configuration directory : đường dẫn thư mục chứa file config máy. thông thường là /home/<tên người dùng (mặc định là pi)>/machinekit/config/<tên máy>, sau này khi sửa file để config lại máy ta lại vào thư mục này.
Axis configuration : chọn số trục mà máy hỗ trợ.
Reset default machine unit : chọn hệ inch hay mm.
Driver type : chon kiểu driver cho step, nếu không được hỗ trợ thì chọn Other.
Step time : thời gian xung step kích chạy tính băng ns .
Step Space : thời gian nghỉ giữa 2 xung tính bằng ns .

Các bác nhìn hình dưới thời gian ON là Step time OFF là step Space 

Direction hold : thời gian để step đảo chiều quay.
Direction setup : thời gian để step đảo chiều quay.
nhìn hình dưới ngay chỗ gạch đỏ DIR input, 10s sau khi kết thúc xung CW là Direction hold, 10s sau là direction setup.


one parport, Two parport : chọn 1 hay 2 cổng LPT (mặc định wizard chỉ hỗ trợ LPT nếu dùng cho board khác ta sẽ sửa file config sau).
Base Period Maimum Jitter : mình vẫn chưa hiểu rõ ý nghĩa lắm, nói nôm na hệ thống sẽ dựa trên thông số này để tính tốc độ phát xung cho step.(thông số này chỉ cao nhât là 50000ns không phù hợp với RPI ta sẽ chỉnh lại trong file sau).
nhấn tiếp forward.

Cài đặt cổng LPT ta cứ để như vậy sẽ sửa lại trong file config sau nhấn forward.


Cài thông số cho trục X :
Motor steps per revolution : số xung để step quay hết 1 vòng ở full step.
Driver Microstepping : vi bước của driver (đặt vi bước bao nhiêu thì đặt vào đây).
Pulley teeth : tỉ số của hộp số hay pulley .
Leadscrew pitch : bước răng visme.
Maximum Velocity và Maximum Acceleration : 2 thông số này các bác nào rành thì cho ý kiến giùm nhé (tìm ở đâu) trong này chỉ nói mình test rồi nhập vào.  
Home location : đặt vị trí home.
Table travel : khoảng cách di chuyển của trục X.
Time to accelerate to max speed và Distance to accelerate to max speed : 2 thông số này phụ thuộc vào gia tốc và vận tốc được cài đặt bên trên.
Pulse rate at max speed : tốc độ phát xung tối đa.
Axis Scale : số bước để di chuyển 1mm.

Cài đặt cho trục Y và Z cũng giống như trên.

Cài đặt cho spindle.
Nhấn foward → chọn Done xuất hiện bảng thông báo có lưu file không chọn yes.

Xong phần cài đặt bây giờ tới phần sửa file để chạy trên raspberry.

----------

Bongmayquathem, CBNN, CKD, dangduc, Diyodira, hminhtq, huanpt, minhdt_cdt10, nhatson, ppgas, secondhand, thuhanoi, truongkiet

----------


## katum573

Xong phần cài đặt bây giờ tới phần sửa file để chạy trên raspberry.


Sau khi cài đặt xong ta mở file manager vào thư mục /home/pi/machinekit/configs/<tên máy vừa đặt>
ở đây có 6 file trở lên 

custom.hal những phần cài đặt thêm vào và được load sau khi giao diện đã load xong sẽ được cài đặt trong file này, custom_postgui.hal  là file cài đặt giao diện thêm vào.
Ở đây ta chỉ quan tâm tới 2 file là <tên máy vừa đặt>.in và <tên máy vừa đặt>.hal, file .ini là file config máy và file .hal là file cài đặt driver và cấu hình máy. để sửa những file này mình đề nghị dùng chương trình geany vì nó dễ theo dõi các mục hơn, click chuột phải vào file và chọn geany.

Các bác tham khảo config file .ini ở đây http://linuxcnc.org/docs/html/config/ini-config.html

Ở đây mình chỉ nói phần thay đổi thôi còn các thông số khác các bác tham khảo link trên.

[RS274NGC]
PARAMETER_FILE = machinekit.var

các bác thêm như sau

[RS274NGC]
PARAMETER_FILE = machinekit.var
USER_M_PATH           = ../../nc_files/mfiles
SUBROUTINE_PATH       = /home/pi/machinekit/nc_files/ngcgui_lib:/home/pi/machinekit/nc_files/gcmc_lib:/home/pi/machinekit/nc_files/ngcgui_lib/utilitysubs

phần này là nơi chứa các file thư viện hỗ trợ GCODE.

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 56000
SERVO_PERIOD = 1000000

BASE_PERIOD là thời gian phát xung step xung này phụ thuộc vào tốc độ đáp ứng của CPU để lấy được giá trị này ta vào cnc → latency test, 

mở latency test lên ta để nó chạy khoảng hơn 5 phút cho đến khi giá trị trong vùng khoanh đỏ ổn định là được, trong lúc test ta mở nhiều chương trình lên để CPU chạy nhiều tác vụ thì giá trị này mới chính xác được. ở đây ta thu được giá trị 128125 ta làm tròn là 130000 hoặc nhập luôn giá trị đó vào BASE_PERIOD cũng được. sửa thành : 

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 130000
SERVO_PERIOD = 1000000


[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.50
MAX_VELOCITY = 10.00

thành 

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.50
MAX_VELOCITY = 10.00
# thêm 2 dòng này
NO_FORCE_HOMING = 1
POSITION_FILE     = katum-cnc-pos.txt
(tên file gì cũng được sau khi chạy máy sẽ tạo ra file này).

Các mục AXIS_0 AXIS_1 và AXIS_2 là cấu hình 3 trục xyz.

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 400.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 250.0
HOME_OFFSET = 0.0

thêm HOME_IGNORE_LIMITS = yes vào đoạn cuối của AXIS_0 
nếu MIN_LIMIT = -0.001 có giá trị dấu trừ đằng trước thì sửa nó về 0

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 400.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = 0.0
MAX_LIMIT = 250.0
HOME_OFFSET = 0.0

HOME_IGNORE_LIMITS = yes

2 trục kia cấu hình như trên riêng trục z thì MIN_LIMIT phải có giá trị là - , 

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
HOME_IGNORE_LIMITS = yes
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 400.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -200.0
MAX_LIMIT = 0.0
HOME_OFFSET = 0.0

2 thông số này MIN_LIMIT = 0.0 MAX_LIMIT = 250.0 ở các trục là giá trị giới hạn của các trục nhé.

lưu lại file.ini
 giờ sửa file .hal
tìm tới dòng này khoảng dòng 7 hoặc 8
loadrt hal_parport cfg="0 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0

dòng loadrt hal_parport cfg="0 out" là báo cho HAL load driver khi mặc định là dùng cho LPT hal_parport là tên của driver ta thay tên driver của RPI vào đây cfg=”0 out” là cổng xuất tín hiệu.
đầu tiên ta phải xác định chân xuất tín hiệu cho 3 trục, mỗi trục có 2 chân step và dir như vậy ta cần 6 chân ra cho driver step.

 RPI 2 và 3 quy định thứ tự 26 chân ra như sau ta ghi ra giấy cho dễ tính.
// Raspberry2/3:
rpi2_gpios[] = {2, 3, 4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 21, 23, 24, 25, 26, 27 };
rpi2_pins[] =  {3, 5, 7, 29, 31, 26, 24, 21, 19, 23, 32, 33,  8, 10, 36, 11, 12, 35, 38, 15, 40, 16, 18, 22, 37, 13 };



để xuất tín hiệu ra chân nào ta cần khai báo chân đó là 1. mình chọn 6 chân ra là 29, 31, 32, 33, 35, 37. ta làm như sau.

kiếm 1 cái máy tính có thể nhập được 32 số nhị phân vào.
ở đây chân 13 là bit cao nhất chân số 3 là bit thấp nhất 01000000100000110000011000

ta thu được là 16911384
ta đồi loadrt hal_parport cfg="0 out" thành
loadrt hal_gpio dir=16911384 (hal_gpio là file driver của GPIO RPI).  dir=16911384 khai báo chân xuất của GPIO.
dòng setp parport.0.reset-time 5000 dòng này ta xoá bỏ.
loadrt stepgen step_type=0,0,0 dòng này là kiểu xuất xung cho step theo kiểu step/dir ta để nguyên.

sau khi sửa ta được 
loadrt hal_gpio dir=16911384
loadrt stepgen step_type=0,0,0

tìm trong file tất cả các chữ parport.0 thay bằng  hal_gpio 
kiếm dòng này addf parport.0.reset base-thread xoá bỏ.

kéo xuồng tới đoạn này ta đặt chân xuất cho cá trục.

net estop-out       => parport.0.pin-01-out
net xstep           => parport.0.pin-02-out
net xdir            => parport.0.pin-03-out
net ystep           => parport.0.pin-04-out
net ydir            => parport.0.pin-05-out
net zstep           => parport.0.pin-06-out
net zdir            => parport.0.pin-07-out
net astep           => parport.0.pin-08-out
net adir            => parport.0.pin-09-out

ở đây mình đặt chân 29 là xstep, 31 là xdir, 32 là ystep, 33 là ydir, 35 là zstep, 37 là zdir sửa thành.

#net estop-out       => hal_gpio.pin-01-out
net xstep           => hal_gpio.pin-29-out
net xdir            => hal_gpio.pin-31-out
net ystep           => hal_gpio.pin-32-out
net ydir            => hal_gpio.pin-33-out
net zstep           => hal_gpio.pin-35-out
net zdir            => hal_gpio.pin-37-out
#net astep           => hal_gpio.pin-08-out
#net adir            => hal_gpio.pin-09-out

lưu file lại và test thử.

link dưới là file mình làm rồi các bác down về nghiên cứu tiếp
https://drive.google.com/file/d/0B4E...ew?usp=sharing

----------

Bongmayquathem, CKD, dangduc, Diyodira, Haoquang_90, hminhtq, huanpt, nhatson, secondhand, sieunhim, thuhanoi

----------


## Bongmayquathem

Lót dép ngồi hóng phần tiếp theo. Mấy phần trước em đọc thuộc luôn rồi. Kaka, thanks bác rất nhiều ạ

----------


## thuhanoi

Mới lướt qua thấy hấp dẫn đấy, chắc cũng mần 1 em PI về ngâm chơi  :Big Grin:

----------


## nhatson

em cái trên RPI3 có 2 vấn đề
vấn đề 1
khi cài tới lệnh 
"echo 'deb http://deb.machinekit.io/debian raspbian main' > \ /etc/apt/sources.list.d/machinekit.list" 
nó báo là no such file or dictonary vậy có vấn đề gi ko?
lệnh echo sau cũng bị tương tự




vấn đề 2 là sau khi làm tất cả các bước , khởi động lại thì nó dừng ở màn hình 7 màu

----------


## katum573

> em cái trên RPI3 có 2 vấn đề
> vấn đề 1
> khi cài tới lệnh 
> "echo 'deb http://deb.machinekit.io/debian raspbian main' > \ /etc/apt/sources.list.d/machinekit.list" 
> nó báo là no such file or dictonary vậy có vấn đề gi ko?
> lệnh echo sau cũng bị tương tự
> 
> 
> 
> ...


Bác sai ở đoạn này "echo 'deb http://deb.machinekit.io/debian raspbian main' > \ /etc/apt/sources.list.d/machinekit.list" 
Đúng thì nó phải như vầy copy 3 dòng sau và paste vào cùng 1 dòng lệnh mới chạy được. do thư mục đó là thư mục hệ thống phải cần root mới chạy được sudo là lệnh chuyển qua root.
sudo sh -c \
"echo 'deb http://deb.machinekit.io/debian raspbian main' > \
 /etc/apt/sources.list.d/machinekit.list"

nếu vẫn lỗi thì chạy lệnh như dòng sau .
sudo sh -c "echo 'deb http://deb.machinekit.io/debian raspbian main' > /etc/apt/sources.list.d/machinekit.list" 

bác lấy thẻ nhớ ra vào windows mở file config.txt đến cuối file có 2 dòng như sau

kernel=kernel_rt-4.4.4-rt9-v7+.img
device_tree=dtbs_rt/bcm2710-rpi-3-b.dtb
xóa 2 dòng này đi rồi lưu lại, bỏ thẻ nhớ vào RPI rối khởi động lại.
khởi động xong rối thì làm lại từ bước bị lỗi tới hết.

khi dòng đó bị lỗi thì bác chưa cài được gì đâu.

----------

nhatson, Tuanlm

----------


## nhatson

để em thử lại

----------


## nhatson

> Bác sai ở đoạn này "echo 'deb http://deb.machinekit.io/debian raspbian main' > \ /etc/apt/sources.list.d/machinekit.list" 
> Đúng thì nó phải như vầy copy 3 dòng sau và paste vào cùng 1 dòng lệnh mới chạy được. do thư mục đó là thư mục hệ thống phải cần root mới chạy được sudo là lệnh chuyển qua root.
> sudo sh -c \
> "echo 'deb http://deb.machinekit.io/debian raspbian main' > \
>  /etc/apt/sources.list.d/machinekit.list"
> 
> nếu vẫn lỗi thì chạy lệnh như dòng sau .
> sudo sh -c "echo 'deb http://deb.machinekit.io/debian raspbian main' > /etc/apt/sources.list.d/machinekit.list" 
> 
> ...


em đã làm thành 1 dòng và vận bị lỗi no such file...

----------


## katum573

> em đã làm thành 1 dòng và vận bị lỗi no such file...


Bác chạy 1 dòng lệnh là như vậy nhé.
sudo sh -c "echo 'deb http://deb.machinekit.io/debian raspbian main' > /etc/apt/sources.list.d/machinekit.list" 

Bác copy dòng trên rồi mở console lên ngay tại con trỏ nhấp nháy click phải chuột và paste vào.

nếu vẫn không được bác chạy lệnh bên dưới rồi cho mình 1 tấm hình xem nó hiện ra cái gì rồi tính tiếp 

ls /etc/apt

có gì bác add zalo mình cho nhanh. số đt : o913164755

----------

CKD, nhatson

----------


## nhatson

tối em mới thử được, thử xong em báo cáo ah

----------


## nhatson

với sự hd của cụ katum em đả cài được machinkit lên RPI3
em soạn lại phần hd của cụ katum, mai em xé nháp thử lại xem phần dưới còn sai chổ nào ko
thanks cụ katum đã nhiệt tình hướng dẫn



Config server chứa các gói của Machinekit cho apt. (màu xanh là dòng lệnh các bác có thể copy paste trực tiếp vào cửa sổ console)

mở console ta nhập vào :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 43DDF224 

sudo sh -c "echo 'deb http://deb.machinekit.io/debian raspbian main' > /etc/apt/sources.list.d/machinekit.list" 

sudo apt-get update

Cài realtime kernel cho RPI3 (RT-PREEMPT realtime kernel).

sudo apt-get update 

update bootloader cho RPI

sudo apt-get install -y raspberrypi-bootloader

install kernel.

sudo -s apt-get install linux-image-rpi2-rt

cd /boot 

echo kernel=$(ls kernel_rt*.img) >> config.txt

RPI3
echo device_tree=dtbs_rt/bcm2710-rpi-3-b.dtb >> config.txt

echo dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0 dwc_otg.nak_holdoff=0 >> cmdline.txt

Thoát ra khỏi root 
exit

install machinekit vì ta dùng kernel rt-preempt nên cài gói này machinekit-rt-preempt.

sudo apt-get install machinekit-rt-preempt machinekit-dev

install manual.

sudo apt-get install machinekit-manual-pages 

khởi động lại hệ thống để chạy trên kernel rt.

----------

dangduc, huanpt

----------


## anhcos

Sao phải vất vả như thế này nhatson, k lẽ có ý đồ riêng gì đó.

----------


## nhatson

> Sao phải vất vả như thế này nhatson, k lẽ có ý đồ riêng gì đó.


mới mua cái màn hình 450k đóa haha
muốn đổi mach3 qua linuxcnc thôi ah

----------


## CBNN

BÁC katum573 nghịch beaglebone black ko ? em tặng bác một bộ để nghịch , bác hướng dẫn em cài nó chạy linuxcnc nhé !

----------

katum573

----------


## katum573

> BÁC katum573 nghịch beaglebone black ko ? em tặng bác một bộ để nghịch , bác hướng dẫn em cài nó chạy linuxcnc nhé !


Thank Bác, Nhà bác ở đâu để em qua lấy về test thử rồi hướng dẫn cho bác.

----------


## CBNN

> Thank Bác, Nhà bác ở đâu để em qua lấy về test thử rồi hướng dẫn cho bác.


em ở Tân Phú , HCM , bác nhắn cho em số dt em liên lạc với bác !

----------


## katum573

:Big Grin:  Mình cũng ở tân Phú đường Vườn Lài, Số ĐT mình O913164755

----------


## nhatson

@katum , spi driver tới dâu roài ah

----------


## katum573

Kết nối được rồi xung ra đẹp hơn GPIO nhiều spi chạy được 32M, giờ đang tập trung dựng máy để test nó.

----------

nhatson

----------


## dangduc

Tuyệt quá, hy vọng bác sớm thử nghiệm trên Main Beagebone Black vì em thấy ở nước ngoài họ cũng dùng main này nhiều và rất hiệu quả, điển hình con máy phay của hãng PocketCNC.

----------


## katum573

> BÁC katum573 nghịch beaglebone black ko ? em tặng bác một bộ để nghịch , bác hướng dẫn em cài nó chạy linuxcnc nhé !


BeagleBone đã chạy được rồi nhé config khó hơn RP2 nhưng xung đầu ra lại ngon hơn RP2 rất nhiều. nhớ để ý cái *pos with* trên oscillo độ rộng xung ra thay đổi rất ít.

----------

Bongmayquathem, CBNN, CKD, dangduc, nhatson

----------


## Bongmayquathem

Hóng bài hướng dẫn cài đặt. Hehe

----------


## katum573

Test tiếp tập 2 xung ra max là 1250 xung tần số cao nhất chỉ được 50khz nhưng chất lượng xung không thay đổi.

----------

Bongmayquathem, CBNN, CKD, dangduc, nhatson

----------


## CBNN

Ngon , nhưng 50khz hơi thiếu a ơi ,  sửa lên khoảng 100khz  oke hơn .

----------


## katum573

Cũng lên được 200khz nhưng không biết chạy có ổn không. vì max của nó là 200khz. video quay hơi rung với oscillo lởm các bác chịu khó xem 1 tí nhé.

----------

CBNN, CKD, dangduc, huanpt, nhatson

----------


## katum573

BeagleBone Test với servo OMROM 100w 3000 r/min. visme bước 10 chiều dài cây thước gắn trên là 600mm bằng với hành đang chạy.



Chạy với file Gcode

----------

CBNN, CKD, dangduc, doanthienthinh, Fusionvie, MinhPT

----------


## CBNN

Em có cảm giác chậm  ,  thông số config ntn vậy a ?

----------


## katum573

> Em có cảm giác chậm  ,  thông số config ntn vậy a ?


V=10000mm/s nhưng tăng lên tới 40000 tốc độ cũng không thay đổi gì lúc đó quên gắn oscillo để xem tần số xung như thế nào, gia tốc = 26000mm/s2 đển lên 30000 servo báo lỗi.

Em xem lại hình như chạy max tốc độ của servo rồi đó. con này chạy 3000 vòng thì 1s chạy khoảng 50 vòng thì đi được khoảng 500mm hành trình 600 so với cây thước anh dán trên combo đó thì hơn 2s con trượt đi được 1 vòng em so với đồng hồ phát của youtube sẽ thấy.

----------

CBNN

----------


## CBNN

Oke a , vậy thì đúng rùi . Linuxcnc cho set gia tốc lớn ghê!

----------


## katum573

> Oke a , vậy thì đúng rùi . Linuxcnc cho set gia tốc lớn ghê!


Vậy thì xong servo rồi nhé, chuyển G2 làm nhé.

----------


## MinhPT

> BeagleBone Test với servo OMROM 100w 3000 r/min. visme bước 10 chiều dài cây thước gắn trên là 600mm bằng với hành đang chạy.
> 
> 
> 
> Chạy với file Gcode


Bác làm bài hướng dẫn đi, mình làm theo con mini

----------

dangduc

----------


## katum573

Mới làm xong Driver HAL SPI cho con Tinker Board kết nối với FPGA Mesa 7i90HD.

----------

CBNN, CKD, Fusionvie, nhatson

----------


## nhatson

> Mới làm xong Driver HAL SPI cho con Tinker Board kết nối với FPGA Mesa 7i90HD.


spi 10mhz luôn raoì ơ?

----------

Fusionvie

----------


## Fusionvie

Hay quá, em cũng đang có 1 con Pi2 và Pi3, hóng các cao nhân để học hỏi.

----------


## katum573

> spi 10mhz luôn raoì ơ?


Đang chạy 24mhz, có thể lên được 48mhz nhưng không ổn do thằng fpga là 50mhz rồi.




> Hay quá, em cũng đang có 1 con Pi2 và Pi3, hóng các cao nhân để học hỏi.


Pi2 và Pi3 có hướng dẫn ở trên đấy bác.

----------


## nhatson

> Đang chạy 24mhz, có thể lên được 48mhz nhưng không ổn do thằng fpga là 50mhz rồi.
> 
> 
> 
> Pi2 và Pi3 có hướng dẫn ở trên đấy bác.


clock 50mhz, nhưng trong fpga có pll nhân 4 lên 200mhz

mà tầm đó thì em nghĩ cần dùng tín hiệu vi sai rồi

----------


## katum573

> clock 50mhz, nhưng trong fpga có pll nhân 4 lên 200mhz
> 
> mà tầm đó thì em nghĩ cần dùng tín hiệu vi sai rồi


mà con chip của TinkerBoard chạy SPI max cũng chỉ 50mhz thôi.

----------

nhatson

----------


## katum573

Mới mod xong board FPGA Spartan 6 ra chân chạy firmware SPI 7I90.

----------

Bongmayquathem, CBNN, CKD, Ga con, nhatson, phê tê bốc

----------


## nhatson

> Mới mod xong board FPGA Spartan 6 ra chân chạy firmware SPI 7I90.


latency con Tinker này tốt ko anh ?

----------


## katum573

> latency con Tinker này tốt ko anh ?


Không nhớ hình như trong khoảng 40000ns đến 60000ns nhưng chạy SPI thì không cần lắm. con này chỉ load file GCODE từ 15M trở xuống thì ngon trên nữa thì chạy lag lắm, vì file trên 15M nó load gần hết 2G RAM của máy rồi.

Đang tính thử con ROCK64 cùng chip RK3288 nhưng 64BIT RAM thì 4G với lại giá cũng rẻ hơn.

----------

CKD, nhatson

----------


## nhatson

> Không nhớ hình như trong khoảng 40000ns đến 60000ns nhưng chạy SPI thì không cần lắm. con này chỉ load file GCODE từ 15M trở xuống thì ngon trên nữa thì chạy lag lắm, vì file trên 15M nó load gần hết 2G RAM của máy rồi.
> 
> Đang tính thử con ROCK64 cùng chip RK3288 nhưng 64BIT RAM thì 4G với lại giá cũng rẻ hơn.


em nghĩ cần hạn chế độ phân giải màn hình, và dkhiển từ máy tính xuống qua ethernet thì mới cải thiện được

----------


## katum573

> em nghĩ cần hạn chế độ phân giải màn hình, và dkhiển từ máy tính xuống qua ethernet thì mới cải thiện được


cái này mình đang chạy trực tiếp trên nó chứ đâu qua ethernet, độ phân giải đã giảm xuống 1080x800 rồi. theo mình RAM bị chiếm nhiều là do linuxcnc giải mã GCODE và lưu trên RAM chứ không phải do độ phân giải màn hình đâu, mình đã thử nhiều độ phân giải rồi.

----------


## nhatson

> cái này mình đang chạy trực tiếp trên nó chứ đâu qua ethernet, độ phân giải đã giảm xuống 1080x800 rồi. theo mình RAM bị chiếm nhiều là do linuxcnc giải mã GCODE và lưu trên RAM chứ không phải do độ phân giải màn hình đâu, mình đã thử nhiều độ phân giải rồi.


í là thay vì tinker ra màn hình nhận bàn phím, thì nó chỉ controller thôi, còn giao điện trên PC và dkhiển tinker qua cổng ether net

----------


## katum573

Giống như 2 video đó à, thì giống như mình dùng con tinker truyền dữ liệu tới con FPGA qua SPI, còn nó thì dùng PC truyền dữ liệu tới con ARM qua ethernet vậy. ý mình nói nó bị lag là màn hình bị giật do không đủ RAM cho nó chạy đấy mà, con PC của mình 8G mà load file GCODE 15M nó cũng chiếm hết 3,5G rối.

----------

KAWA

----------


## nhatson

> Giống như 2 video đó à, thì giống như mình dùng con tinker truyền dữ liệu tới con FPGA qua SPI, còn nó thì dùng PC truyền dữ liệu tới con ARM qua ethernet vậy. ý mình nói nó bị lag là màn hình bị giật do không đủ RAM cho nó chạy đấy mà, con PC của mình 8G mà load file GCODE 15M nó cũng chiếm hết 3,5G rối.


ko em nghĩ lag do giao diện thôi, em chạy trên máy tính atom 525 2g ram chạy giao diện pathpilot thì lag, chạy giao diện axis thì good

spi chỉ giải quyết phần phát xung, io, đếm encoder, còn xử lí giao diện, nội suy đều do CPU làm việc

ah thử đổi qua giao diện axis hay tkemc xem sao

----------


## katum573

> ko em nghĩ lag do giao diện thôi, em chạy trên máy tính atom 525 2g ram chạy giao diện pathpilot thì lag, chạy giao diện axis thì good
> 
> spi chỉ giải quyết phần phát xung, io, đếm encoder, còn xử lí giao diện, nội suy đều do CPU làm việc
> 
> ah thử đổi qua giao diện axis hay tkemc xem sao


Chính xác giao diện cũng gây lag cho máy nhưng nếu file lớn hơn nữa thì sao chắc nó cũng sẽ bị như vậy. mình không biết thông thường mọi ngưới hay dùng file GCODE cỡ bao nhiêu ?M, nếu trên 10M thì tìm giải pháp tăng RAM lên thôi, có 2 cách 1 là tìm Board có RAM lớn hơn, 2 là dùng PC qua LPT (con 7I90 có thể chạy qua LPT được) .

----------


## nhatson

> Chính xác giao diện cũng gây lag cho máy nhưng nếu file lớn hơn nữa thì sao chắc nó cũng sẽ bị như vậy. mình không biết thông thường mọi ngưới hay dùng file GCODE cỡ bao nhiêu ?M, nếu trên 10M thì tìm giải pháp tăng RAM lên thôi, có 2 cách 1 là tìm Board có RAM lớn hơn, 2 là dùng PC qua LPT (con 7I90 có thể chạy qua LPT được) .


giờ chạy high speed file đều nặng, file điêu khắc thì 100 200 300mb là bthuong
NCstudio mở file 100mb rất nhẹ nhàng cho dù là máy tính 2g
linuxcnc giao diện pathpilot 2.0 chạy trên linux mate 64bit mở file khá hơn , nhưng hàng trăm mB vẫn khó khăn 

PC thì có nhiều lựa chọn lắm ah, pci , pcie, ethernet

----------

CKD

----------


## hoangthoi

Có bác nào chạy grbl web trên rapsberry pi 3 chưa? có thể hướng dẫn em được không?

----------


## CBNN

NCstudio có mô phỏng toolpath đâu mà ko mượt bác ! , tren linuxcnc mình có thể tắt chế độ mô phỏng toolpath đi ko ? nếu dc thì file lớn ko còn sợ lag nữa .

----------


## katum573

> NCstudio có mô phỏng toolpath đâu mà ko mượt bác ! , tren linuxcnc mình có thể tắt chế độ mô phỏng toolpath đi ko ? nếu dc thì file lớn ko còn sợ lag nữa .


Đúng rồi, Linuxcnc bỏ mô phỏng toolpath, load file trên 80M thì RAM cũng chỉ tăng chút xíu thôi.

----------


## nhatson

> NCstudio có mô phỏng toolpath đâu mà ko mượt bác ! , tren linuxcnc mình có thể tắt chế độ mô phỏng toolpath đi ko ? nếu dc thì file lớn ko còn sợ lag nữa .


em nho ncstứdio no co hiện hình khi load gcode mà

----------


## CBNN

> em nho ncstứdio no co hiện hình khi load gcode mà


nó chạy tới đâu thì hiện tới đó thôi bác !

----------

nhatson

----------


## terminaterx300

> NCstudio có mô phỏng toolpath đâu mà ko mượt bác ! , tren linuxcnc mình có thể tắt chế độ mô phỏng toolpath đi ko ? nếu dc thì file lớn ko còn sợ lag nữa .


có mô phỏng toolpath chạy ảo nhé bạn

----------


## nhatson

> có mô phỏng toolpath chạy ảo nhé bạn


lúc load file , quá khổ soft limit ncstudio nó bít ko ta?

----------


## nhatson

em post nhầm

----------


## CBNN

> có mô phỏng toolpath chạy ảo nhé bạn


Ko phải chạy ảo , mà là chạy mô phỏng trước với tốc độ cao để test .  Và cũng là chạy tới đâu hiện ra tới đó .

----------


## hoangthoi

của em bị như thế là sao ạ. em dùng raspberry pi 3

----------


## katum573

> của em bị như thế là sao ạ. em dùng raspberry pi 3


Của bác thiếu gói này *dirmngr* dùng lệnh.

sudo apt-get install dirmngr

để cài thêm gói dirmngr, nếu cài không được có thể bản linux của bác bị lỗi rồi.

----------

CKD

----------


## katum573

Mình xem clip trên youtube cũng thấy nc studio chạy như CBNN nói.

----------


## CKD

Mình cũng không biết NCStudio có chế độ preview toolpath.
Cụ terminaterx300 có thể chỉ cái option để mở chế độ preview khi load toolpath ko? Còn kiểu chạy offline để check thì nó cũng chạy tới đâu view toolpath tới đó thôi mừ.

Mach3 nó có cho phép tắt chế độ regen toolpath để đối phó với những file có dung lượng khủng.
TAB Diangostic, gần nút RESET có nút Toolpath On/Off

Mấy cái cnc controller china hình như cũng chạy core linux. Chưa phát hiện khi load file khủng thì nó sẽ thế nào. Vì nó không có view toolpath.
Laser controller thì không rỏ. Nó có view toolpath nhưng cái màn hình nó chạy kiểu HMI, với lại toolpath laser thì nó dung lượng cũng không có khủng lắm.

----------

nhatson

----------

