duminică, 30 iunie 2013

Evidence

I believe in evidence. I believe in observation, measurement and reasoning confirmed by independent observers. I'll believe anything no matter how wild and ridiculous, if there is evidence for it.
Isaac Asimov

Biblioteca virtuala

Am gasit acum vreo doua zile pe net o întreagă bibliotecă virtuală Biblioteca virtuala (format ePub). Îmi place la nebunie Isaac Asimov.
Am citit romanele SF ale acestui scriitor de când eram la liceu și încă mă mai atrag. Mai ales seria fundației ...
Cele trei legi ale roboticii au fost enunțate pentru prima oară de către Asimov.

Alte carti gasiti si aici ! Lectură și zi plăcută tuturor!

sâmbătă, 29 iunie 2013

Proiect Arduino - Controlarea a 8 LED-uri folosind 3 pini de la microcontroler

Am cumpărat un circuit de control a 8 LED-uri si am decis sa ma joc un pic cu el sa vad ce poate sa facă.
Descrierea de mai jos am preluat-o de pe site-ul www.robofun.ro si mi-am creat un circuit bazat pe conceptul Arduino:
"Driver bazat pe chip-ul TPIC6B595, capabil sa ofere 8 canale de iesire cu maximum 150 mA per ieșire. Controlul chip-ului se face folosind 3 pini (DATAIN, LATCH, CLOCK). In plus, plăcile pot fi inlantuite foarte usor, permițând astfel sa controlezi un număr practic nelimitat de dispozitive (limitarea apare doar datorita rezistentei parazite a cablajului si a conectorilor, dar poți înlănțui cel puțin câteva zeci de dispozitive fără niciun fel de probleme).
Ca sa controlezi led-urile atașate pe cele 8 ieșiri, trebuie sa conectezi la un microcontroller (de exemplu Arduino) cei 3 pini de control, la pini digitali. Apoi, ca sa aprinzi al 3-lea led (spre exemplu) va trebui sa scrii pinul DATAIN acel număr care în binar este reprezentat cu un bit 1 pe poziția 3 și 0 în rest (adică "00100000" în binar, adică 32 în baza zece). Dacă vrei sa aprinzi toate led-urile, trebuie sa scrii acel număr care are toți biții 1 în binar ("11111111" în binar, adică 255 în baza zece). Trebuie sa fii atent la numerotarea pinilor de ieșire prezentata în schema de mai jos. Pentru un exemplu de cod, vezi mai jos."

Codul sursa este următorul:
 
int latchPin = 5;

int clockPin = 6; 

int dataPin = 7;

void setup() {

     pinMode(latchPin, OUTPUT);

     pinMode(clockPin, OUTPUT);

     pinMode(dataPin, OUTPUT);

}

void loop() {

      for (int numberToDisplay = 0; numberToDisplay < 255; numberToDisplay++) {

         digitalWrite(latchPin, LOW);

        shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);

        digitalWrite(latchPin, HIGH); delay(300);

    } 

}

Teoria e frumoasă :) .... dar practica e si mai frumoasă dacă totul funcționează cum trebuie. În funcție de cele trei intrări dataPin,clockPin și latchPin va activa cele 8 ieșiri. Eu am folosit ieșirile pentru a aprinde 8 LED-uri dar se pot controla chiar și relee sau motoare.
Simbolul logic al chip-ului TPIC6B595 este următorul:

Și am purces la treabă ... am creat o placă de test să mă conving că funcționează conform cu datasheet-ului. Merge chiar bine și asta îmi dă speranțe pentru un proiect cu mai multe LED-uri( poate vreo 10x10).
Placa arată cam așa:

Linkuri ajutătoare:
Foaia de catalog a chip-ului TPIC6B595
TPIC6B595 Troubles

O seară plăcută tuturor !

vineri, 28 iunie 2013

Sursa de tensiune liniară (bazat pe LM317) - cu transformator TS 70/16 (16.6 V / 2 A) - (8)

Am o nouă versiune de sursă de tensiune liniară, dar de data asta am schimbat transformatorul, puntea redresoare și implicit layout-ul PCB-ului. Transformatorul folosit se numește TS70/16 și are două ieșiri 16.6 V cu 2 Amperi. Am avut nevoie de un transformator mai mare pentru a putea utiliza echipamente care consuma mai mult curent. Transformatorul de la versiunea 1 se cam încălzea și probabil ar fi cedat dacă legam mai multe ECU-uri la sursă. Prima sursă o să o folosesc exclusiv pentru alimentarea afișorului de tensiune.
PCB-ul arata acum cam așa:

PCB-ul în format Express PCB
Piesele celelalte rămân la fel ca și la schema cu transformatorul mai mic. Puntea redresoare am înlocuit-o cu un integrat foarte modular și ușor de folosit denumit BR38. Acum schema e mai ușor de înțeles și de modificat. Sper că schema e și robustă.
Din păcate o să mai dureze până o să construiesc fizic noua sursă. Cred că spre sfârșitul lunii iulie..
O seară plăcută tuturor!

joi, 27 iunie 2013

Evolio Aria Mini review

Tableta Evolio Aria mini Wifi si GPS este un gadget ce are un procesor dual core la 1.5 GHz și un ecran IPS de 8 inchi. Am achiziționat de curând un dispozitiv de acest gen cu gândul să plec într-o excursie și doream un GPS inclus, plus posibilitatea să mai intru pe net. Tableta rulează Android Jelly Bean v4.1.1 și este livrată cu un pachet de soft-uri foarte folosite cum ar fi KingSoftOffice, Presa online, Magazin Play, Navigare GPS, Google Chrome, EvoBook reader, Explorer Android etc... Practic este un computer în toată regula. Se poate conecta la orice televizor sau monitor ce dispune de un conector HDMI pentru că tableta are o ieșire mini HDMI. Poți să citești, să te joci, să vizionezi filme, să editezi text, să faci poze, să faci surf pe net, să ți un jurnal, să asculți muzică etc..

Specificațiile producătorului:
- Sistem Operare Android 4.1 Jelly Bean
- Procesor Rockchip RK3066
- Model procesor Dual Core
- Frecventa Procesor 1,5 GHz
- Tip Ecran IPS Capacitiv Multitouch
- Diagonala Ecran 8 inch
- Rezoluție Ecran 1024 x 768 px
- Dimensiuni 199 x 154 x 9,5 mm; 460 g
- Camera front 0,3 Mpx; back 2 Mpx
- Memorie interna 8 GB
- Memorie RAM 1 GB
- Memorie externa MicroSD pana la 32 GB
- Baterie 4500 mAh
- Conexiuni Bluetooth, Wi Fi
- GPS Receptor GPS
- Porturi Jack, Micro USB, Mini HDMI
- Multimedia Redare Audio, Redare Foto, Redare Video

Ce găsești în cutie:
- Încărcător
- Cablu adaptor de la micro USB la USB
- Cablu de date USB
- Tableta :)
- Certificat de garanție. Are garanție 5 ani.



Încărcător:
- Input: 100 - 240 V curent alternativ
- Output: 5 Volți - 2 Amperi
- Conector încărcător 2.3 mm

Conectori si slot-uri:
- Iesire mini HDMI
- Iesire audio mufa jack 3.5 mm pentru căști sau boxe
- Slot micro SD, recomand un card de 16 GB
- Iesire micro USB
- Conector pentru încărcător


Imagini cu cablurile si conectorii:


Dimensiunile constructive pe care le-am măsurat cu mânuța mea cu șublerul din dotare:
- Lățime : 154.1 mm
- Lungime: 204.1 mm
- Grosime: 10.1 mm

Dimensiuni ecran:
- Lățime: 123 mm
- Lungime: 162 mm
- Diagonala: 203,5 mm(8,01181102 inches)

Greutate: 468 grame

Notă de ținut cont: Măsurătorile sunt destul de exacte însă au totuși o marjă de eroare de 0.02 mm datorită șublerului. Măsurătorile date de producător nu prea corespund cu ce am măsurat eu.

Experiența și primele impresii
După aproape o săptămână de utilizare pot să spun că sunt destul de mulțumit de tabletă. Navigarea este fluenta, fără lag, funcționează orice joc actual disponibil pentru tablete cu android.
Acum vreo câteva luni am utilizat un iPad și cred că Evolio Aria Mini se apropie destul de mult de experiența dată de iPad. Se mișcă foarte bine, nu se blochează și până acum nu s-a resetat niciodată. Ecranul este luminos și contrar altor review-uri eu consider că unghiurile de vizualizare sunt printre cele mai bune de pe piață. Aria Mini dispune de un display multi touch capacitiv format 4:3 și o rezoluție de 1024 x 768 pixeli. Display-ul este bazat pe tehnologia IPS (In-plane switching)


Design
La design eu consider că nu stă prea bine. Carcasa e total necorespunzătoare pentru că are prea multe muchii drepte. Camera foto de pe spate este un pic ieșită. În momentul în care o așezi pe o suprafață plană se v-a propti în camera foto și dacă apeși ușor pe colțul stânga jos sau dreapta sus tableta va pendula ușor ceea ce nu e prea plăcut. Spun că designul e făcut după ureche și datorită faptului că se încălzește destul de tare în parte de jos. Practic tableta nu are un sistem de disipare a căldurii ce vine de la CPU și GPU (sper că nu se încălzește bateria !!!). Ar fi prins bine niște mici fante pe muchia de jos din dreapta pe unde să se evacueze căldura. Dar o să fie foarte bună la iarnă să îmi încălzesc mâinile :) .

Performanțe
Nu am rulat nici un benchmark ci doar am preluat datele de aici.
Zice cam așa:
"... scorul lui Aria Mini a fost de 2901 puncte. Tableta a mai înregistrat 4410 puncte în Quadrant şi 1420 în Vellamo, în cadrul testului HTML5. În testul Metal din Vellamo scorul atins este de 444 puncte."
Are performanțe foarte bune datorită procesorului dual core de 1.5 Ghz și acest lucru se simte în funcționare.

Bateria
Tableta se descarcă destul de repede dacă ecranul este setat la maxim (1 - 2 ore). În schimb se va descarcă foarte încet dacă luminozitatea este setată la minim (4 - 5 ore). Jocurile de asemenea consumă foarte repede bateria. Browsing-ul, cititul de cărți în format electronic sau editare de texte consumă destul de puțin. Per total dacă se setează o luminozitate minimă bateria tine minim 3 - 4 ore, ceea ce este rezonabil. Ca și GPS în mașină recomand conectarea permanentă la încărcător pentru că bateria se consumă destul de repede și o să te trezești în mijlocul unui mare oraș ... fără localizare prin GPS.

GPS-ul

Tableta vine cu un soft preinstalat dar acest soft funcționează doar dacă conexiunea la internet este activă. A trebuit să îmi instalez un program ce poate fi folosit offline. Actualizarea poziției se face destul de bine. Am o singură obiecție, datorită faptului că în trafic e destul de mult zgomot câteodată nu o aud pe fătuca care îmi spune în ce direcție să virez. Cred că asta ține și de software-ul pe care l-am instalat.


Concluzie
Pro:
- Performanțe foarte bune
- Display bun
- Experiență de navigare foarte bună
- GPS
- Rulează orice program sau joc disponibil pentru Android
- Bateria ține destul de mult
- Prețul este foarte bun - recomand să cumperi de pe emag.ro
Contra:
- Designul este cam nereușit
- Se încălzește în partea din spate jos
- Carcasa este din plastic
- Camera de pe spate este de doar 2 MP
- Greutatea e destul de mare 468 g (fiica mea de 4 ani se cam chinuie să o manipuleze)

Concluzia finală: Eu personal recomand această tabletă.

O zi bună tuturor!

marți, 4 iunie 2013

Sursa de tensiune liniară (bazat pe LM317) - Afisor de tensiune (7)

Afișorul de tensiune a început sa prindă contur dar cu foarte multe piedici, ba se strica una, ba se strica alta. În momentul acesta placa funcționează și controlerul dă toate semnalele către LCD, dar acesta refuza sa funcționeze. Cred că s-a paradit ceva în integratul de pe placa LCD-ului. O să mai dureze un pic până o să cumpăr altul. Până atunci o să pun la punct soft-ul. Afișorul arată cam așa în momentul acesta:

Iar software-ul de inițializare și control LCD bazat pe soft-ul arduino arată cam așa:
// include the library code:
#include "LiquidCrystal.h"

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Pin 7 has an LED connected on most Arduino boards.
// give it a name:
int ledLow = 7;
int ledTest = 8;
int voltajValue = 0;  // variable to store the value coming from voltage
int voltajPin = A0;    // select the input pin for the voltage

const int R1 = 3000; // value for a maximum voltage of 20 volts
const int R2 = 1000;
// determine by voltage divider resistors, see text
const int resistorFactor = 255 / (R2/(R1 + R2));
const int batteryPin = 0; // +V from battery is connected to analog pin 0

// the setup routine runs once when you press reset:
void setup() {    
  Serial.begin(9600);  
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Voltmetru v1.0");
  // initialize voltage pin
  pinMode(voltajPin, INPUT);
  // initialize the digital pin as an output.
  pinMode(ledLow, OUTPUT);    
  // initialize the digital pin as an output.
  pinMode(ledTest, OUTPUT);  
  delay(500);               // wait for a second
}

// the loop routine runs over and over again forever:
void loop() {
  float volts;
  lcd.setCursor(0, 0);
  lcd.print("Voltaj masurat: ");  
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);

  voltajValue = analogRead(voltajPin);

  Serial.println(voltajValue ); // print the raw value 
  
  lcd.print(voltajValue);
  lcd.setCursor(0, 1);
  
  SetToHigh(ledTest);  // turn the LED on (HIGH is the voltage level)    
  SetToLow(ledTest);   // turn the LED off by making the voltage LOW  
}


void SetToHigh(int led)
{
  digitalWrite(led, HIGH); // turn the LED off by making the voltage LOW
  delay(500);              // wait for a second
}
void SetToLow(int led)
{
  digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  delay(500);             // wait for a second
}

Circuitul LCD se leagă la placa bazată pe Arduino pe următorii pini:
- LCD RS pin to digital pin 12
- LCD Enable pin to digital pin 11
- LCD D4 pin to digital pin 5
- LCD D5 pin to digital pin 4
- LCD D6 pin to digital pin 3
- LCD D7 pin to digital pin 2
- LCD R/W pin to ground
- 10K resistor:
- ends to +5V and ground
- wiper to LCD VO pin (pin 3)

Sper sa nu fi greșit nimic. Deocamdată soft-ul ar trebui sa afișeze valoarea neprocesată a voltajului citit pe pinul analog A0. În postul următor o sa calculez rezistentele și o sa vedem ce iasă.
O seara faină tuturor.