Để làm quen với uPyCraft, đầu tiên chúng ta sẽ viết một chương trình cực kỳ đơn giản: in ra dòng chữ Hello World.
Một chương trình MicroPython thông thường là kết hợp của 3 cấu trục cơ bản: Tuần tự, Vòng lặp và Rẽ nhánh. Chúng ta thử tìm hiểu nhanh 2 cấu trúc đơn giản hơn là Tuần tự và Vòng lặp.
Đây là cấu trúc cơ bản nhất của chương trình máy tính. Trong cấu trúc này, các câu lệnh sẽ được chạy từng dòng một và từ trên xuống dưới một cách tuần tự.
Ví dụ, khi chương trình sau chạy, nó sẽ in ra chữ Hello, sau đó in tiếp chữ World.
print('Hello') print('World')
Kết quả in ra:
Hello World
Trong MicroPython, các câu lệnh cách nhau bằng dấu Enter và nằm trên từng dòng riêng biệt.
Trong cấu trúc này, các câu lệnh sẽ được lặp đi lặp lại với số lần tùy theo loại vòng lặp được sử dụng. Có 2 loại vòng lặp, có điều kiện và vô điều kiện. Vòng lặp có điều kiện sẽ dừng lại sau một số lần nhất định hoặc khi có một điều kiện xảy ra. Còn vòng lặp vô điều kiện sẽ chạy mãi mãi mà không dừng, cho đến khi chương trình bị dừng bởi người dùng hoặc board bị reset hay tắt điện. Trong bài này, chúng ta tìm hiểu vòng lặp vô điều kiện While True. Chúng ta sẽ tìm hiểu thêm các loại vòng lặp khác ở các bài sau.
Trong uPyCraft, bạn hãy tạo một file chương trình mới (File > New) và lưu với tên lesson1.py bằng cách chọn menu File > Save…. Sau đó, bạn copy đoạn code này vào:
import time while True: print("Hello World") time.sleep(1)
Bạn hãy thử nhấn nút Download and Run có biểu tượng ở thanh công cụ bên phải của màn hình (hoặc nhấn F5) và chờ cho đến khi chương trình được chạy thành công (bạn nhớ kết nối xController với máy bằng cáp USB trước khi Upload nhé).
Ở cửa sổ dòng lệnh, bạn sẽ thấy kết quả chương trình đã thực hiện là:
>>> Ready to download this file,please wait! . download ok Hello World Hello World Hello World
Dòng chữ “Hello World” được in ra sau mỗi 1 giây.
Bạn có thể nhấn vào nút Stop có biểu tượng dùng để dừng chương trình. Khi đó chương trình sẽ không tiếp tục in ra chữ Hello World nữa.
import time
Chương trình trên bắt đầu bằng dòng lệnh import thư viện time. Để hiểu mục đích của dòng lệnh này, chúng ta cần tìm hiểu khái niệm thư viện trong MicroPython.
Nói một cách đơn giản, thư viện là tập hợp các chương trình con có nhiều chức năng có sẵn được viết bởi các lập trình viên có kinh nghiệm. Các chương trình này được viết ra không phải để chạy riêng một mình, mà để phục vụ cho các chương trình khác sử dụng. Khi chúng ta viết chương trình, chúng ta có thể gọi (trong MicroPython gọi là import) các chương trình con này bên trong chương trình để thực hiện các chức năng chúng ta cần, giúp tiết kiệm được nhiều thời gian và công sức.
Trong chương trình trên, chúng ta import thư viện time để có thể sử dụng một chức năng đó là sleep() để tạm dừng trong 1 giây.
time.sleep(1)
Sau đó chúng ta sử dụng cấu trúc vòng lặp vô điều kiện While True để chạy các dòng lệnh bên trong một cách tuần tự và mãi mãi.
while True: print("Hello World") time.sleep(1)
Câu lệnh While True có cú pháp như sau:
while True: câu lệnh 1 câu lệnh 2 câu lệnh n
Nhưng làm sao để MicroPython biết được các lệnh nào trong vòng lặp While cần lặp lại và các lệnh nào nằm ngoài nhỉ? MicroPython sử dụng các khoảng trắng thụt đầu dòng và dấu “:” để phân biệt giữa các khối lệnh, không giống như các ngôn ngữ lập trình khác (như Java hay C) thì dùng dấu “{}”. Với cách viết này, chương trình sẽ rõ ràng và dễ nhìn hơn.
Lưu ý: Ngôn ngữ Python dùng các khoảng trắng thụt đầu dòng (gọi là indentation) để phân biệt giữa các khối lệnh nên bạn cần chú ý sử dụng một cách chính xác, nếu không chương trình sẽ không chạy hoặc chạy sai. Số khoảng trắng này cần giống nhau đối với các lệnh nằm trong cùng một khối lệnh. Bạn có thể dùng phím SPACE or TAB để tạo các khoảng trắng này đều được.
Chúc mừng bạn đã hoàn thành chương trình đầu tiên trong chuỗi các bài học. Hãy tiếp tục các bài tiếp theo nhé.
Lưu ý: Nếu chương trình không thể nạp vào board và chạy thành công, bạn cần kiểm tra các yếu tố sau: