Mục lục:

Tạo bộ đệm cho rô bốt (có mã): 4 bước
Tạo bộ đệm cho rô bốt (có mã): 4 bước

Video: Tạo bộ đệm cho rô bốt (có mã): 4 bước

Video: Tạo bộ đệm cho rô bốt (có mã): 4 bước
Video: Học lập trình Arduino KHÔNG HỀ KHÓ - Bộ KIT học tập Arduino Uno R3 BLK 2024, Tháng mười một
Anonim
Tạo bộ đệm cho rô bốt (có mã)
Tạo bộ đệm cho rô bốt (có mã)

Tài liệu hướng dẫn này sẽ hướng dẫn người đọc cách tạo và viết mã phần đệm trên Boe-bot có thể điều hướng qua mê cung trong khi phát hiện chướng ngại vật. Việc viết mã cho dự án được thực hiện bằng phần mềm lập trình BASIC Stamp và rô bốt Boe-Bot, đồng thời cần có hiểu biết cơ bản về mạch và lập trình để thành công trong việc tạo các đoạn đệm này.

Quân nhu

Để tạo các đoạn đệm này, bạn sẽ cần:

- Robot Boe-Bot

- Phần mềm lập trình tem CƠ BẢN

- Que kem

- Một miếng bọt biển

- Giấy nhôm

- Kẹp giấy

- 8 dây dài (ít nhất 6 inch)

- 2 đèn LED

- 2 điện trở nâu-đen-vàng

- 2 điện trở đỏ nâu đỏ

- Băng keo và keo nóng (hoặc chất kết dính tương tự)

- Pin cho Boe-Bot của bạn

Bước 1: Bước 1: Tạo mạch

Bước 1: Tạo mạch
Bước 1: Tạo mạch
Bước 1: Tạo mạch
Bước 1: Tạo mạch

Làm theo sơ đồ breadboard ở trên để tạo mạch định hướng và vận hành breadboard của bạn. Cuối cùng, breadboard của bạn sẽ trông tương tự như hình ảnh bên trái.

Những điều cần nhớ:

- Đảm bảo rằng đèn LED ở đúng vị trí. Điều này có nghĩa là chân phẳng của đèn LED phải ở phía âm và chân còn lại ở phía dương.

- Vss đóng vai trò là nền tảng trên breadboard này, có nghĩa là nó có giá trị bằng 0 và Vdd có giá trị là 1.

- Một đoạn mạch đang chạy có giá trị là 0. Một đoạn mạch đang tắt có giá trị là 1.

Bước 2: Bước 2: Lập trình cho Boe-bot

Đoạn mã sau đây lập trình cho rô-bốt quay sang trái và phải 90 độ dựa trên phần cản được nhấn (chi tiết thêm về cách tạo đoạn cản trong bước tiếp theo). Mã này đảm bảo rằng rô bốt sẽ quay sang trái khi nhấn dây cản bên phải và sẽ quay sang phải khi nhấn dây cản trái.

Một số bản dịch ngôn ngữ cơ bản:

- GOSUB = chương trình con (phải theo sau một yêu cầu trong mã)

- If.. Else = chỉ định một nhóm mã sẽ được thực thi, nếu điều kiện là đúng và thực hiện các hướng dẫn nếu điều kiện sai

Mật mã:

'{$ STAMP BS2}

'{$ PBASIC 2.5}' ******************************************* ******************************** 'Đặt lại mã khởi động lại' Sử dụng nút đặt lại để dừng và khởi động rô bốt '** ************************************************** *********************** Biến tạm thời VAR Byte 'RunStatus DATA $ 00' được lưu trữ trong ROM ĐỌC RunStatus, tạm thời 'Đọc biến từ ROM temp = ~ temp 'đảo ngược giá trị 0 thành 1 hoặc 1 thành 0 VIẾT RunStatus, tạm thời' Ghi biến trở lại ROM IF (temp> 0) THEN END 'Kiểm tra xem giá trị là 1' nếu vậy KẾT THÚC chương trình PAUSE 3000 'Tạm dừng để cho phép bạn di chuyển 'tay của bạn khi bạn nhấn đặt lại' *************************************** ************************************ '************* ************************************************** *********** 'Pins AND Constants' Được sử dụng để đơn giản hóa lập trình '***************************** ********************************************* PIN LMOTOR 15 PIN RMOTOR 14 RFast CON 650 LFast CON 850 RSlow CON 700 LSlow CON 780 MStop CON 750 RFastRev CON 8 50 LFastRev CON 650 RSlowRev CON 800 LSlowRev CON 700 TurnLeft90 CON 90 TurnRight90 CON 90 '********************************* **************************************** '********* ************************************************** ************** 'Các biến' Được sử dụng để đơn giản hóa lập trình '**************************** ********************************************* MLoopC VAR Word 'cho.. Next Variable up to 65000ish sideCount VAR Byte turnAngle VAR Word '************************************ ************************************** '----------- -------------------------------------------------- ------------- 'Mã chính '--------------------------------- ----------------------------------------- LÀM NẾU IN10 = 0 THEN 'Nếu dây ở chân 10 đang bật thì quay sang trái GOSUB LeftTurn90 GOSUB LFastRev GOSUB RFastRev ELSEIF IN11 = 0 THÌ 'Nếu dây ở chân 11 bật thì hãy quay sang phải GOSUB RightTurn90 GOSUB LFastRev GOSUB RFastRev ENDIF GOSUB Chuyển tiếp Nhanh' Di chuyển về phía trước một xung LOOP '- --------------------------------- ------------------------------------- '** HẾT MÃ CHÍNH ****** ************************************************ '- -------------------------------------------------- --------------------- '**************************** ******************************************** '** Các quy trình phụ / Thủ tục con / Phương pháp ******************************** '*********** ************************************************** *********** '************************************** ********************************** '*************** ************************************************** ******* RightTurn90: 'Subprocdure to Turn 90deg Right' ********************************** ************************************* CAO 1 LOW 0 CHO MLoopC = 1 ĐẾN 22 PULSOUT LMOTOR, Nhanh chóng 'di chuyển về phía trước một xung PULSOUT RMOTOR, RfastRev' bằng cách sử dụng các chân và hằng số TẠM DỪNG 20 '20mS cho phép robot di chuyển TIẾP THEO' trước khi quay lại xung TIẾP THEO '******************** ************************************************** * LeftTurn90: 'Quy trình phụ để Rẽ phải 90deg' ** ************************************************** ******************* CAO 0 THẤP 1 CHO MLoopC = 1 ĐẾN 22 PULSOUT LMOTOR, LfastRev 'di chuyển về phía trước một xung PULSOUT RMOTOR, Rfast' bằng cách sử dụng các chân và hằng số TẠM DỪNG 20 ' 20mS cho phép robot di chuyển TIẾP THEO 'trước khi xung TIẾP THEO RETURN' ************************************** ********************************* ForwardFast: 'Quy trình phụ để di chuyển robot về phía trước nhanh một ô vuông' **** ************************************************** ***************** ĐỐI VỚI MLoopC = 1 ĐẾN 55 PULSOUT LMOTOR, LFast PULSOUT RMOTOR, RFast TẠM DỪNG 20 TIẾP THEO '************** ************************************************** ****** ReverseTurnLeft: 'Quy trình phụ để đảo ngược và quay rô-bốt sang trái khi cản phải bị va vào "*************************** ******************************************* CHO MLoopC = 1 ĐẾN 55 PULSOUT LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev TẠM DỪNG 20 CUỘC TRỞ LẠI TIẾP THEO '************************************** ********************************* ReverseTurnRight: 'Subproce đảm bảo lùi và quay rô-bốt sang phải khi cản trái bị va chạm '************************************ *********************************** CHO MLoopC = 1 ĐẾN 55 PULSOUT LMOTOR, LFastRev PULSOUT RMOTOR, RSlowRev PAUSE 20 QUAY LẠI TIẾP THEO '********************************************** ************************* 'HẾT CÁC TIỂU HỌC' ******************** ************************************************** *

Bước 3: Bước 3: Sử dụng lá nhôm và que biểu tượng cho các miếng đệm dây

Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây
Bước 3: Sử dụng lá nhôm và que kem làm miếng đệm dây

Trước khi bạn bắt đầu bước này, hãy đảm bảo rằng 4 dây từ breadboard (tham khảo bước 1) được chia thành các cặp, với mỗi cặp điều khiển một bộ cản bên phải hoặc bên trái. Đèn LED hoạt động trong tình huống này để kiểm tra xem mã có hiệu lực trên các phần cản bên phải và bên trái hay không. Trên gậy Popsicle, một dây từ mỗi cặp chia sẻ một đầu của gậy Popsicle (điều này có nghĩa là các dây của cùng một cặp KHÔNG THỂ nằm trên cùng một bộ cản).

Cắt 4 tấm giấy bạc hình chữ nhật nhỏ và dùng dây kẽm quấn quanh mỗi đầu của hai que Popsicle. Điều này làm tăng diện tích bề mặt dẫn điện của gậy Popsicle cũng như cung cấp diện tích bề mặt lớn hơn cho gậy tiếp xúc.

Để giữ giấy bạc và dây điện dính vào que Popsicle, hãy dùng 1-2 kẹp giấy để giữ các vật liệu lại với nhau. Kẹp giấy cũng cung cấp nhiều khả năng tiếp cận hơn để các que Popsicle có thể chạm vào mà không có nhiều sự can thiệp từ bên ngoài. Trượt chiếc kẹp giấy lên trên que Popsicle giống như cách bạn làm với một xấp giấy thông thường. Lặp lại điều này cho tất cả bốn miếng giấy bạc và mỗi đầu của hai que Popsicle.

Bước 4: Bước 4: Lắp ráp phần còn lại của bộ đệm

Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm
Bước 4: Lắp ráp phần còn lại của bộ đệm

Sau khi giấy nhôm và giấy bìa cứng có thể giữ các dây gắn vào mỗi que Popsicle, hãy cắt hai hình khối nhỏ bằng miếng bọt biển và dán từng hình khối vào giữa các que (ở các đầu của mỗi que để keo dính nóng không cản trở độ dẫn điện của kim loại. Các miếng bọt biển đảm bảo rằng các miếng đệm khi chạm vào nhau mỗi khi robot va vào tường.

Tùy chọn: Cắt một nửa que Popsicle thừa và dán nó ở một góc ở đầu của tấm cản bên ngoài que Popsicle. Điều này củng cố tác động của cản va vào tường và quay đầu.

Hãy nhớ uốn cong các dây để phần cản cong ra ngay trước Bot-bot.

Đề xuất: