SlideShare a Scribd company logo
Как да играем компютърни игри с Nintendo Wii
Nunchuk чрез Raspberry Pi RP2040 и CircuitPython
Леон Анави
leon.anavi@konsulko.com
leon@anavi.org
Plovdiv Game Jam 2024, Леон Анави
Nintendo
 Мултинационална компания за видео игри
 Основата през 1889г в Киото, Япония
 Първоначално произвеждат карти за бордови игри
 През 1979г създават клон в САЩ и екип за разработка на
аркадни игри
 През 1980г създават Game & Watch
Plovdiv Game Jam 2024, Леон Анави
Nintendo
 През 1983г създават Nintendo Entertainment System (NES),
което първоначално се продава в Япония под името Family
Computer (FC) или накратко Famicom
 През 1985г създават играта Super Mario Bros.
 През 1989г създават Game Boy
 През 2004г създават Nintendo DS
Plovdiv Game Jam 2024, Леон Анави
Nintendo Wii
 Домашна игрална конзола на пазара от 2006г
 В производство с модификации до 2017г
 Произведени са над 100 милиона броя
 Процесор IBM PowerPC Broadway @ 729 MHz
 24 MB 1T-SRAM6 + 64 MB GDDR3 SDRAM
 512 MB NAND флашпамет
Plovdiv Game Jam 2024, Леон Анави
Wiimote
 Най-голямата иновация е игровият контролер на Nintend Wii, наречен Wiimote
Plovdiv Game Jam 2024, Леон Анави
Nunchuk
 Първата приставка за Wiimote от 2006г
 Прилича на дръжка с кабел дълъг 1 – 1.2м
 Предоставя аналогов стик, акселерометър и два
бутона C и Z
 Свързва се към Wiimote по I2C
1 = 3.3V 2 = SCL
3 = N/A 4 = N/A
5 = SDA 6 = GND
Plovdiv Game Jam 2024, Леон Анави
I2C (Inter-Integrated Circuit)
 Двупроводна серийна шина за комуникация на данни между устройства на
къси разстояния
 Разработена през 1982г от Philips Semiconductors (днес е NXP)
 SDA за данни
 SCL за тактов сигнал за синхронизация
 Всяко устройство има уникален I2C адрес
 Поддържат се различни режими за максимална скорост
(100 kbit/s, 400 kbit/s, 1 Mbit/s, 1.7 Mbit/s, 3.4 Mbit/s, 5 Mbit/s)
Plovdiv Game Jam 2024, Леон Анави
Как да свържем Nunchuk към персонален компютър?
 Проблем 1: нямаме достъп до I2C шината на повечето персонални компютри
 Проблем 2: Nunchuk използва специалния Wii конектор с 6 пина
 Решение: USB преходник за Nunchuk
Plovdiv Game Jam 2024, Леон Анави
Seeed Studio XIAO RP2040
 XIAO е серия от модули на Seeed Studio
 XIAO RP2040 е с микроконтролер Raspberry Pi RP2040
 Dual-core Arm Cortex-M0+ до 133 MHz
 264KB SRAM, 2MB флашпамет
 14 GPIO пина
 RGB LED
 Boot и Reset бутони
 Размери 20×17.5×3.5mm
Plovdiv Game Jam 2024, Леон Анави
Seeed Studio XIAO RP2040
Plovdiv Game Jam 2024, Леон Анави
KiCad
 Безплатен open source софтуер за дизайн на многослойни печатни платки
 Съвместим с MS Windows, Mac OS и GNU/Linux дистрибуции
 Разработката започва през 1992г
 Разработен на C++ под GPL-3.0
 https://www.kicad.org/
Plovdiv Game Jam 2024, Леон Анави
Дизайн на схема за платка в KiCad
Plovdiv Game Jam 2024, Леон Анави
Дизайн на платка в KiCad
Plovdiv Game Jam 2024, Леон Анави
ANAVI Handle
 USB-C преходник за свързване на Nunchuk съвместим контролер съм
персонален компютър с open source hardware лиценз CC BY-SA 4.0
https://github.com/AnaviTechnology/anavi-handle
Plovdiv Game Jam 2024, Леон Анави
CircuitPython
 Програмен език с библиотеки създаден, за да опрости програмирането на
евтини развойни платки с микроконтролери
 Базиран и съвместим с популярния програмен език Python 3
 Създаден от Adafruit Industries през 2017г като разновидност на MicroPython
 Работи с множество различни платки с микроконтролери: Microchip SAMD21,
Microchip SAMD51, Nordic nRF52840, STMicroelectronics STM32, Espressif ESP32,
Raspberry RP2040 и други
 Има екосистема от множество библиотеки
(например за периферия като дисплей и сензори)
Plovdiv Game Jam 2024, Леон Анави
Качване на CircuitPython на XIAO RP2040
 Посетете https://circuitpython.org/board/seeeduino_xiao_rp2040/
 Свалете .uf2 файл за CircuitPython
 Натиснете и задръжте бутона B на XIAO RP2040
 Свържете XIAO RP2040 с USB-C кабел към персонален компютър
 Копирайте .uf2 на XIAO RP2040
Plovdiv Game Jam 2024, Леон Анави
adafruit_nunchuk
 CircuitPython библиотека за Nintendo Nunchuk и съвместими контролери
 Open source (лицензи CC-BY-4.0, MIT и Unlicense)
 Зависи от библиотеката Adafruit_CircuitPython_BusDevice за I2C комуникация
 https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk
 https://docs.circuitpython.org/projects/nunchuk/en/latest/
Plovdiv Game Jam 2024, Леон Анави
Как работи adafruit_nunchuk библиотеката?
 Nunchuk I2C 7-битов адрес: 0x52
 I2C комуникацията на Nunchuk е шифрирана и за да се изключи
криптирането трябва да запишат последователно първо 0x55 на
0x(4)A400F0 и след това 0x00 на 0x(4)A400FB:
self.i2c_device = I2CDevice(i2c, address)
self._i2c_read_delay = i2c_read_delay
time.sleep(_I2C_INIT_DELAY)
with self.i2c_device as i2c_dev:
i2c_dev.write(b"xF0x55")
time.sleep(_I2C_INIT_DELAY)
i2c_dev.write(b"xFBx00")
Plovdiv Game Jam 2024, Леон Анави
CircuitPython код на USB адаптер за Nunchuk
 Open source код под GPLv3 лиценз в GitHub:
https://github.com/AnaviTechnology/anavi-handle-sw
 Поддържа режим на джойстик или мишка
 Конфигурация на режима от config.json
 Инсталация на зависимости чрез circup
pip3 install circup
circup install adafruit_bus_device adafruit_hid adafruit_nunchuk adafruit_seesaw
neopixel
Plovdiv Game Jam 2024, Леон Анави
Конфигурация като джойстик или мишка в config.json
 Джойстик (по подразбиране):
{
"type": "joystick"
}
 Мишка:
{
"type": "mouse"
}
Plovdiv Game Jam 2024, Леон Анави
Заключения
 Nunchuk е контролер за Nintento Wii, който работи по I2C шина
 С подходящ микроконтролер може да се направи USB адаптер за Nunchuk
 Seeed Studio предлага XIAO модул с USB-C и Raspberry Pi RP2040 MCU
 KiCad е безплатен open source софтуер за чертане на печатни платки
 CircuitPython е версия на Python за микроконтролери и има библиотека
adafruit_nunchuk
 Open source софтуер и хардуер предоставя възможност за разглеждане на
всички детайли, обучение, промени и подобрения във времето
Plovdiv Game Jam 2024, Леон Анави
Благодаря Ви!
Полезни връзки:
 https://github.com/AnaviTechnology/anavi-handle
 https://github.com/AnaviTechnology/anavi-handle-sw
 https://bg.wikipedia.org/wiki/Wii
 https://circuitpython.org/
 https://wiki.seeedstudio.com/XIAO-RP2040/
 https://wiibrew.org/wiki/Wiimote/Extension_Controllers
Ad

Recommended

Направи си сам Raspberry Pi HAT
Направи си сам Raspberry Pi HAT
Leon Anavi
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry Pi
Leon Anavi
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry Pi
Leon Anavi
 
Open source: от "голо желязо" до JavaScript
Open source: от "голо желязо" до JavaScript
Leon Anavi
 
Docker контейнери с Balena на вградени Linux устройства - TuxCon 2024
Docker контейнери с Balena на вградени Linux устройства - TuxCon 2024
Atanas Bunchev
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?
Leon Anavi
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и Docker
Leon Anavi
 
Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014
Neven Boyanov
 
Raspberry Pi
Raspberry Pi
Leon Anavi
 
Програмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системи
Neven Boyanov
 
brochure_iSB-4.00_BG
brochure_iSB-4.00_BG
Ilko Radulov
 
Адаптация на Linux за ARM устройства
Адаптация на Linux за ARM устройства
Leon Anavi
 
Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21
Neven Boyanov
 
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Leon Anavi
 
What Makes the Raspberry Pi 5 So Special?
What Makes the Raspberry Pi 5 So Special?
Leon Anavi
 
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Leon Anavi
 
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Leon Anavi
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Leon Anavi
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux Devices
Leon Anavi
 
Open Hardware Makers
Open Hardware Makers
Leon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
Leon Anavi
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Leon Anavi
 
Surfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
Leon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
Leon Anavi
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 

More Related Content

Similar to Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040 и CircuitPython? (9)

Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014
Neven Boyanov
 
Raspberry Pi
Raspberry Pi
Leon Anavi
 
Програмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системи
Neven Boyanov
 
brochure_iSB-4.00_BG
brochure_iSB-4.00_BG
Ilko Radulov
 
Адаптация на Linux за ARM устройства
Адаптация на Linux за ARM устройства
Leon Anavi
 
Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21
Neven Boyanov
 
Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014
Neven Boyanov
 
Програмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системи
Neven Boyanov
 
brochure_iSB-4.00_BG
brochure_iSB-4.00_BG
Ilko Radulov
 
Адаптация на Linux за ARM устройства
Адаптация на Linux за ARM устройства
Leon Anavi
 
Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21
Neven Boyanov
 

More from Leon Anavi (20)

Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Leon Anavi
 
What Makes the Raspberry Pi 5 So Special?
What Makes the Raspberry Pi 5 So Special?
Leon Anavi
 
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Leon Anavi
 
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Leon Anavi
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Leon Anavi
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux Devices
Leon Anavi
 
Open Hardware Makers
Open Hardware Makers
Leon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
Leon Anavi
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Leon Anavi
 
Surfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
Leon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
Leon Anavi
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
Leon Anavi
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry Pi
Leon Anavi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source Hardware
Leon Anavi
 
Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry Pi
Leon Anavi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с Linux
Leon Anavi
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux Devices
Leon Anavi
 
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Leon Anavi
 
What Makes the Raspberry Pi 5 So Special?
What Makes the Raspberry Pi 5 So Special?
Leon Anavi
 
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Leon Anavi
 
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Leon Anavi
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Leon Anavi
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux Devices
Leon Anavi
 
Open Hardware Makers
Open Hardware Makers
Leon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
Leon Anavi
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Leon Anavi
 
Surfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
Leon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
Leon Anavi
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
Leon Anavi
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry Pi
Leon Anavi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source Hardware
Leon Anavi
 
Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry Pi
Leon Anavi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с Linux
Leon Anavi
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux Devices
Leon Anavi
 
Ad

Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040 и CircuitPython?

  • 1. Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040 и CircuitPython Леон Анави [email protected] [email protected]
  • 2. Plovdiv Game Jam 2024, Леон Анави Nintendo  Мултинационална компания за видео игри  Основата през 1889г в Киото, Япония  Първоначално произвеждат карти за бордови игри  През 1979г създават клон в САЩ и екип за разработка на аркадни игри  През 1980г създават Game & Watch
  • 3. Plovdiv Game Jam 2024, Леон Анави Nintendo  През 1983г създават Nintendo Entertainment System (NES), което първоначално се продава в Япония под името Family Computer (FC) или накратко Famicom  През 1985г създават играта Super Mario Bros.  През 1989г създават Game Boy  През 2004г създават Nintendo DS
  • 4. Plovdiv Game Jam 2024, Леон Анави Nintendo Wii  Домашна игрална конзола на пазара от 2006г  В производство с модификации до 2017г  Произведени са над 100 милиона броя  Процесор IBM PowerPC Broadway @ 729 MHz  24 MB 1T-SRAM6 + 64 MB GDDR3 SDRAM  512 MB NAND флашпамет
  • 5. Plovdiv Game Jam 2024, Леон Анави Wiimote  Най-голямата иновация е игровият контролер на Nintend Wii, наречен Wiimote
  • 6. Plovdiv Game Jam 2024, Леон Анави Nunchuk  Първата приставка за Wiimote от 2006г  Прилича на дръжка с кабел дълъг 1 – 1.2м  Предоставя аналогов стик, акселерометър и два бутона C и Z  Свързва се към Wiimote по I2C 1 = 3.3V 2 = SCL 3 = N/A 4 = N/A 5 = SDA 6 = GND
  • 7. Plovdiv Game Jam 2024, Леон Анави I2C (Inter-Integrated Circuit)  Двупроводна серийна шина за комуникация на данни между устройства на къси разстояния  Разработена през 1982г от Philips Semiconductors (днес е NXP)  SDA за данни  SCL за тактов сигнал за синхронизация  Всяко устройство има уникален I2C адрес  Поддържат се различни режими за максимална скорост (100 kbit/s, 400 kbit/s, 1 Mbit/s, 1.7 Mbit/s, 3.4 Mbit/s, 5 Mbit/s)
  • 8. Plovdiv Game Jam 2024, Леон Анави Как да свържем Nunchuk към персонален компютър?  Проблем 1: нямаме достъп до I2C шината на повечето персонални компютри  Проблем 2: Nunchuk използва специалния Wii конектор с 6 пина  Решение: USB преходник за Nunchuk
  • 9. Plovdiv Game Jam 2024, Леон Анави Seeed Studio XIAO RP2040  XIAO е серия от модули на Seeed Studio  XIAO RP2040 е с микроконтролер Raspberry Pi RP2040  Dual-core Arm Cortex-M0+ до 133 MHz  264KB SRAM, 2MB флашпамет  14 GPIO пина  RGB LED  Boot и Reset бутони  Размери 20×17.5×3.5mm
  • 10. Plovdiv Game Jam 2024, Леон Анави Seeed Studio XIAO RP2040
  • 11. Plovdiv Game Jam 2024, Леон Анави KiCad  Безплатен open source софтуер за дизайн на многослойни печатни платки  Съвместим с MS Windows, Mac OS и GNU/Linux дистрибуции  Разработката започва през 1992г  Разработен на C++ под GPL-3.0  https://www.kicad.org/
  • 12. Plovdiv Game Jam 2024, Леон Анави Дизайн на схема за платка в KiCad
  • 13. Plovdiv Game Jam 2024, Леон Анави Дизайн на платка в KiCad
  • 14. Plovdiv Game Jam 2024, Леон Анави ANAVI Handle  USB-C преходник за свързване на Nunchuk съвместим контролер съм персонален компютър с open source hardware лиценз CC BY-SA 4.0 https://github.com/AnaviTechnology/anavi-handle
  • 15. Plovdiv Game Jam 2024, Леон Анави CircuitPython  Програмен език с библиотеки създаден, за да опрости програмирането на евтини развойни платки с микроконтролери  Базиран и съвместим с популярния програмен език Python 3  Създаден от Adafruit Industries през 2017г като разновидност на MicroPython  Работи с множество различни платки с микроконтролери: Microchip SAMD21, Microchip SAMD51, Nordic nRF52840, STMicroelectronics STM32, Espressif ESP32, Raspberry RP2040 и други  Има екосистема от множество библиотеки (например за периферия като дисплей и сензори)
  • 16. Plovdiv Game Jam 2024, Леон Анави Качване на CircuitPython на XIAO RP2040  Посетете https://circuitpython.org/board/seeeduino_xiao_rp2040/  Свалете .uf2 файл за CircuitPython  Натиснете и задръжте бутона B на XIAO RP2040  Свържете XIAO RP2040 с USB-C кабел към персонален компютър  Копирайте .uf2 на XIAO RP2040
  • 17. Plovdiv Game Jam 2024, Леон Анави adafruit_nunchuk  CircuitPython библиотека за Nintendo Nunchuk и съвместими контролери  Open source (лицензи CC-BY-4.0, MIT и Unlicense)  Зависи от библиотеката Adafruit_CircuitPython_BusDevice за I2C комуникация  https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk  https://docs.circuitpython.org/projects/nunchuk/en/latest/
  • 18. Plovdiv Game Jam 2024, Леон Анави Как работи adafruit_nunchuk библиотеката?  Nunchuk I2C 7-битов адрес: 0x52  I2C комуникацията на Nunchuk е шифрирана и за да се изключи криптирането трябва да запишат последователно първо 0x55 на 0x(4)A400F0 и след това 0x00 на 0x(4)A400FB: self.i2c_device = I2CDevice(i2c, address) self._i2c_read_delay = i2c_read_delay time.sleep(_I2C_INIT_DELAY) with self.i2c_device as i2c_dev: i2c_dev.write(b"xF0x55") time.sleep(_I2C_INIT_DELAY) i2c_dev.write(b"xFBx00")
  • 19. Plovdiv Game Jam 2024, Леон Анави CircuitPython код на USB адаптер за Nunchuk  Open source код под GPLv3 лиценз в GitHub: https://github.com/AnaviTechnology/anavi-handle-sw  Поддържа режим на джойстик или мишка  Конфигурация на режима от config.json  Инсталация на зависимости чрез circup pip3 install circup circup install adafruit_bus_device adafruit_hid adafruit_nunchuk adafruit_seesaw neopixel
  • 20. Plovdiv Game Jam 2024, Леон Анави Конфигурация като джойстик или мишка в config.json  Джойстик (по подразбиране): { "type": "joystick" }  Мишка: { "type": "mouse" }
  • 21. Plovdiv Game Jam 2024, Леон Анави Заключения  Nunchuk е контролер за Nintento Wii, който работи по I2C шина  С подходящ микроконтролер може да се направи USB адаптер за Nunchuk  Seeed Studio предлага XIAO модул с USB-C и Raspberry Pi RP2040 MCU  KiCad е безплатен open source софтуер за чертане на печатни платки  CircuitPython е версия на Python за микроконтролери и има библиотека adafruit_nunchuk  Open source софтуер и хардуер предоставя възможност за разглеждане на всички детайли, обучение, промени и подобрения във времето
  • 22. Plovdiv Game Jam 2024, Леон Анави Благодаря Ви! Полезни връзки:  https://github.com/AnaviTechnology/anavi-handle  https://github.com/AnaviTechnology/anavi-handle-sw  https://bg.wikipedia.org/wiki/Wii  https://circuitpython.org/  https://wiki.seeedstudio.com/XIAO-RP2040/  https://wiibrew.org/wiki/Wiimote/Extension_Controllers