{"id":1277,"date":"2015-08-24T00:01:54","date_gmt":"2015-08-24T04:01:54","guid":{"rendered":"http:\/\/nagashur.com\/blog\/?p=1277"},"modified":"2015-08-24T00:37:26","modified_gmt":"2015-08-24T04:37:26","slug":"raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie","status":"publish","type":"post","link":"https:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/","title":{"rendered":"Raspberry pi mobile &#8211; mesure de la tension de la batterie"},"content":{"rendered":"<p>Suite \u00e0 mes premiers tests sur un <a href=\"http:\/\/nagashur.com\/blog\/2015\/08\/17\/raspberry-pi-mobile-lipo-un-systeme-autonome-et-rechargeable-a-bonne-autonomie\/\">Raspberry pi mobile utilisant une batterie lipo qui a permis plus de 40 heures d&#8217;autonomie<\/a>, je poursuis les exp\u00e9rimentations dans le domaine. Nous reprendrons le m\u00eame montage, mais nous ajouterons un convertisseur analogique vers num\u00e9rique afin de pouvoir mesurer la tension de la batterie. Nous ajouterons \u00e9galement une charge activable sur commande pour repr\u00e9senter une activit\u00e9 plus lourde, et nous \u00e9tablirons des\u00a0profils de consommation, et chercherons une m\u00e9thode d&#8217;estimation de l&#8217;autonomie restante en fonction de la tension mesur\u00e9e de la batterie.<\/p>\n<p><!--more--><\/p>\n<h2>Ajout du convertisseur analogique-num\u00e9rique : le MCP3008.<\/h2>\n<div id=\"attachment_1007\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01.jpg\"><img aria-describedby=\"caption-attachment-1007\" data-attachment-id=\"1007\" data-permalink=\"https:\/\/nagashur.com\/blog\/2013\/01\/13\/lire-des-entrees-analogiques-sur-un-raspberry-avec-un-circuit-adc-le-mcp3008\/mcp3008-01\/\" data-orig-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01.jpg\" data-orig-size=\"800,498\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;22&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1398032920&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;105&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.008&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Convertisseur analogique-num\u00e9rique MCP3008\" data-image-description=\"\" data-medium-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01-300x187.jpg\" data-large-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01.jpg\" loading=\"lazy\" class=\"size-medium wp-image-1007\" src=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01-300x187.jpg\" alt=\"Convertisseur analogique-num\u00e9rique MCP3008\" width=\"300\" height=\"187\" srcset=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01-300x187.jpg 300w, https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01.jpg 800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1007\" class=\"wp-caption-text\">Convertisseur analogique-num\u00e9rique MCP3008<\/p><\/div>\n<p>Nous ne reviendrons pas en profondeur sur l&#8217;utilisation de ce composant, qui permet de convertir des entr\u00e9es <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Analogique\">analogiques <\/a>(un signal cod\u00e9 en tension, c&#8217;est \u00e0 dire qu&#8217;une lecture de 3V ne signifie pas la m\u00eame chose qu&#8217;une lecture de 2V), alors que le Raspberry pi ne dispose que d&#8217;entr\u00e9es <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Num%C3%A9rique\">num\u00e9riques <\/a>(elles valent 0 ou 1 : si la tension r\u00e9cup\u00e9r\u00e9e sur l&#8217;entr\u00e9e est 0v, c&#8217;est un 0, si c&#8217;est 3.3V, c&#8217;est un 1. Il y a un seuil qui s\u00e9pare les deux, par exemple, 2.5V sera consid\u00e9r\u00e9 comme 1 quand m\u00eame, et 0.5V sera quand m\u00eame un 0 logique).<\/p>\n<p>Le MCP3008 nous permettra, en utilisant le bus SPI d&#8217;ajouter 8 entr\u00e9es analogiques, afin de lire des capteurs de ce type, ce qui sera utile notamment pour lire la tension de la batterie.<\/p>\n<p>Nous avons <a href=\"http:\/\/nagashur.com\/blog\/2013\/01\/13\/lire-des-entrees-analogiques-sur-un-raspberry-avec-un-circuit-adc-le-mcp3008\/\">un tutoriel sur la connexion et l&#8217;utilisation du MCP3008, avec des exemples pratiques et le code source requis<\/a>.<\/p>\n<h2>Mesure de la tension de la batterie avec un pont diviseur de tension<\/h2>\n<h3>Le pont diviseur de tension<\/h3>\n<p>Pour mesurer une tension, il nous faut un convertisseur ADC. Nous avons le MCP3008 pour remplir ce r\u00f4le. Puisque nous l&#8217;alimentons en 3.3V, nous pourrons mesurer\u00a0des tensions de 0 \u00e0 3.3V. Nous souhaitons mesurer la tension d&#8217;une batterie dont la tension peut atteindre 4.2V au maximum, ce qui d\u00e9passe le maximum acceptable.<\/p>\n<p>Pour rem\u00e9dier \u00e0 cela, nous allons utiliser un <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Diviseur_de_tension\">pont diviseur de tension<\/a>. Nous nous baserons sur les valeurs <a href=\"http:\/\/nagashur.com\/blog\/2015\/08\/23\/mesurer-une-tension-avec-un-pont-diviseur-de-tension\/\">expliqu\u00e9es et d\u00e9finies dans notre tutoriel sur les ponts diviseurs de tension<\/a> pour d\u00e9finir celui ci. Si vous souhaitez adapter le montage \u00e0 votre cas pratique, n&#8217;h\u00e9sitez pas \u00e0 consulter le tutoriel pour voir la m\u00e9thode de calcul.<\/p>\n<p>Ici, nous ferons simple, en utilisant deux r\u00e9sistances de 2.2Koms, qui restent en dessous de la r\u00e9sistance d&#8217;entr\u00e9e maximale du MCP3008, tout en limitant le courant \u00e0 4.2\/4400= 0.000954A, soit environ 1mA. La puissance dissip\u00e9e sera au maximum de 4.2*4.2\/4400 = 4 milliwatts.<\/p>\n<p>Cela est relativement faible par rapport \u00e0 la consommation totale du syst\u00e8me, et c&#8217;est donc tr\u00e8s acceptable.<\/p>\n<h3>Montage<\/h3>\n<p>Voici un montage simplifi\u00e9 :<\/p>\n<div id=\"attachment_1294\" style=\"width: 555px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb.png\"><img aria-describedby=\"caption-attachment-1294\" data-attachment-id=\"1294\" data-permalink=\"https:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/mcp3008_pont_diviseur_bb\/\" data-orig-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb.png\" data-orig-size=\"1476,1329\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"MCP3008 et pont diviseur\" data-image-description=\"\" data-medium-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb-300x270.png\" data-large-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb-1024x922.png\" loading=\"lazy\" class=\"wp-image-1294 size-large\" src=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb-1024x922.png\" alt=\"MCP3008 et pont diviseur\" width=\"545\" height=\"491\" srcset=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb-1024x922.png 1024w, https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb-300x270.png 300w, https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/MCP3008_pont_diviseur_bb.png 1476w\" sizes=\"(max-width: 545px) 100vw, 545px\" \/><\/a><p id=\"caption-attachment-1294\" class=\"wp-caption-text\">MCP3008 et pont diviseur<\/p><\/div>\n<p>Par rapport \u00e0 notre montage r\u00e9el, les batteries n&#8217;alimentent pas le Raspberry pi via le convertisseur de tension. Je pr\u00e9sente toutefois le sch\u00e9ma ainsi pour plus de lisibilit\u00e9. \u00a0Voici toutefois le sch\u00e9ma complet :<\/p>\n<div id=\"attachment_1295\" style=\"width: 555px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb.png\"><img aria-describedby=\"caption-attachment-1295\" data-attachment-id=\"1295\" data-permalink=\"https:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/batt_pi_bb\/\" data-orig-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb.png\" data-orig-size=\"1500,1329\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"MCP3008 et pont diviseur avec r\u00e9gulateur de tension\" data-image-description=\"\" data-medium-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb-300x266.png\" data-large-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb-1024x907.png\" loading=\"lazy\" class=\"wp-image-1295 size-large\" src=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb-1024x907.png\" alt=\"MCP3008 et pont diviseur avec r\u00e9gulateur de tension\" width=\"545\" height=\"483\" srcset=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb-1024x907.png 1024w, https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb-300x266.png 300w, https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/batt_pi_bb.png 1500w\" sizes=\"(max-width: 545px) 100vw, 545px\" \/><\/a><p id=\"caption-attachment-1295\" class=\"wp-caption-text\">MCP3008 et pont diviseur avec r\u00e9gulateur de tension<\/p><\/div>\n<p>Quoi qu&#8217;il en soit, le montage est le suivant : le + de la batterie arrive \u00e0 la premi\u00e8re r\u00e9sistance. Celle ci est connect\u00e9e \u00e0 la seconde r\u00e9sistance, et au point de connexion, un c\u00e2ble part vers la premi\u00e8re entr\u00e9e du MCP3008. la seconde r\u00e9sistance repart quand \u00e0 elle \u00e0 la masse de la batterie.<\/p>\n<p>N&#8217;oubliez surtout pas de connecter la masse des batteries \u00e0 la masse du circuit, sous peine d&#8217;avoir des mesures totalement incoh\u00e9rentes.<\/p>\n<h3>code source<\/h3>\n<p>Nous reprenons le programme utilis\u00e9 pour les exemples sur le MCP3008, mais avec quelques petits ajustements pour afficher la valeur r\u00e9elle de la tension de la batterie plut\u00f4t qu&#8217;une fraction de celle ci (\u00e0 cause du pont diviseur). J&#8217;ai constat\u00e9 une certaine <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Incertitude_de_mesure\">incertitude de mesure<\/a>, et de ce fait, j&#8217;ai rajout\u00e9 une boucle permettant de faire de multiples mesures \u00e0 la suite et d&#8217;en faire la moyenne. La dispersion est nettement plus faible dans ce contexte, et les mesures moyenn\u00e9es restent tr\u00e8s proches, avec une dispersion inf\u00e9rieure \u00e0 1% (environ 0.5%). Nous pourrons donc sans probl\u00e8me effectuer des mesures avec deux chiffres significatifs apr\u00e8s la virgule (4.11v, par exemple). Le chiffre des millivolts en revanche est bruit\u00e9, donc nous ne l&#8217;exploiterons pas.<\/p>\n<p>Le code est le suivant :<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n#!\/usr\/bin\/env python\r\nimport time\r\nimport os\r\nimport RPi.GPIO as GPIO\r\nGPIO.setmode(GPIO.BCM)\r\nGPIO.setwarnings(False)\r\n#fonction lisant les donnees SPI de la puce MCP3008, parmi 8 entrees, de 0 a 7\r\ndef readadc(adcnum, clockpin, mosipin, misopin, cspin):\r\n\t\tif ((adcnum &amp;amp;gt; 7) or (adcnum &amp;amp;lt; 0)):\r\n\t\t\t\treturn -1\r\n\t\tGPIO.output(cspin, True)\r\n\t\tGPIO.output(clockpin, False)  # start clock low\r\n\t\tGPIO.output(cspin, False)\t # bring CS low\r\n\t\tcommandout = adcnum\r\n\t\tcommandout |= 0x18  # start bit + single-ended bit\r\n\t\tcommandout &amp;amp;lt;&amp;amp;lt;= 3\t# we only need to send 5 bits here\r\n\t\tfor i in range(5):\r\n\t\t\t\tif (commandout &amp;amp;amp; 0x80):\r\n\t\t\t\t\t\tGPIO.output(mosipin, True)\r\n\t\t\t\telse:\r\n\t\t\t\t\t\tGPIO.output(mosipin, False)\r\n\t\t\t\tcommandout &amp;amp;lt;&amp;amp;lt;= 1\r\n\t\t\t\tGPIO.output(clockpin, True)\r\n\t\t\t\tGPIO.output(clockpin, False)\r\n\t\tadcout = 0\r\n\t\t# read in one empty bit, one null bit and 10 ADC bits\r\n\t\tfor i in range(12):\r\n\t\t\t\tGPIO.output(clockpin, True)\r\n\t\t\t\tGPIO.output(clockpin, False)\r\n\t\t\t\tadcout &amp;amp;lt;&amp;amp;lt;= 1\r\n\t\t\t\tif (GPIO.input(misopin)):\r\n\t\t\t\t\t\tadcout |= 0x1\r\n\t\tGPIO.output(cspin, True)\r\n\t\tadcout \/= 2\t   # first bit is 'null' so drop it\r\n\t\treturn adcout\r\nSPICLK = 18\r\nSPIMISO = 23\r\nSPIMOSI = 24\r\nSPICS = 25\r\n# definition de l'interface SPI\r\nGPIO.setup(SPIMOSI, GPIO.OUT)\r\nGPIO.setup(SPIMISO, GPIO.IN)\r\nGPIO.setup(SPICLK, GPIO.OUT)\r\nGPIO.setup(SPICS, GPIO.OUT)\r\nadcnum = 0\r\n# Lecture de la valeur brute du capteur\r\nread_adc0 = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS)\r\n# conversion de la valeur brute lue en milivolts = ADC * ( 3300 \/ 1024 )\r\nmillivolts = read_adc0 * ( 3300.0 \/ 1024.0)\r\nvBatt = millivolts*2\/1000\r\nsum_vbatt=0\r\nprint &quot;\\tvaleur brute : %s&quot; % read_adc0\r\nprint &quot;\\ttension lue : %s millivolts&quot; % millivolts\r\nprint &quot;\\ttension de la batterie : %s volts&quot; % vBatt\r\n\r\nfor x in range(0, 100):\r\n\tread_adc0 = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS)\r\n\tvBatt=read_adc0 * ( 3300.0 \/ 1024.0)*2\/1000\r\n\tsum_vbatt=sum_vbatt+vBatt\r\n\ttime.sleep (0.01)\r\n\r\navg_vBatt=sum_vbatt\/100;\r\nprint &quot;\\ttension moyenne mesuree de la batterie : %s volts&quot; % avg_vBatt\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>Programme de mesures<\/h2>\n<p>Pour pouvoir tester l&#8217;autonomie, nous ferons tourner le syst\u00e8me sur batterie, en mesurant le temps \u00e9coul\u00e9 depuis le lancement du script. Pour chaque mesure, nous noterons \u00e9galement la tension de la batterie, ce qui nous permettra alors de tracer une courbe sur l&#8217;autonomie en fonction de la tension de la batterie.<\/p>\n<p>Pour cela, nous utiliserons deux scripts. Le premier est une version modifi\u00e9e du pr\u00e9c\u00e9dent, qui n&#8217;affiche que la tension, avec deux d\u00e9cimales uniquement. Le code est le suivant :<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n#!\/usr\/bin\/env python\r\nimport time\r\nimport os\r\nimport RPi.GPIO as GPIO\r\nGPIO.setmode(GPIO.BCM)\r\nGPIO.setwarnings(False)\r\n#fonction lisant les donnees SPI de la puce MCP3008, parmi 8 entrees, de 0 a 7\r\ndef readadc(adcnum, clockpin, mosipin, misopin, cspin):\r\n if ((adcnum &gt; 7) or (adcnum &lt; 0)):\r\n return -1\r\n GPIO.output(cspin, True)\r\n GPIO.output(clockpin, False) # start clock low\r\n GPIO.output(cspin, False) # bring CS low\r\n commandout = adcnum\r\n commandout |= 0x18 # start bit + single-ended bit\r\n commandout &lt;&lt;= 3 # we only need to send 5 bits here\r\n for i in range(5):\r\n if (commandout &amp; 0x80):\r\n GPIO.output(mosipin, True)\r\n else:\r\n GPIO.output(mosipin, False)\r\n commandout &lt;&lt;= 1\r\n GPIO.output(clockpin, True)\r\n GPIO.output(clockpin, False)\r\n adcout = 0\r\n # read in one empty bit, one null bit and 10 ADC bits\r\n for i in range(12):\r\n GPIO.output(clockpin, True)\r\n GPIO.output(clockpin, False)\r\n adcout &lt;&lt;= 1\r\n if (GPIO.input(misopin)):\r\n adcout |= 0x1\r\n GPIO.output(cspin, True)\r\n adcout \/= 2 # first bit is 'null' so drop it\r\n return adcout\r\nSPICLK = 18\r\nSPIMISO = 23\r\nSPIMOSI = 24\r\nSPICS = 25\r\n# definition de l'interface SPI\r\nGPIO.setup(SPIMOSI, GPIO.OUT)\r\nGPIO.setup(SPIMISO, GPIO.IN)\r\nGPIO.setup(SPICLK, GPIO.OUT)\r\nGPIO.setup(SPICS, GPIO.OUT)\r\nadcnum = 0\r\n# Lecture de la valeur brute du capteur\r\nread_adc0 = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS)\r\n# conversion de la valeur brute lue en milivolts = ADC * ( 3300 \/ 1024 )\r\nmillivolts = read_adc0 * ( 3300.0 \/ 1024.0)\r\nvBatt = millivolts*2\/1000\r\nsum_vbatt=0\r\niterations_count=100\r\nfor x in range(0, iterations_count):\r\n read_adc0 = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS)\r\n vBatt=read_adc0 * ( 3300.0 \/ 1024.0)*2\/1000\r\n sum_vbatt=sum_vbatt+vBatt\r\n time.sleep (0.01)\r\n\r\navg_vBatt=sum_vbatt\/iterations_count;\r\n#print &quot;%.2f&quot; % round(avg_vBatt,2)\r\nprint(&quot;{0:.2f}&quot;.format(round(avg_vBatt,2)))\r\n\r\n<\/pre>\n<p>N&#8217;oubliez pas qu&#8217;il faut ex\u00e9cuter ce code avec sudo :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">sudo python avgVBatt.py<\/pre>\n<p>Le second script est celui que nous avons utilis\u00e9 pour les pr\u00e9c\u00e9dents tests d&#8217;autonomie, mais l\u00e9g\u00e8rement modifi\u00e9 afin d&#8217;enregistrer \u00e9galement la tension mesur\u00e9e gr\u00e2ce au script pr\u00e9c\u00e9dent. Le code est le suivant :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nstart=`date +%s`\r\nwhile [ 0 ]\r\ndo\r\nsleep 1\r\nend=`date +%s`\r\nvBatt=`python avgVBatt.py`\r\nruntime=$((end-start))\r\necho &quot;$runtime;$vBatt&quot;\r\necho &quot;$runtime;$vBatt&quot; &gt;&gt; log\r\ndone\r\n<\/pre>\n<p>Cela donne le r\u00e9sultat suivant \u00e0 l&#8217;\u00e9cran :<\/p>\n<div id=\"attachment_1297\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest.png\"><img aria-describedby=\"caption-attachment-1297\" data-attachment-id=\"1297\" data-permalink=\"https:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/autonomytest\/\" data-orig-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest.png\" data-orig-size=\"640,386\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"test d&#8217;autonomie via le script mesurant la tension\" data-image-description=\"\" data-medium-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest-300x181.png\" data-large-file=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest.png\" loading=\"lazy\" class=\"wp-image-1297 size-full\" src=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest.png\" alt=\"test d'autonomie via le script mesurant la tension\" width=\"640\" height=\"386\" srcset=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest.png 640w, https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/autonomytest-300x181.png 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-1297\" class=\"wp-caption-text\">test d&#8217;autonomie via le script mesurant la tension<\/p><\/div>\n<p>La colonne de gauche donne le temps \u00e9coul\u00e9 en secondes depuis le d\u00e9but de l&#8217;ex\u00e9cution, et la colonne de droite la tension de la batterie.<\/p>\n<p>Le script enregistre \u00e9galement ces donn\u00e9es dans un fichier, de sorte que lorsque le Raspberry pi cessera de fonctionner pour cause de batterie vide, les donn\u00e9es seront pr\u00e9serv\u00e9es.<\/p>\n<h2>Conclusions<\/h2>\n<p>Nous avons pu mettre en place une installation permettant au syst\u00e8me de connaitre la tension de la batterie avec une d\u00e9rivation\u00a0bien inf\u00e9rieure \u00e0 0.01 volts. Dans ce contexte, si nous consid\u00e9rons un courant consomm\u00e9 constant, nous pourrons \u00e0 partir des donn\u00e9es collect\u00e9es calculer l&#8217;autonomie restante.<\/p>\n<p>Cependant, en pratique, celle ci d\u00e9pendra de la consommation du circuit, qui peut ne pas \u00eatre constante. Je pensais faire un billet rapidement sur la mesure de la consommation du Raspberry pi, mais il semble que les composants dont je dispose ne soient pas adapt\u00e9s. On poursuivra donc en utilisant des valeurs th\u00e9oriques pour la consommation.<\/p>\n<p>On notera qu&#8217;il sera possible d&#8217;utiliser le m\u00eame syst\u00e8me que celui pr\u00e9sent\u00e9 ici pour mesurer la tension fournie par un panneau solaire, une \u00e9olienne, ou toute autre source de courant.<\/p>\n<p>La prochaine \u00e9tape sera de mener une s\u00e9rie d&#8217;exp\u00e9riences pour mesurer l&#8217;autonomie du syst\u00e8me dans des cas concrets, et nous pr\u00e9senterons les r\u00e9sultats d\u00e9taill\u00e9s avec des courbes et un mod\u00e8le d&#8217;estimation de la charge restante de la batterie.<\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suite \u00e0 mes premiers tests sur un Raspberry pi mobile utilisant une batterie lipo qui a permis plus de 40 heures d&#8217;autonomie, je poursuis les exp\u00e9rimentations dans le domaine. Nous reprendrons le m\u00eame montage, mais nous ajouterons un convertisseur analogique vers num\u00e9rique afin de pouvoir mesurer la tension de la batterie. Nous ajouterons \u00e9galement une [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":""},"categories":[354,168,335],"tags":[181,182,73,395,365,366,180,218,393,394,396],"jetpack_featured_media_url":"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/protopimobile_4682_800px.jpg","jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Raspberry pi mobile - mesure de la tension de la batterie - Nagashur<\/title>\n<meta name=\"description\" content=\"Dans ce tutoriel, nous verrons comment mesurer la tension de la batterie qui alimente un Raspberry pi mobile et le code permettant d&#039;enregistrer ces donn\u00e9es\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry pi mobile - mesure de la tension de la batterie - Nagashur\" \/>\n<meta property=\"og:description\" content=\"Dans ce tutoriel, nous verrons comment mesurer la tension de la batterie qui alimente un Raspberry pi mobile et le code permettant d&#039;enregistrer ces donn\u00e9es\" \/>\n<meta property=\"og:url\" content=\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/\" \/>\n<meta property=\"og:site_name\" content=\"Nagashur\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-24T04:01:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-08-24T04:37:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/protopimobile_4682_800px.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"499\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@audreyrobinel\" \/>\n<meta name=\"twitter:site\" content=\"@audreyrobinel\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nagashur.com\/blog\/#website\",\"url\":\"https:\/\/nagashur.com\/blog\/\",\"name\":\"Nagashur\",\"description\":\"raspi et arduino FTW :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/nagashur.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/#primaryimage\",\"inLanguage\":\"fr-FR\",\"url\":\"https:\/\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/protopimobile_4682_800px.jpg\",\"width\":800,\"height\":499,\"caption\":\"Raspberry pi mobile\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/#webpage\",\"url\":\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/\",\"name\":\"Raspberry pi mobile - mesure de la tension de la batterie - Nagashur\",\"isPartOf\":{\"@id\":\"https:\/\/nagashur.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/#primaryimage\"},\"datePublished\":\"2015-08-24T04:01:54+00:00\",\"dateModified\":\"2015-08-24T04:37:26+00:00\",\"author\":{\"@id\":\"https:\/\/nagashur.com\/blog\/#\/schema\/person\/11a329fa33df4e94444716624beb8186\"},\"description\":\"Dans ce tutoriel, nous verrons comment mesurer la tension de la batterie qui alimente un Raspberry pi mobile et le code permettant d'enregistrer ces donn\\u00e9es\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/nagashur.com\/blog\/2015\/08\/24\/raspberry-pi-mobile-mesure-de-la-tension-de-la-batterie\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nagashur.com\/blog\/#\/schema\/person\/11a329fa33df4e94444716624beb8186\",\"name\":\"sky99\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6yqc2-kB","jetpack-related-posts":[{"id":1341,"url":"https:\/\/nagashur.com\/blog\/2016\/01\/20\/raspberry-pi-mobile-lipo-test-dautonomie-repos-monitoring-batterie\/","url_meta":{"origin":1277,"position":0},"title":"Raspberry pi mobile LiPo, test d'autonomie au repos, monitoring batterie","date":"20 janvier 2016","format":false,"excerpt":"Aujourd'hui, voyons comment s'en sort notre raspberry pi \u00e9quip\u00e9 de sa batterie LiPo de 6000mAh. Dans ce pr\u00e9c\u00e9dent billet, j'ai d\u00e9crit le syst\u00e8me de base du Raspberry pi mobile, et dans celui ci j'ai rajout\u00e9 un composant pour mesurer la tension de la batterie. Le premier test effectu\u00e9 nous a\u2026","rel":"","context":"Dans &quot;Raspberry Pi&quot;","img":{"alt_text":"courbe tension batterie lipo en fonction du temps alimentant un raspi A+","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/courbe_tension_batt.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1215,"url":"https:\/\/nagashur.com\/blog\/2015\/08\/17\/raspberry-pi-mobile-lipo-un-systeme-autonome-et-rechargeable-a-bonne-autonomie\/","url_meta":{"origin":1277,"position":1},"title":"Raspberry pi mobile LiPo : un syst\u00e8me autonome et rechargeable \u00e0 bonne autonomie","date":"17 ao\u00fbt 2015","format":false,"excerpt":"Le Raspberry pi est un ordinateur compact et \u00e9conome en \u00e9nergie. Il est donc logiquement une solution int\u00e9ressante pour des projets embarqu\u00e9s. Je vais donc pr\u00e9senter ici un montage permettant de faire un Raspberry pi portable avec une batterie rechargeable Lithium Polym\u00e8re, et un chargeur efficace. L'objectif final sera d'avoir\u2026","rel":"","context":"Dans &quot;\u00e9lectronique&quot;","img":{"alt_text":"Raspberry pi A+ autonome avec batterie, chargeur et r\u00e9gulateur de tension","src":"https:\/\/i2.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/piAplus_on_battery_4644_800px.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":584,"url":"https:\/\/nagashur.com\/blog\/2013\/01\/13\/lire-des-entrees-analogiques-sur-un-raspberry-avec-un-circuit-adc-le-mcp3008\/","url_meta":{"origin":1277,"position":2},"title":"Lire des entr\u00e9es analogiques sur un Raspberry avec un circuit ADC : le MCP3008","date":"13 janvier 2013","format":false,"excerpt":"Nous connectons un circuit MCP3008 \u00e0 4 ports GPIO du Raspberry pi, et nous pouvons alors connecter divers capteurs \u00e0 l'une des 8 broches libres du MCP3008 pour lire les valeurs de divers capteurs analogiques. Un exemple de code python r\u00e9alisant cela est fourni, et les sch\u00e9mas de c\u00e2blage de\u2026","rel":"","context":"Dans &quot;capteurs&quot;","img":{"alt_text":"Convertisseur analogique-num\u00e9rique MCP3008","src":"https:\/\/i1.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/MCP3008-01.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":921,"url":"https:\/\/nagashur.com\/blog\/2015\/04\/14\/tutoriels-raspberry-pi\/","url_meta":{"origin":1277,"position":3},"title":"Liste de tutoriels Raspberry pi sur le wiki","date":"14 avril 2015","format":false,"excerpt":"J'ai commenc\u00e9 \u00e0 porter les tutoriels Raspberry Pi sur le wiki. Je remets donc en forme, corrige, actualise et am\u00e9liore les anciens tutoriels, tout en ajoutant de nouvelles ressources. Si vous \u00eates donc int\u00e9ress\u00e9s par le Raspberry Pi, et vous demandez comment r\u00e9aliser une chose en particulier, n'h\u00e9sitez pas \u00e0\u2026","rel":"","context":"Dans &quot;annonces&quot;","img":{"alt_text":"wiki.nagashur.com : section raspi","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2015\/04\/wiki.nagashur_section_raspi.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1284,"url":"https:\/\/nagashur.com\/blog\/2015\/08\/23\/mesurer-une-tension-avec-un-pont-diviseur-de-tension\/","url_meta":{"origin":1277,"position":4},"title":"Mesurer une tension avec un pont diviseur de tension","date":"23 ao\u00fbt 2015","format":false,"excerpt":"Si l'on mesure une tension, il faut que celle ci soit inf\u00e9rieure aux tensions admissibles par le composant qui les mesure. G\u00e9n\u00e9ralement il s'agit de la tension d'alimentation du composant : un composant aliment\u00e9 en 5V mesurera des tensions jusqu'\u00e0 5V par exemple. Si l'on d\u00e9passe la valeur limite, on\u2026","rel":"","context":"Dans &quot;Arduino&quot;","img":{"alt_text":"pont diviseur de tension","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2015\/08\/pont_diviseur.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":778,"url":"https:\/\/nagashur.com\/blog\/2013\/06\/18\/lecture-dune-sonde-de-temperature-tmp36-sur-un-arduino\/","url_meta":{"origin":1277,"position":5},"title":"Lecture d'une sonde de temp\u00e9rature TMP36 sur un Arduino","date":"18 juin 2013","format":false,"excerpt":"Si le cot\u00e9 plat est vers vous, alors la broche de gauche ira sur le +5V de votre Arduino, ou sur le +3.3V du Raspberry Pi. La broche centrale ira sur votre entr\u00e9e analogique, par exemple le A0 du Arduino, ou une broche d'entr\u00e9e du MCP3008 connect\u00e9 \u00e0 votre Raspberry\u2026","rel":"","context":"Dans &quot;Arduino&quot;","img":{"alt_text":"sonde TMP36 (cr\u00e9dits Adafruit)","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2013\/06\/TMP36.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/posts\/1277"}],"collection":[{"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/comments?post=1277"}],"version-history":[{"count":0,"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/posts\/1277\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/media\/1304"}],"wp:attachment":[{"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/media?parent=1277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/categories?post=1277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/tags?post=1277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}