Chuyển đến nội dung chính

[20 blogs Cùng bố Học lập trình] Dự án Hệ thống đèn giao thông cảnh báo có đoàn tàu đi qua !

 

Bước 1: Cảm biến ánh sáng

Chúng ta sẽ sử dụng cảm biến ánh sáng để phát hiện xem có tàu chạy qua hay không. Chúng ta sẽ làm điều này bằng cách phát hiện bóng của đoàn tàu. Trước tiên, hãy khám phá cách hoạt động của cảm biến ánh sáng bằng cách tải chương trình sau xuống micro: bit.

Bây giờ nhấn nút A và micro: bit phản hồi bằng một số. Con số này cho biết lượng ánh sáng chiếu vào đèn LED (vâng, đèn LED cũng có thể được sử dụng để phát hiện ánh sáng). Nếu số mà bạn nhận được là 255 hoặc 0, điều đó có nghĩa là cảm biến độ sáng đang khởi động, vì vậy bạn cần nhấn nút một lần nữa.

Bước 2: Cảnh

LƯU Ý: Nếu bạn không sở hữu một chiếc xe lửa, bạn cũng có thể sử dụng một chiếc xe hơi hoặc thậm chí bàn tay của bạn để tạo bóng.

Phát hiện một cái bóng có thể hơi khó khăn. Để làm việc này, chúng ta cần có một ngọn đèn sáng ở phía bên kia của tàu, không quá cao. Chúng ta có thể sử dụng đèn bàn học.

Hơn nữa, chúng tôi không muốn quá nhiều ánh sáng từ các nguồn sáng khác, vì vậy bạn có thể phải đóng rèm hoặc rèm và đèn trần mờ.


Bây giờ bạn sẽ thấy bóng của đoàn tàu đủ lớn để đặt micro: bit của bạn vào. Đảm bảo bảng được đặt phẳng trên bàn và ghi lượng ánh sáng đo được khi có bóng và lượng ánh sáng được đo khi không có bóng. Số trong ánh sáng ít nhất phải gấp 2 lần số trong bóng tối.

Bước 3: Phát hiện tàu


Chúng tôi sẽ bật đèn LED phía trên bên trái trên micro: bit khi có tàu chạy qua. Đối với điều này, bạn cần phải chọn một ngưỡng. Đây phải là một số gần đúng giữa hai số bạn đã viết ra ở bước 2. Ví dụ: nếu độ sáng trong bóng tối là 20 và trong ánh sáng là 60, bạn nên sử dụng 40 làm ngưỡng.

Thêm các khối sau vào chương trình của bạn để làm cho đèn LED trên cùng bên trái cho biết nếu phát hiện thấy một đoàn tàu. Thay thế 40 bằng ngưỡng của bạn.

Thí nghiệm!

- Nếu đèn led bật sáng ngay cả khi không có đoàn tàu nào chạy qua, bạn nên thử giảm ngưỡng xuống. 

- Nếu đèn led không bật khi có tàu chạy qua, bạn nên thử tăng ngưỡng.

LƯU Ý: Nếu bạn không thể làm cho việc này hoạt động một cách đáng tin cậy, bạn vẫn có thể tiếp tục với các bước còn lại và đóng giao cắt đường sắt bằng một nút.

Bước 4: Làm đèn tín hiệu

Đối với đèn tín hiệu, chúng ta cần các vật liệu sau:

Một mảnh bìa cứng (Không có gì sai khi tái chế!)

Hai đèn LED màu đỏ, tốt nhất là 5mm với ánh sáng khuếch tán và đầu nối dài.

Một điện trở gần giống với đèn LED ở 3 Volt

Clip cá sấu

Keo dán

Băng dính

Video hướng dẫn cách xây dựng cột đèn tín hiệu. Tóm tắt ngắn gọn: 

- Dựng cực bằng bìa cứng 

- Đặt một điện trở ở dưới cùng của cực và thêm 2 đèn LED song song phía trên nó. Các đèn LED này nên được đặt ở các hướng ngược nhau.

- Dùng các kẹp cá sấu để hoàn thiện mạch điện. 

- Bây giờ nối mạch vào chân 3V và GND của micro: bit. Một trong những đèn LED bây giờ sẽ sáng lên.

Trao đổi các kẹp cá sấu và bây giờ đèn LED khác sẽ sáng lên.

Bước 5: Làm cho đèn nhấp nháy

Bây giờ chúng ta sẽ lập trình micro: bit để làm cho các đèn LED nhấp nháy giống như đường sắt băng qua. Đối với điều này, chúng ta sẽ kết nối các đèn từ bước trước với chân 1 và 2 của micro: bit.

Chúng ta có thể bật một đèn LED bằng cách ghi kỹ thuật số 1 vào một chân và ghi kỹ thuật số 0 vào chân kia (kỹ thuật số 1 có nghĩa là 3 Volt, kỹ thuật số 0 có nghĩa là GND). Đèn LED còn lại có thể được bật bằng cách hoán đổi 0 và 1. Bây giờ, hãy sử dụng chương trình sau để làm cho đèn nhấp nháy vô thời hạn.

Bước 6: Lập trình đường sắt băng qua

Để có một đường sắt băng qua đường an toàn, chúng tôi muốn đường sắt băng qua tiếp tục nhấp nháy đèn thêm 5 lần nữa sau khi không còn phát hiện thấy tàu hỏa. Điều này có nghĩa là chương trình của chúng ta cần nhớ số lượng đèn flash còn lại. Đối với điều này, chúng tôi sử dụng một biến có tên là flash_remaining. Khi phát hiện thấy một đoàn tàu, chúng tôi đặt biến này thành 5 và sau mỗi lần nhấp nháy, chúng tôi trừ 1 cho biến cho đến khi nó bằng 0. Sau đó, quá trình nhấp nháy dừng lại.

Chúng tôi cũng muốn đóng đường ray theo cách thủ công khi nhấn nút B. Trước hết, hãy xóa khối vĩnh viễn khỏi bước 5. Sau đó thêm mã sau:

Đèn sẽ nhấp nháy 5 lần khi nhấn nút B. Bây giờ bạn có thể tiếp tục và thêm các khối vào chương trình phát hiện tàu từ bước 3 để bắt đầu nhấp nháy đèn khi phát hiện có tàu.

Bước 7: Thêm rào cản


Đối với rào cản bạn cần:

Một servo SG90 9g, được trang bị kẹp cá sấu 

Một ống hút (tốt nhất là màu trắng) 

Một số băng đỏ để trang trí

Hướng dẫn

Keo servo vào cực Dán một dải các tông lên nó để ổn định 

Dán ống hút vào servo 

Thêm các hướng dẫn bên dưới vào đúng vị trí trong chương trình của bạn 

Kết nối servo với 3V, GND và PIN0 như được hiển thị trong trình mô phỏng


Mở hàng rào

Đóng hàng rào

Chúc bạn lập trình thành công và vui vẻ ^_^
Hãy nhấn like và để lại comment nếu bạn muốn biết thêm chi tiết.

Dự án này do Johan Gorter @JohanGorter đóng góp.

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

4 Đặc điểm sân khấu trong Scratch (cho người mới)

  - Bài viết được trích từ giáo trình học Scratch - 1/ Kích thước của sân khấu: Sân khấu trong Scratch có 3 loại kích thước sau đây: - Kích thước chuẩn: Rộng 480 px, Cao 360 px - Kích thước nhỏ nhất: Rộng 240 px, cao 180 px. Bằng 1/2 kích thước chuẩn - Kích thước toàn màn hình: Phụ thuộc vào kích thước màn hình máy tính. Một số điểm lưu ý: - Đơn vị đo chiều rộng và chiều cao được tính bằng Pixel, ký hiệu là px. Tuy nhiên, trong các khối lệnh của nhóm lệnh Motion thì từ khóa sử dụng là Steps(Số bước đi). Ví dụ khối lệnh move () steps được hiểu là di chuyển đối tượng đi một số bước nào đó. Số bước ở đây tương đương với Pixel. - Sân khấu là một hệ trục tọa độ hai chiều, có trục x và trục y. Điểm chính giữa của sân khấu có tọa độ (x=0, y=0) gọi là gốc tọa độ. Với hệ trục tọa độ thì có phần âm và phần dương. Xem hình ảnh minh họa sau đây: 2/ Backdrop - Ảnh nền/ Phông nền của sân khấu. Cũng giống như đối tượng trong Scratch, nếu mỗi đối tượng có thể có nhiều hình dạng khác nhau gọi là Costum

[Scratch] 10 THAO TÁC XỬ LÝ KỊCH BẢN TRONG SCRATCH (Cho người mới)

  - Bài viết được trích từ giáo trình học Scratch - THAO TÁC XỬ LÝ KỊCH BẢN TRONG SCRATCH 1/ Phân biệt một khối lệnh, một đoạn mã và một kịch bản. Trong một dự án thường có nhiều đối tượng, mỗi đối tượng lại có một hoặc nhiều kịch bản. Mỗi kịch bản được lắp ghép từ nhiều khối lệnh, cứ từ hai khối lệnh lắp ghép liền nhau trở lên được coi là một đoạn mã. Trước khi thực hiện các thao tác xử lý kịch bản ta cần phân biệt rõ các khái niệm một khối lệnh, một đoạn mã và một kịch bản. 2/ Phục hồi lại các thao tác xử lý trong khu vực kịch bản. Trong quá trình thực hiện các thao tác xử lý khối lệnh như xóa, sao chép,...có thể bạn sẽ cần phục hồi lại thao tác đó. Hãy sử dụng thanh Menu với lệnh Undelete trong mục Edit. 3/ Cách chèn thêm và tách rời một khối lệnh - Chèn thêm 1 khối lệnh vào giữa 2 khối lệnh trong kịch bản Giả sử có một kịch bản như hình 1, ta muốn chèn thêm một khối lệnh vào giữa 2 khối lệnh như hình 2. Hãy nhấp trái chuột để nắm và kéo khối lệnh đó vào vị trí mong muốn đến khi nào