Projekt Pico Pong 2021

Projekt Pico Pong 2021

Jerzy Jasonek | 2021-03-05 10:20:32

#rasberry pi #raspberry pi pico #projekty #Pico Pong 2021

Na przełomie roku 2020 i 2021 Fundacja Raspberry Pi wydała swój pierwszy mikrokontroler czyli Raspberry Pi Pico

Organizacja Raspberry Pi była do tej pory znana z komputerów jednopłytkowych, obecnie w ofercie znajdziemy RP 3, RP 4, RP 400 (komputer all in one) czy RP 0. Wszystkie te płytki były pełnoprawnymi komputerami z możliwością zainstalowania systemu operacyjnego (dedykowany Raspberry Pi OS - linux na Debianie). 

Tymczasem Raspberry Pi Pico to całkiem coś innego - mikrokontroler oparty o autorski RP 2040. W oparciu o to urządzenie możemy budować projekty podobne do tych, które przez ostatnie lata powstawały np. na Arduino. W porównaniu z Arduino nowe RP Pico ma jednak kilka istotnych zalet, po pierwsze jest tanie - 19,90 zł w polskiej dystrybucji, po drugie jest mocniejsze i po trzecie można go programować w MicroPythonie lub ewentualnie Circuit Pythonie.

Twórcy RP Pico wyposażyli swoje urządzenie w dwurdzeniowy procesor, pamięć ram o wielkości 264 kb i pamięć flash o wielkości 2 MB (pełna specyfikacja urządzenia).  To wszystko sprawia, że naszej projekty pisane na to urządzenie nie muszą być kompilowane z języka C++ na niewielkie wykonywalne pliki, ale możemy na urządzeniu zainstalować interpreter MicroPythona (specjalna wersja Pythona na mikrokontrolery) i programować urządzenie w sposób łatwiejszy dla początkującego użytkownika. Dla bardziej zaawansowanych użytkowników pozostała możliwość programowania w C++ ale to wymaga odpowiedniego skonfigurowania środowiska pracy.

Ja na potrzeby edukacyjne programuję, więc w MicroPythonie, do rozpoczęcia pracy wystarczy zainstalować program Thonny Python IDE, który pozwoli nam odpalić MicroPythona, zainstalować konieczne biblioteki i odpalić gotowy projekt na urządzeniu.

Na moim kanale na Youtube - Scratch SPWZ, przerobiłem wszystkie projekty polecane w podręczniku dla początkujących użytkowników, podpatrzyłem też kilka projektów pojawiających się w internecie w szybko rozrastającej się społeczności RP Pico i to wszystko skłoniło to podjęcia próby napisania gry na mikrokontroler.

Inspiracją do mojego projektu Pico Pong 2021, był projekt użytkownika Print 'N Play, który zrobił klona Space Invaders na RP Pico. 

W tym samym czasie, postanowiłem napisać z moimi uczniami Ponga w Pythonie, przy użyciu biblioteki PygameZero - wystarczyło, więc tylko przeportować kod na Pico :)

Do projektu użyłem:

  • Raspberry Pi Pico z przylutowanymi pinami
  • wyświetlacz oled 0,96 cala o rozdzielczości 128x64 piksele działający w protokole I2C
  • dwa potencjometry 10 kilo ohm
  • płytkę stykową
  • kabelki ze złączami męskimi

W wersji rozszerzonej dołożyłem:

  • 4 diody + rezystory 330 ohm (3 wskazujące poziom trudności, 1 sygnalizującą tryb treningowy - grę na jednego gracza)
  • 2 przyciski (do rozpoczęcia gry i zmiany poziomu trudności)

Ja złożyłem swój projekt w dużej mierze w oparciu o mój adapter do RP Pico, ale całość bez problemu można też zmontować na płytce stykowej.

Schemat podłączenia:

Pin GP w RP PicoKomponent
GP 26Potencjometr - player 1
GP 27Potencjometr - player 2
GP 11Dioda czerwona (przez rezystor 330 ohm) - sygnalizująca poziom
GP 12Dioda żółta (przez rezystor 330 ohm) - sygnalizująca poziom
GP 13Dioda zielona (przez rezystor 330 ohm) - sygnalizująca poziom
GP 1Dioda niebieska (przez rezystor 330 ohm) - sygnalizująca tryb treningowy
GP 15Przycisk start
GP 14Przycisk wyboru poziomu trudności
GP 2Oled - SDA
GP 3Oled - SCL
3,3 VOled VIN, przyciski
3,3 VPotencjometry
GNDOled - GND, diody, potencjometr

Schemat połączeń

Kod programu, a nawet jego 3 wersje znajdziecie na moim Githubie.

Prezentacje "automatu" do gry i omówienie kodu programu znajdziecie na poniższym filmie.