tag:blogger.com,1999:blog-85028808441118737862024-02-08T04:42:43.506+02:00Facut de tineBlog adresat celor entuziasti, cu spirit de initiativa si calitati de "Mester", invatam, testam si aplicam.Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-8502880844111873786.post-81236079373219983962011-07-12T19:13:00.000+03:002011-07-12T19:13:33.196+03:00Quadcopter - Arduino "based"<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/aLxnlMl9HTo?feature=player_embedded' frameborder='0'></iframe></div><br />
<br />
Istoria constructiei ...... in curand.....Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com1tag:blogger.com,1999:blog-8502880844111873786.post-64302248523237959692011-04-17T01:42:00.003+03:002011-04-18T22:11:07.041+03:00Arduino DIY - 10 USD Am "construit" un <b>ARDUINO</b> si sunt extrem de multumit de rezultat!!!<br />
<div> Constructia este extrem de simpla si merita tot efortul, pretul final cred ca este sub 15 USD, in functie de cat de multe sau cat de mult va place sa utilizati componente recuperate (eu sunt fan).</div><div> </div><div> Proiectul este cel de <a href="http://arduino%20single-sided%20serial%20board%20%28version%203%29/">aici Arduino Single-Sided Serial Board (version 3)</a> este destul de explicita prezentarea cu cateva exceptii,</div><div>1. in schema veti gasi o anume bobina L1 cu val 100uH, nu va chinuiti sa o cautati prin magazine pentru ca multi nici macar nu au auzit de asa ceva, in locul ei merge JUMPER (sarma).</div><div>2. in scema veti gasi un anume C9 cu valoare 10uF, este important, Condensator electrolitic NEPOLARIZAT, aceeasi problema, nu veti putea sa-l gasiti prea usor, asa ca aveti 2 variante.</div><div> a. puneti un electrolitic polarizat cu + la GND adica invers fata de cum este normal, asta ii va scurta viata dar o sa mearga.</div><div> b. asa cum am procedat si eu, 2 electrolitici de 22uF legati - la - si plusurile devin terminalele "condensatorului nepolarizat" eu am pus 2 SMD-uri si este OK.</div><div>3. nu stiu daca am gresit eu cand am printat pentru <a href="http://www.riccibitti.com/pcb/pcb.htm">Toner Transfe</a>r (desi nu prea cred) dar conectorul DB9 este oarecum invers si a terbuit sa fac un "adaptor" in care sa inversez niste pini.</div><div>este posibil sa fie de la cablul meu serial, nu stiu daca e null-modem sau drept..... in fine. </div><div><br />
</div><div>Am facut frumos cablajul.</div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJUdF6c47-gCHtkTwIWl9SShuzkDGtHfptgdS8E_sgy0ipl9Hl0hqG9xH9LljcA8nan0SVeZoBYVr0NLwsghdb4Ln33LkZ3e9kr5VYv6QQELLL1K4JqHbQv9uZKDk7KPnefoKP795VMf16/s1600/IMG-20110415-00034.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJUdF6c47-gCHtkTwIWl9SShuzkDGtHfptgdS8E_sgy0ipl9Hl0hqG9xH9LljcA8nan0SVeZoBYVr0NLwsghdb4Ln33LkZ3e9kr5VYv6QQELLL1K4JqHbQv9uZKDk7KPnefoKP795VMf16/s320/IMG-20110415-00034.jpg" width="320" /></a></div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><br />
<div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Uk_DslDfC5LqNl7LSrPBA37piOJ7D69WU7slKum-1okptjXKZb5fGgibB0ETx_jHGxkL3qxx8LIfMvvYc6EU3A0eLHaiOlX_5y7k3U-oRl6KZS4QWu8Rq6jMgC0WgFZ1K2wd0owkMy8A/s1600/IMG-20110415-00028.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Uk_DslDfC5LqNl7LSrPBA37piOJ7D69WU7slKum-1okptjXKZb5fGgibB0ETx_jHGxkL3qxx8LIfMvvYc6EU3A0eLHaiOlX_5y7k3U-oRl6KZS4QWu8Rq6jMgC0WgFZ1K2wd0owkMy8A/s320/IMG-20110415-00028.jpg" width="320" /></a></div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><br />
<div class="separator" style="clear: both; text-align: left;"> Am "plantat" componentele, care sunt putine si usor de identificat....</div><div class="separator" style="clear: both; text-align: left;"> Si a iesit...........</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWsOSIXg_PYaWyFdjAUi-5-Fmrx8HS0F6spzZT9vo7DiE1c34mNIhTc881vggehVprwEY2__UR4it1LHfQsWezjDFY2VO4VcMNFs6zQguaPtv_K4hX1mktRyTdMMlDy2xlWorNSU4uUfO4/s1600/IMG-20110416-00036.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWsOSIXg_PYaWyFdjAUi-5-Fmrx8HS0F6spzZT9vo7DiE1c34mNIhTc881vggehVprwEY2__UR4it1LHfQsWezjDFY2VO4VcMNFs6zQguaPtv_K4hX1mktRyTdMMlDy2xlWorNSU4uUfO4/s320/IMG-20110416-00036.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAxeGLoL21qCuWeA0vvUfA9CYK4lhrgz1Rt7zYzyUS0dXNNPDuuN-3d01Ca6hJ4wWg1krV6FmE1HSB50lqllp_GKUHIWssgwWxGck2tPpSPmX5gXrUX5_Y1AHDHY8h_JFZweFAVd0UOGDQ/s1600/IMG-20110416-00038.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAxeGLoL21qCuWeA0vvUfA9CYK4lhrgz1Rt7zYzyUS0dXNNPDuuN-3d01Ca6hJ4wWg1krV6FmE1HSB50lqllp_GKUHIWssgwWxGck2tPpSPmX5gXrUX5_Y1AHDHY8h_JFZweFAVd0UOGDQ/s320/IMG-20110416-00038.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"> Eu am pus un Atmega328 cumparat de la SparkFun cu 4,3 USD fara <a href="http://www.arduino.cc/en/Hacking/Bootloader">BootLoader</a>,</div><div class="separator" style="clear: both; text-align: left;"> Pentru a pune BootLoaderul procedati astfel (asta daca aveti un Arduino sau o clona functionala)</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Pe Arduino-ul functional uploadati ArduinoISP pe care il gasiti in Exemple</div><div class="separator" style="clear: both; text-align: left;">Legati Arduino-ul construit la placa existenta astfel:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVOr5ECeSfzCFLX8rwlcBRPxJ0IeUkFqY39HbantvATR5Zo449TZFL-B_X_j5Z07RBcfVItyI0TOGw8cTgNKhfKO4n9bpPxIYJlNh3A3BwNhNWDQ30P4ELd97VgnUJhQdoLloHuW_Mry_A/s1600/arduinoisp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVOr5ECeSfzCFLX8rwlcBRPxJ0IeUkFqY39HbantvATR5Zo449TZFL-B_X_j5Z07RBcfVItyI0TOGw8cTgNKhfKO4n9bpPxIYJlNh3A3BwNhNWDQ30P4ELd97VgnUJhQdoLloHuW_Mry_A/s400/arduinoisp.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"> Acum din Tools => Board selectati <b>modelul construit</b> ( in functie de ce atmega aveti 168 sau 328), <b>ATENTIE NU modelul Arduino-ului functional !!!</b></div><div class="separator" style="clear: both; text-align: left;"><b> </b>Verificati ca portul sa fie OK setat si apoi tot din <span class="Apple-style-span" style="font-family: inherit;"><b>Tools </b>dati <span class="Apple-style-span" style="font-weight: bold; line-height: 20px;">Burn Bootloader => Arduino as AVRISP</span></span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;"><b><br />
</b></span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;"><b> </b>Asteptati cateva momente si gataaaa, aveti un Arduino serial RS232.</span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;">Sunt nenumarate metode de a pune bootloaderul pe atmega, mai multe informatii gasiti <a href="http://arduino.cc/en/Tutorial/ArduinoISP">aici </a>.</span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;"><br />
</span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;"> Pe viitor vreau sa fac si un <a href="http://www.ladyada.net/make/boarduino/index.html">Boarduino</a>.</span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;"><br />
</span></div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="line-height: 20px;">Spor la treaba. :)</span></div><div class="separator" style="clear: both; text-align: left;"> </div>Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com1tag:blogger.com,1999:blog-8502880844111873786.post-62580008055157994642011-03-13T10:53:00.000+02:002011-03-13T10:53:17.743+02:00De unde Arduino ? - Surse de achizitie Cautand pe web un Atmega328 sau 168 am inteles (confirmat) ca in Romania preturile sunt exagerate!!<br />
Personal nu cred ca este just sa vinzi un board opensource cumparat din alta parte cu un adaos de 30%, asta este comert. Cumpar din America sau China si vand la pasionatii din RO cu 30% peste....... dar ce am facut eu pentru 30%? Am dezvoltat ceva, am imbunatatit ceva ? NU...... daca nu am facut nimic atunci ma compar cu Farnell, TME, Adelaida (comert) si nu mai sustin ca aduc suport unei comunitati de pasionati.<br />
<br />
Cei care sustin comunitatea Arduino tot prin China si America ii gasim, acolo sistemul este altul.... Ei dezvolta, imbunatatesc, consiliaza.... promotii, cadouri, etc.<br />
Tot ce am cumparat pana acum legat de Arduino provine din CH. Calitatea este exceptionala (in CH calitatea incepe de la -100% pana la 100% :) trebuie sa ai mare bagare de seama), preturile nu mai zic, transportul, nu acceptabil ci incredibil ( intre 4-9 usd la ordere sub 50usd si 0 la ordere >50usd).<br />
<br />
Sursa mea este <a href="http://www.seeedstudio.com/depot/">SeeedStudio</a>, va garantez calitatea, si promtitudinea serviciilor lor sunt profesionisti adevarati.<br />
Am cumparat Arduino de la ei cu 13,7 USD<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 12px; line-height: 17px;" summary="Itemized listing of previous order, includes number ordered, items and prices"><tbody>
<tr><td class="accountProductDisplay">Seeeduino V2.2 (Atmega 328P)</td><td class="accountTotalDisplay" style="text-align: right; width: 124px;">$13.75</td></tr>
</tbody></table><br />
Au o categorie de <a href="http://www.seeedstudio.com/depot/final-sale-zone-c-77.html">Final Sale Zone</a> in care periodic baga produse EOL la preturi incepand cu -30% fata de lista. Trimit tichete cadou in colete.... Sunt tari.<br />
Pot sa spun ca am ceva experienta in trading-ul cu CH si HK am mai cumparat si din alte parti, trebuie testat inainte de a cumpara, cauti un pik pe forumuri, comanzi un sample ceva, vezi cum decurg lucrurile si apoi decizi.<br />
Cand ajunge produsul in RO ajunge in vama (posta vamala) (in aprox 14 zile), la vama:<br />
- valoarea este sub 120USD se plateste numai TVA (chinezul o sa scrie pe colet GIFT, vamesul spune ca asa face toata lumea si cere un document, voi spuneti ca ati avut cupoane de discount si nu ati platit cu bani, oricum va puteti intelege cu cei de la vama)<br />
- valoare este peste 120 USD se pateste TVA + VAMA conform codului <a href="http://ec.europa.eu/taxation_customs/dds2/taric/taric_consultation.jsp?Lang=ro&redirectionDate=20110313">TARIC</a><br />
Eu folosesc pentru plata <a href="https://www.paypal.com/ro">PayPal</a> consider ca este cea mai sigura modalitate de a plati pe internet.<br />
Mai avem si:<br />
<a href="http://www.sureelectronics.net/index.php">Sure Electronics</a> - preturi bune si ei<br />
<a href="http://www.sparkfun.com/">SparkFun</a> - mai bine decat in RO (astia au o faza ca la inchiderea orderului alegi ce val sa-ti treca :)) )<br />
<br />
Asa... si va spuneam de Atmega328<br />
In RO este 28 RON<br />
La SparkFun 13 RON<br />
La SeeedStudio, nu il au, am dat mail sa-mi faca rost, Va spun asta pentru ca, chinezul face orice pentru clientul sau... cauta el pentru tine si ti face pe plac. Deci astept Pret..<br />
<br />
Sa spunem ca luam 5 bucati<br />
RO 28x5 + 10 (sa spunem in cel mai bun caz Transport) = 150<br />
US 13x5+30RON (transport) =95 (fara vama pt ca va avea val pe order sub 10usd)<br />
Deci avem o economie de 55 RON substantial raportat la valoare zic eu.<br />
<br />
<br />
A fost doar un exemplu!<br />
Pe viitor poate facem liste de precomenzi si comandam la 2-3 saptamani in comenzi cumulate.Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com18tag:blogger.com,1999:blog-8502880844111873786.post-48883159110279333492011-03-12T21:17:00.001+02:002011-03-13T09:05:58.553+02:00Arduino + 2xDS18B20 + pachube - continuare Dupa un timp de "inactivitate" iata ca reusesc sa mai scriu ceva,<br />
Daca nu am scris nu inseamna ca nu am facut nimic....., am facut si inca multe. ;)<br />
Pentru inceput am modificat sistemul de monitorizare al temperaturii din casa si din fata geamului. :).<br />
<br />
Treaba cu serverul ala de linux nu prea se merita dpdv energetic, pentru un script de py care rula acolo il tineam pornit 24/24, cei drept nu consuma mult dar consuma. A trebuit sa pun in aplicare planul B.<br />
<br />
<b>PLANUL B.</b><br />
<br />
"Super" ROUTERUL meu cu <a href="http://www.dd-wrt.com/site/index">DD-WRT</a> (Asus WL-500P), el poate sa "tina" scripturile, dar deja tinea cam multe si nu prea vroiam sa-l transform chiar in server pt orice. <br />
Mai incercasem ceva pe el dar dadusem de o problema in python2.5 care compilat pt el are ceva "hibe", am reusit sa rezolv problemele si sa am python2.5 full functional cu modulele si librariile necesare: setuptools, python-eeml, python-xml. <br />
<br />
Cu riscul de a ma repeta am sa recapitulez schema si scripturile implicate.<br />
<br />
<b><i>Pe Arduino avem:</i></b><br />
<br />
Hardware: 2 senzori <a href="http://pdfserv.maxim-ic.com/en/ds/DS18B20.pdf">DS18B20</a><br />
Un<a href="http://www.google.ro/url?sa=t&source=web&cd=1&sqi=2&ved=0CBwQFjAA&url=http%3A%2F%2Fwww.fairchildsemi.com%2Fds%2FLM%2FLM7805.pdf&ei=MsV7TfHzLtCKswbWtYXUBw&usg=AFQjCNE2Xad8EgqCuaouHDK-7j9MtCjWpQ&sig2=NpenbY5x_lUXz8BYcjXHFg"> Lm7805</a> + led.. bla bla pentru alimentarea de la POE-ul camerei<br />
Toate astea pe un shield <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLB43f3_Rrq9LLphimzWTh3qcaNdfbNRE4GmL4y9fOHQkaqrYYBM6EA9q-zVHodsMVCggg6y8YhdAz4lZnuQ_SierYdhvuXchlzcbGBryDdhQv8KtwyuaH-GwZ-GyiCB6k_Fsiw0UJzbTm/s1600/DSC_0008.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLB43f3_Rrq9LLphimzWTh3qcaNdfbNRE4GmL4y9fOHQkaqrYYBM6EA9q-zVHodsMVCggg6y8YhdAz4lZnuQ_SierYdhvuXchlzcbGBryDdhQv8KtwyuaH-GwZ-GyiCB6k_Fsiw0UJzbTm/s320/DSC_0008.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Shield alimentare_conectori</td></tr>
</tbody></table><br />
<br />
Cele 2 perechi de cabluri subtiri merg catre senzorii DS18B20, cel ALB mai gros merge la un convertor TTL-RS232 ai apoi in portul serial al camerei.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXPnspGYXJo0FNXVXw_62Vh5JyM9Apk4InXiZVVgI34aJcK3QjidBqQkHL8hn0QTDVp5onXUiRsbqDuCxRzgW1WEqqkPFMyA-P6iQBzizwJ-WtYIkLAwAg57WmB-ZEJ38wGZMPx-awzeja/s1600/DSC_0010.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXPnspGYXJo0FNXVXw_62Vh5JyM9Apk4InXiZVVgI34aJcK3QjidBqQkHL8hn0QTDVp5onXUiRsbqDuCxRzgW1WEqqkPFMyA-P6iQBzizwJ-WtYIkLAwAg57WmB-ZEJ38wGZMPx-awzeja/s320/DSC_0010.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">RS232-TTL</td></tr>
</tbody></table> Sketch:<br />
<br />
Folosesc :<br />
<br />
<a href="http://www.pjrc.com/teensy/td_libs_OneWire.html"><OneWire.h></a><br />
<a href="http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_360.zip"><DallasTemperature.h></a><br />
<div>Doua librarii de mare utilitate, despre care am scris in postul alterior.</div><div><br />
</div><div>Avem:<br />
<br />
</div><div><pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>#define ONE_WIRE_BUS 6
</code></pre></div><div>senzorii la pinul 6<br />
---------------------------------------------------------</div><pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte==84)
</code></pre>asteapta pe serial caracterul T (<a href="http://www.arduino.cc/en/Reference/ASCIIchart">ASCII</a> 84)<br />
--------------------------------------------------------<br />
Daca aceasta conditie este indeplinita face request-uri "ByIndex" catre senzori si printeaza pe serial ceva de genul:<br />
<span class="Apple-style-span" style="color: blue; font-family: Courier;">RAW Indoor: 24.94 Outdoor: 8.63</span><br />
<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 6
int incomingByte;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup()
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
}
void loop(){
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte==84nd) {
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.print("RAW");
Serial.print(" Indoor: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
Serial.print(" Outdoor: ");
Serial.println(sensors.getTempCByIndex(1));
}
}
}</code></pre><br />
--------------------------------------------------------<br />
Pana aici am terminat cu Arduino, ca si concluzie Arduino raspunde cu citirile senzorilor daca cineva-i transmite T pe serial.<br />
<br />
<b><i> Pe sistemul linux (routerul Asus WL-500) avem:</i></b><br />
<br />
1. <a href="http://www.python.org/download/releases/2.5/">python2.5</a> pentru a pune feed-ul pe <a href="http://www.pachube.com/feeds/14677">pachube</a><br />
2. <a href="http://www.cs.sunysb.edu/documentation/curl/index.html">curl</a><br />
<br />
Scriptul 1.<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
>#!/bin/sh
>python2.5 /mnt/pachube_mobo/read_serial.py
>
>curl -s -d "send=T&buttonSubmit=submit" http://user:pass@server/admin/rs232term?Update=fulltext | grep nooutput
>curl -s http://user:pass@server/admin/rs232term?Update=fulltext | grep RAW > /mnt/pachube_mobo/temp.txt
>curl -s http://user:pass@server/admin/rs232term?delbuffer | grep nooutput
>
</code></pre><br />
Sunt 3 comenzi curl.<br />
Prima trimite caracterul "T" (<a href="http://www.arduino.cc/en/Reference/ASCIIchart">ASCII</a> 84) catre terminalul serial al camerei, conectat prin adaptorul RS232-TTL la Arduino<br />
A doua comanda "partseaza" raspunsul si il pune in fisierul temp.txt<br />
A treia comanda "rade" bufferul serial al camerei pentru a-l lasa curat asteptand o noua interogare deci un nou raspuns de la Arduino.<br />
<br />
Prima linie, adica :<br />
>python2.5 /mnt/pachube_mobo/read_serial.py<br />
<br />
Lanseaza un script de py care va trimite informatia pe pachube.<br />
<br />
Scriptul 2.<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>>import eeml
>import linecache
>
>##################################
>
>temphum = linecache.getline("/mnt/pachube_mobo/temp.txt", 1)
># parameters
>API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
>API_URL = '/api/xxxxxxxx.xml'
>
>readings = temphum.split(' ') # the readings are separated by spaces
>pac = eeml.Pachube(API_URL, API_KEY)
>pac.update([eeml.Data(0, readings[3], unit=eeml.Celsius()), eeml.Data(1, readings[5], unit=eeml.Celsius())])
>pac.put()
</code></pre><br />
Si aici treaba e simpla,<br />
Avem o variabila "temphum" care citeste fisierul temp.txt si "splitueste" valorile<br />
in continuare intervine libraria eeml care pune valorile citite in xml si le trimite pe pachube.<br />
<br />
Scripturile sunt rulate de <a href="http://www.dd-wrt.com/wiki/index.php/CRON">CRON</a><br />
<br />
Cam asta este.<br />
Vreau sa pun si un display 20x4 caractere conectat tot pe ethernet care sa-mi arate temperatura si altele.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjJ7oPlR6YLp8ivDb-nse5qlHB0R_KXH5jY_Y3z0oE9O4rHI_ukayaHXQJK_K87wPWqwVkoQ5DVCOhXPJ5pJdNxBJ4PjhJcvSDfDuuGhp86vmT-lMKjnf4ZeBQU1Bt0g-ARnZUnj6AVJv2/s1600/DSC_0011.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjJ7oPlR6YLp8ivDb-nse5qlHB0R_KXH5jY_Y3z0oE9O4rHI_ukayaHXQJK_K87wPWqwVkoQ5DVCOhXPJ5pJdNxBJ4PjhJcvSDfDuuGhp86vmT-lMKjnf4ZeBQU1Bt0g-ARnZUnj6AVJv2/s200/DSC_0011.JPG" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ansamblu</td></tr>
</tbody></table><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbTfpJ2WTJeY0dvVJmlzKsVn3JzRUqfOVmI3XqWqkm9wj1U7xYm-CsEvXCGUYxdH7LoOwz4HPq5beadpiTfz1S3_ZhHRmj9Yfx6djpWhVxZcJ6BcnAxjudq2h0BhIFol3U9k5dmFWdhrs/s1600/DSC_0009.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbTfpJ2WTJeY0dvVJmlzKsVn3JzRUqfOVmI3XqWqkm9wj1U7xYm-CsEvXCGUYxdH7LoOwz4HPq5beadpiTfz1S3_ZhHRmj9Yfx6djpWhVxZcJ6BcnAxjudq2h0BhIFol3U9k5dmFWdhrs/s200/DSC_0009.JPG" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ansamblu1</td></tr>
</tbody></table>Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com0tag:blogger.com,1999:blog-8502880844111873786.post-15494164014337548202011-01-25T21:11:00.010+02:002011-03-12T21:18:57.612+02:00Arduino + 2xDS18B20 + un adaptor RS232-TTL + o camera de supraveghere MOBOTIX M10 + un server linux Va spuneam in <a href="http://facutdetine.blogspot.com/2011/01/arduino-1wire-si-ds18b20.html">postul anterior</a>, cel in care am vorbit despre <a href="http://pdfserv.maxim-ic.com/en/ds/DS18B20.pdf">DS18B20</a>, ca am sa va povestesc ce am facut in combinatia <a href="http://www.arduino.cc/">Arduino</a> + 2xDS18B20 + un adaptor RS232-TTL + o camera de supraveghere<br />
<a href="http://www.mobotix.com/other/file/1657560/mx_manual_m10_en.pdf">MOBOTIX M10 </a>+ un server linux.<br />
Camera Mobotix M10D Secure este o camera de supraveghere profesionala cu 2 ocbiective,<br />
kernel linux si ce ne intereseaza pe noi, are un port serial <a href="http://en.wikipedia.org/wiki/RS-232">RS232</a>.<br />
Pe undeva prin paginile de configurare ale camerei se gaseste un terminal pt portul serial, web-based. <br />
Ce ma intriga pe mine era faptul ca acest la port serial (si probabil ceva scripturi din camera)<br />
se poate conecta o statie meteo (de fapt sunt 3 modele compatibile), pretul acestor statii este oarecum <br />
prohibit pt mine, cea mai ieftina costand mai bine de 400 euro.<br />
Am zis eu ca nu este imposibil sa fac eu o "statie meteo" care sa comunice cu camera folosind un protocol <br />
comun, nu ceva complicat, vroiam doar sa primesc pe terminal-ul camerei informatia bruta de genul <br />
18C 15m/s SE.<br />
Era mult mai simplu daca aveam acces <a href="http://en.wikipedia.org/wiki/Secure_Shell">SSH </a>la camera, dar cei de la MOBOTIX au avut grija sa limiteze <br />
aceasta posibilitate.<br />
De ce am vrut neaparat sa intervina camera in toata aceasta poveste ? pai este simplu..... camera este afara<br />
undeva, conectata la internet sau la o retea locala, alimentata POE, si eu vreau sa vad care este temperatura<br />
din locul monitorizat.<br />
Pe Arduino am pus un Sketch care foloseste<a href="http://www.pjrc.com/teensy/td_libs_OneWire.html"> OneWire.h</a> si<a href="http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_360.zip"> DalassTemperadure.h</a>, librarii despre care<br />
am vorbit in posturile anterioare.<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 6
int incomingByte;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup()
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
}
void loop(){
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte==84nd) {
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.print("RAW");
Serial.print(" Indoor: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
Serial.print(" Outdoor: ");
Serial.println(sensors.getTempCByIndex(1));
}
}
}
</code></pre><br />
Reteaua 1wire este conectata la pinul 6.<br />
Arduino asteapta pe serial caracterul "T" (asci 84), daca primeste acest caracter interogheaza senzorii <br />
(sunt mai multi ) si trimite raspunsurile pe serial folisind ByIndex (interesanta si utila implementare) pentru a <br />
diferentia fiecare senzor.<br />
<br />
RX-ul si TX-ul lui Arduino sunt legate la portul serial al camerei Mobotix bineinteles folosind un convertor<br />
TTL la RS232 cu MAX232, 5 condensatori, realizat pe o placa de test,gasiti aici o schema testata, <br />
deja montata ca shield la Arduino (nu am poze dar revin asupra subiectului). arduino se alimenteaza cu 5V <br />
de la POE-ul camerei.<br />
Dar cine trimite caracterul T pe terminalul camerei ?<br />
Un server linux pe care am pus o serie de scripturi:<br />
Primul dintre ele!<br />
<br />
#!/bin/sh<br />
<br />
python /home/cristian/pachube_mobo/read_serial.py&<br />
<br />
curl -s -d "send=T&buttonSubmit=submit" http://user:pass@192.168.2.244/admin/rs232term?Update=fulltext | grep nooutput<br />
<br />
curl -s http://user:pass@192.168.2.244/admin/rs232term?Update=fulltext | grep RAW > /home/cristian/pachube_mobo/temp.txt<br />
<br />
curl -s http://user:pass@192.168.2.244/admin/rs232term?delbuffer | grep nooutput<br />
<br />
Scriptul de .py are legadura cu pachube.com, el pune datele pe feed-urile respective,<br />
mai multe detalii legate de libraria eeml gasiti aici.<br />
<br />
Din prima linie se vede ca ea trimite caracterul "T" pe treminalul camerei, implicit catre Arduino<br />
A doua linie descarca bufferul camerei cauta secventa "RAW" si scrie informatia in vifierul temp.txt<br />
A treia linie sterge bufferul serial al camerei.<br />
<br />
Scriptul asta este lansat la fiecare 5 minute de catre o aplicatie linux care face grafice se numeste <a href="http://www.cacti.net/">CACTI </a><br />
este pe baze RRD. De fapt CACTI nu lanseaza direct scriptul ci face un snmpwalk si OID-ul corespunzator<br />
lanseaza scriptul.<br />
E destul de "inbarligata" treaba.<br />
In final am 2 grafice, unul pe serverul de linux si unul pe pachube.com<br />
<br />
<b><i><a href="http://facutdetine.blogspot.com/2011/03/arduino-2xds18b20-pachube-continuare.html">Continuare..................</a></i></b>Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com1tag:blogger.com,1999:blog-8502880844111873786.post-18193273241951833112011-01-07T00:09:00.002+02:002011-02-13T16:15:46.185+02:00Arduino 1wire si DS18B20 Asa cum spuneam in <a href="http://facutdetine.blogspot.com/2011/01/arduino-senzori-de-temperatura-ds18b20.html">postul anterior</a>, ne vom ocupa de o retea de senzori de temperatura Dallas <a href="http://pdfserv.maxim-ic.com/en/ds/DS18B20.pdf">DS18B20</a>.<br />
Care este avantajul utilizarii acestui tip de senzori ?<br />
- Utilizeaza numai doi conectori pentru alimentare si DATA.<br />
- Adresabila in retea pe baza unui identificator.<br />
- Precalibrati<br />
- range -55 +125 °C<br />
- acuratete ±0.5 °C<br />
<br />
De ce sa facem o retea de senzori de temperatura ? nu ajunge unul ?<br />
<br />
Pentru unele aplicatii este posibil sa fie suficient un singur senzor, in anumite situatii mai multi sunt mai buni... :)<br />
Daca dorim sa urmarim temperatura de afara, temperadura din casa si temperatura din camera unde avem cazanul centralei termice....<br />
Daca avem 2 rack-uri cu echipamente trebuie sa le monitorizam ....<br />
<br />
Va spuneam ca daca vrem alimentare parizita nu trebuie sa lasam in aer, mai jos variantele corecte pentru conectare.<br />
<br />
<table border="2" cellpadding="1" style="width: 350px;"><tbody>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXOFU6XR03IZ43hXFIRo_5i04jGvQUK84NvLOh62s_pGhXC3WY_wBq9OX0Ykw_cmLbQhN_TMPWjEhlsvpVWhYaY9NiyeDRY7WLXXGxYp0HZCGdXU7MFNikx_pYEYwMex-AL82fGQoKkGVt/s1600/DS18B20_main_mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXOFU6XR03IZ43hXFIRo_5i04jGvQUK84NvLOh62s_pGhXC3WY_wBq9OX0Ykw_cmLbQhN_TMPWjEhlsvpVWhYaY9NiyeDRY7WLXXGxYp0HZCGdXU7MFNikx_pYEYwMex-AL82fGQoKkGVt/s1600/DS18B20_main_mode.png" /></a></div> Conectarea in mod nonparazit</td> </tr>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj12bHx3OQ3reRLOS9yEBoeOjsK5BdrqIVnmqrirvbcqVsg7yROFKqLgVO1Yptxrz3HXkw1UfXYZc4W16USnIQqNHSAnFJWMDdkTr3qsjgrdjzZMCKZOhu2F6ILpsj5_utWt_uks-YQ1vBO/s1600/DS18B20_parasite_mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj12bHx3OQ3reRLOS9yEBoeOjsK5BdrqIVnmqrirvbcqVsg7yROFKqLgVO1Yptxrz3HXkw1UfXYZc4W16USnIQqNHSAnFJWMDdkTr3qsjgrdjzZMCKZOhu2F6ILpsj5_utWt_uks-YQ1vBO/s320/DS18B20_parasite_mode.png" width="300" /></a></div> Conectarea parazita a unui singur DS18B20</td> </tr>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkIaztNqyUkRoes0LklFL46QDYFgitC2vCHBQwcvQLdtZ97hBZDN11tZjdmre2Y9atWFOMOQg84LdPdwoad1-6Fc9SvODHuJzyfcnc0_81LUSQmKtuVfd_zYLCFqFLGJq9-cqC3mJhhtlE/s1600/DS18B20_parasite_mode_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkIaztNqyUkRoes0LklFL46QDYFgitC2vCHBQwcvQLdtZ97hBZDN11tZjdmre2Y9atWFOMOQg84LdPdwoad1-6Fc9SvODHuJzyfcnc0_81LUSQmKtuVfd_zYLCFqFLGJq9-cqC3mJhhtlE/s320/DS18B20_parasite_mode_2.png" width="300" /></a></div> Retea cu alimentare parazita</td> </tr>
</tbody></table><br />
<div> Asadar folosind un singur pin digital al Arduino putem conecta mai multi senzori!!!</div><div> Personal utilizez libraria <b><a href="http://www.pjrc.com/teensy/td_libs_OneWire.html">OneWire</a> </b>si <span class="Apple-style-span" style="line-height: 38px;"><span class="Apple-style-span" style="font-family: Times,'Times New Roman',serif;"><b><a href="http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_360.zip">Dallas Temperature Control Library</a> </b></span></span>dar exista mai multe implementari al protocolului.</div><div>Un exemplu de cod:</div><pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature for Device 1 is: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
}
</code></pre><div><br />
</div><div><pre></pre></div><span style="font-family: Times,'Times New Roman',serif;">Daca punem doi senzori trebuie sa adaugam <br />
<br />
Serial.print(sensors.getTempCByIndex(1)) si trebuiesc facute toate modificarile pentru "print"-ul textului preambul.... <br />
<br />
"Temperature for Device 2 is: " .... bla.... bla.<br />
<br />
<br />
Cam asta este, faceti cateva experimente.<br />
<br />
Puteti face o sumedenie de proiecte .... in posturile urmatoare am sa va spun ce am facut eu cu Arduino + 2xDS18B20 + un adaptor RS232-TTL + o camera de supraveghere MOBOTIX M10 + un server linux (cam multe dar proiectul a iesit bine)</span>Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com0tag:blogger.com,1999:blog-8502880844111873786.post-90176902664657225132011-01-03T13:46:00.002+02:002011-01-03T16:35:25.446+02:00Arduino, comunicatii Serial si 1wire<span class="Apple-style-span" style="font-size: large;">Introducere: Protocoale de comunicatii Atmega328</span><br />
<br />
Vom lua ca exemplu Arduino Duemilanove, "dotat" cu Atmega 328.<br />
Hardware suporta urmatoarele protocoale de comunicatii:<b> <a href="http://en.wikipedia.org/wiki/RS-232">Serial</a></b> ( TX, RX), <a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus"><b>SPI</b></a> (SS, MOSI, MISO, SCK), <a href="http://en.wikipedia.org/wiki/I2C"><b>I2C</b></a> (SDA, SCL) ..... Toate cele enumerate mai sus sunt comunicatii seriale, adica, transferul informatiei are loc bit cu bit.<br />
Portul serial este folosit si de USB asa ca atunci cand aveti ceva conectat la pinii TX, RX, este posibil sa primiti erori in timpul uplodarii unui sketch (program).<br />
<br />
<span class="Apple-style-span" style="font-size: large;">Protocolul <a href="http://en.wikipedia.org/wiki/1-Wire"><b>1wire</b></a></span><br />
<br />
Exista o implementare software a protocolului <a href="http://en.wikipedia.org/wiki/1-Wire"><b>1wire</b></a>, protocol pe care eu il consider "the best".<br />
Device-urile ce folosesc acest protocol sunt facute aproape 100% de <a href="http://en.wikipedia.org/wiki/Dallas_Semiconductor">Dallas</a>. Acestea au un identificator unic dupa care se pot accesa in "retea". O retea 1wire este ca un raft cu haine, hainele reprezentand device-urile retelei, atunci cand cautam o bluza sa spunem ne uitam in raft dupa culoarea si modelui ei. cam asa functioneaza si identificatorul 1wire. (asta a fost o explicatie empirica scoasa pe moment)<br />
Marele avantaj este ca folosind acest protocol avem nevoie de numai 2 fire ( conductori) atat pentru alimentarea retelei cat si pentru date.<br />
De fapt alimentarea poate face in 2 moduri nonparazit si parazit. La nonparazit se folosesc 3 fire +5V GND si DIGITAL in modul parazit alimentarea +5V vine pe acelasi conductor cu Digital.<br />
Am vazut multe tutoriale pe web in care la alimentarea parazita pinul Vcc al device-ului 1wire era lasat in aer, va spun din experienta ca apar probleme asa ca cel mai bine este sa-l conectati la GND.<br />
Exista scrisa o librarie <b><a href="http://www.pjrc.com/teensy/td_libs_OneWire.html">OneWire Library </a> ,</b> utilizarea este foarte simpla, aveti si exemple in link-ul anterior.<br />
<br />
<span class="Apple-style-span" style="font-size: large;">1wire <b><a href="http://en.wikipedia.org/wiki/Dallas_Semiconductor">Dallas Semiconductor</a></b></span><br />
<br />
Dallas Semiconductor ( Maxim-ic ) sunt cei care au dezvoltat aceasta tehnologie. Device-urile 1wire sunt de la senzori de temperatura pana la memorii ROM, EPROM.<br />
Cele mai intalnite in utilizarea langa Arduino sunt <a href="http://en.wikipedia.org/wiki/Real-time_clock"><b>RTC</b></a>-urile (Real Time Clock) si senzorii de temperatura.<br />
Aveti <b><a href="http://para.maxim-ic.com/en/search.mvp?fam=temp_sens&374=1-Wire&374=1-Wire%20Non-Network&tree=master">aici</a> </b>un link catre un tabel comparativ al senzorilor de temperatura oferiti de Maxim-ic, in principiu diferentele sunt legate de rezolutie si precizie.<br />
Cei de la Maxim au dezvoltat si ceea ce se numeste <a href="http://www.maxim-ic.com/products/ibutton/"><b>iButton</b></a>, sunt device-uri 1wire impachetate frumos in niste pastilute de metal asemanatoare unor nasturi, si au diverse utilizari.<br />
In postul urmator vom vedea cum facem o retea 1wire cu senzori de temperatura DS18B20Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com0tag:blogger.com,1999:blog-8502880844111873786.post-54826234887073779512010-12-05T19:56:00.001+02:002011-01-03T13:16:03.768+02:00Despre Arduino Arduino este o platforma open-source de "prototyping". De ce open-source ? Pentru ca este dezvoltata si intretinuta de comunitate, toate sursele si variantele hardware sunt disponibile gratuit.<br />
Arduino are doua componente:<br />
1. Platforma Hardware, are ca si "procesor" MCU-ul de la ATMEL ATmega 328 sau 168, 1280<br />
Platforma se prezinta sub mai multe variante si denumiri in functie de capabilitati, dimensiuni ... etc, cele mai cunoscute sunt: Arduino Dumilanove, Arduino Mega, Arduino UNO, Mini, Nano.<br />
<br />
<table border="2" cellpadding="1" style="width: 200px;"><tbody>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTC2_uvqm6ZYAuZtwMHqhGuhux290e5sXqMqJ2vqqNoixuxpBu6fStntjBcWOBcNIW0CkvCOTEridR5KPQ5EckRqw-JiybjPuX2OVUb23N6NTm_6DNtPu4QAT60qtb0u8GpKd_15eB5TM9/s1600/arduino_uno_test.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTC2_uvqm6ZYAuZtwMHqhGuhux290e5sXqMqJ2vqqNoixuxpBu6fStntjBcWOBcNIW0CkvCOTEridR5KPQ5EckRqw-JiybjPuX2OVUb23N6NTm_6DNtPu4QAT60qtb0u8GpKd_15eB5TM9/s200/arduino_uno_test.jpg" width="200" /></a></div></td> <td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEietswu_EOiDDiGKQjEaRVeWxrlZq19QrT3HxpQT-Eset1V0q5kAZ2b0szkGdP2haFkB2YtJX5jp95b5M5qdTtjHXQtt_H-npOgMCEgPu_-nEjofB6V3XNhEdSEbHeHqKkRxFCizbsG4fWZ/s1600/ArduinoMiniBreadboardPhoto.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEietswu_EOiDDiGKQjEaRVeWxrlZq19QrT3HxpQT-Eset1V0q5kAZ2b0szkGdP2haFkB2YtJX5jp95b5M5qdTtjHXQtt_H-npOgMCEgPu_-nEjofB6V3XNhEdSEbHeHqKkRxFCizbsG4fWZ/s200/ArduinoMiniBreadboardPhoto.jpg" width="200" /></a> </td> </tr>
<tr> <td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpwWS5vBzzGoPz-cLhbeiQHonDtOMoCLmPODuntp0aPEbIfEGGKncL4Y8rqUsLqXbvd4D-CPd_2jbp8WD6Ch0UPazmEUzsnrmpKpt5vYkbQwfN1WgwvbCQCZ2u-TjGVxYcCk2m_hu9yrPN/s1600/ArduinoNanoUSBCable.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="127" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpwWS5vBzzGoPz-cLhbeiQHonDtOMoCLmPODuntp0aPEbIfEGGKncL4Y8rqUsLqXbvd4D-CPd_2jbp8WD6Ch0UPazmEUzsnrmpKpt5vYkbQwfN1WgwvbCQCZ2u-TjGVxYcCk2m_hu9yrPN/s200/ArduinoNanoUSBCable.jpg" width="200" /></a> </td> <td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMbBH5RsYae2CwqK4TJHGQISlKwPegzjw1S3BHAcNlvmR7sFIldvUAFn-iv_ryk2PYOt_yKma6-0Hs0pkOQDGngn-g4QRv-nQefKtnhu1RRWVxEaSpGQx9IYmc3GgUDi0Rm0dCFHga4L2o/s1600/ArduinoMega.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="103" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMbBH5RsYae2CwqK4TJHGQISlKwPegzjw1S3BHAcNlvmR7sFIldvUAFn-iv_ryk2PYOt_yKma6-0Hs0pkOQDGngn-g4QRv-nQefKtnhu1RRWVxEaSpGQx9IYmc3GgUDi0Rm0dCFHga4L2o/s200/ArduinoMega.jpg" width="200" /></a></div></td> </tr>
</tbody></table><br />
2. Platforma Software sau mediul de programare. MCU-ul este programat cu Arduino Programing Language. Nu intru in detalii, dar pe scurt: IDE-ul ruleaza satad-alone in Java se configureaza extrem de usor, dupa lansarea executabilului trebuie sa alegeti portul USB la care ati conectat Arduino si ce MCU are.<br />
<br />
Arduino poate sa faca lucruri de unul singur sau poate interactiona cu PC-ul (Flash, glue, PHP...) cu mediul inconjurator (prin diversi senzori) cu dumneavostra (butoane, display etc) sau cu toate cele enumerate mai sus.<br />
Va garantez ca lumea Arduino este fascinanta pentru orice pasionat de tehnica sau calculatoare, incepand cu un tanar la scoala generala pana la profesori universitari. Poate sta la baza multor proiecte interesante, inovatoare.<br />
Extraordinar de bine documentat si intretinut de comunitate, va puteti inspira si puteti incepe accesand urmatoarele:<br />
<a href="http://www.arduino.cc/playground/">De la simplu la complex aproape tot ce aveti nevoie</a><br />
<a href="http://www.freeduino.org/">Cea mai mare colectie de modele practice indexate alfabetic</a><br />
<a href="http://www.ladyada.net/learn/arduino/index.html">Basic-ul basic-ului :)</a><br />
<br />
Dupa ce parcurgeti materialele si credeti ca nu sunt suficiente ma mai intrebati..... :)<br />
<br />
Arduino "original" este produs prin Italia dar pe piata exista o sumedenie de clone, eu am lucrat numai cu clone si va spun ca sunt minunate si fonctioneaza foarte bine, o astfel de clona (ATmega 328p) costa intre 19 si 25 usd, eu la iau din china, pretul transportului este 4-10 usd la ordere mai mari de 50 usd este gratis.<br />
Puteti sa gasiti multe .... multe .... (numai bani sa aveti ) la <a href="http://www.sparkfun.com/">Sparkfun</a><br />
<br />
Era sa uit, Arduino are conectori "standardizati" astfel incat pe placa se pot conecte diverse "shield-uri".<br />
<br />
Poate ca nu este interesant ce am scris mai sus.... va dau un exemplu de "<b>ce poate sa faca Arduino</b>"<br />
Vrem ca atunci cand temperatura scade sub x grade C sa porneasca aeroterma - se poate face cu <b>Arduino</b><br />
Vrem ca atunci cand se face noapte sa se aprinda lunina, cand se aprinde lunima sa se auda un sunet de 7 ori apoi sa se stinga televizorul si frigiderul, sa primesc un sms pe mobil si ........... - se poate face cu <b>ARDUINO </b>!!!<br />
Va urma ....Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com1tag:blogger.com,1999:blog-8502880844111873786.post-62067348473550256172010-09-27T23:37:00.001+03:002011-03-13T09:00:51.350+02:00Prima postare.....<span class="Apple-tab-span" style="white-space: pre;"> </span>In brimul rand Bun Venit!!!<br />
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>Despre ce este vorba ?</div><div>Simplu...... Despre ce putem face cu cele doua maini si capul ce ne sta pe umeri.</div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>Sunt multe lucruri pe care le putem face singuri, sunt multi cei care nu se plictisesc niciodata pentru ca au tot felul de lucruri de studiat sau de facut, eu sunt unul dintre ei........</div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>Sincer nu prea-mi vin in minte cuvintele pentru primul post, cu siguranta ma voi descurca mai bine pe viitor cand voi incepe sa scriu ce am mai mesterit sau ce lucruri interesante am mai descoperit.</div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>In continuare am sa va povestesc despre proiectele mele, ce am facut, ce mai am pe lista, ce am vrut sa fac si nu am reusit (poate reusesc altii). </div><div><span class="Apple-tab-span" style="white-space: pre;"> </span>Asaaaa ca sa va fac curiosi, in caz ca ati ajuns pe blog va spun ca <b>Facut de tine </b>pe viitor ....</div><div>- <b>USB2LCD</b>, display lcd 40x4 cu interfata usb <b>PIC18F2550</b></div><div>- <b>Matrite din silicon</b> pentru diverse obiecte</div><div>- Turnarea obiectelor din <b>rasini poliuretanice bicomponente</b></div><div>Si multe alte chestii pe care "mesterul din mine" le considera interesante.</div><div>Va urma......</div><div><br />
</div><div>Va mai astept</div><div><br />
</div><div><br />
</div>Cristian Perdutuhttp://www.blogger.com/profile/08302537888601377445noreply@blogger.com0