<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Le kit Ravel on Zelbinium</title>
		<link>/fr/ravel/</link>
		<description>Recent content in Le kit Ravel on Zelbinium</description>
		<generator>Hugo</generator>
		<language>fr</language>
		
		
		
		
			<atom:link href="/fr/ravel/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Démonstration - kit Ravel</title>
				<link>/fr/ravel/demos/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>/fr/ravel/demos/</guid>
				<description>&lt;h1 id=&#34;kit-ravel-démonstrations-en-ligne&#34;&gt;Kit &lt;em&gt;Ravel&lt;/em&gt; : démonstrations en ligne&lt;a class=&#34;anchor&#34; href=&#34;#kit-ravel-d%c3%a9monstrations-en-ligne&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&#xA;&#xA;&lt;div&gt;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;Pour une utilisation avec simulateur (plus d’explications &lt;a href=&#34;../../ucuq/online&#34;&gt;ici&lt;/a&gt;) :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://s.q37.info/dkxf4rkk&#34;&gt;Simulation &lt;em&gt;Wokwi&lt;/em&gt;&lt;/a&gt; ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;script&gt;&#xA;  function configSubmit() {&#xA;    const token = &#34;&#34;;&#xA;    let tokenIds = document.getElementById(&#34;tokenIds&#34;).value;&#xA;&#xA;    data = {&#xA;      &#34;token&#34;: token,&#xA;      &#34;id&#34;: tokenIds&#xA;    }&#xA;&#xA;    postToPhp(&#34;config&#34;, &#34;https://faas.q37.info/ucuq/config.php&#34;, data);&#xA;&#xA;    window.open(`https://faas.q37.info/ucuq/config.php?token=${token}&amp;id=${tokenIds}`, &#39;_blank&#39;)&#xA;  }&#xA;&lt;/script&gt;&#xA;&#xA;&lt;input type=&#34;text&#34; id=&#34;tokenIds&#34; size=&#34;20&#34; placeholder=&#34;Token:Id&#34;&gt;&#xA;&lt;button onclick=&#34;configSubmit()&#34;&gt;✔&lt;/button&gt;&#xA;&lt;iframe id=&#34;config&#34; style=&#34;display: none&#34;&gt;&lt;/iframe&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&lt;p&gt;Bouton &lt;em&gt;Run&lt;/em&gt; pour (re)lancer l&amp;rsquo;application. Le code source est modifiable.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;headless-sans-interface-graphique&#34;&gt;&lt;em&gt;Headless&lt;/em&gt; (sans interface graphique)&lt;a class=&#34;anchor&#34; href=&#34;#headless-sans-interface-graphique&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;raz&#34;&gt;RAZ&lt;a class=&#34;anchor&#34; href=&#34;#raz&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Remise à zéro du kit&lt;/p&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;Remise à zéro des différents composants constituant le kit.&#34;&gt;&#xA; &#xA;import ucuq&#xA;&#xA;ucuq.ravel.raz()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;buzzer&#34;&gt;Buzzer&lt;a class=&#34;anchor&#34; href=&#34;#buzzer&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;beep&#34;&gt;&lt;em&gt;Beep&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#beep&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;&#34;&gt;&#xA; &#xA;import ucuq&#xA;&#xA;FREQ = 440&#xA;&#xA;buzzer = ucuq.ravel.Buzzer()&#xA;&#xA;buzzer.on(FREQ)&#xA;&#xA;ucuq.sleep(1)&#xA;&#xA;buzzer.off()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h4 id=&#34;gammes&#34;&gt;Gammes&lt;a class=&#34;anchor&#34; href=&#34;#gammes&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;&#34;&gt;&#xA; &#xA;import ucuq&#xA;&#xA;FREQ_LOW = 220&#xA;FREQ_HIGH = 880&#xA;&#xA;DELAY_TIME = .1&#xA;NUM_STEPS = 24&#xA;&#xA;buzzer = ucuq.ravel.Buzzer()&#xA;&#xA;coeff = (FREQ_HIGH/FREQ_LOW)**(1/NUM_STEPS)&#xA;&#xA;for i in range(NUM_STEPS):&#xA;  buzzer.on(int(FREQ_LOW * coeff ** i))&#xA;  ucuq.sleep(DELAY_TIME)&#xA;&#xA;for i in range(NUM_STEPS + 1):&#xA;  buzzer.on(int(FREQ_HIGH / coeff ** i))&#xA;  ucuq.sleep(DELAY_TIME)&#xA;&#xA;buzzer.off()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;anneau-rgb&#34;&gt;Anneau RGB&lt;a class=&#34;anchor&#34; href=&#34;#anneau-rgb&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;uni&#34;&gt;Uni&lt;a class=&#34;anchor&#34; href=&#34;#uni&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;Allumage de la totalité des 8 DELS WS2812 arrangé en anneau avec le même couleur.&#34;&gt;&#xA; &#xA;import ucuq&#xA;&#xA;R = 10&#xA;G = 8&#xA;B = 1&#xA;&#xA;ring = ucuq.ravel.Ring()&#xA;&#xA;ring.fill((R, G, B)).write()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h4 id=&#34;rainbow&#34;&gt;&lt;em&gt;Rainbow&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#rainbow&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;l&#39;objet ring est un anneau constitué de 8 DEL WS2812.&#34;&gt;&#xA; &#xA;import ucuq, random&#xA;&#xA;MIN = 1&#xA;MAX = 5&#xA;&#xA;ring = ucuq.ravel.Ring()&#xA;&#xA;for _ in range(15):&#xA;  for led in range(8):&#xA;    ring.setValue(led, tuple((lambda: random.randint(MIN, MAX))() for _ in range(3))).write()&#xA;    ucuq.sleep(.03)&#xA;    &#xA;ucuq.sleep(2)&#xA;&#xA;ring.fill((0, 0, 0)).write()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;lcd&#34;&gt;LCD&lt;a class=&#34;anchor&#34; href=&#34;#lcd&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;simple-affichage&#34;&gt;Simple affichage&lt;a class=&#34;anchor&#34; href=&#34;#simple-affichage&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;HD44780_I2C est un objet qui pilote, en utilisant le protocole I2C, un composant ayant pour référence HD44780, et qui est un afficheur LCD à matrice de points de 2 x 16 caractères.&#34;&gt;&#xA; &#xA;NAME = &#34;&#34;&#34;&#xA;&#xA;&#xA;&#xA;&#34;&#34;&#34;.strip().rjust(16)&#xA;&#xA;import ucuq&#xA;&#xA;lcd = ucuq.ravel.LCD()&#xA;&#xA;lcd.putString(&#34;Salutations&#34;.ljust(16) + NAME).backlightOn()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h4 id=&#34;vagues&#34;&gt;&lt;em&gt;Vagues&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#vagues&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;HD44780_I2C est un objet qui pilote, en utilisant le protocole I2C, un composant ayant pour référence HD44780, et qui est un afficheur à matrice de points de 2 x 16 caractères. Ce programme redéfinit les caractères utilisateurs pour dessiner des vagues.&#34;&gt;&#xA; &#xA;import ucuq&#xA;&#xA;DELAY = 0.07&#xA;COUNT = 2&#xA;&#xA;lcd = ucuq.ravel.LCD()&#xA;&#xA;lcd.uploadUpwardGaugeChars().backlightOn()&#xA;&#xA;gauges = ()&#xA;&#xA;def mirror(str):&#xA;  return str[:8] + tuple(str[i] for i in range(7, -1, -1,))&#xA;&#xA;def morph(a, b):&#xA;  steps = max(abs(x - y) for x, y in zip(a, b))&#xA;  for s in range(1, steps):&#xA;    ucuq.sleep(DELAY)&#xA;    lcd.putUpwardGauges(0, [int(ai + s / (steps - 1) * (bi - ai)) for ai, bi in zip(a, b)])&#xA;&#xA;for j in range(0, 32 * COUNT):&#xA;  gauges = ((abs((j + 16) % 32 - 16),) + gauges)[:16]&#xA;  ucuq.sleep(DELAY)&#xA;  lcd.putUpwardGauges(0, gauges)&#xA;&#xA;morph(gauges, mirror(gauges))&#xA;&#xA;for j in range(0, 32 * COUNT):&#xA;  gauges = ((abs((j + 16) % 32 - 16),) + gauges)[:16]&#xA;  ucuq.sleep(DELAY)&#xA;  lcd.putUpwardGauges(0, mirror(gauges))&#xA;&#xA;morph(mirror(gauges), (0,) * 16)&#xA;&#xA;ucuq.sleep(DELAY)&#xA;&#xA;lcd.backlightOff()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;oled&#34;&gt;OLED&lt;a class=&#34;anchor&#34; href=&#34;#oled&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;texte&#34;&gt;Texte&lt;a class=&#34;anchor&#34; href=&#34;#texte&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;Affiche du texte sur un afficheur OLED.&#34;&gt;&#xA; &#xA;import ucuq, datetime&#xA;&#xA;oled = ucuq.ravel.OLED()&#xA;&#xA;oled.text(&#34;Nous sommes le&#34;.center(16), 0, 20).text(f&#34;{datetime.datetime.now().strftime(&#34;%d/%m/%Y %H:%M&#34;).center(16)}&#34;, 0, 40).show()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h4 id=&#34;dessin&#34;&gt;Dessin&lt;a class=&#34;anchor&#34; href=&#34;#dessin&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;div data-python-demo=&#34;&#34; data-coach-hints=&#34;Affiche un visage souriant sur un afficheur OLED.&#34;&gt;&#xA; &#xA;import ucuq&#xA;&#xA;oled = ucuq.ravel.OLED()&#xA;&#xA;oled.draw(&#34;03c00c30181820044c32524a80018001824181814812442223c410080c3003c0&#34;, 16, mul=4, ox=32).show()&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;h4 id=&#34;animation&#34;&gt;Animation&lt;a class=&#34;anchor&#34; href=&#34;#animation&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;&lt;em&gt;NOTA&lt;/em&gt; : le lancement de l&amp;rsquo;animation peut prendre quelques secondes…&lt;/p&gt;</description>
			</item>
			<item>
				<title>API kit Ravel</title>
				<link>/fr/ravel/api/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>/fr/ravel/api/</guid>
				<description>&lt;h1 id=&#34;api-du-kit-ravel&#34;&gt;API du kit &lt;em&gt;Ravel&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#api-du-kit-ravel&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Cette API est dédié au &lt;em&gt;Kit&lt;/em&gt; ravel et étend l&amp;rsquo;&lt;a href=&#34;../../ucuq/api&#34;&gt;API &lt;em&gt;UCUq&lt;/em&gt;&lt;/a&gt;. Pour faciliter sa mise en œuvre, elle fait abstraction des aspects matériels (protocoles de communication, broches utilisées…).&lt;/p&gt;&#xA;&lt;h2 id=&#34;buzzer&#34;&gt;&lt;em&gt;Buzzer&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#buzzer&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.ravel.Buzzer()&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler le buzzer ;&lt;/li&gt;&#xA;&lt;li&gt;pour les autres méthodes, voir &lt;a href=&#34;../../ucuq/api#ucuqbuzzer&#34;&gt;&lt;code&gt;ucuq.Buzzer&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ring&#34;&gt;&lt;em&gt;Ring&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#ring&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.ravel.Ring(&amp;lt;offset&amp;gt;)&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler l&amp;rsquo;anneau RVB. &lt;code&gt;&amp;lt;offset&amp;gt;&lt;/code&gt; définit la DEL d&amp;rsquo;index 0.&lt;/li&gt;&#xA;&lt;li&gt;pour les autres méthodes, voir &lt;a href=&#34;../../ucuq/api#ucuqws2812&#34;&gt;&lt;code&gt;ucuq.WS2812&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;oled&#34;&gt;&lt;em&gt;OLED&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#oled&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.ravel.OLED()&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler l&amp;rsquo;afficheur &lt;em&gt;OLED&lt;/em&gt; ;&lt;/li&gt;&#xA;&lt;li&gt;pour les autres méthodes, voir &lt;a href=&#34;../../ucuq/api#ucuqssd1306_i2c&#34;&gt;&lt;code&gt;ucuq.SSD1306_I2C&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lcd&#34;&gt;&lt;em&gt;LCD&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#lcd&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.ravel.LCD()&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler un afficheur LCD ;&lt;/li&gt;&#xA;&lt;li&gt;pour les autres méthodes, voir &lt;a href=&#34;../../ucuq/api#ucuqhd44780_i2c&#34;&gt;&lt;code&gt;ucuq.HD44780_I2C&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upper&#34;&gt;&lt;em&gt;Upper&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#upper&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.ravel.Upper()&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler le servomoteur du haut ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Upper.set(&amp;lt;value&amp;gt;)&lt;/code&gt; : positionne le servomoteur à la valeur &lt;code&gt;&amp;lt;value&amp;gt;&lt;/code&gt; (entre entre 0 et 6554 inclus) ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Upper.get()&lt;/code&gt; : retourne la position du servomoteur ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Upper.park()&lt;/code&gt; : place le servomoteur en position de repos.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lower&#34;&gt;&lt;em&gt;Lower&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#lower&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.ravel.Lower()&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler le servomoteur du haut ;&lt;/li&gt;&#xA;&lt;li&gt;pour les autres méthodes, voir &lt;a href=&#34;#upper&#34;&gt;&lt;code&gt;ucuq.ravel.Upper&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ravel&#34;&gt;&lt;em&gt;Ravel&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#ravel&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ucuq.Ravel()&lt;/code&gt; (constructeur) : retourne un objet permettant de manipuler le kit dans son ensemble ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.raz()&lt;/code&gt; : réinitialise tous les composants du kit ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.buzzer()&lt;/code&gt; : retourne l&amp;rsquo;objet &lt;em&gt;Buzzer&lt;/em&gt; du kit :&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.ring()&lt;/code&gt; : retourne l&amp;rsquo;objet &lt;em&gt;Ring&lt;/em&gt; du kit ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.lcd()&lt;/code&gt; : retourne l&amp;rsquo;objet &lt;em&gt;LCD&lt;/em&gt; du kit ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.oled()&lt;/code&gt; : retourne l&amp;rsquo;objet &lt;em&gt;OLED&lt;/em&gt; du kit ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.upper()&lt;/code&gt; : retourne l&amp;rsquo;objet &lt;em&gt;Upper&lt;/em&gt; du kit ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.lower()&lt;/code&gt; : retourne l&amp;rsquo;objet &lt;em&gt;Lower&lt;/em&gt; du kit ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ravel.displayRingGauges()&lt;/code&gt; : affiche sur l&amp;rsquo;afficheur LCD une jauge des valeurs RVB de chacune des DELs de l&amp;rsquo;anneau ; nécessite un appel préalable à &lt;code&gt;LCD.uploadUpwardGaugeChars()&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;constantes&#34;&gt;Constantes&lt;a class=&#34;anchor&#34; href=&#34;#constantes&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;SERVO_MAX&lt;/code&gt; : valeur maximale pour la position des servomoteurs &lt;em&gt;Upper&lt;/em&gt; et &lt;em&gt;Lower&lt;/em&gt; ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;RING_MAX&lt;/code&gt; : valeur maximale pour chacune des couleurs (R, V zt B) des DEL de &lt;em&gt;Ring&lt;/em&gt; ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;RING_SIZE&lt;/code&gt; : nombre de leds de l&amp;rsquo;anneau ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;OLED_WIDTH&lt;/code&gt; : nombre de pixels horizontaux de  ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;OLED_HEIGHT&lt;/code&gt; : nombre de pixels verticaux de l&amp;rsquo;écran OLED ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;LCD_WIDTH&lt;/code&gt; : nombre de caractères par ligne de l&amp;rsquo;afficheur LCD ;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;LCD_HEIGHT&lt;/code&gt; : nombre de lignes de l&amp;rsquo;afficheur LCD.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Assemblage du kit Ravel</title>
				<link>/fr/ravel/building/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>/fr/ravel/building/</guid>
				<description>&lt;h1 id=&#34;assemblage-du-kit-ravel&#34;&gt;Assemblage du kit Ravel&lt;a class=&#34;anchor&#34; href=&#34;#assemblage-du-kit-ravel&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;NOTA : en cliquant sur une photo, vous aurez sa version agrandie.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;h2 id=&#34;vue-densemble-des-composants&#34;&gt;Vue d&amp;rsquo;ensemble des composants&lt;a class=&#34;anchor&#34; href=&#34;#vue-densemble-des-composants&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Une photo avec presque tous les composants du kit. Manquent juste ceux relatifs aux servomoteurs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/Kits/Ravel/Bits.webp&#34;&gt;&lt;img src=&#34;/Kits/Ravel/Bits_thumb.webp&#34; alt=&#34;Composants&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;le-microcontrôleur&#34;&gt;Le microcontrôleur&lt;a class=&#34;anchor&#34; href=&#34;#le-microcontr%c3%b4leur&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Le microcontrôleur est un ESP32-C3 SuperMini.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/Kits/Ravel/ESP32.webp&#34;&gt;&lt;img src=&#34;/Kits/Ravel/ESP32_thumb.webp&#34; alt=&#34;ESP32&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;le-buzzer&#34;&gt;Le Buzzer&lt;a class=&#34;anchor&#34; href=&#34;#le-buzzer&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Le buzzer est un buzzer &lt;em&gt;&lt;strong&gt;passif&lt;/strong&gt;&lt;/em&gt;, dont on peut modifier la fréquence du son émis, contrairement au buzzer &lt;em&gt;&lt;strong&gt;actif&lt;/strong&gt;&lt;/em&gt;. Il est piloté par un signal &lt;a href=&#34;https://fr.wikipedia.org/wiki/Modulation_de_largeur_d%27impulsion&#34;&gt;&lt;em&gt;PWM&lt;/em&gt;&lt;/a&gt;. Accessoirement, on peut influer dans une certaine mesure sur le timbre et le volume du son émis en jouant sur le ratio du signal &lt;em&gt;PWM&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
