{"id":19513250,"url":"https://github.com/szymciem8/micropython-public-preview","last_synced_at":"2026-05-03T11:32:50.551Z","repository":{"id":136263953,"uuid":"434229706","full_name":"szymciem8/MicroPython-Public-Preview","owner":"szymciem8","description":"Przegląd kursu korzystania z platformy Raspberry Pi Pico w języku MicroPython, pełny kurs jest dostępny w szkołach: Akademia Nauki i Rozowoju w Żorach oraz Akademia EMT Kids w Gliwicach","archived":false,"fork":false,"pushed_at":"2022-01-05T23:01:08.000Z","size":6014,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T23:29:35.973Z","etag":null,"topics":["course","micropython","python","raspberry-pi","raspberry-pi-pico"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szymciem8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-02T13:23:29.000Z","updated_at":"2022-01-05T23:01:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"f252c97f-9eb0-412e-9b90-259cf4c57560","html_url":"https://github.com/szymciem8/MicroPython-Public-Preview","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/szymciem8/MicroPython-Public-Preview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymciem8%2FMicroPython-Public-Preview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymciem8%2FMicroPython-Public-Preview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymciem8%2FMicroPython-Public-Preview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymciem8%2FMicroPython-Public-Preview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szymciem8","download_url":"https://codeload.github.com/szymciem8/MicroPython-Public-Preview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymciem8%2FMicroPython-Public-Preview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285422071,"owners_count":27168929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["course","micropython","python","raspberry-pi","raspberry-pi-pico"],"created_at":"2024-11-10T23:29:14.591Z","updated_at":"2025-11-20T11:02:59.857Z","avatar_url":"https://github.com/szymciem8.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi Pico Bird Shooter\n\nLekcja jest częścią pełnego kursu, który został przygotowany dla szkół: Akademia Nauki i Rozowoju w Żorach oraz Akademia EMT Kids w Gliwicach, gdzie można wziąć udział w pełnym szkoleniu. Kurs jest przystosowany dla dzieci i młodzieży w wieku od 12 do 14 lat. Ze względu na przeznaczenie kursu, programy częściowo zostały napisane w języku polskim.\n\n## Pełny program – kolejne zajęcia\n![](img/Obraz1.gif)\n\n## Program testowy – plan na dzisiaj\n![](img/Obraz2.gif)\n\nUmożliwiamy sterowanie celownikiem przy pomocy żyroskopu. \n\n## Założenia projektu\n\nGra polegająca na zestrzeliwaniu przelatujących ptaków\\. Przez dwie kolejne lekcje będziemy tworzyć grę sterowaną poprzez żyroskop podłączony do Raspberry Pi Pico\\. Żyroskop będzie wykorzystany do ustawienia celownika na ekranie\\, który pozwoli nam na zestrzelenie przelatujących ptaków\\. Potrzebny układ elektroniczny nie jest skomplikowany\\, ale będziemy musieli zbudować go ponownie na następnych zajęciach\\.\n\n\n\n## Schemat projektu\n\n![](img/Obraz3.png)\n\n# Pico\n\nDokładamy kolejny przycisk\\, którego wartości wypisujemy w porcie szeregowym\\.\nTen przycisk posłuży nam jako spust do wykorzystania w grze\\.\n\n```\nwhile True:\n    katy = zmierz_kat(skalibrowane, 2)\n \n    if nowa_kalibracja.value():\n        offset_x=katy['GyX']\n        offset_y=katy['GyY']\n        offset_z=katy['GyZ']\n    \n    print(\"%.2f,%.2f,%.2f\" % (katy['GyX']-offset_x,\n                              katy['GyY']-offset_y,\n                              katy['GyZ']-offset_z))\n```\n\n## PC - Biblioteki do podpięcia\n\n```\nimport serial\nfrom serial import Serial\nimport pygame\nimport time\nfrom pygame.locals import *\nimport random\n```\n\n\n## PC funkcja cz. 1\n\nPobieramy dane z Pico i wykorzystujemy je do obliczenie pozycji wskaźnika\\. Dodatkowo możemy wyświetlić dane w konsoli\\, żeby sprawdzić ich poprawność\\. Dla ciekawskich można sprawdzić co oznaczają nazwyroll\\,pitchiyaw\\.\n\n```\ndef render_celownika():\n    global odczyty, ostatni_przycisk\n\n    odczyty+=1\n    dane = pico.readline()\n\n    if dane:\n        dane = dane.decode()\n        dane = dane.split(',')\n\n        #Obrót wokół osi Z\n        yaw = float(dane[2])\n        #obrót wokół osi X\n        pitch = float(dane[0])\n        #Przycisk spustu\n        przycisk = int(dane[3])\n\n        #print(\"%.2f, %.2f\" %(yaw, pitch))\n\n        #Obliczamy pozycję wskaźnika na podstawie odebranych kątów\n        x = szerokosc_okna/2 * (1 - yaw/20)\n        y = wysokosc_okna/2 * (1 + pitch/20)\n```\n\n## Dalsza część funkcji rysującej wskaźnik\n\nDbamy o to\\, żeby wskaźnik nie wyszedł poza okno\\. Dodatkowo wprowadzamy warunek\\, który czyści port szeregowy czas co jakiś czas\\. Jak się okazuje\\, zbyt duża nieodczytanych danych może spowodować spowolnione działanie\\.\n\n```\n        #Jeżli pozycja wskaźnika będzie poza ekranem to go blokujemy\n        if x \u003e szerokosc_okna - 20: x = szerokosc_okna - 10\n        if x \u003c 0: x = 0\n\n        if y \u003e wysokosc_okna - 20: y = wysokosc_okna - 10\n        if y \u003c 0: y = 0\n\n        #Po 200 odczytach czyścimy port szeregowy \n        if odczyty==200:\n            odczyty=0\n            #Czyszczenie portu \n            pico.flushInput()\n            for i in range(5):\n                dane=pico.readline()\n\n        #Rysjemy wskaźnik\n        do_narysowania = pygame.draw.rect(okno, pygame.Color(0,0,0),(x, y, 10, 10))\n        pygame.display.update(do_narysowania)\n```\n\n## PC pętla główna\n\nInicjujemy połączenie z Pico oraz tworzymy odpowiednie zmienne\\. Opcja __DOUBLEBUF__ pozwoli na szybsze działanie programu\\.\n\n```\n#Tworzymy połączenie z portem szeregowym \npico = serial.Serial(port = \"COM3\", baudrate=9600)\n\n#Tworzymy grę w pygame\nszerokosc_okna = 1200\nwysokosc_okna = 800\npygame.init()\nokno = pygame.display.set_mode((szerokosc_okna, wysokosc_okna), DOUBLEBUF)\n\n#Zmienne globalne\nodczyty=0\nostatni_przycisk=0\n\n#GŁÓWNA PĘTLA\nrun=True\nwhile run:\n    okno.fill(pygame.Color(0,0,255))\n    render_celownika()\n    \n    for event in pygame.event.get():\n        if event.type == pygame.QUIT:\n            run = False\n                    \n    pygame.display.update()\n```\n\n## Koniec!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszymciem8%2Fmicropython-public-preview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszymciem8%2Fmicropython-public-preview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszymciem8%2Fmicropython-public-preview/lists"}