資料介紹
描述
想成為一只絕望的霸王龍,準備好帶著喜悅和興奮去??探索奇妙的 2-D、8 位、二進制彩色谷歌瀏覽器世界嗎?因此,請確保您每天鍛煉膝蓋以跟上高分。
該項目在MLH組織的Who Wants to be Hackionaire黑客馬拉松中獲得了 Digi-Key 頒發的最佳硬件黑客類別獎
第一步:零件
我使用 CircuitPython 對 Seeeduino Xiao 進行了編程,但它也與 Arduino 兼容。您可以選擇任何支持 CircuitPython 的 ATSAMD21 微控制器板來完成這個項目。我選擇Xiao是因為它的體積很小,適合可穿戴項目。
注:對于通用 I/O 引腳:MCU 的工作電壓為 3.3V。連接到通用 I/O 引腳的電壓輸入高于 3.3V 可能會導致芯片損壞。
對于電源引腳:內置的DC-DC轉換器電路能夠將5V電壓變為3.3V,允許通過VIN-PIN和5V-PIN為設備提供5V電源。
Adafruit LIS3DH 是一款三軸加速度計,其庫支持 I2C 和 SPI,但我們將在此項目中使用 SPI 接口。該板的更新版本是黑色的, 兩側都有 STEMMA QT 連接器或SparkFun Qwiic I2C 連接器。
我最初在面包板上制作了我的項目,然后我焊接在 PCB 上的母頭上以改善外形。如果你愿意,你可以直接焊接電路板,因為它有齒形引腳并且不會太突出。
第二步:概念
所以這個項目主要包括3個部分:
加速度計用于檢測由于運動引起的人的加速度變化。當一個人跳起來或蹲下時,他/她會產生相對加速度來這樣做。我們通過取 X、Y 和 Z 軸的絕對值來測量加速度的變化,因為無論我們向上還是向下,變化都是正的。
項目的輸出單元發送命令按下向上箭頭鍵,紅色 LED 亮 500 毫秒。同樣,如果它檢測到一只鴨子,板子按下向下箭頭鍵并打開藍色 LED 500 毫秒。我print
在兩者之間添加了一些語句,但這僅用于調試目的,可以忽略。由于Seeeduino Xiao 在撰寫本文時不支持 Mu 的串行控制臺,因此您可以使用PuTTY或 Arduino 的串行監視器之類的應用程序來查看 X、Y 和 Z 軸的值。
第三步:理解代碼
# code.py
"""
Project Name: Jump Yo' Rex
Author: Advik Singhania
Created On: 28th November, 2020; 07:48 PM IST
Make sure to copy the adafruit_hid library folder and
adafruit_lis3dh to the /lib folder of your CIRCUITPY drive.
I've connected a red LED to pin D4 to indicate jumps and
a blue LED to pin D0 to indicate ducks.
This source code has been tested for Seeeduino Xiao and can also work on CircuitPython supported boards.
"""
import time
import board
import digitalio
import busio
import adafruit_lis3dh
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode
# Configurnig pins for the SPI connection:
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D5) # Set to appropriate CS pin!
int1 = digitalio.DigitalInOut(board.D6) # Set to correct pin for interrupt!
lis3dh = adafruit_lis3dh.LIS3DH_SPI(spi, cs, int1=int1)
# Initializing Keyboard:
keyboard = Keyboard(usb_hid.devices)
keyboard_layout = KeyboardLayoutUS(keyboard)
time.sleep(1)
# Setting up LEDs for Jump(ledj) and Duck(ledd)
ledj = digitalio.DigitalInOut(board.D4)
ledj.direction = digitalio.Direction.OUTPUT
ledd = digitalio.DigitalInOut(board.D0)
ledd.direction = digitalio.Direction.OUTPUT
# Printing is for debugging, you can comment the print statements if you want.
print("Waiting for action...")
while True:
ledj.value = False # Turning Off LEDs
ledd.value = False
x, y, z = lis3dh.acceleration # Getting values for the acceleration in x, y and z axes
x, y, z = abs(x), abs(y), abs(z) # Taking the absolute of the values since the change in relative acceleration will always be positive
# print(x, y, z)
# Setting up default position:
if 8 < x < 10:
pos = x
elif 8 < z < 10:
pos = z
else:
pos = y
# Detecting jumps and ducks:
if pos > 11: # You can change these values according to your sensitivity
print(x, y, z)
keyboard.press(Keycode.UP_ARROW) # "Press"...
keyboard.release_all()
print('Jumped')
ledj.value = True
time.sleep(0.5)
elif pos < 8: # You can change these values according to your sensitivity
print(x, y, z)
keyboard.press(Keycode.DOWN_ARROW) # "Press"...
print('Ducked')
ledd.value = True
time.sleep(0.5)
keyboard.release_all()
time.sleep(0.5)
time.sleep(0.05)
在源代碼中,我們首先導入板子內置的必要的標準庫,如time
、 。然后要使用其他硬件,我們手動添加和庫,以使功能正常工作。我們使用串行外設接口(SPI)連接在加速度計和微控制器板之間進行通信,因此我為此設置了引腳配置。board
digitalio
adafruit_bus_device
adafruit_hid
adafruit_lis3dh
然后我們初始化我們將使用什么樣的鍵盤,這是美國標準布局。有 1 秒的延遲,以便在程序開始進一步執行之前準備好。ledj
(紅色 LED)用于指示何時發生跳躍,而ledd
(藍色 LED)用于指示何時發生鴨子。
主while
循環由需要連續運行的所有邏輯組成。該板通過檢查哪個軸的值在重力常數(g ~ 9.8 m/s2)范圍內來檢查默認位置。然后它計算加速度的變化是否大于 10(大約 g)。此時,您可以根據自己的要求查看和校準 if 條件下的值。如果pos
值大于 11,則執行跳轉(向上箭頭和紅色 LED),如果小于 8,則執行鴨子(向下箭頭和藍色 LED)。
如果您還沒有,請開始使用CircuitPython 。您需要在 PC 上安裝Mu (CircuitPython 的首選編輯器),并確保您正在使用的板上運行最新版本的 CircuitPython。更多信息可以在這里、那里和任何地方找到。
現在從 GitHub 存儲庫下載 code.py 和 lib.zip 后,解壓縮 lib.zip 并將 lib 文件夾復制到電路板的 CIRCUITPY 驅動器中。斷開 Internet 并打開 Google Chrome T-Rex 游戲。
現在將code.py復制到驅動器的父目錄中。
注意:一旦您將 code.py 復制到 CIRCUITPY 驅動器中,代碼就會開始執行,因此請關閉您認為重要的窗口,否則它們可能會損壞。因為項目將控制向上和向下箭頭鍵。
第四步:接線
上傳代碼后,斷開電路板并將組件連接到面包板上,如上圖所示。Xiao 和 LIS3DH 之間的連接非常簡單:
- 板 3V至傳感器 Vin
- 板 GND到傳感器 GND
- 板 SCK到傳感器 SCL
- 板 MOSI到傳感器 SDA
- 板 MISO到傳感器 SDO
- 板 D5到傳感器 CS
- 板 D6到傳感器 INT
將紅色 LED ( ledj
) 的正極引線通過 220 歐姆電阻連接到引腳 D4,藍色 LED ( ledd
) 的正極引線通過 220 歐姆電阻連接到引腳 D0。將 LED 的接地線連接到公共 GND。
你完成了!
第五步:完成。下一步是什么?
您可以將此設備佩戴在腰部或腰部以上,以便 T-Rex 跟蹤您的動作。您還可以像我一樣將組件焊接在通用 PCB 上以改善外形尺寸并為其制作一個案例。該項目仍然使用 USB 數據線為計算機供電并與計算機交互,因此我計劃改用藍牙,并會嘗試改善交互超時。很快,里面的霸王龍就會擺脫束縛,四處游蕩,跳躍并發瘋。
?
- Lyapunov分形與Seeeduino Wio終端開源
- 如何使用Seeeduino XIAO-LED閃爍
- 使用Seeeduino Xiao從汽車中獲取數據
- AI WB2和XIAO RP2040組合開源
- 基于Seeeduino XIAO的血氧心率計 2次下載
- MakerDiary NRF52840上的CircuitPython
- Seeeduino XIAO擴展板超聲波距離傳感器開源分享
- 使用Seeeduino XIAO和火焰傳感器進行火災檢測
- Seeeduino XIAO氣象站使用擴展板
- 串行PiC編程器開源項目
- USB編程器開源項目
- 三菱PLC編程實例項目例程 14次下載
- 三菱PLC編程實例項目例程之輸送機機械手 29次下載
- 基于Arduino硬件光控燈制作資料 6次下載
- Seeeduino XIAO擴展板的電路原理圖 45次下載
- 基于XIAO ESP32S3 sense開發板的小型相機設計 135次閱讀
- 基于XIAO SAMD21開發板的多功能筆筒設計方案 87次閱讀
- 基于XIAO SAMD21開發板的數字鍵盤制作方案 125次閱讀
- 關于FPGA的開源項目介紹 1161次閱讀
- 基于XIAO的圖像分類處理項目 1118次閱讀
- 使用Rust和Nomad進行開源游戲服務器管理 517次閱讀
- 優秀的IC/FPGA開源項目:偽紅外圖像處理 1949次閱讀
- 怎么上手 PR 流程?如何開始參與開源項目? 1470次閱讀
- 如何使用Travis CI對Github項目進行持續集成來提升項目開發的效率 732次閱讀
- 全年開源項目的盤點和總結 3231次閱讀
- 基于Altium Designer的OSHw開源項目 3609次閱讀
- 2018 年 2 月份 GitHub 上最熱門的開源項目 4554次閱讀
- 最受歡迎的七種商用開源編程語言的全面報告 6263次閱讀
- FAST:基于FPGA的SDN交換機開源項目(一) 4531次閱讀
- 11個機器學習開源項目 2767次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多