{"id":5869,"date":"2023-11-15T20:50:43","date_gmt":"2023-11-15T19:50:43","guid":{"rendered":"https:\/\/arduino.net.pl\/?p=5869"},"modified":"2023-11-15T23:00:15","modified_gmt":"2023-11-15T22:00:15","slug":"micropython-v1-21-0-uasyncio-oraz-raspberry-pi-pico","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/micropython-v1-21-0-uasyncio-oraz-raspberry-pi-pico\/","title":{"rendered":"Micropython v1.21.0, uasyncio oraz Raspberry Pi Pico"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/synchronizacja_wg_B.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/synchronizacja_wg_B.jpeg\" alt=\"Rysunek przedstawia obraz stworzony przez Bing Microsoft. Prompt: Synchronizacja, Salvadore Dali.\" class=\"wp-image-5874\" style=\"width:860px\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/synchronizacja_wg_B.jpeg 1024w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/synchronizacja_wg_B-300x300.jpeg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/synchronizacja_wg_B-150x150.jpeg 150w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/synchronizacja_wg_B-768x768.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Rysunek przedstawia obraz stworzony przez Bing Microsoft. Prompt: <em>Stw\u00f3rz obraz o nazwie &#8222;Synchronizacja&#8221; w stylu Salvadore Dali<\/em>.<\/figcaption><\/figure>\n\n\n\n<p><strong>Wed\u0142ug ChatGPT:<\/strong><\/p>\n\n\n\n<p><code>uasyncio<\/code> to implementacja asynchronicznego we\/wy (I\/O) dla MicroPython, zoptymalizowana dla mikrokontroler\u00f3w, takich jak te stosowane w mikroprocesorach, w tym na przyk\u0142ad w mikrokontrolerze Raspberry Pi Pico z uk\u0142adem RP2040.<\/p>\n\n\n\n<p>Oto kilka korzy\u015bci z korzystania z <code>uasyncio<\/code> na mikroprocesorach:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Wielozadaniowo\u015b\u0107<\/strong>: Pozwala na \u0142atwe r\u00f3wnoleg\u0142e wykonywanie wielu zada\u0144 (np. obs\u0142uga czujnik\u00f3w, komunikacja bezprzewodowa, sterowanie urz\u0105dzeniami), bez konieczno\u015bci u\u017cywania wielu w\u0105tk\u00f3w lub proces\u00f3w. To jest istotne na mikrokontrolerach, kt\u00f3re cz\u0119sto maj\u0105 ograniczone zasoby.<\/li>\n\n\n\n<li><strong>Niski pob\u00f3r energii<\/strong>: Asynchroniczno\u015b\u0107 umo\u017cliwia mikrokontrolerom wej\u015bcie w stan u\u015bpienia, gdy nie wykonuj\u0105 \u017cadnej pracy, co mo\u017ce znacz\u0105co obni\u017cy\u0107 zu\u017cycie energii. Zamiast czeka\u0107 na zako\u0144czenie operacji wej\u015bcia\/wyj\u015bcia, mikrokontroler mo\u017ce przej\u015b\u0107 w stan u\u015bpienia i obudzi\u0107 si\u0119, gdy operacja zostanie uko\u0144czona.<\/li>\n\n\n\n<li><strong>Obs\u0142uga zdarze\u0144 czasowych<\/strong>: <code>uasyncio<\/code> dostarcza narz\u0119dzia do obs\u0142ugi zdarze\u0144 czasowych, takich jak oczekiwanie na up\u0142yw okre\u015blonego czasu lub cykliczne uruchamianie funkcji w okre\u015blonych odst\u0119pach czasu. To jest przydatne w przypadku planowania i synchronizacji r\u00f3\u017cnych operacji.<\/li>\n\n\n\n<li><strong>Elastyczno\u015b\u0107 w obszarze komunikacji<\/strong>: Asynchroniczno\u015b\u0107 u\u0142atwia obs\u0142ug\u0119 komunikacji, takiej jak komunikacja bezprzewodowa, odbieranie danych z czujnik\u00f3w, czy obs\u0142uga przerwa\u0144. Dzia\u0142a to wydajniej ni\u017c synchroniczna obs\u0142uga tych operacji, zw\u0142aszcza gdy czas odpowiedzi jest niepewny.<\/li>\n\n\n\n<li><strong>Optymalizacje dla mikrokontroler\u00f3w<\/strong>: <code>uasyncio<\/code> zosta\u0142o zoptymalizowane pod k\u0105tem mikrokontroler\u00f3w, co oznacza, \u017ce jest bardziej efektywne w wykorzystywaniu dost\u0119pnych zasob\u00f3w, takich jak pami\u0119\u0107 i moc obliczeniowa, kt\u00f3re s\u0105 cz\u0119sto ograniczone na tego typu platformach.<\/li>\n<\/ol>\n\n\n\n<p>W skr\u00f3cie, <code>uasyncio<\/code> pomaga w efektywnym zarz\u0105dzaniu czasem i zasobami mikrokontroler\u00f3w, umo\u017cliwiaj\u0105c programistom \u0142atwiejsze i bardziej wydajne tworzenie aplikacji na tych platformach. [Tyle ChatGPT]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Oto prosty program w\u0142\u0105czaj\u0105cy niezale\u017cne zadania co 3, 8 i 12 sekund. Program w\u0142\u0105cza\/wy\u0142\u0105cza wbudowan\u0105 diod\u0119 w Raspberry Pi Pico<\/h3>\n\n\n        \n        <div class=\"embedpress-gutenberg-wrapper source-provider-GitHub aligncenter clear   ep-content-protection-disabled inline\" id=\"718cedc6-b668-47a2-bc63-3aba0d156cec\" data-embed-type=\"GitHub \">\n            <div class=\"wp-block-embed__wrapper \">\n                <div id=\"ep-gutenberg-content-6b39e0b764e65c8baa06a08281a891d4\" class=\"ep-gutenberg-content\">\n                    <div >\n                        <div class=\"ep-embed-content-wraper preset-default insta-grid ep-google-photos-carousel\"\n                                                                                                                >\n\n                            <div class=\"ose-github ose-uid-2d3c9ecf527fa89eed56d14291e98cfc ose-embedpress-responsive\" style=\"width:800px; height:350px; max-height:350px; max-width:100%; display:inline-block;\"><link rel=\"stylesheet\" href=\"https:\/\/github.githubassets.com\/assets\/gist-embed-232d920b3dfe.css\"><div id=\"gist126280226\" class=\"gist\">    <div class=\"gist-file\" translate=\"no\">      <div class=\"gist-data\">        <div class=\"js-gist-file-update-container js-task-list-container file-box\">  <div id=\"file-3_zadania_uasyncio-py\" class=\"file my-2\">        <div itemprop=\"text\" class=\"Box-body p-0 blob-wrapper data type-python  \">        <div class=\"js-check-bidi js-blob-code-container blob-code-content\">  <template class=\"js-file-alert-template\">  <div data-view-component=\"true\" class=\"flash flash-warn flash-full d-flex flex-items-center\">  <svg aria-hidden=\"true\" height=\"350\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"800\" data-view-component=\"true\" class=\"octicon octicon-alert\">    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path><\/svg>    <span>      This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.      <a class=\"Link--inTextBlock\" href=\"https:\/\/github.co\/hiddenchars\" target=\"_blank\">Learn more about bidirectional Unicode characters<\/a>    <\/span>  <div data-view-component=\"true\" class=\"flash-action\">        <a href=\"{{ revealButtonHref }}\" data-view-component=\"true\" class=\"btn-sm btn\">    Show hidden characters<\/a><\/div><\/div><\/template><template class=\"js-line-alert-template\">  <span aria-label=\"This line has hidden Unicode characters\" data-view-component=\"true\" class=\"line-alert tooltipped tooltipped-e\">    <svg aria-hidden=\"true\" height=\"350\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"800\" data-view-component=\"true\" class=\"octicon octicon-alert\">    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path><\/svg><\/span><\/template>  <table data-hpc class=\"highlight tab-size js-file-line-container js-code-nav-container js-tagsearch-file\" data-tab-size=\"8\" data-paste-markdown-skip data-tagsearch-lang=\"Python\" data-tagsearch-path=\"3_zadania_uasyncio.py\">        <tr>          <td id=\"file-3_zadania_uasyncio-py-L1\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"1\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC1\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-k>import<\/span> <span class=pl-s1>uasyncio<\/span> <span class=pl-k>as<\/span> <span class=pl-s1>asyncio<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L2\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"2\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC2\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-k>from<\/span> <span class=pl-s1>machine<\/span> <span class=pl-k>import<\/span> <span class=pl-v>Pin<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L3\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"3\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC3\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L4\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"4\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC4\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-k>async<\/span> <span class=pl-k>def<\/span> <span class=pl-en>task1<\/span>(<span class=pl-s1>led<\/span>):<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L5\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"5\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC5\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-k>while<\/span> <span class=pl-c1>True<\/span>:<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L6\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"6\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC6\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-en>print<\/span>(<span class=pl-s>&quot;Zadanie 1 wykonuje si\u0119 co 3 sekundy&quot;<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L7\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"7\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC7\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-s1>led<\/span>.<span class=pl-en>toggle<\/span>()<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L8\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"8\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC8\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-k>await<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>sleep<\/span>(<span class=pl-c1>3<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L9\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"9\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC9\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L10\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"10\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC10\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-k>async<\/span> <span class=pl-k>def<\/span> <span class=pl-en>task2<\/span>(<span class=pl-s1>led<\/span>):<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L11\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"11\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC11\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-k>while<\/span> <span class=pl-c1>True<\/span>:<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L12\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"12\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC12\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-en>print<\/span>(<span class=pl-s>&quot;Zadanie 2 wykonuje si\u0119 co 8 sekund&quot;<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L13\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"13\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC13\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-s1>led<\/span>.<span class=pl-en>toggle<\/span>()<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L14\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"14\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC14\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-k>await<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>sleep<\/span>(<span class=pl-c1>8<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L15\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"15\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC15\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L16\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"16\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC16\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-k>async<\/span> <span class=pl-k>def<\/span> <span class=pl-en>task3<\/span>(<span class=pl-s1>led<\/span>):<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L17\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"17\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC17\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-k>while<\/span> <span class=pl-c1>True<\/span>:<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L18\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"18\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC18\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-en>print<\/span>(<span class=pl-s>&quot;Zadanie 3 wykonuje si\u0119 co 12 sekund&quot;<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L19\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"19\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC19\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-c>#         led.toggle()<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L20\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"20\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC20\" class=\"blob-code blob-code-inner js-file-line\">        <span class=pl-k>await<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>sleep<\/span>(<span class=pl-c1>12<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L21\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"21\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC21\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L22\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"22\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC22\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-k>async<\/span> <span class=pl-k>def<\/span> <span class=pl-en>main<\/span>():<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L23\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"23\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC23\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-c># Inicjalizacja diody LED na pinie GP25 jako wyj\u015bcie<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L24\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"24\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC24\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-s1>led<\/span> <span class=pl-c1>=<\/span> <span class=pl-v>Pin<\/span>(<span class=pl-c1>25<\/span>, <span class=pl-v>Pin<\/span>.<span class=pl-v>OUT<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L25\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"25\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC25\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L26\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"26\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC26\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-c># Uruchomienie obu zada\u0144 niezale\u017cnie<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L27\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"27\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC27\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-s1>task1_handler<\/span> <span class=pl-c1>=<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>create_task<\/span>(<span class=pl-en>task1<\/span>(<span class=pl-s1>led<\/span>))<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L28\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"28\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC28\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-s1>task2_handler<\/span> <span class=pl-c1>=<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>create_task<\/span>(<span class=pl-en>task2<\/span>(<span class=pl-s1>led<\/span>))<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L29\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"29\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC29\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-s1>task3_handler<\/span> <span class=pl-c1>=<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>create_task<\/span>(<span class=pl-en>task3<\/span>(<span class=pl-s1>led<\/span>))<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L30\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"30\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC30\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L31\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"31\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC31\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-c># Oczekiwanie na zako\u0144czenie obu zada\u0144<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L32\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"32\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC32\" class=\"blob-code blob-code-inner js-file-line\">    <span class=pl-k>await<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>gather<\/span>(<span class=pl-s1>task1_handler<\/span>, <span class=pl-s1>task2_handler<\/span>, <span class=pl-s1>task3_handler<\/span>)<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L33\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"33\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC33\" class=\"blob-code blob-code-inner js-file-line\"><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L34\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"34\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC34\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-c># Utworzenie p\u0119tli asyncio<\/span><\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L35\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"35\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC35\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-s1>loop<\/span> <span class=pl-c1>=<\/span> <span class=pl-s1>asyncio<\/span>.<span class=pl-en>get_event_loop<\/span>()<\/td>        <\/tr>        <tr>          <td id=\"file-3_zadania_uasyncio-py-L36\" class=\"blob-num js-line-number js-code-nav-line-number js-blob-rnum\" data-line-number=\"36\"><\/td>          <td id=\"file-3_zadania_uasyncio-py-LC36\" class=\"blob-code blob-code-inner js-file-line\"><span class=pl-s1>loop<\/span>.<span class=pl-en>run_until_complete<\/span>(<span class=pl-en>main<\/span>())<\/td>        <\/tr>  <\/table><\/div>    <\/div>  <\/div><\/div>      <\/div>      <div class=\"gist-meta\">        <a href=\"https:\/\/gist.github.com\/yarogniew\/430d5c8d8b7eca833cb04f75e0c08afe\/raw\/7c7cb92e1a40cb9b82e998a13a40dc60e8770d41\/3_zadania_uasyncio.py\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a>        <a href=\"https:\/\/gist.github.com\/yarogniew\/430d5c8d8b7eca833cb04f75e0c08afe#file-3_zadania_uasyncio-py\" class=\"Link--inTextBlock\">          3_zadania_uasyncio.py        <\/a>        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>      <\/div>    <\/div><\/div><\/div>                        <\/div>\n\n                                            <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    \n\n\n<h3 class=\"wp-block-heading\">Najnowsza instalacja MicroPython w Raspberry Pico (2023 r)<\/h3>\n\n\n\n<p>Nale\u017cy pami\u0119ta\u0107, aby przed instalacj\u0105 nowego oprogramowania od\u0142\u0105czy\u0107 Raspberry od USB. Nast\u0119pnie wciskamy przycisk BOOTSEL na p\u0142ytce i pod\u0142\u0105czamy Raspberry Pico do portu USB komputera za pomoc\u0105 kabla. Dopiero wtedy zwalniamy przycisk BOOTSEL. Otwieramy program Thonny<em>, <\/em>dalej<em> Install or update MicroPython<\/em>. Wybieramy opcje tak jak pokazuj\u0119 poni\u017cej i wciskamy <strong>Zainstaluj<\/strong>. Od\u0142\u0105czamy p\u0142ytk\u0119.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/Zrzut-ekranu-2023-11-15-o-22.41.33.png\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"595\" src=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/Zrzut-ekranu-2023-11-15-o-22.41.33.png\" alt=\"\" class=\"wp-image-5891\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/Zrzut-ekranu-2023-11-15-o-22.41.33.png 771w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/Zrzut-ekranu-2023-11-15-o-22.41.33-300x232.png 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/Zrzut-ekranu-2023-11-15-o-22.41.33-768x593.png 768w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2023\/11\/Zrzut-ekranu-2023-11-15-o-22.41.33-389x300.png 389w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Wed\u0142ug ChatGPT: uasyncio to implementacja asynchronicznego we\/wy (I\/O) dla MicroPython, zoptymalizowana dla mikrokontroler\u00f3w, takich jak te stosowane w mikroprocesorach, w tym na przyk\u0142ad w mikrokontrolerze Raspberry Pi Pico z uk\u0142adem&#8230;<\/p>\n","protected":false},"author":3,"featured_media":5874,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[141,114],"tags":[172,30],"class_list":["post-5869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-micropython","category-raspberry","tag-asyncio","tag-tutorial"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/5869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=5869"}],"version-history":[{"count":10,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/5869\/revisions"}],"predecessor-version":[{"id":5896,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/5869\/revisions\/5896"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media\/5874"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=5869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=5869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=5869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}