資料介紹
描述
大家好。
所以這是一個有趣的小項目,它解決了 Raspberry Pi Pico 微控制器的一個主要問題。
Raspberry Pi Pico 的引出線信息位于電路板的底部,這使得原型制作變得困難。當我們將設備安裝到面包板上時,我們必須使用參考指南來確定哪些引腳是誰的,這是一個混亂的過程。
所有的引出線細節都在我制作的擴展板的頂部。為了展示 Pico 的 HID 功能,我們將它連接到擴展板并利用它來構建一個簡單的鼠標。
該擴展板的每個 GPIO 引腳都有額外的 4 個引腳,并且兩側都有一些額外的引腳沒有連接到任何東西,這些用于放置 XYZ 組件以制作快速原型。
知道了這個擴展板的使用方法之后,我們就開始本文對整個過程的探討。
所需材料
以下是此建筑中使用的材料 -
擴展板設計
擴展板的設計考慮了一些事情,即每個引腳的額外 GPIO 引腳和一些用于添加東西的額外 con 引腳,另一件事是 Topside 上的 GPIO 編號詳細信息非常清晰。
該項目的原理圖非常簡單;我只是在我的 CAD 軟件中復制了一個 Pico 設計,并將一個 CON4 引腳連接到 Pico 的每個 GPIO 引腳。
我根據 PCB 原理圖創建了一個 PCB 設計,并包括一個用于 Pico 放置的混合焊盤,其中包含一個用于接頭引腳的孔和一個用于將 Pico 作為 SMD 模塊安裝在 PCB 上的焊盤。
線路板
我將完成的PCB發送給PCBWAY樣品并在一周后收到它們。訂單選擇了帶有黑色絲印的白色阻焊層,因為它通常會使 PCB 看起來很漂亮。
就綜合素質而言,它是出類拔萃的。我買的 10 塊板子每一塊都完美無缺。
我已經使用他們的服務一段時間了,我必須說我收到的 PCB 非常好,正如我所希望的那樣。
查看 PCBWAY,以經濟的價格和高質量獲得優質的 PCB 服務!
董事會大會
- 電路板組裝過程首先將焊膏逐個添加到每個元件焊盤。
- 接下來,我們用鑷子夾起樹莓派 Pico 并將其放在指定位置,我們必須根據焊盤對齊電路板。
- 之后,我們小心地抬起整個電路板并將其放在 Mini SMT Hotplate 上,從下方將 PCB 加熱至焊膏熔化溫度。一旦 PCB 達到該溫度,焊膏就會熔化,所有元件都會連接到它們的焊盤上。
由于與 PCB Hotplate 的焊盤相比,電路板的尺寸稍大,我不得不通過移動 PCB 對電路板進行兩次回流焊。
Pico 作為 HID
有趣的事實:Pico 提供人機接口設備 (HID) 功能。
鼠標、鍵盤、控制器和其他 HID 設備,
Arduino Nano 或 UNO 等通用板中使用的 Atmega382PU 或 AU 非常適合任何項目的原型制作,但它不支持 HID,因此我們無法使用這些板之一構建游戲機項目。(還有另一種更復雜的方法,可以將 Uno 或 Nano 用作游戲控制器。)
我們將 Atmega32U 供電的 Arduino Micro 或 Leonardo 用于涉及 HID 的項目。
憑借更好的外圍設備和與 ESP32 相當但沒有 WiFi 的處理器,Raspberry Pi Pico 是 Micro 或 Leonardo 的直接替代品。
也許 Pico 現在優于 ESP32,因為它也提供 WiFi 版本?這是有爭議的。
接線圖
這是我們將在下一步中使用的接線連接。
鼠標組裝
- 為了構建 HID 鼠標,我們首先使用另一個擴展 PCB,向其添加按鈕,并將按鈕焊接到位。
- 我們將每個按鈕的一個引腳連接到 GND,然后將其他引腳連接到 GPIO0、GPIO1、GPIO2、GPIO3 和 GPIO4。(見附接線圖)
- 通過使用四個 PCB 支架,我們使用四個安裝孔將兩個 PCB 連接在一起。
代碼
對于代碼,我使用的是 HID 鼠標草圖,它在示例> USB>鼠標>鼠標按鈕菜單中可用。
#include "Mouse.h"
// set pin numbers for the five buttons:
const int upButton = 0;
const int downButton = 1;
const int leftButton = 2;
const int rightButton = 3;
const int mouseButton = 4;
int range = 5; // output range of X or Y movement; affects movement speed
int responseDelay = 10; // response delay of the mouse, in ms
void setup() {
// initialize the buttons' inputs:
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(leftButton, INPUT_PULLUP);
pinMode(rightButton, INPUT_PULLUP);
pinMode(mouseButton, INPUT_PULLUP);
// initialize mouse control:
Mouse.begin();
}
void loop() {
// read the buttons:
int upState = digitalRead(upButton);
int downState = digitalRead(downButton);
int rightState = digitalRead(rightButton);
int leftState = digitalRead(leftButton);
int clickState = digitalRead(mouseButton);
// calculate the movement distance based on the button states:
int xDistance = (leftState - rightState) * range;
int yDistance = (upState - downState) * range;
// if X or Y is non-zero, move:
if ((xDistance != 0) || (yDistance != 0)) {
Mouse.move(xDistance, yDistance, 0);
}
// if the mouse button is pressed:
if (clickState == HIGH) {
// if the mouse is not pressed, press it:
if (!Mouse.isPressed(MOUSE_LEFT)) {
Mouse.press(MOUSE_LEFT);
}
}
// else the mouse button is not pressed:
else {
// if the mouse is pressed, release it:
if (Mouse.isPressed(MOUSE_LEFT)) {
Mouse.release(MOUSE_LEFT);
}
}
// a delay so the mouse doesn't move too fast:
delay(responseDelay);
}
我們只需要修改引腳號和INPUT為INPUT PULLUP,這樣我們使用的每個GPIO都會有一個內部上拉電阻。除了這兩個修改之外,無需更改任何其他內容。
- 我們必須先按住Bootsel 按鈕,同時將 USB 連接到 Pico Board 才能上傳草圖。
- 之后,我們只需在板經理選擇板后上傳草圖。(Pico 不需要選擇 COM 端口;不要選中它或留空。)
結果
這是此構建的結果:一個功能性 HID 鼠標,帶有一個用于選擇的按鈕和四個用于移動的方向按鈕。
此配置不能代替標準鼠標。這僅僅是一個概念,用于演示RP2040 的功能以及它如何取代Arduino 驅動的具有 HID 功能的微控制器。
我將使用 RPi Pico 板進行原型設計,并在未來利用這個擴展 PCB。
?
- 用電機和Raspberry Pi Pico組裝人體骷髏
- 遠程編程Raspberry Pi Pico
- Raspberry Pi Pico上的ADC采樣和FFT
- Raspberry Pi Pico多功能入門套件
- RP2040 Raspberry Pi Pico遇見LoRa
- Arduino Raspberry Pi Pico/RP2040以太網:W5100S EVB Pico
- 基于Raspberry pi pico的音量控制宏鍵盤 3次下載
- 免費Pico模擬器上的Raspberry Pi Pico和LCD1602接口
- 使用Raspberry Pi Pico的LED序列
- Raspberry Pi Pico:使用PIO驅動伺服
- 如何在Raspberry Pi Pico中使用OLED顯示器
- 印有PINOUT的Raspberry Pi pico分線板
- 適用于Raspberry Pi 4的Raspberry Pi Pico開發板
- 基于BME680和Raspberry Pi Pico的氣象站
- raspberry pi Pico使用MicroPython變磚后的解決方法
- 5分鐘內將Raspberry Pi Pico變成簡單的示波器+波形發生器 1522次閱讀
- 基于Raspberry Pi 5的蜂窩物聯網項目 1027次閱讀
- 使用Raspberry Pi Pico W和MicroPython開發物聯網應用 1673次閱讀
- Pico W的無線功能 883次閱讀
- 用于測試項目的4個最佳樹莓派Raspberry Pi模擬器 5985次閱讀
- 基于Raspberry Pi Pico的云端溫濕度監測站設計 1773次閱讀
- 基于樹莓派產品 Raspberry Pi微控制器板的優缺點 2710次閱讀
- 如何從Raspberry Pi Pico的模數轉換器捕獲數據計算? 2580次閱讀
- 基于Raspberry Pi Pico開發先進的家庭自動化系統 2849次閱讀
- 基于FONA通過UART與Raspberry Pi進行通訊的方案介紹 2122次閱讀
- 微雪電子ZeroW| Raspberry Pi ZeroW主板簡介 2429次閱讀
- 微雪電子Raspberry Pi 3 Model主板簡介 2873次閱讀
- 沁恒股份串口轉HID鍵盤鼠標芯片 CH9329概述 5225次閱讀
- 利用Raspberry Pi構建存儲和虛擬化時間序列數據 884次閱讀
- 一文了解Raspberry Pi 4各項性能跑分 2.9w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多