Mục lục:

Bộ giao tiếp mã tín hiệu (RFM69): 7 bước (có hình ảnh)
Bộ giao tiếp mã tín hiệu (RFM69): 7 bước (có hình ảnh)

Video: Bộ giao tiếp mã tín hiệu (RFM69): 7 bước (có hình ảnh)

Video: Bộ giao tiếp mã tín hiệu (RFM69): 7 bước (có hình ảnh)
Video: LoRa communication real-time demonstration with ESP32 & RFM95 2024, Tháng bảy
Anonim
Bộ giao tiếp mã tín hiệu (RFM69)
Bộ giao tiếp mã tín hiệu (RFM69)
Bộ giao tiếp mã tín hiệu (RFM69)
Bộ giao tiếp mã tín hiệu (RFM69)

Những thiết bị liên lạc vô tuyến “2-bit” (kỹ thuật số) này cung cấp một phương tiện để báo hiệu cho nhau (về vị trí của họ; nếu họ đã hoàn thành…) khi mua sắm ở hai đầu đối diện của một cửa hàng đồ hộp lớn; ngay cả khi điện thoại di động không có dịch vụ hoặc sạc pin di động.

Mô-đun vô tuyến RFM69 915MHz được sử dụng. Chúng rất hiệu quả, công suất thấp, bộ đàm sử dụng truyền thông gói kỹ thuật số. Chúng có thể liên lạc trên 100 mét bằng cách sử dụng năng lượng thấp, chỉ trong 10 giây miliampe và nhiều nhất là 1/2 km hoặc thậm chí 1/2 dặm bằng cách sử dụng khoảng 120 ma.

Các mô-đun vô tuyến RFM69 hiệu quả và hiệu quả hơn nhiều ở khoảng cách xa hơn, sau đó là NRF24L01 hoặc RFM12.

Đối với các kết nối xa hơn đáng tin cậy hơn nữa, dự án này cũng có thể được thực hiện cho các mô-đun vô tuyến LoRa đã qua sử dụng. Có một vài thiết bị LoRa (như RFM95) có kích thước và giao diện tương tự. Nhưng chúng đắt hơn nhiều, điều đó đối với tôi là không chính đáng.

Các đơn vị hỗ trợ một bộ mã câu hỏi và câu trả lời kiểu kỹ thuật số, 10-20 (vị trí?) (Tham khảo wiki / Ten-code https://en.wikipedia.org/wiki/Ten-code); cũng như mã Morse tùy chọn. Thiết bị không hỗ trợ bất kỳ giao tiếp thoại (tương tự) nào.

Chúng cũng có thể được sử dụng làm máy nhắn tin với 3 cấp độ yêu cầu chú ý, khi ai đó đang dưỡng bệnh hoặc làm việc dưới nhà.

Ngoài ra, chúng có thể mang lại rất nhiều niềm vui, đặc biệt là đối với trẻ em hoặc học sinh.

Bước 1: Thu thập các thành phần

Vì mô-đun radio không thể xử lý nguồn điện 5v hoặc điện áp tín hiệu, bạn phải sử dụng MCU 3.3v. Cũng lưu ý rằng tôi sử dụng phiên bản năng lượng cao 'H' của mô-đun radio.

Danh sách này là để xây dựng 2 đơn vị.

  • qty. 2 Pro Mini 3.3v Arduino MCU
  • qty. 2 mô-đun RFM-69HCW 915MHz
  • qty. 2 Hộp đựng (là ngăn chứa pin)
  • qty. 2 pin Li-ion 3.7v 200 + mah https://www.ebay.com/itm/311682151405 (7x20x30mm, ~ Kích thước tối đa có thể sử dụng 9x24x36mm)
  • qty. 4 Đèn LED Bi-Color Cathode chung 5mm Red-Green https://www.ebay.com/itm//112318970450 (hệ thống dây điện & điện áp sự cố là quan trọng)
  • qty. 4 công tắc nút 6x6x7.5mm
  • qty. 2 bộ rung hoạt động Piezo
  • qty. 2 mỗi điện trở… 270 Olm, 1.5kOlm, ~ 5k
  • qty. 2 nắp nguyên khối 0,1 uf

Không bắt buộc

  • qty. 2 đèn LED 3mm Trắng (hoặc Xanh lam)
  • qty. 2 giắc cắm Phono 3,5 mm
  • qty. 2 tụ lọc nguồn 220uf
  • Que kem

Các nguồn cung cấp khác bạn có thể cần

Dây rắn 30ga https://www.ebay.com/itm/142255037176, 26ga dây rắn hoặc 24ga bện, cho mặt đất và + V

22ga dây rắn, cho ăng-ten

Khác: vật tư hàn, băng keo, keo nóng, dụng cụ tạo mẫu.

Bộ chuyển đổi USB sang TTL

Phần cứng tùy chọn:

Giắc cắm âm thanh nổi để kết nối một miếng tai, để đảm bảo không bỏ lỡ các liên lạc đến. Ngoài ra, một bộ khuếch đại loa di động có thể được kết nối với nó.

Đèn LED trắng nhỏ (3 mm) là tùy chọn. Tôi đã thêm nó để phục vụ như một chỉ báo BẬT. Thật đơn giản để thêm khi tôi nối dây nó qua Btn1 được cung cấp một số dòng điện từ một điện trở bên trong (~ 37k). Với ổ đĩa nhỏ như vậy, đèn LED này phải là một đèn hiệu quả cao. Có thể sử dụng đèn LED màu xanh lá cây hoặc có thể là đèn LED màu xanh lam nhưng không được sử dụng màu vàng hoặc đỏ vì điện áp giảm quá thấp và sẽ làm cho nó trông giống như nút được nhấn. Tôi sẽ không sử dụng màu xanh lá cây vì màu đó được sử dụng cho thông tin tín hiệu.

Giắc cắm phono cũng có thể bị bỏ qua. Thiết bị này không gây ra nhiều tiếng ồn, nhưng nếu bạn lo lắng về việc thu hút sự chú ý của người khác, thì nó cung cấp tùy chọn sử dụng tai phone. Thay thế một miếng băng keo dán trên lỗ để tạo âm thanh có hiệu quả.

Để thực hiện tất cả các phép đo dễ dàng và chính xác, tôi thực sự thích loại thước cặp rẻ tiền này.

Bước 2: Xây dựng Hệ thống con MCU-radio

Xây dựng Hệ thống con MCU-radio
Xây dựng Hệ thống con MCU-radio
Xây dựng Hệ thống con MCU-radio
Xây dựng Hệ thống con MCU-radio
Xây dựng hệ thống con MCU-radio
Xây dựng hệ thống con MCU-radio

Nối dây ngắn vào các chân MCU: 10, 11, 12, 13; một dây dài trung bình để pin2.

Thêm dài (4-5 inch) vào các chân I / O của MCU, sẽ được sử dụng (chân: 3-9). Tôi đã sử dụng thước đo 30 AWG và các màu khác nhau cho các loại thiết bị ngoại vi. Dây có đường kính nhỏ này có khả năng xử lý các tín hiệu nhỏ hơn 100 miliampe, nhưng nó vẫn đủ nhỏ và dẻo (& rất được khuyến khích) để dễ dàng lắp ráp chặt chẽ.

Cũng kết nối một mặt đất và một dây Vcc (tôi đã sử dụng 26ga, chúng là những cái màu xanh lam trong ảnh). Những dây này mang nhiều dòng điện hơn nên sử dụng một máy đo lớn để giảm điện áp rơi (và bức xạ tín hiệu nhiễu tiềm năng).

Kết nối MCU với bo mạch RFM-69. Tất cả trừ các dây dài đi đến nó.

Gấp bảng radio xuống trên bảng MCU. Không được có quần đùi giữa các tấm ván. Nếu có khả năng thực sự xảy ra trong thời gian ngắn, hãy sử dụng một miếng băng dính hoặc tấm nhựa để can thiệp.

Thêm dây ăng-ten (22-24ga. 80mm) vào bảng radio, như trong ảnh.

Bước 3: Kiểm tra phát triển

Kiểm tra phát triển
Kiểm tra phát triển
Kiểm tra phát triển
Kiểm tra phát triển

Để thực hiện các đơn vị này, bạn có thể bỏ qua phần này. Đối với những người quan tâm, điều này cung cấp thêm một chút thông tin về cách tôi đến đó.

Độ dài sóng A ¼ cho 915MHz là 82mm. Hướng dẫn của Sparkfun.com đề xuất sử dụng 78mm. Tôi hiểu rằng công nghệ ăng-ten cho biết khi ăng-ten nằm trong phạm vi ½ chiều dài sóng của mặt đất, ăng-ten của bạn sẽ hoạt động giống như dài hơn ~ 5% so với hiện tại. Đối với 915Mhz sẽ nhỏ hơn một foot và thông thường bạn vận hành thiết bị này cao hơn nhiều so với mặt đất, tôi loại bỏ chiều dài 78mm này. Tuy nhiên, có những yếu tố khác có thể gây ra các tác động tương tự, được coi là khôn ngoan khi sử dụng độ dài sóng nhỏ hơn chính xác. Tôi đã xâm phạm và đã cắt dây ăng-ten của mình xuống còn 80mm tổng cộng (bao gồm cả phần đi qua PCB). Với thiết bị kiểm tra thích hợp, bạn có thể tối ưu hóa độ dài ăng-ten cho thiết bị của mình tốt hơn, nhưng tôi chỉ mong đợi những cải tiến nhỏ.

Sau khi điều chỉnh, tôi có phạm vi tối đa khoảng 250m với một số chướng ngại vật. Ngoài 150m, định hướng và vị trí của ăng-ten ngày càng trở nên quan trọng hơn.

Khi tôi sử dụng cấu hình ăng-ten loại lưỡng cực đầy đủ (phần tử hoạt động 80mm thẳng đứng đối diện với phần tử dây nối đất 80mm hướng xuống) cho một đơn vị, tôi nhận được, với định vị thử và sai, lên đến 400 mét với một số cây và một ngôi nhà ở giữa, và dấu phẩy 2 chiều chắc chắn ở ½ khoảng cách đó bất kể vị trí hoặc hướng của đơn vị từ xa.

Bước 4: Chuẩn bị Hộp dự án

Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án
Chuẩn bị Hộp dự án

Việc xây dựng dự án này bằng cách sử dụng một hộp nhỏ là khá khó khăn. Tôi có kinh nghiệm xây dựng nhiều gizmo điện tử tùy chỉnh cho các dự án gia đình, công nghiệp và hàng không vũ trụ. Người mới có thể sử dụng hộp chứa lớn hơn, làm cho việc xây dựng dễ dàng hơn nhiều. Sau tất cả, đó là sự tận hưởng mà chúng ta đang tìm kiếm, không phải là sự thất vọng. BTW, bạn có thể nhận thấy sự khác biệt nhỏ trong các bức ảnh của các đơn vị tôi đã xây dựng.

Làm sạch nhiều bên trong hộp. Dùng một cái đục hoặc dao X-acto để cắt bỏ hai xương sườn bên phải và một bên trái. (xem ảnh bên trong hộp trước và sau)

Làm nóng phần cuối của dao X-acto hoặc dao gọt (trong ~ 15 giây bằng bật lửa) và cắt một trụ lớn bên trong hộp và hạ hai trụ còn lại xuống khoảng 1/8 inch. Khi tôi gắn công tắc, tôi đã làm tan hai trụ đó đủ để giữ công tắc tại chỗ.

Tôi đã sử dụng băng dính trên hộp để đánh dấu các vị trí lỗ. Xem ảnh trên.

Để giữ cho việc khoan các lỗ được thành công, trước tiên tôi đánh dấu các điểm bằng mũi phi tiêu, sau đó khoan tất cả các vị trí bằng bit 1/16, sau đó cuối cùng khoan từng lỗ theo kích thước mong muốn.

Khoan lỗ cho các nút, âm thanh và đèn LED trong vỏ. Hai lỗ dành cho đèn LED chính, ở trên cùng, có kích thước 13/64”(5mm) và cách mép 10mm. Các lỗ cho âm thanh (tiếng bíp-buzzer) và đèn led “Bật” tùy chọn là 1/8”(3mm). Chúng cách đỉnh 10mm. Led nhỏ cách mặt bên 7mm. Lỗ âm thanh được căn giữa sang hai bên. Các lỗ cho các nút, ở bên cạnh, là 9/16”(3,5 mm). Một nút cách đỉnh 10mm, nút còn lại 20mm. Tôi vát mặt trong của các lỗ cúc áo bằng tay, với một mũi khoan 1/4”, để giúp đảm bảo các nút sẽ không bị kẹt xuống khi bấm.

Nếu bạn đang sử dụng giắc cắm phono cho tai nghe hoặc loa ngoài, bạn cần mở lỗ có sẵn ở phía dưới thành 15/64”. Vật liệu ở đây khá dày và chỉ cần cố gắng khoan nó ra sẽ dẫn đến một lỗ quá gần mép. Vì vậy, trước tiên, hãy khoan một lỗ 1/16, với tâm của nó cách mép của lỗ hiện có khoảng 16 inch. Sau đó, phóng to lỗ đó với bit 7/16”. Với một lưỡi dao nhỏ sắc bén (~ Xacto), hãy cắt vật liệu sao cho hai lỗ liền kề gần bằng một. Sử dụng giũa xoắn ốc Dremel hoặc giũa đuôi chuột để các lỗ tạo thành một lỗ tròn tốt, mũi khoan sẽ dễ dàng định tâm. Lỗ gần như là 15/64 tại thời điểm này. (Có một bức ảnh của lỗ tại điểm này) Bây giờ hãy khoan nó với một mũi khoan 15/64”. Nó sẽ không phải là 'Kinh khủng' nếu bạn sử dụng một ¼ bit.

Bước 5: Gắn các thành phần I / O ngoại vi

Gắn các thành phần I / O ngoại vi
Gắn các thành phần I / O ngoại vi
Đính kèm các thành phần I / O ngoại vi
Đính kèm các thành phần I / O ngoại vi
Đính kèm các thành phần I / O ngoại vi
Đính kèm các thành phần I / O ngoại vi

Đảm bảo khi hàn trong phạm vi giới hạn của hộp, bạn không vô tình để bất kỳ phần nào của bàn ủi chạm vào và do đó làm chảy một phần của hộp, đặc biệt là dọc theo cạnh ngoài của hộp.

Các nút

Dùng một ít keo dán vào các nút trong khi định vị chúng. Keo nóng là được, keo mỏng (như keo siêu dính) có thể xâm nhập vào nút khiến nó không hoạt động được. Lưu ý rằng tôi đã loại bỏ một chân cho mỗi nút (những nút thừa, tôi không kết nối với); uốn cong chúng để chúng không nhô ra quá nhiều; và kết nối hai chốt dưới giữa các nút. Các nút được đặt sao cho các chân kết nối bên trong nằm đối diện nhau theo chiều ngang.

Bẻ cong các dây dẫn của đèn LED “bật / tắt” 3mm để nó có thể được kết nối qua Btn1, cực âm của nó hướng xuống mặt đất. Đây có lẽ là vấn đề lắp ráp phức tạp nhất.

Đánh dấu mặt bên của đèn LED bên cạnh cực dương màu đỏ. Cắt hai cực dương (bên ngoài) dẫn đến khoảng ¼ inch. định hướng chúng bằng đường dẫn được đánh dấu (màu đỏ) lên trên. Để dây dẫn trung tâm dài, Sau đó chúng được uốn cong để kết nối với mặt đất của các nút. Tham khảo hình ảnh.

Gắn các điện trở.

Không chỉ sử dụng các điện trở giá trị mà tôi đã làm cho đèn LED. Tôi đã mua đèn LED của mình hơn một năm trước, không chính xác là những chiếc được liệt kê ở trên. Khi hiệu suất của đèn LED thay đổi rất nhiều, hãy kiểm tra các giá trị điện trở để sử dụng với đèn LED cầm tay của bạn. Chọn điện trở cho độ sáng bạn muốn với điện áp ổ đĩa từ 3 đến 3,3 vôn (ưu tiên 3,2 v). Đối với điện áp nguồn cung cấp thử nghiệm, bạn có thể sử dụng hai pin 1,5v mắc nối tiếp hoặc đầu ra kỹ thuật số cao từ chip Arduino được cấp nguồn 3,3v. Xác minh rằng bạn nhận được màu Vàng đúng khi lái xe cả hai yếu tố màu đỏ và xanh lá cây. Cắt và hàn các điện trở với đèn LED tương tự như trong ảnh.

Trên một thiết bị, tôi đã sử dụng que Popsicle làm miếng đệm xung quanh hai đèn LED chính để chúng không bị lòi ra ngoài quá nhiều. Đây hoàn toàn là một sở thích cá nhân. Điều này có tác dụng phụ tiêu cực là giảm độ sáng / góc nhìn hiệu quả của các đèn LED này.

Đặt một ít keo dọc theo mép ngoài của còi và dán nó giữa các đèn LED chính (+ bên phải). Điều chỉnh vị trí của nó để nó thẳng hàng với lỗ trong hộp trước khi nó được cố định vào vị trí.

Công tắc bật / tắt được giữ cố định bằng cách làm tan chảy các trụ lỗ lắp. Tôi đã sử dụng đầu đã được làm nóng cho một trình điều khiển vít nhỏ cho việc này.

Đai ốc của giắc cắm phono không gắn được, vì vậy hãy sử dụng keo nóng ở đầu đối diện để cố định nó.

Nối đất dọc theo các nút và đèn LED.

Chuẩn bị một đầu chì cộng và trừ (~ 24ga. Đặc) bằng cách dùng búa đập các đầu đã cắt tỉa để chúng có chiều rộng gấp đôi so với độ dày của chúng. Sau đó, chúng sẽ đi vào đầu nối pin một cách dễ dàng nhưng vừa khít. Tất nhiên nếu bạn có hoặc có thể tìm thấy một cáp kết nối liên kết dùng để kết hợp với pin của bạn thì hãy sử dụng nó.

Nối dây công tắc bật / tắt, giắc cắm phono, còi và dây nguồn. Tham khảo sơ đồ đấu dây trước đó.

Tôi có một tụ điện nhỏ trên các kết nối phono. Điều này có thể được bỏ qua vì nó được bỏ một cách vừa vặn. Mục đích của nó là để ngăn chặn tiếng ồn ở mức thấp trong đầu ra.

Sau khi các nút (cũng như công tắc bật / tắt và giắc cắm phono) được nối và hàn hoàn toàn, hãy dán keo nóng chúng vào vị trí để không bị nhúc nhích ngay cả sau khi sử dụng rộng rãi.

Bước 6: Lắp ráp hoàn chỉnh cuối cùng

Hội đồng hoàn chỉnh cuối cùng
Hội đồng hoàn chỉnh cuối cùng
Hội đồng hoàn chỉnh cuối cùng
Hội đồng hoàn chỉnh cuối cùng
Hội đồng hoàn chỉnh cuối cùng
Hội đồng hoàn chỉnh cuối cùng

Đã đến lúc kết nối hệ thống phụ MCU-radio vào vỏ với các thiết bị I / O.

Kết nối hệ thống con MCU-Radio.

Cắt bớt các dây khi cần thiết, chỉ để lại lượng dây vừa đủ để cụm hệ thống con có thể không bị lệch đủ để cho phép hàn các đầu khác của dây.

Đảm bảo kết nối các dây dẫn với đèn LED chính theo đúng dây màu đỏ / xanh lá cây và đặc biệt là mối quan hệ trái / phải chính xác. Các đèn LED được đảo ngược từ trái sang phải khi bạn nhìn vào bên trong hộp để biết cách bạn cầm và sử dụng thiết bị giao tiếp. (trừ khi bạn định sử dụng các đơn vị có mặt đối diện đối diện với bạn, như một người thuận tay trái có thể quan tâm).

Di chuyển hệ thống con MCU-Radio vào vị trí và Nhấn nó xuống, gấp dây nếu cần, vào trong hộp; kiểm tra thấy rằng không có quần đùi được thực hiện. Đặt một miếng băng dính điện bên dưới nó nếu cần.

Bạn có thể lập trình lại thiết bị này trong khi lắp ráp như đã thấy trong phần tiếp theo, với một FDDI được gắn tạm thời qua cáp ngắn. Đảm bảo rằng mức Vcc từ cáp tải xuống USB là 3,3v, không phải 5v!

Gắn pin vào, trượt mặt sau và kiểm tra nó, vì bạn đã tải phần mềm vào đó. Hãy cẩn thận không để pin đang nhấn vào nút đặt lại của bảng MCU.

BTW, pin 300 mah sẽ tồn tại trong khoảng 12 giờ hoạt động, trước khi cần được sạc lại.

Bước 7: Các tính năng và hoạt động của phần mềm và thiết bị

Các tính năng và hoạt động của phần mềm và thiết bị
Các tính năng và hoạt động của phần mềm và thiết bị
Các tính năng và hoạt động của phần mềm và thiết bị
Các tính năng và hoạt động của phần mềm và thiết bị

Phần chính khác của dự án này, mà hoạt động của nó phụ thuộc vào, là lập trình phần mềm. Nhưng tôi đã làm việc đó ra tất cả, vì vậy bạn không cần phải làm như vậy.

Bạn có thể dễ dàng tìm thấy hướng dẫn tải xuống bản phác thảo cho Pro mini Arduino ở những nơi khác. Đặt Arduino IDE của bạn cho đúng thiết bị và tần số hoạt động, nếu không bạn sẽ nhận được âm thanh kém và có thể hoạt động sai. Đảm bảo sử dụng bộ chuyển đổi USB-TTL với 3.3v (không phải 5v) Bộ chuyển đổi tự động của nó phải được tắt. Bạn có thể thấy rằng tôi đã đặt một tiêu đề góc vuông vào cuối cáp tải xuống và sau đó lắp nó vào các lỗ liên quan trên bảng MCU và để thiết bị treo trên đó, duy trì kết nối đủ tốt nhưng tạm thời.

Bạn cũng cần cài đặt thư viện cho RMF69; xem "Cài đặt Thư viện RFM69" ở trang này.

Chỉnh sửa thích hợp (xem đoạn mã bên dưới), biên dịch và tải xuống bản phác thảo Two_bit_Comm đính kèm.

// !!!! Địa chỉ cho nút này. XEM LẠI ID CHO SỐ THỨ HAI !!!!

#define MYNODEID 1 // ID nút của tôi (0 đến 255) #define TONODEID 2 // ID nút đích (0 đến 254, 255 = quảng bá)

Phần mềm tận dụng phiên bản công suất cao 'H' của các mô-đun vô tuyến, bằng cách ban đầu sử dụng công suất trung bình, và sau đó nó không thể nhận lại được nó sẽ cố gắng với công suất tối đa. Tôi không biết nhưng tôi hy vọng thao tác này sẽ không xảy ra sự cố nếu người ta sử dụng phiên bản radio công suất không cao.

Tài liệu hoạt động

Khởi tạo, khi Power-Up:

Khi một thiết bị khởi động lại, nó sẽ khởi tạo tất cả phần cứng và phần mềm của nó và gửi cài đặt Chế độ và Tùy chọn của nó tới thiết bị kia, giữ cho chúng được đồng bộ hóa. Chỉ có một tiếng bíp ngắn và sau đó nếu giao tiếp ban đầu này thành công thì sẽ có một tiếng bíp khác và đèn xanh sáng lên. Nếu tại thời điểm này, kết nối không thành công sẽ không có tiếng bíp thứ hai và đèn Đỏ sáng. Nếu kết nối không thành công, có khả năng thiết bị khác nằm ngoài phạm vi phủ sóng, tắt nguồn hoặc hết pin. Thử lại nhiều lần và thử tăng công suất truyền tải lên tối đa trước khi chấp nhận lỗi.

Chế độ 1 - 10-20 Loại Comm

  • Xin chào
  • Cần sự trợ giúp
  • CỨU GIÚP!
  • Xong ? Sẵn sàng để đi ?
  • Bạn ở đâu ?
  • Gọi cho tôi.
  • Vui lòng lặp lại

Các quy ước phản hồi thích hợp cũng được xác định. Bao gồm các câu trả lời "Loại khu vực" và "Loại phần" cho "Bạn đang ở đâu?" các yêu cầu.

Cần lưu ý rằng bạn cần kiên nhẫn khi thiết bị đang hiển thị phản hồi, vì các lần nhấn nút trong thời gian đó sẽ bị bỏ qua.

Chế độ 2 - cho phép một hình thức Giao tiếp Mã Morse

Cả kiểu phím đơn và kiểu hai phím đều được hỗ trợ.

Tài liệu đính kèm "Two_bit_Comm_user_Manual" trình bày đầy đủ chi tiết về hoạt động chức năng được hỗ trợ bởi phần mềm.

Đề xuất: