<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Microchip 8位微控制器制作超級馬里奧的蘑菇徽章

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-09-11 10:16 ? 次閱讀

MAKER:Arnov Sharma/譯:趣無盡

今天給大家帶來一期致敬經典的超級馬里奧的徽章??蓯鄣哪⒐交照?,經典的紅黃配色,立馬把我們拉回到兒時的快樂的時光里(不小心暴露了年齡)。

這款可穿戴徽章由定制的 PCB 構成,采用 SOIC8 封裝的 Attiny85 供電,添加了三個 WS2812B LED 燈可以使蘑菇徽章閃閃發光。你可以把它佩戴在身上也可以別在書包上。

制作過程很簡單,喜歡的創客可以動手試試看!

組件清單

定制 PCB × 1
Attiny85 × 1
WS2812B LED 燈 × 3
1uf 0805 電容 × 1
胸針 × 1
SMD 紐扣電池座 × 1
CR2032 電池 × 1
SOIC8 燒寫夾 × 1

項目介紹

該徽章基于 Microchip 8 位的低功耗微控制器,同時結合了 8 KB ISP 閃存、512B EEPROM、512B SRAM和六條通用 I/O 線,由 Attiny85 供電。

它是一個功能強大的小型 MCU,可以縮小整個設置實現很多基于 Arduino 的項目。更多的數據資料可點擊查看,https://www.microchip.com/en-us/product/ATtiny85。

我采用 CR2032 紐扣電池來供電,它可以為系統提供 3V 電壓。其中,三個 WS2812B LED 燈,每個 LED 燈消耗 50mA,總共 150mA,CR2032 的容量為 210mAh,所以可以提供 1 小時以上的備份。

WS2812B LED 燈的數據資料可點擊查看

PCB 板的創建過程

1、如圖所示,我需要設計一個蘑菇形狀的 PCB 板,將圖形導入到 PCB Cad 軟件。我選擇黑白圖像并將其作為 PCB 層導入。

2、如圖所示,Attiny85 可以控制 Din Dout Config 并完成連接的三個 WS2812B LED 燈的所有工作。

第一個像素的 Dout 連接至第二個像素的 Din,第二個像素的 Dout 連接至第三個像素的 Din,然后再用第一個像素的 Din 提供一個信號來控制這三個像素。

每個LED 燈都有 1uf 的電容器,然后用一個開關連接到 Attiny85 的 D4。最后,將紐扣電池裝入至電池倉供電。

3、設計 PCB 板
dcd9b57a-5047-11ee-a25d-92fbcf53809c.jpg

首先導入了蘑菇圖像并將其用作 PCB 的輪廓,其中一些細節k可用于制作阻焊層。

所有組件都是 SMD,將它們放在背面,再將 LED 燈放置在圓形區域。在圓形區域我添加了一個阻焊層的開口,可以從頂部可以看到 LED 燈的余光。

這些 WS2812B LED 燈采取倒置的自定義封裝,所以要將 LED 倒置焊接。

4、PCB 打樣

在最后一次檢查完電路板后,我將 Gerber 數據發送到 PCBWAY 以獲取樣品。我選擇的材料是帶有白色絲印的紅色阻焊層。

我在兩側的阻焊層上預留了開口,這樣就可以從頂部可以看到底部的LED 燈。

5、組裝 PCB 板
組裝 PCB 板主要有以下幾個步驟:

a、錫膏點膠工藝
在每個元件焊盤上逐個添加焊膏。我使用的是帶寬注射器的焊膏分配針,焊膏是由 63% 錫和 37% 鉛組成的普通焊膏。

b、拾取和放置過程
使用鑷子將每個組件放置在適當的位置,要小心地處理每一個元件。

c、熱板回流
放置好元件后,將整個電路板放到我自制的熱板回流焊板上進行焊接。完成后,請將其放置冷卻。

d、安裝 LED 燈
由于 PCB 板沒有任何通孔組件,需要在焊盤上焊接電線,然后再將 LED 燈與它連接起來。焊接過程中盡量快一點,因為 LED 焊盤過熱可能會引起外殼熔化。最后,完成三個 LED 燈的焊接。

安裝 Attiny85

1、刷機過程中不能通過 USB 直接對 ATTINY85 進行編程,我采用 ISP 閃存的方法,通過 attiny85 的 SPI 引腳燒錄引導加載程序,然后再燒錄。

為了將 Attiny 與程序連接起來,我使用 SOIC8 燒寫夾,直接將 Attiny 連接到該夾子上。

2、請在 Arduino IDE 中下載并安裝 Attiny85 Core 文件,https://github.com/SpenceKonde/ATTinyCore 。

文件->首選項 PC 或者 Arduino->首選項 Mac,在 “Additional Boards Manager URLs” 中輸入https://github.com/SpenceKonde/ATTinyCore 。

工具->主板->主板管理器,如果使用 1.6.6 版本,請關閉板子管理器并重新打開它。
選擇”ATTinyCore by Spence Konde”,然后單擊安裝。

3、設置 AVR 芯片。AVR 芯片通常是空白的,它需要設置與 Arduino IDE 兼容性,所以需要編程 AVR 程序,例如 USBASP。這里有一個非常簡單的方法,你可以使用 Arduino Uno 或 Nano 板制作自己的 AVR 編程器。

將 Arduino 板與 com 端口連接并選擇以下 sketch:
Example->在 ArduinoISP 中將 sketch 上傳至主板。進入工具菜單并在程序部分選擇 Arduino 作為 ISP 選項。點亮 Attiny85 后,在 Board 部分選擇 Attiny85。

編程過程會使用到 VCC、GND 和四個數據引腳。三個引腳分別連接到 MISO、MOSI 和 SCK 來實現目標,第四個引腳起到復位的作用。

4、用線將 Attiny85 與 Arduino 連接起來。
注意在將 ISP Sketch 上傳到 Arduino 之后,需要在 Arduino 的 Reset 和 GND 引腳之間添加一個 10uf 的電容。

我沒有使用 Arduino 和面包板來完成這項工作,而是使用我自制的用 Attiny 或 Atmega MCU 制作的 DIY Attiny Programmer。

具體詳情可點擊查看,https://www.instructables.com/Multiple-ATtiny8513A-Programmer/。

在以上接線配置中將主板連接到 Arduino 作為 ISP 設置。
選擇正確的端口、正確的編程器(Arduino 作為 ISP),然后點擊 Burn Bootloader。
等待幾秒鐘,你將完成燒錄引導程序的消息。

打開要上傳到這個 AttinyGo 的 Sketch,然后到 Sketch 菜單并選擇上傳程序。
最后 Sketch 會上傳到 attiny85。

編碼

dd15cf88-5047-11ee-a25d-92fbcf53809c.jpg

編碼是 Neopixel buttoncycler sketch,當按下連接到 attiny D4 的按鈕時,就會改變 neopixels 的顏色和動畫。

#include 


#define BUTTON_PIN   4    // Digital IO pin connected to the button.  This will be
                          // driven with a pull-up resistor so the switch should
                          // pull the pin to ground momentarily.  On a high -> low
                          // transition the button press logic will execute.


#define PIXEL_PIN    0    // Digital IO pin connected to the NeoPixels.


#define PIXEL_COUNT 3


// Parameter 1 = number of pixels in strip,  neopixel stick has 8
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_RGB     Pixels are wired for RGB bitstream
//   NEO_GRB     Pixels are wired for GRB bitstream, correct for neopixel stick
//   NEO_KHZ400  400 KHz bitstream (e.g. FLORA pixels)
//   NEO_KHZ800  800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);


bool oldState = HIGH;
int showType = 0;


void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}


void loop() {
  // Get current button state.
  bool newState = digitalRead(BUTTON_PIN);


  // Check if state changed from high to low (button press).
  if (newState == LOW && oldState == HIGH) {
    // Short delay to debounce button.
    delay(20);
    // Check if button is still low after debounce.
    newState = digitalRead(BUTTON_PIN);
    if (newState == LOW) {
      showType++;
      if (showType > 9)
        showType=0;
      startShow(showType);
    }
  }


  // Set the last button state to the old state.
  oldState = newState;
}


void startShow(int i) {
  switch(i){
    case 0: colorWipe(strip.Color(0, 0, 0), 50);    // Black/off
            break;
    case 1: colorWipe(strip.Color(255, 0, 0), 50);  // Red
            break;
    case 2: colorWipe(strip.Color(0, 255, 0), 50);  // Green
            break;
    case 3: colorWipe(strip.Color(0, 0, 255), 50);  // Blue
            break;
    case 4: theaterChase(strip.Color(127, 127, 127), 50); // White
            break;
    case 5: theaterChase(strip.Color(127,   0,   0), 50); // Red
            break;
    case 6: theaterChase(strip.Color(  0,   0, 127), 50); // Blue
            break;
    case 7: rainbow(20);
            break;
    case 8: rainbowCycle(20);
            break;
    case 9: theaterChaseRainbow(50);
            break;
  }
}


// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i

最后,安裝好 CR2032 紐扣電池,這枚可愛的蘑菇徽章就可以閃光了。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6809

    瀏覽量

    147637
  • pcb
    pcb
    +關注

    關注

    4220

    文章

    22472

    瀏覽量

    385778
  • led燈
    +關注

    關注

    22

    文章

    1554

    瀏覽量

    107030
  • microchip
    +關注

    關注

    52

    文章

    1456

    瀏覽量

    116839

原文標題:簡單有趣,DIY 超級馬里奧的蘑菇徽章

文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于ESP32制造有趣的超級馬里奧主題時鐘

    這是一款超級馬里奧主題的時鐘,基于 ESP32 和彩色點陣制造,非常生動有趣。使用 ESP32 來控制 LED 矩陣。對于沒法自制 PCB 板的新手來說 ESP32 開發板是非常不錯的選擇。如何利用好板子取決于你拍線的能力。
    的頭像 發表于 10-28 11:54 ?3254次閱讀
    基于ESP32制造有趣的<b class='flag-5'>超級</b><b class='flag-5'>馬里奧</b>主題時鐘

    用labview設計超級馬里奧游戲時如何加障礙物?

    用labview設計超級馬里奧游戲時如何加障礙物
    發表于 05-09 13:33

    在哪里可以從Microchip網站找到中微控制器?

    我在哪里可以從Microchip網站找到中微微控制器?當我在8MCU下搜索“中檔”系列時,它們都會出現新的流行微控制器,我不需要新的
    發表于 11-09 15:45

    ATXMEGA128A4U-AU港定ATMEL原廠原裝8MCU微控制器

    `ATXMEGA128A4U-AU港定ATMEL原廠原裝8MCU微控制器ATXMEGA128A4U-AU Microchip Technology / ATMEL Corporati
    發表于 11-29 16:46

    詳解8微控制器芯片

    微控制器到現在普遍采用哈佛總線結構的RISC微控制器,微控制器取得了飛速的發展[1]。   8微控制器
    發表于 06-24 07:35

    微控制器的發展趨勢

    對于選擇微控制器進行設計的系統設計師來說,可獲得的大量的不同型號的MCU會讓選型工作變得復雜。SiliconLabs已經發布了工作電壓低至0.9V的一款8MCU,德州儀器有許多款針對16
    發表于 07-24 06:19

    fpga通過什么實現邏輯功能

    fpga通過什么實現邏輯功能,以超級馬里奧為例子講述FPGA有些制作。1、FPGA游戲目標沒有CPU,單純用 FPGA 的verilog硬件語言來實現一個游戲,而這個游戲還得符合老師要求,由于沒有
    發表于 07-22 07:07

    用于Microchip 8PIC的原型板

    描述原型板 - 28 針 PIC用于 Microchip 8 PIC 的原型板?微控制器采用 28 引腳 DIP 封裝。
    發表于 09-07 07:57

    iPhone7發布會上提到的游戲 馬里奧大叔15日可以在iOS平臺試玩了!

    App Store了。這款名為《超級馬里奧Run》的游戲是一款跑酷游戲,該游戲將于下月15日正式登陸App Store,售價9.99美元。
    發表于 11-16 11:14 ?768次閱讀

    超級馬里奧Run安卓版即將上市,國內玩家先別激動

    12 月 29 日,任天堂官方在國外社交網站推特上宣布,超級馬里奧Run已經登錄了Google Play 并開啟預約注冊,現在注冊的用戶,未來可以第一時間獲知安卓版超級馬里奧Run
    發表于 12-30 17:29 ?752次閱讀

    利用視頻游戲語料庫,訓練一個GAN模型為超級馬里奧兄弟生成游戲級別

    在視頻游戲中,馬里奧游戲級別有不同的表征Level Corpus (VGLC) 和Mario AI 框架,這兩種都是基于tile的表征形式。具體地說,以VGLC 表征的馬里奧級別使用特定的字符符號
    的頭像 發表于 07-25 17:59 ?3776次閱讀
    利用視頻游戲語料庫,訓練一個GAN模型為<b class='flag-5'>超級</b><b class='flag-5'>馬里奧</b>兄弟生成游戲級別

    馬里奧忠實粉絲稱其自制的渲染圖被超級任天堂世界官網盜用

    ,但它最近卻被發現盜用了粉絲制作的渲染圖。 推特用戶“uJIdow”是一位馬里奧的忠實粉絲,他致力于制作各種馬里奧的渲染圖。昨日(1.7),“uJIdow”發表推文表示,
    的頭像 發表于 01-08 12:52 ?1665次閱讀

    Labview編的超級馬里奧8.0源碼

    Labview編的超級馬里奧8.0源碼
    發表于 11-02 16:35 ?24次下載

    創建一個動畫馬里奧時鐘的教程分享

    本文將指導您以非常簡單的步驟創建一個動畫馬里奧時鐘,它可以成為任何環境的復古裝飾物。
    發表于 07-25 16:32 ?1527次閱讀
    創建一個動畫<b class='flag-5'>馬里奧</b>時鐘的教程分享

    帶有壓電蜂鳴器和Arduino的超級馬里奧主題曲

    電子發燒友網站提供《帶有壓電蜂鳴器和Arduino的超級馬里奧主題曲.zip》資料免費下載
    發表于 11-01 09:32 ?0次下載
    帶有壓電蜂鳴器和Arduino的<b class='flag-5'>超級</b><b class='flag-5'>馬里奧</b>主題曲
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>