Bài 6: Sử dụng Terminal trên Intel Galileo

Khởi đầu

Có 2 cách để bạn kết nối đến terminal của hệ điều hành Linux chạy trên Galileo:

  • Sử dụng cổng RS-232: vì cổng RS-232 trên Galieo được thiết kế dưới dạng jack cắm stereo 3.5mm, do đó bạn phải có một loại cáp đặc biệt để kết nối.
  • Sử dụng cổng USB Client: bạn phải upload một chương trình Arduino đặc biệt để chuyển Galileo qua chế độ giao tiếp bằng cổng USB Client.

Mỗi phương pháp có những ưu và khuyết điểm riêng. Tuy nhiên cả 2 cách này đều đòi hỏi bạn phải có một "terminal emulator" - một công cụ cho phép bạn tạo ra một kết nối đến terminal để sử dụng giao diện dòng lệnh. Mình thường sử dụng PuTTY, bạn có thể tải nó tại đây

Sử dụng cổng RS-232

Phương pháp này khá là dễ thực hiện, tuy nhiên bạn phải cần một loại cáp Serial RS-232 đặc biệt để chuyển từ dạng đầu cắm stereo 3.5mm như trên Galileo sang loại đầu cắm cổng RS-232 trên máy tính của bạn.

Dưới đây là một sợi cáp giúp bạn có thể kết nối Galileo với máy tính để bàn qua cổng RS-232.

Cổng RS-232 trên Galileo chỉ có 3 chân là GND, TX, và RX. Do đó nếu không có điều kiện mua cáp, bạn có thể kết nối thủ công 3 chân này với 3 chân GND, TX, RX tương ứng trong cổng RS-232 trên thiết bị của mình. Phần lớn máy tính để bàn (Desktop) đều có cổng RS-232.

Khi sử dụng máy bạn, bạn sẽ có cổng giao tiếp là COM1.

Chân RD, TD tương ứng với RX, TX

Khi đã kết nối xong, bạn cần sử dụng một chương trình hỗ trợ giao tiếp qua giao diện dòng lệnh. Hãy mở PuTTY lên, đây là lúc nó phải sử dụng đến nó.

Khi sử dụng giao tiếp qua cổng RS-232 này, bạn phải luôn chọn baudrate là 115200. Đây là thông số mặc định của Galileo.

Sử dụng cổng USB Client

Với cách này, thực chất là bạn đang sử dụng IDE của Galileo để gửi các câu lệnh Linux qua cổng USB Client.

Khi sử dụng cách này, bạn sẽ không thể tải các chương trình Arduino lên Galileo được, bởi cổng USB Client đã được sử dụng cho việc giao tiếp với hệ điều hành Linux trên Galileo.

Chúng ta sẽ có 2 chế độ tạm gọi là:

  • Linux mode: giúp bạn có thể sử dụng terminal của Linux. Tuy nhiên bạn không thể upload chương trình Arduino lên Galileo khi ở chế độ này.
  • Arduino mode: chế độ bình thường, bạn có thể upload chương trình Arduino lên Galileo.

 

Để sử dụng "Linux mode", hãy mở IDE của Galileo và tải lên đoạn chương trình sau:

void setup() {
  system("cp /etc/inittab /etc/inittab.bak");  // Back up inittab
  // Replace all "S:2345" with "S0:2345"'s (switching serial ports):
  system("sed -i 's/S:2345/S0:2345/g' /etc/inittab");
  // Replace all "ttyS1" with "ttyGS0"'s (switching serial ports):
  system("sed -i 's/ttyS1/ttyGS0/g' /etc/inittab");
  // Replace all "grst" with "#grst"'s to comment that line out:
  system("sed -i 's/grst/#grst/g' /etc/inittab");
  // Replace all "clld" with "#clld"'s to comment that line out:
  system("sed -i 's/clld/#clld/g' /etc/inittab");
  system("kill -SIGHUP 1");
}
void loop() {
}

Sau khi tải thành công, hãy sử dụng chương trình PuTTY như đã giới thiệu ở trên để mở giao diện dòng lệnh. Chú ý bạn phải luôn chọn baudrate là 115200, cổng COM chọn tương tự như lúc lập trình bình thường.

Để chuyển qua lại "Arduino mode", trong PuTTY, bạn hãy chạy chuỗi lệnh này

rm /sketch/sketch.elf
cp /etc/inittab.bak /etc/inittab
kill -SIGHUP 1

Sử dụng Linux Terminal

Khi sử dụng terminal, bạn sẽ phải đăng nhập vào Linux. Hãy sử dụng username là root password để trống (khi được hỏi password, hãy bấm phím Enter).

Sau khi đăng nhập, bạn có thể sử dụng các câu lệnh Linux (gọi là ngôn ngữ Bash). Một số câu lệnh thường sử dụng như:

  • ls - liệt kê nội dung trong một thư mục
  • cd - di chuyển thư mục gốc
  • mkdir - tạo thư mục mới
  • touch - tạo file mới
  • ...

Bạn có thể xem hàng tá câu lệnh khác cũng như cách sử dụng chúng tại http://ss64.com/bash/

Có rất nhiều bản Linux từ nhỏ đến lớn được tạo ra cho Galileo, do đó nếu bạn thấy bản Linux hiện tại không có câu lệnh mình cần dùng thì cũng đừng ngạc nhiên.

lên
2 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Cách dùng Module L298N để điều khiển 4 động cơ DC

Trên cộng đồng đã có nhiều bài viết về động cơ, nhưng chưa có bài viết nào nói về cách để điều khiển cùng 1 lúc 4 động cơ mà chỉ dùng 1 module L298N. Nên hôm nay mình sẽ chia sẻ về cách để điều khiển cùng lúc 4 động cơ trên 1 module L298N.

lên
25 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

continue

continue là một lệnh có chức năng bỏ qua một chu kì lặp trong một vòng lặp (for, do, while) chứa nó trong đó. Khi gọi lệnh continue, những lệnh sau nó và ở trong cùng vòng lặp với nó sẽ bị bỏ qua để thực hiện những chu kì lặp kế tiếp.

lên
5 thành viên đã đánh giá bài viết này hữu ích.

Bạn có biết Arduino là gì không? Tìm hiểu thêm...

"Tử thuở còn cắp sách tới trường, có lẽ bạn cũng như tôi, rất thích chơi xe điện tử - nhất là xe điều khiển từ xa! Hồi ấy, tôi rất hay đòi ba mẹ mua một chiếc mỗi khi họ đi công tác xa. Và cứ như một thói quen, chơi được 1 tuần tôi lại "tháo banh" chiếc xe của mình và xem các mạch điện tử. Nói là xem vậy thôi, chứ chủ yếu là tôi lấy mô tơ ra làm quạt chơi (hehe). Lên lớp 11, thì tôi biết đến mạch Arduino từ lời giới thiệu của anh trai, và từ đây, câu chuyện về xe điều khiển của tôi còn dừng lại ở cái quạt mô - tơ nữa....!"

lên
51 thành viên đã đánh giá bài viết này hữu ích.