{"id":3656,"date":"2021-10-01T23:10:06","date_gmt":"2021-10-01T21:10:06","guid":{"rendered":"https:\/\/www.breizh56.fr\/crepp2024\/?page_id=3656"},"modified":"2021-11-12T13:29:48","modified_gmt":"2021-11-12T12:29:48","slug":"2021-rpi-pico-micropython","status":"publish","type":"page","link":"https:\/\/www.breizh56.fr\/crepp2024\/2021-rpi-pico-micropython\/","title":{"rendered":"2021 Rpi Pico micropython"},"content":{"rendered":"<p>la Rasperry Pi Pico <a href=\"https:\/\/www.kubii.fr\/cartes-raspberry-pi\/3205-raspberry-pi-pico-0728886755172.html\"><strong>6\u20ac<\/strong><\/a> est un micro <a href=\"https:\/\/www.raspberrypi.org\/documentation\/microcontrollers\/raspberry-pi-pico.html\" target=\"_blank\" rel=\"noopener noreferrer\">controleur puissant<\/a> <a href=\"https:\/\/raspberrypi.github.io\/pico-sdk-doxygen\/index.html\">programmable <\/a>en micro python.<\/p>\n<p>C&rsquo;est une carte r\u00e9cente concurren\u00e7ant les Arduino.<\/p>\n<p><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Rpi-Pico-Pinout.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3668 size-full\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Rpi-Pico-Pinout.png\" alt=\"\" width=\"1387\" height=\"952\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Rpi-Pico-Pinout.png 1387w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Rpi-Pico-Pinout-300x206.png 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Rpi-Pico-Pinout-768x527.png 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Rpi-Pico-Pinout-1024x703.png 1024w\" sizes=\"(max-width: 1387px) 100vw, 1387px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>un IDE\/Environnement de D\u00e9veloppement Informatique Rapsberry Pi Pico est <a href=\"https:\/\/thonny.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Thonny <\/a>(t\u00e9l\u00e9chargement <a href=\"https:\/\/www.breizh56.fr\/crepp2024\/2021-rpi-pico-led-et-sos\/thonny-3-3-13\/\"><strong>ici<\/strong><\/a>).<\/p>\n<p>La led interne est sur le GPIO 25 qu&rsquo;il faut d\u00e9finir avant de vouloir faire allumer\/\u00e9teindre la led;<\/p>\n<pre>MicroPython v1.16 on 2021-06-18; Raspberry Pi Pico with RP2040 \r\nType \"help()\" for more information.\r\n&gt;&gt;&gt; <strong>from machine import Pin<\/strong>\r\n<strong>led = Pin(25, Pin.OUT)<\/strong>\r\n\r\n<strong>led.toggle()<\/strong><\/pre>\n<p>il suffira de retaper <strong>led.toggle()<\/strong> pour allumer\/\u00e9teindre !<\/p>\n<p>Pour d\u00e9finir une dur\u00e9e, il faut utiliser le module Timer:<\/p>\n<pre class=\" language-python\"><code class=\" language-python\"><span class=\"token keyword\">from<\/span> machine <span class=\"token keyword\">import<\/span> Pin<span class=\"token punctuation\">,<\/span> <strong>Timer<\/strong>\r\nled <span class=\"token operator\">=<\/span> Pin<span class=\"token punctuation\">(<\/span><span class=\"token number\">25<\/span><span class=\"token punctuation\">,<\/span> Pin<span class=\"token punctuation\">.<\/span>OUT<span class=\"token punctuation\">)<\/span>\r\ntimer <span class=\"token operator\">=<\/span> Timer<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\n<span class=\"token keyword\">def<\/span> <span class=\"token function\">clignote<\/span><span class=\"token punctuation\">(<\/span>timer<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    led<span class=\"token punctuation\">.<\/span>toggle<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\ntimer<span class=\"token punctuation\">.<\/span>init<span class=\"token punctuation\">(<\/span>freq<span class=\"token operator\">=3.<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> mode<span class=\"token operator\">=<\/span>Timer<span class=\"token punctuation\">.<\/span>PERIODIC<span class=\"token punctuation\">,<\/span> callback<span class=\"token operator\">=clignote<\/span><span class=\"token punctuation\">)<\/span><\/code><\/pre>\n<p>toutes les commandes se passent dans Thonny<\/p>\n<p><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Thonny-led-clignote.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3664 size-full\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Thonny-led-clignote.jpg\" alt=\"\" width=\"1166\" height=\"621\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Thonny-led-clignote.jpg 1166w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Thonny-led-clignote-300x160.jpg 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Thonny-led-clignote-768x409.jpg 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2021\/10\/Thonny-led-clignote-1024x545.jpg 1024w\" sizes=\"(max-width: 1166px) 100vw, 1166px\" \/><\/a><\/p>\n<hr \/>\n<p>voici le code pour un <strong>feu tricolore<\/strong>:<\/p>\n<p>m\u00e9thode 1<\/p>\n<pre>from machine import Pin\r\nfrom time import sleep\r\n\r\n# Feux tricolores\r\nF1V = Pin(16, Pin.OUT)\r\nF1O = Pin(17, Pin.OUT)\r\nF1R = Pin(18, Pin.OUT)\r\n\r\nF2V = Pin(19, Pin.OUT)\r\nF2O = Pin(20, Pin.OUT)\r\nF2R = Pin(21, Pin.OUT)\r\n\r\nTempo = 5 #5s\r\n\r\nwhile(True):\r\n #F1V_F2R\r\n F1V.value(True)\r\n F1O.value(False)\r\n F1R.value(False)\r\n F2V.value(False)\r\n F2O.value(False)\r\n F2R.value(True)\r\n sleep(Tempo)\r\n \r\n #F1O_F2R\r\n F1V.value(False)\r\n F1O.value(True)\r\n F1R.value(False)\r\n F2V.value(False)\r\n F2O.value(False)\r\n F2R.value(True)\r\n sleep(Tempo)\r\n \r\n #F1R_F2R\r\n F1V.value(False)\r\n F1O.value(False)\r\n F1R.value(True)\r\n F2V.value(False)\r\n F2O.value(False)\r\n F2R.value(True)\r\n sleep(Tempo\/5)\r\n \r\n #F1R_F2V\r\n F1V.value(False)\r\n F1O.value(False)\r\n F1R.value(True)\r\n F2V.value(True)\r\n F2O.value(False)\r\n F2R.value(False)\r\n sleep(Tempo)\r\n \r\n #F1R_F2O\r\n F1V.value(False)\r\n F1O.value(False)\r\n F1R.value(True)\r\n F2V.value(False)\r\n F2O.value(True)\r\n F2R.value(False)\r\n sleep(Tempo)\r\n \r\n #F1R_F2R\r\n F1V.value(False)\r\n F1O.value(False)\r\n F1R.value(True)\r\n F2V.value(False)\r\n F2O.value(False)\r\n F2R.value(True)\r\n sleep(Tempo\/5)\r\n \r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>m\u00e9thode 2<\/p>\n<pre>import RPi.GPIO as GPIO\r\nimport time\r\nimport signal\r\nimport sys\r\n\r\nVert =2\r\nOrange =3\r\nRouge = 4\r\n\r\nGPIO.setmode(GPIO.BCM)\r\nGPIO.setup(Vert, GPIO.OUT) # vert\r\nGPIO.setup(Orange, GPIO.OUT) # orange\r\nGPIO.setup(Rouge, GPIO.OUT) # rouge\r\n\r\ndef allLightsOff(signal, frame):\r\n GPIO.output(Vert, False)\r\n GPIO.output(Orange, False)\r\n GPIO.output(Rouge, False)\r\n GPIO.cleanup()\r\n sys.exit(0)\r\n \r\nsignal.signal(signal.SIGINT, allLightsOff)\r\nprint('[CTRL + C pour terminer]')\r\n \r\nwhile True:\r\n GPIO.output(Rouge,True) # rouge allum\u00e9\r\n time.sleep(3)\r\n GPIO.output(Rouge,False) # rouge allum\u00e9\r\n #\r\n GPIO.output(Vert,True) # vert allum\u00e9\r\n time.sleep(5)\r\n GPIO.output(Vert,False) # vert \u00e9teint\r\n #\r\n GPIO.output(Orange,True) # orange allum\u00e9\r\n time.sleep(2)\r\n GPIO.output(Orange,False) # orange allum\u00e9\r\n<\/pre>\n<hr \/>\n<p><strong>anneau 16 Leds ws2812<\/strong><\/p>\n<p>&nbsp;<\/p>\n<pre># Example using PIO to drive a set of WS2812 LEDs.\r\n\r\nimport array, time\r\nfrom machine import Pin\r\nimport rp2\r\n\r\n# Configure the number of WS2812 LEDs.\r\nNUM_LEDS = 16\r\nPIN_NUM = 6\r\nbrightness = 0.2\r\n\r\n<em>@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True,\r\npull_thresh=24)<\/em>\r\ndef ws2812():\r\n T1 = 2\r\n T2 = 5\r\n T3 = 3\r\n wrap_target()\r\n label(\"bitloop\")\r\n out(x, 1) .side(0) [T3 - 1]\r\n jmp(not_x, \"do_zero\") .side(1) [T1 - 1]\r\n jmp(\"bitloop\") .side(1) [T2 - 1]\r\n label(\"do_zero\")\r\n nop() .side(0) [T2 - 1]\r\n wrap()\r\n\r\n# Create the StateMachine with the ws2812 program, outputting on pin\r\nsm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(PIN_NUM))\r\n\r\n# Start the StateMachine, it will wait for data on its FIFO.\r\nsm.active(1)\r\n\r\n# Display a pattern on the LEDs via an array of LED RGB values.\r\nar = array.array(\"I\", [0 for _ in range(NUM_LEDS)])\r\n\r\n##########################################################################\r\ndef pixels_show():\r\n dimmer_ar = array.array(\"I\", [0 for _ in range(NUM_LEDS)])\r\n for i,c in enumerate(ar):\r\n r = int(((c &gt;&gt; 8) &amp; 0xFF) * brightness)\r\n g = int(((c &gt;&gt; 16) &amp; 0xFF) * brightness)\r\n b = int((c &amp; 0xFF) * brightness)\r\n dimmer_ar[i] = (g&lt;&lt;16) + (r&lt;&lt;8) + b\r\n sm.put(dimmer_ar, 8)\r\n time.sleep_ms(10)\r\n\r\ndef pixels_set(i, color):\r\n ar[i] = (color[1]&lt;&lt;16) + (color[0]&lt;&lt;8) + color[2]\r\n\r\ndef pixels_fill(color):\r\n for i in range(len(ar)):\r\n pixels_set(i, color)\r\n\r\ndef color_chase(color, wait):\r\n for i in range(NUM_LEDS):\r\n pixels_set(i, color)\r\n time.sleep(wait)\r\n pixels_show()\r\n time.sleep(0.2)\r\n\r\ndef wheel(pos):\r\n # Input a value 0 to 255 to get a color value.\r\n # The colours are a transition r - g - b - back to r.\r\n if pos &lt; 0 or pos &gt; 255:\r\n return (0, 0, 0)\r\n if pos &lt; 85:\r\n return (255 - pos * 3, pos * 3, 0)\r\n if pos &lt; 170:\r\n pos -= 85\r\n return (0, 255 - pos * 3, pos * 3)\r\n pos -= 170\r\n return (pos * 3, 0, 255 - pos * 3)\r\n\r\ndef rainbow_cycle(wait):\r\n for j in range(255):\r\n for i in range(NUM_LEDS):\r\n rc_index = (i * 256 \/\/ NUM_LEDS) + j\r\n pixels_set(i, wheel(rc_index &amp; 255))\r\n pixels_show()\r\n time.sleep(wait)\r\n\r\nBLACK = (0, 0, 0)\r\nRED = (255, 0, 0)\r\nYELLOW = (255, 150, 0)\r\nGREEN = (0, 255, 0)\r\nCYAN = (0, 255, 255)\r\nBLUE = (0, 0, 255)\r\nPURPLE = (180, 0, 255)\r\nWHITE = (255, 255, 255)\r\nCOLORS = (BLACK, RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE)\r\n\r\nprint(\"fills\")\r\nfor color in COLORS:\r\n pixels_fill(color)\r\n pixels_show()\r\n time.sleep(0.5)\r\n\r\nprint(\"chases\")\r\nfor color in COLORS:\r\n color_chase(color, 0.02)\r\n\r\nprint(\"rainbow\")\r\nrainbow_cycle(0)\r\n\r\n# Eteindre les LED apr\u00e8s 2 secondes\r\ntime.sleep(2)\r\npixels_fill(BLACK)\r\npixels_show()<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>la Rasperry Pi Pico 6\u20ac est un micro controleur puissant programmable en micro python. C&rsquo;est une carte r\u00e9cente concurren\u00e7ant les Arduino. &nbsp; un IDE\/Environnement de D\u00e9veloppement Informatique Rapsberry Pi Pico est Thonny (t\u00e9l\u00e9chargement ici). La led interne est sur le GPIO 25 qu&rsquo;il faut d\u00e9finir avant de vouloir faire allumer\/\u00e9teindre la led; MicroPython v1.16 on 2021-06-18; Raspberry Pi Pico with [&#8230;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3656","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/3656"}],"collection":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/comments?post=3656"}],"version-history":[{"count":15,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/3656\/revisions"}],"predecessor-version":[{"id":3837,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/3656\/revisions\/3837"}],"wp:attachment":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/media?parent=3656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}