-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfeed.xml
197 lines (146 loc) · 28.1 KB
/
feed.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.0">Jekyll</generator><link href="http://garpa.net/feed.xml" rel="self" type="application/atom+xml" /><link href="http://garpa.net/" rel="alternate" type="text/html" /><updated>2023-02-09T00:03:16+01:00</updated><id>http://garpa.net/feed.xml</id><title type="html">Francisco Gárate, Actuario</title><subtitle>Paco Garate's personal website. Includes projects and contact information. </subtitle><author><name>Riccardo Graziosi</name></author><entry><title type="html">Instalacion de Python y principales librerías actuariales</title><link href="http://garpa.net/instalacion-python-librerias.html" rel="alternate" type="text/html" title="Instalacion de Python y principales librerías actuariales" /><published>2022-03-09T14:00:00+01:00</published><updated>2022-03-09T14:00:00+01:00</updated><id>http://garpa.net/instalacion-python-librerias</id><content type="html" xml:base="http://garpa.net/instalacion-python-librerias.html"><![CDATA[]]></content><author><name>Riccardo Graziosi</name></author><category term="python" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Instalar Python3 en macOS</title><link href="http://garpa.net/instalar-python-en-macos.html" rel="alternate" type="text/html" title="Instalar Python3 en macOS" /><published>2020-07-26T19:00:00+02:00</published><updated>2020-07-26T19:00:00+02:00</updated><id>http://garpa.net/instalar-python-en-macos</id><content type="html" xml:base="http://garpa.net/instalar-python-en-macos.html"><![CDATA[<p>La versión 2.7 de Python viene instalada por defecto en las últimas distribuciones de macOS, y parece ser que no podemos desinstalarla ya que es utilizada internamente en algún proceso de macOS. Así que no hay mas remedio que tener instaladas las dos versiones de Python en nuestro equipo.</p>
<p><img src="/assets/images/install_osx_pkg.png" alt="Picture" /></p>
<p>Al compartir ambas versiones, para ejecutar la última versión de Python habrá que reemplazar el comando de <em>python</em> y <em>pip</em> por <strong>python3</strong> y <strong>pip3</strong>. Sin embargo, existe un truco para no tener que preocuparnos continuamente de la versión que se ejecuta. Consiste que crearnos un alias para que cada vez que se ejecute el comando “python” y el sistema ejecute automáticamente “python3” (al igual pasaría con el instalador pip).</p>
<p>Para ello, en el caso de utilizar macOS Catalina (macOS 10.15) habría que añadir los siguientes alias al fichero <code class="language-plaintext highlighter-rouge">.zshrc</code> (en la carpeta home del usuario), fichero que puede modificarse desde la consola con el comando <code class="language-plaintext highlighter-rouge">nano .zshrc</code> o con el programa textEdit o similar.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">alias </span><span class="nv">python</span><span class="o">=</span><span class="s1">'python3'</span>
<span class="nb">alias </span><span class="nv">pip3</span><span class="o">=</span><span class="s1">'python3 -m pip'</span>
<span class="nb">alias </span><span class="nv">pip</span><span class="o">=</span><span class="s1">'pip3'</span>
</code></pre></div></div>
<p><img src="/assets/images/install_osx_zshrc.png" alt="Picture" /></p>
<p>En el caso de versiones de macOS anteriores, el fichero a modificar es <code class="language-plaintext highlighter-rouge">.bash_profile</code></p>
<p>Una vez modificado el fichero correspondiente, volver a cargar la preferencias de usuario ejecutando <code class="language-plaintext highlighter-rouge">su nombreusuario</code> y ya podremos comprobar que funciona como deseamos.</p>
<p><img src="/assets/images/install_osx_version.png" alt="Picture" /></p>]]></content><author><name>Riccardo Graziosi</name></author><category term="python" /><summary type="html"><![CDATA[La versión 2.7 de Python viene instalada por defecto en las últimas distribuciones de macOS, y parece ser que no podemos desinstalarla ya que es utilizada internamente en algún proceso de macOS. Así que no hay mas remedio que tener instaladas las dos versiones de Python en nuestro equipo.]]></summary></entry><entry><title type="html">Manual de python para cálculos actuariales</title><link href="http://garpa.net/manual-python-actuarios.html" rel="alternate" type="text/html" title="Manual de python para cálculos actuariales" /><published>2020-04-21T16:03:55+02:00</published><updated>2020-04-21T16:03:55+02:00</updated><id>http://garpa.net/manual-python-actuarios</id><content type="html" xml:base="http://garpa.net/manual-python-actuarios.html"><![CDATA[<p>Check out the <a href="https://github.com/franciscogarate">my github</a> for more info on how to get the most out of Jekyll.</p>]]></content><author><name>Riccardo Graziosi</name></author><category term="python" /><summary type="html"><![CDATA[Check out the my github for more info on how to get the most out of Jekyll.]]></summary></entry><entry><title type="html">Pyliferisk v.1.11</title><link href="http://garpa.net/pyliferisk-v1-11.html" rel="alternate" type="text/html" title="Pyliferisk v.1.11" /><published>2019-11-02T15:03:55+01:00</published><updated>2019-11-02T15:03:55+01:00</updated><id>http://garpa.net/pyliferisk-v1-11</id><content type="html" xml:base="http://garpa.net/pyliferisk-v1-11.html"><![CDATA[<p>Pyliferisk is a python library for life actuarial calculations, simple, powerful and easy-to-use.</p>
<p>Date: 2019-11-02<br />
Version: 1.11<br />
Author: Francisco Garate - fgaratesantiago (at) gmail (dot) com<br /></p>
<p><img src="http://www.garpa.net/github/pyliferisk.png" alt="Picture" /></p>
<h2 id="documentation">Documentation</h2>
<p>Documentation: <a href="https://github.com/franciscogarate/pyliferisk/raw/master/documentation_1.11.pdf">documentation.pdf</a></p>
<h2 id="introduction">Introduction</h2>
<p><strong>Pyliferisk</strong> is an open library written in Python for life and actuarial calculation contracts, based on commonly used methodologies among actuaries (International Actuarial Notation).</p>
<p>This library is able to cover all life contingencies risks (since the actuarial formulas follow the International Actuarial Notation), as well as to support the main insurance products.</p>
<p>This library is distributed as a single file module and has no dependencies other than the Python Standard Library, making it amazingly fast. It’s compatible with both version Python 3.x and 2.7.</p>
<p>Additionally, the package includes several life mortality tables (<code class="language-plaintext highlighter-rouge">pyliferisk.mortalitytables</code>), mainly extracted from academic textbooks. Tables are added in list format. ie: SCOT_DLT_00_02_M = [0, 0.006205, 0.000328, 0.00026 ….]
First item indicates the age when table starts.</p>
<h2 id="quick-start">Quick Start</h2>
<p>The names of the formulas follow the International Actuarial Notation and are easily guessable (qx, lx, px, w, dx, ex, Ax, Axn..), with a few exceptions regarding special characters.</p>
<p>The <strong>reserved variables</strong> (in addition of python language) are the following:</p>
<p>For the mortality assumptions in <code class="language-plaintext highlighter-rouge">MortalityTable()</code>:</p>
<ul>
<li><code class="language-plaintext highlighter-rouge">nt</code> = The actuarial table used to perform life contingencies calculations. Syntax: nt=GKM95</li>
<li><code class="language-plaintext highlighter-rouge">i</code> = interest rate. The effective rate of interest, namely, the total interest earned in a year. Syntax: i=0.02</li>
<li><code class="language-plaintext highlighter-rouge">perc</code> = Optional variable to indicate the percentage of mortality to be applied. Syntax: perc=85
Variable <code class="language-plaintext highlighter-rouge">perc</code> can be omitted, in this case it will be 100 by default.</li>
</ul>
<p>All the actuarial formulas must include a minimum of 2 variables: mt (mortality table) and x (age)
If necessary, additional variables should be included with the following order:
<code class="language-plaintext highlighter-rouge">n</code> (horizon in years), <code class="language-plaintext highlighter-rouge">m</code> (m-monthly payments), <code class="language-plaintext highlighter-rouge">t</code> (n-years deferred period).</p>
<p>Variable <code class="language-plaintext highlighter-rouge">m</code> can be omitted, in this case it will be 1 (annual payment) by default.</p>
<p>Additionally, there are two smart formulas: annuity() and A(), where the number of variables are not fixed:</p>
<p><code class="language-plaintext highlighter-rouge">annuity(nt, x, n, p, m, ['a/g', c], -d)</code></p>
<ul>
<li>mt = the mortality table</li>
<li>x = the age as integer number.</li>
<li>n = A integer number (term of insurance in years) or ‘w’ = whole-life.</li>
<li>p = Moment of payment. Syntaxis: 0 = begining of each period (prepaid), 1 = end of each period (postpaid),
Optional variables:</li>
<li>m = Payable ‘m’ per year (frational payments). Default = 1 (annually)</li>
<li>‘a’ or ‘g’ = Arithmetical / Geometrical</li>
<li>q = The increase rate. Syntax: [‘g’,q] or [‘a’,q]. For example, [‘g’,0.03]
Deferring period:</li>
<li>-d = The n-years deferring period as negative number.</li>
</ul>
<p><img src="http://garpa.net/github/pyliferisk2.png" alt="Picture" /></p>
<p><strong>Example 1:</strong>
Print the omega (limiting age) of the both mortality tables and the qx at 50 years-old:</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">pyliferisk</span> <span class="kn">import</span> <span class="n">MortalityTable</span>
<span class="kn">from</span> <span class="nn">pyliferisk.mortalitytables</span> <span class="kn">import</span> <span class="n">SPAININE2004</span><span class="p">,</span> <span class="n">GKM95</span>
<span class="n">tariff</span> <span class="o">=</span> <span class="n">MortalityTable</span><span class="p">(</span><span class="n">nt</span><span class="o">=</span><span class="n">SPAININE2004</span><span class="p">)</span>
<span class="n">experience</span> <span class="o">=</span> <span class="n">MortalityTable</span><span class="p">(</span><span class="n">nt</span><span class="o">=</span><span class="n">GKM95</span><span class="p">,</span> <span class="n">perc</span><span class="o">=</span><span class="mi">85</span><span class="p">)</span>
<span class="c1"># Print the omega (limiting age) of the both tables:
</span><span class="k">print</span><span class="p">(</span><span class="n">tariff</span><span class="p">.</span><span class="n">w</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">experience</span><span class="p">.</span><span class="n">w</span><span class="p">)</span>
<span class="c1"># Print the qx at 50 years old:
</span><span class="k">print</span><span class="p">(</span><span class="n">tariff</span><span class="p">.</span><span class="n">qx</span><span class="p">[</span><span class="mi">50</span><span class="p">]</span> <span class="o">/</span> <span class="mi">1000</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">experience</span><span class="p">.</span><span class="n">qx</span><span class="p">[</span><span class="mi">50</span><span class="p">]</span> <span class="o">/</span> <span class="mi">1000</span><span class="p">)</span>
</code></pre></div></div>
<p><strong>Example 2:</strong>
Plotting a surviving graph:</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="n">plt</span>
<span class="kn">from</span> <span class="nn">pyliferisk</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">pyliferisk.mortalitytables</span> <span class="kn">import</span> <span class="n">SPAININE2004</span><span class="p">,</span> <span class="n">GKM95</span>
<span class="n">tariff</span> <span class="o">=</span> <span class="n">MortalityTable</span><span class="p">(</span><span class="n">nt</span><span class="o">=</span><span class="n">SPAININE2004</span><span class="p">)</span>
<span class="n">experience</span> <span class="o">=</span> <span class="n">MortalityTable</span><span class="p">(</span><span class="n">nt</span><span class="o">=</span><span class="n">GKM95</span><span class="p">,</span> <span class="n">perc</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
<span class="n">x</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tariff</span><span class="p">.</span><span class="n">w</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">tariff</span><span class="p">.</span><span class="n">lx</span><span class="p">[:</span><span class="n">tariff</span><span class="p">.</span><span class="n">w</span><span class="p">]</span>
<span class="n">z</span> <span class="o">=</span> <span class="n">experience</span><span class="p">.</span><span class="n">lx</span><span class="p">[:</span><span class="n">tariff</span><span class="p">.</span><span class="n">w</span><span class="p">]</span>
<span class="n">plt</span><span class="p">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s">'blue'</span><span class="p">)</span>
<span class="n">plt</span><span class="p">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">z</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s">'red'</span><span class="p">)</span>
<span class="n">plt</span><span class="p">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s">'lx'</span><span class="p">)</span>
<span class="n">plt</span><span class="p">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s">'age'</span><span class="p">)</span>
</code></pre></div></div>
<p><img src="http://garpa.net/github/pyliferisk3.png" alt="Picture" /></p>
<p><strong>Example 3:</strong>:
A Life Temporal insurance for a male, 30 years-old and a horizon for 10 years, fixed annual premium (GKM95, interest 6%):</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">pyliferisk</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">pyliferisk.mortalitytables</span> <span class="kn">import</span> <span class="n">GKM95</span>
<span class="n">nt</span> <span class="o">=</span> <span class="n">Actuarial</span><span class="p">(</span><span class="n">nt</span><span class="o">=</span><span class="n">GKM95</span><span class="p">,</span> <span class="n">i</span><span class="o">=</span><span class="mf">0.06</span><span class="p">)</span>
<span class="n">x</span> <span class="o">=</span> <span class="mi">30</span>
<span class="n">n</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">C</span> <span class="o">=</span> <span class="mi">1000</span>
<span class="k">print</span><span class="p">(</span><span class="n">C</span> <span class="o">*</span> <span class="p">(</span><span class="n">Axn</span><span class="p">(</span><span class="n">nt</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> <span class="o">/</span> <span class="n">annuity</span><span class="p">(</span><span class="n">nt</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="mi">0</span><span class="p">)))</span>
</code></pre></div></div>
<h2 id="installation">Installation</h2>
<p>Once Pyhon is running, just install this library with <code class="language-plaintext highlighter-rouge">pip install pyliferisk</code></p>
<h2 id="requeriments">Requeriments</h2>
<p>It’s compatible with both versions of Python: 2.7 and 3.6
Pyliferisk has no dependencies other than the Python Standard Library. That decreases the calculation runtime versus implementations under other libraries (such as Pandas).</p>
<h2 id="license">License</h2>
<p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The author does not take any legal responsibility for the accuracy, completeness, or usefulness of the information herein.</p>
<h2 id="contributions">Contributions</h2>
<p>Contributions, feedback and suggestions for improvements are greatly appreciated.</p>
<p>Discussions take place on our mailing list.</p>
<p>http://groups.google.com/group/openactuarial (subject: pyliferisk)</p>]]></content><author><name>Riccardo Graziosi</name></author><category term="python" /><summary type="html"><![CDATA[Pyliferisk is a python library for life actuarial calculations, simple, powerful and easy-to-use. Date: 2019-11-02 Version: 1.11 Author: Francisco Garate - fgaratesantiago (at) gmail (dot) com Documentation Documentation: documentation.pdf Introduction Pyliferisk is an open library written in Python for life and actuarial calculation contracts, based on commonly used methodologies among actuaries (International Actuarial Notation). This library is able to cover all life contingencies risks (since the actuarial formulas follow the International Actuarial Notation), as well as to support the main insurance products. This library is distributed as a single file module and has no dependencies other than the Python Standard Library, making it amazingly fast. It’s compatible with both version Python 3.x and 2.7. Additionally, the package includes several life mortality tables (pyliferisk.mortalitytables), mainly extracted from academic textbooks. Tables are added in list format. ie: SCOT_DLT_00_02_M = [0, 0.006205, 0.000328, 0.00026 ….] First item indicates the age when table starts. Quick Start The names of the formulas follow the International Actuarial Notation and are easily guessable (qx, lx, px, w, dx, ex, Ax, Axn..), with a few exceptions regarding special characters. The reserved variables (in addition of python language) are the following: For the mortality assumptions in MortalityTable(): nt = The actuarial table used to perform life contingencies calculations. Syntax: nt=GKM95 i = interest rate. The effective rate of interest, namely, the total interest earned in a year. Syntax: i=0.02 perc = Optional variable to indicate the percentage of mortality to be applied. Syntax: perc=85 Variable perc can be omitted, in this case it will be 100 by default. All the actuarial formulas must include a minimum of 2 variables: mt (mortality table) and x (age) If necessary, additional variables should be included with the following order: n (horizon in years), m (m-monthly payments), t (n-years deferred period). Variable m can be omitted, in this case it will be 1 (annual payment) by default. Additionally, there are two smart formulas: annuity() and A(), where the number of variables are not fixed: annuity(nt, x, n, p, m, ['a/g', c], -d) mt = the mortality table x = the age as integer number. n = A integer number (term of insurance in years) or ‘w’ = whole-life. p = Moment of payment. Syntaxis: 0 = begining of each period (prepaid), 1 = end of each period (postpaid), Optional variables: m = Payable ‘m’ per year (frational payments). Default = 1 (annually) ‘a’ or ‘g’ = Arithmetical / Geometrical q = The increase rate. Syntax: [‘g’,q] or [‘a’,q]. For example, [‘g’,0.03] Deferring period: -d = The n-years deferring period as negative number. Example 1: Print the omega (limiting age) of the both mortality tables and the qx at 50 years-old: from pyliferisk import MortalityTable from pyliferisk.mortalitytables import SPAININE2004, GKM95 tariff = MortalityTable(nt=SPAININE2004) experience = MortalityTable(nt=GKM95, perc=85) # Print the omega (limiting age) of the both tables: print(tariff.w) print(experience.w) # Print the qx at 50 years old: print(tariff.qx[50] / 1000) print(experience.qx[50] / 1000) Example 2: Plotting a surviving graph: import matplotlib.pyplot as plt from pyliferisk import * from pyliferisk.mortalitytables import SPAININE2004, GKM95 tariff = MortalityTable(nt=SPAININE2004) experience = MortalityTable(nt=GKM95, perc=75) x = range(0, tariff.w) y = tariff.lx[:tariff.w] z = experience.lx[:tariff.w] plt.plot(x,y, color = 'blue') plt.plot(x,z, color = 'red') plt.ylabel('lx') plt.xlabel('age') Example 3:: A Life Temporal insurance for a male, 30 years-old and a horizon for 10 years, fixed annual premium (GKM95, interest 6%): from pyliferisk import * from pyliferisk.mortalitytables import GKM95 nt = Actuarial(nt=GKM95, i=0.06) x = 30 n = 10 C = 1000 print(C * (Axn(nt, x, n) / annuity(nt, x, n, 0))) Installation Once Pyhon is running, just install this library with pip install pyliferisk Requeriments It’s compatible with both versions of Python: 2.7 and 3.6 Pyliferisk has no dependencies other than the Python Standard Library. That decreases the calculation runtime versus implementations under other libraries (such as Pandas). License This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The author does not take any legal responsibility for the accuracy, completeness, or usefulness of the information herein. Contributions Contributions, feedback and suggestions for improvements are greatly appreciated. Discussions take place on our mailing list. http://groups.google.com/group/openactuarial (subject: pyliferisk)]]></summary></entry><entry><title type="html">Holiday calendars with Pandas</title><link href="http://garpa.net/holiday-calendars-with-pandas.html" rel="alternate" type="text/html" title="Holiday calendars with Pandas" /><published>2019-07-04T19:00:00+02:00</published><updated>2019-07-04T19:00:00+02:00</updated><id>http://garpa.net/holiday-calendars-with-pandas</id><content type="html" xml:base="http://garpa.net/holiday-calendars-with-pandas.html"><![CDATA[]]></content><author><name>Riccardo Graziosi</name></author><category term="python" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Introducción al lenguaje Julia</title><link href="http://garpa.net/intro-julia-medialab.html" rel="alternate" type="text/html" title="Introducción al lenguaje Julia" /><published>2018-02-14T15:03:55+01:00</published><updated>2018-02-14T15:03:55+01:00</updated><id>http://garpa.net/intro-julia-medialab</id><content type="html" xml:base="http://garpa.net/intro-julia-medialab.html"><![CDATA[<h2 id="introducción-al-lenguaje-de-programación-julia">Introducción al lenguaje de programación Julia</h2>
<p>Presentación (<a href="https://github.com/franciscogarate/Introduccion-al-lenguaje-Julia">en formato pdf y tex</a>) utilizada en las jornadas Medialab-Prado, el 13 y 14 de febrero 2018.</p>
<p>En la carpeta “ejemplos” se puede encontrar los diferentes ejercicios que se han realizado en el taller.</p>]]></content><author><name>Riccardo Graziosi</name></author><category term="julia" /><summary type="html"><![CDATA[Introducción al lenguaje de programación Julia Presentación (en formato pdf y tex) utilizada en las jornadas Medialab-Prado, el 13 y 14 de febrero 2018. En la carpeta “ejemplos” se puede encontrar los diferentes ejercicios que se han realizado en el taller.]]></summary></entry><entry><title type="html">Regarduino</title><link href="http://garpa.net/regarduino.html" rel="alternate" type="text/html" title="Regarduino" /><published>2016-11-29T15:03:55+01:00</published><updated>2016-11-29T15:03:55+01:00</updated><id>http://garpa.net/regarduino</id><content type="html" xml:base="http://garpa.net/regarduino.html"><![CDATA[<p>A cheap and fully solution for <a href="https://github.com/franciscogarate/Regarduino">water irrigation based on Arduino</a>. Automatic controller for irrigation easily programmable (it’s scheduled for 2 times every day).</p>
<h2 id="requirements">Requirements</h2>
<p>For the Control-Box:</p>
<ul>
<li>1 Box (in my case I reused an internet modem)</li>
<li>1 Arduino UNO</li>
<li>1 Battery 9V (for arduino) or usb power supply.</li>
<li>1 Battery 12V (for valves) or electricity supply.</li>
</ul>
<p>For each allotment/garden:</p>
<ul>
<li>1 4N25 Optocoupler (optoacoplador)</li>
<li>1 Electric Solenoid Valves 12V (water valve 12V) 1/2’’. Important: Closed by default. (About 4 EUR in eBay)</li>
<li>1 Switch on/off</li>
<li>2 resistor 220Ω</li>
<li>1 Valve box (water-resistant)</li>
</ul>
<h2 id="circuit-design">Circuit design</h2>
<p><img src="http://garpa.net/github/4N25_protoboard.png" alt="Picture" /></p>
<h2 id="real-word">Real-word:</h2>
<ul>
<li>
<p>The code is designed for watering 5 sections (different allotments), 2 times every day. Nevertheless, arduino code is easy to understand/change.
<img src="http://garpa.net/github/IMG_regarduino1.jpg" alt="Picture" /></p>
</li>
<li>
<p>Also, the box include and on/off switch (as ‘brigde’) for watering manually.
<img src="http://garpa.net/github/IMG_4803.jpg" alt="Picture" /></p>
</li>
</ul>
<p><img src="http://garpa.net/github/IMG_4776.jpg" alt="Picture" /></p>
<ul>
<li>In this case, both power supply (valves and arduino) are independent. The main reason is due the Arduino count-down is reset in each power cut. Also, the arduino reached high temperatura with 12V. At home, USB power supply is the ideal.</li>
</ul>
<h2 id="electric-solenoid-valves">Electric Solenoid Valves</h2>
<p>1 Electric Solenoid Valves 12V (water valve 12V) 1/2’’.
Important: Closed by default. (About 4 EUR in eBay)</p>
<p><img src="http://garpa.net/github/IMG_regarduino2.jpg" alt="Picture" /></p>
<p><img src="http://garpa.net/github/IMG_4807.jpg" alt="Picture" /></p>
<h2 id="license">License</h2>
<p>GPL (GENERAL PUBLIC LICENSE) - Open source</p>]]></content><author><name>Riccardo Graziosi</name></author><category term="arduino" /><summary type="html"><![CDATA[A cheap and fully solution for water irrigation based on Arduino. Automatic controller for irrigation easily programmable (it’s scheduled for 2 times every day). Requirements For the Control-Box: 1 Box (in my case I reused an internet modem) 1 Arduino UNO 1 Battery 9V (for arduino) or usb power supply. 1 Battery 12V (for valves) or electricity supply. For each allotment/garden: 1 4N25 Optocoupler (optoacoplador) 1 Electric Solenoid Valves 12V (water valve 12V) 1/2’’. Important: Closed by default. (About 4 EUR in eBay) 1 Switch on/off 2 resistor 220Ω 1 Valve box (water-resistant) Circuit design Real-word: The code is designed for watering 5 sections (different allotments), 2 times every day. Nevertheless, arduino code is easy to understand/change. Also, the box include and on/off switch (as ‘brigde’) for watering manually. In this case, both power supply (valves and arduino) are independent. The main reason is due the Arduino count-down is reset in each power cut. Also, the arduino reached high temperatura with 12V. At home, USB power supply is the ideal. Electric Solenoid Valves 1 Electric Solenoid Valves 12V (water valve 12V) 1/2’’. Important: Closed by default. (About 4 EUR in eBay) License GPL (GENERAL PUBLIC LICENSE) - Open source]]></summary></entry></feed>