Skip to main content

Arduino Leonardo có chức năng USB Host không?

USB Host là để cho phép các thiết bị ngoại vi khác như chuột, bàn phím, kết nối vào. USB Host phải cấp nguồn cho các thiết bị ngoại vi. USB Host còn có tên gọi khác là USB OTG.

USB Devices là để kết nối tới USB Host, USB Devices sẽ nhận nguồn điện 5V từ USB Host để hoạt động.

Hiện nay rất nhiều trang web bán hàng mô tả rằng "Arduino Leonardo còn có thêm một chức năng khá hay, đó là USB host". Đó là mô tả không đúng, mình cũng đã mua board Arduino Leonardo vì tưởng rằng nó có thể làm được USB Host như các trang web bán hàng mô tả nhưng thực tế là board này không hỗ trợ USB Host.

Arduino Leonardo mặt sau

Arduino Leonardo mặt trước

Theo trang web của Arduino "The Arduino LEONARDO is an integrated USB HID Arduino board. Ideal for projects requiring the board to behave (act) as a USB human interface devices.", dịch ra có nghĩa là Arduino Leonardo là một board Arduino tích hợp USB HID (chuột, bàn phím,... là các thiết bị USB HID), phù hợp cho những dự án cần yêu cầu board mạch hoạt động như là một thiết bị USB ngoại vi.

Sau khi thử nghiệm, có thể kết luận, câu trả lời là không, Arduino Leonardo chỉ có thể dùng để làm USB HID Devices mà thôi.

CÓ THỂ: Dùng Arduino Leonardo để tự làm một bàn phím hoặc chuột máy tính, kết nối với máy tính qua cổng USB. Hoặc có thể dùng board Arduino Leonardo điều khiển trò chơi khủng long trên trình duyệt Chrome của máy tính (trò chơi này xuất hiện trên trình duyệt Chrome khi bạn không có internet). Dùng quang trở để phát hiện sự có mặt của chướng ngại vật và dùng Arduino Leonardo gửi phím bấm space bar hoặc phím mũi tên chỉ xuống cho máy tính để điều khiển khủng long.

KHÔNG THỂ: Kết nối chuột hoặc bàn phím USB vào Arduino Leonardo. Ví dụ bạn muốn dùng bàn phím USB kết nối vào Arduino Leonardo rồi khi gõ phím thì Arduino Leonardo sẽ biết là phím gì đang gõ thì điều này KHÔNG làm được. Thay vào đó hãy sử dụng board Arduino Due để làm việc này.

Comments

Popular posts from this blog

Arduino Nano nạp code không được

Tình trạng Khi bạn nạp code cho arduino nano, IDE sẽ hiển thị là Uploading... rất lâu sau đó báo lỗi: avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: s...

STM32F103C8T6 lỗi không nạp được code

Tình trạng Sau khi nạp code lần đầu, STM32 ST-Link Utility sẽ không kết nối được nữa và hiện lên thông báo lỗi: Cannot connect to target! Please select "Connect Under Reset" mode from Target -> Settings menu and try again. If you are trying to connect to low frequency application, please select a lower SWD Frequency mode from Target -> Settings menu. Tình trạng này có thể xảy ra với tất cả các dòng F1 và cách khắc phục cũng tương tự nhau. Khắc phục 1. Trong STM32CubeMX cần phải chọn lại trong SYS > Debug là Serial Wire sau đó generate lại code. 2. Board arm kết nối ST-Link Utility không được, lúc đó hãy nhấn giữ nút Reset trên board rồi nhấn nút Connect trên ST-Link Utility, chờ khoảng 3-5 giây sau đó thả nút Reset. Có thể bạn sẽ phải làm vài lần như vậy mới có được 1 lần kết nối thành công. 3. Sau khi kết nối thành công, nạp code mới có config Debug là Serial Wire ở trên. Khi đó board sẽ kết nối bình thường cho các lần tiếp theo Mạch nạp ST-LINK có thể m...

Dùng mạch nạp USBasp để nạp code cho Arduino

Arduino có thể dễ dàng nạp code và chạy chương trình chỉ với thao tác đơn giản cắm board mạch vào máy tính chọn cổng COM và nhấn nút Upload. Để làm được như vậy, bên trong chip vi xử lý được nạp sẵn một đoạn mã lệnh gọi là boot loader. Boot loader luôn luôn được chạy lên đầu tiên, sau đó mới chuyển quyền điều khiển lại cho phần mã của người dùng nạp vào.   Như vậy để các Chip Arduino có thể làm việc được với Arduino IDE thông qua giao tiếp USB-COM thì trong vi điều khiển phải được nạp sẵn boot loader. Các board mạch Arduino bán sẵn trên thị trường như Arduino Uno, Arduino Nano, Arduino Mega 2560,... đều được nạp sẵn boot loader. Như vậy ưu điểm của boot loader là để người dùng dễ dàng tiếp cận, thử nghiệm, và làm ra được sản phẩm nhanh chóng, dễ dàng. Nhưng nhược điểm là boot loader luôn luôn cần một khoảng thời gian từ 1.6s đến 2s để khởi động. Nếu bạn không muốn mất 1.6 - 2s đầu tiên mà muốn chương trình chạy gần như ngay lập tức khi cấp nguồn hoặc reset thì dùng mạch nạp USBasp ...