Platforma Pachube pentru Internet of Things s-a transformat in Cosm.
Despre Pachube am mai scris in acest blog, raman la parerea ca este platforma ideala daca aveti senzori de la care vreti sa preluati datele si sa le afisati grafic pe web.
Sunt disponibile diverse biblioteci pentru Arduino, mbed, python etc.
sâmbătă, 12 mai 2012
joi, 26 aprilie 2012
Autentificare cu utilizator si parola folosind Arduino Leonardo
English abstract: unsecured authentication method, using email and password, in just two pushes of a button, with the Olimex AVR-T32U4 (Arduino Leonardo like) board
Dupa mii de autentificari cu acelasi cont (utilizator si parola), de mai multe ori pe zi, pe diverse dispozitive, 7 zile din 7, am inceput sa ma cam plictisesc ;)
Cum tot aveam la indemana noua placa AVR-T32U4 de la Olimex, compatibila cu Arduino Leonardo, m-am hotarat sa o utilizez pentru autentificare cu contul meu de Facebook... cu doar doua apasari de buton...
Pentru asta este suficienta placa si un cablu USB de conectare. Breadboardul pe care il vedeti in poza de mai jos e pus doar pentru ca imi place cum arata :D
Functionarea este extrem de simpla. Deschidem in browser pagina pe care dorim sa ne autentificam si verificam sa fie cursorul in campul unde trebuie introdusa adresa de email:
Apasam butonul marcat "BUT" de pe placa. Adresa de email este acum completata si am trecut pe campul urmator, cel de parola.
Apasam din nou butonul "BUT" si gata, ne-am autentificat ;)
AVERTISMENT: solutia nu este sigura absolut de loc! Oricine are acces la placa are acces si la cont! Posibile imbunatatiri: adaugarea unei tastaturi numerice si utilizarea unui cod PIN; criptarea datelor; stergerea informatiilor de autentificare dupa 3 incercari nereusite de introducere a PNI-ului, ecran LCD, mai multe conturi etc.
Edit: daca cele doua campuri (utilizator si parola) sunt in ordine, adica daca ne putem deplasa intre utilizator si parola cu tasta TAB, codul merge modificat pentru a se realiza autentificarea cu o singura apasare de buton.
Dupa mii de autentificari cu acelasi cont (utilizator si parola), de mai multe ori pe zi, pe diverse dispozitive, 7 zile din 7, am inceput sa ma cam plictisesc ;)
Cum tot aveam la indemana noua placa AVR-T32U4 de la Olimex, compatibila cu Arduino Leonardo, m-am hotarat sa o utilizez pentru autentificare cu contul meu de Facebook... cu doar doua apasari de buton...
Pentru asta este suficienta placa si un cablu USB de conectare. Breadboardul pe care il vedeti in poza de mai jos e pus doar pentru ca imi place cum arata :D
/*
Autentificare cu user si parola.
Total nesigur... oricine are acces, fara nici o verificare ;)
@2012 by http://ro-duino.blogspot.com/
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Bazat pe exemplul de la Olimex
http://olimex.com/dev/avr-t32u4.html
*/
#define BUTTONINIT DDRE &= ~(1<<2)
#define BUTTONSTATE ((PINE & B00000100) != 0)
int previousButtonState = HIGH; // for checking the state of a pushButton
int counter = 0; // button push counter
void setup() {
BUTTONINIT;
}
void loop() {
int buttonState = BUTTONSTATE;
if ((buttonState != previousButtonState) && (buttonState == HIGH)) {
switch (counter) {
case 0:
Keyboard.print("iardsoft@yahoo.com\t"); // TAB-ul de dupa email ne trece la campul de parola
counter = 1;
break;
case 1:
Keyboard.println("Aici-Pun-Parola"); // ENTER-ul de la println realizeaza autentificarea
counter = 0;
break;
}
}
previousButtonState = buttonState;
}
Functionarea este extrem de simpla. Deschidem in browser pagina pe care dorim sa ne autentificam si verificam sa fie cursorul in campul unde trebuie introdusa adresa de email:
Apasam butonul marcat "BUT" de pe placa. Adresa de email este acum completata si am trecut pe campul urmator, cel de parola.
Apasam din nou butonul "BUT" si gata, ne-am autentificat ;)
AVERTISMENT: solutia nu este sigura absolut de loc! Oricine are acces la placa are acces si la cont! Posibile imbunatatiri: adaugarea unei tastaturi numerice si utilizarea unui cod PIN; criptarea datelor; stergerea informatiilor de autentificare dupa 3 incercari nereusite de introducere a PNI-ului, ecran LCD, mai multe conturi etc.
Edit: daca cele doua campuri (utilizator si parola) sunt in ordine, adica daca ne putem deplasa intre utilizator si parola cu tasta TAB, codul merge modificat pentru a se realiza autentificarea cu o singura apasare de buton.
void loop() {
int buttonState = BUTTONSTATE;
if ((buttonState != previousButtonState) && (buttonState == HIGH)) {
Keyboard.print("iardsoft@yahoo.com\t"); // TAB-ul de dupa email ne trece la campul de parola
Keyboard.println("Aici-Pun-Parola"); // ENTER-ul de la println realizeaza autentificarea
}
previousButtonState = buttonState;
}
Etichete:
arduino,
atmega32u4,
leonardo,
usb
luni, 9 aprilie 2012
Arduino tradus in limba romana
Am fost informat despre o initiativa interesanta a celor de la roroid: traducerea mediului de dezvoltare Arduino in limba romana!
Puteti sa incercati ultima versiune de pe pagina de mai jos, sau va puteti aduce contributia la traducere :)
Traducere Arduino IDE in Romana [finalizat]
Edit (26 iunie 2012): am actualizat link-ul de mai sus
Succes!
Puteti sa incercati ultima versiune de pe pagina de mai jos, sau va puteti aduce contributia la traducere :)
Traducere Arduino IDE in Romana [finalizat]
Edit (26 iunie 2012): am actualizat link-ul de mai sus
Succes!
Etichete:
arduino,
comunitate
sâmbătă, 31 martie 2012
SimPlot - vizualizare date de la Arduino
SimPlot este un program gratuit si foarte simplu de utilizat impreuna cu Arduino. Permite vizualizarea datelor transmise de la orice microcontroler prin portul serial. Pot fi urmarite pana la patru canale analogice.
In exemplul de mai jos am legat la un Arduino doua potentiometre si am facut capturi de ecran in timp ce le roteam de zor ;)
In exemplul de mai jos am legat la un Arduino doua potentiometre si am facut capturi de ecran in timp ce le roteam de zor ;)
/*
SimPlot Demo
Samples Analog Input and sends them over serial port to be plotted in SimPlot.
This Demo software uses the default serial port "Serial".
Upto to 4 channels of data can be plotted.
For details of SimPlot go to www.negtronics.com/simplot
Simplificata pentru postare pe blog - doua canale
Versiunea completa este la pagina de mai sus
*/
void setup()
{
Serial.begin(57600);
}
int buffer[20]; //Buffer needed to store data packet for transmission
int data1;
int data2;
void loop()
{
//Read Analog channels. You can connect accelerometer, gyro, temperature sensor etc to these channels
data1 = analogRead(0);
data2 = analogRead(1);
plot(data1,data2); //Plots 2 channels of data
delay(10); //Read and plot analog inputs every 10ms.
}
//Function that takes 2 integer values and generates a packet to be sent to SimPlot.
void plot(int data1, int data2)
{
int pktSize;
buffer[0] = 0xCDAB; //SimPlot packet header. Indicates start of data packet
buffer[1] = 2*sizeof(int); //Size of data in bytes. Does not include the header and size fields
buffer[2] = data1;
buffer[3] = data2;
pktSize = 2 + 2 + (2*sizeof(int)); //Header bytes + size field bytes + data
//IMPORTANT: Change to serial port that is connected to PC
Serial.write((uint8_t * )buffer, pktSize);
}
vineri, 30 martie 2012
Arduino vs. alte placi de dezvoltare compatibile
Cele patru placi de dezvoltare au fost alese pe criteriul compatibilitatii cu Arduino, atat ca forma, cat si ca mediu de dezvoltare. Nu am inclus FEZ Panda si nici Netduino, din cauza mediului de devoltare Visual Studio. Intr-o postare viitoare le voi include si pe acestea.
Tot intr-o postare viitoare voi face si cateva teste de viteza si voi adauga o lista cu bibliotecile care sunt 100% compatibile cu Arduino.
Am ales pentru comparatie pretul de la Farnell (fara TVA si fara transport).
Paginile oficiale:
Arduino Uno
chipKIT Uno32
Olimexino-STM32
PIC32-Pinguino-OTG
Tot intr-o postare viitoare voi face si cateva teste de viteza si voi adauga o lista cu bibliotecile care sunt 100% compatibile cu Arduino.
De la stanga la dreapta si de sus in jos: PIC32-Pinguino, chipKIT Uno32, Olimexino-STM32, Arduino Uno
Am ales pentru comparatie pretul de la Farnell (fara TVA si fara transport).
Paginile oficiale:
Arduino Uno
chipKIT Uno32
Olimexino-STM32
PIC32-Pinguino-OTG
miercuri, 28 martie 2012
Conexiune seriala Arduino - Android
Au aparut in ultima vreme o multime de placi (gen IOIO, Mega ADK etc) pentru cei care vor sa lucreze cu Arduino si Android. O problema ar fi pretul...
Daca aveti norocul sa dispuneti de o tableta cu USB host, conectarea directa (prin cablul USB, la fel ca la PC) nu mai reprezinta asa o problema :)
Anul trecut am achizitionat cea mai ieftina tableta care avea USB host disponibila la acea data pe piata din Romania : Evolio EvoTab. Mai jos vom vedea cum se poate conecta o placa Arduino direct la tableta.
AVERTISMENT: procedura necesita root, lucru care poate duce la pierderea garantiei, defectarea echipamentului si/sau alte probleme de care, evident, raspundeti doar voi ;)
Avem nevoie de urmatoarele:
1. o placa Arduino Uno
2. o tableta care dispune de USB host
3. cablul USB; in principiu este bun cablul pe care-l folositi la Arduino pentru legatura la PC, daca aveti la tableta o mufa USB type A
4. o modalitate de a obtine root pe tableta
5. o aplicatie gen Terminal pe tableta (de exemplu Android Terminal Emulator din Market/Play sau cum se mai numeste zilele astea...)
6. aplicatia BusyBox (tot de acolo, daca nu este instalata deja pe tableta)
Principala problema o reprezinta root-area tabletei, la care nu va pot ajuta ;)
Dupa aceea instalati cele doua aplicatii (Terminal si BusyBox).
Porniti aplicatia Terminal si scrieti comanda "su", urmata de un Enter, pentru a verifica root-area. Daca merge e bine... problema e ca si rezolvata.
In exemplul din imaginea de mai sus am pus Bitlash pe Arduino si am modificat sketch-ul cu viteza la 9600 in loc de 57600.
Conectam placa Arduino la tableta si pornim modul USB host din setari. Placa ar trebui sa fie pe "ttyACM0", lucru pe care-l putem verifica usor din terminal, cu comanda de mai jos:
Daca totul e OK pana aici urmeaza comanda de conectare:
Mult succes!!!
Daca aveti norocul sa dispuneti de o tableta cu USB host, conectarea directa (prin cablul USB, la fel ca la PC) nu mai reprezinta asa o problema :)
Anul trecut am achizitionat cea mai ieftina tableta care avea USB host disponibila la acea data pe piata din Romania : Evolio EvoTab. Mai jos vom vedea cum se poate conecta o placa Arduino direct la tableta.
AVERTISMENT: procedura necesita root, lucru care poate duce la pierderea garantiei, defectarea echipamentului si/sau alte probleme de care, evident, raspundeti doar voi ;)
Arduino, Android si mai vechiul meu prieten, Bitlash
Avem nevoie de urmatoarele:
1. o placa Arduino Uno
2. o tableta care dispune de USB host
3. cablul USB; in principiu este bun cablul pe care-l folositi la Arduino pentru legatura la PC, daca aveti la tableta o mufa USB type A
4. o modalitate de a obtine root pe tableta
5. o aplicatie gen Terminal pe tableta (de exemplu Android Terminal Emulator din Market/Play sau cum se mai numeste zilele astea...)
6. aplicatia BusyBox (tot de acolo, daca nu este instalata deja pe tableta)
Principala problema o reprezinta root-area tabletei, la care nu va pot ajuta ;)
Dupa aceea instalati cele doua aplicatii (Terminal si BusyBox).
Porniti aplicatia Terminal si scrieti comanda "su", urmata de un Enter, pentru a verifica root-area. Daca merge e bine... problema e ca si rezolvata.
In exemplul din imaginea de mai sus am pus Bitlash pe Arduino si am modificat sketch-ul cu viteza la 9600 in loc de 57600.
Conectam placa Arduino la tableta si pornim modul USB host din setari. Placa ar trebui sa fie pe "ttyACM0", lucru pe care-l putem verifica usor din terminal, cu comanda de mai jos:
busybox dmesg | busybox grep tty
Daca totul e OK pana aici urmeaza comanda de conectare:
busybox microcom -s 9600 /dev/ttyACM0
Mult succes!!!
Etichete:
android,
arduino,
bitlash,
interpretor,
serial
duminică, 25 martie 2012
StickOS BASIC pentru chipKIT
Despre placile chipKIT Uno32 si Max32 de la Digilent am mai scris. Mediul de dezvoltare este bazat pe Arduino, multe dintre sketch-urile Arduino ruleaza fara probleme si fara modificari, pretul lor este foarte bun, avand in vedere ca sunt "dotate" cu microcontrolere PIC32 de la Microchip (mai performante decat cele de pe placile Arduino uzuale).
Partea si mai interesanta vine atunci cand comparam memoria SRAM: 2KB pentru Arduino Uno fata de 16KB pentru chipKIT Uno32...
Datorita acestei memorii mai mari putem sa folosim cu placile chipKIT un mediu de programare interactiv precum StickOS BASIC.
StickOS include un editor usor de folosit (daca ati lucrat cu Spectrum, Commodore si altele asemanatoare va veti simti ca acasa), un compilator linie-cu-linie, un debugger interactiv foarte bun, un profiler si un sistem de fisiere flash (pentru stocarea programelor si a parametrilor). Toate acestea ruleaza in intregime pe microcontroler si sunt controlate printr-o interfata interactiva in linie de comanda :)
Totul se realizeaza utilizand orice program gen hyperterminal (compatibil ANSI sau VT100), pe orice dispozitiv care permite acest lucru. Dupa ce avem un program functional, putem seta microcontrolerul sa-l ruleze automat.
Documentatia este foarte bine scrisa si destul de cuprinzatoare. Dupa cum se poate vedea in imaginile de mai jos, dispunem de un help detaliat si in linia de comanda :)
In ultima imagine vedem introducerea unui program gen blink (comanda "new" si liniile introduse), rularea programului ("run"), terminarea executiei (cu tastele Ctrl + C), modificarea unei linii din program ("edit 40"), listarea ("list" - de remarcat indentarea din while...), pornirea trasarii ("trace on").
Cateva raspunsuri la intrebarea "de ce am alege sa lucram in felul asta, cand exista atatea compilatoare": in opinia mea nimic nu se compara cu executia linie cu linie a unui program atunci cand invatam sa lucram cu un dispozitiv nou; debug-ul si trasarea programelor ne ajuta sa vedem clar unde gresim; putem lucra de pe orice laptop, notebook, PC, tableta, telefon care permite conexiune seriala, fara sa mai instalam nimic in afara de un terminal; pentru ca se poate si e chiar distractiv ;-)
Partea si mai interesanta vine atunci cand comparam memoria SRAM: 2KB pentru Arduino Uno fata de 16KB pentru chipKIT Uno32...
Datorita acestei memorii mai mari putem sa folosim cu placile chipKIT un mediu de programare interactiv precum StickOS BASIC.
StickOS include un editor usor de folosit (daca ati lucrat cu Spectrum, Commodore si altele asemanatoare va veti simti ca acasa), un compilator linie-cu-linie, un debugger interactiv foarte bun, un profiler si un sistem de fisiere flash (pentru stocarea programelor si a parametrilor). Toate acestea ruleaza in intregime pe microcontroler si sunt controlate printr-o interfata interactiva in linie de comanda :)
Totul se realizeaza utilizand orice program gen hyperterminal (compatibil ANSI sau VT100), pe orice dispozitiv care permite acest lucru. Dupa ce avem un program functional, putem seta microcontrolerul sa-l ruleze automat.
Documentatia este foarte bine scrisa si destul de cuprinzatoare. Dupa cum se poate vedea in imaginile de mai jos, dispunem de un help detaliat si in linia de comanda :)
In ultima imagine vedem introducerea unui program gen blink (comanda "new" si liniile introduse), rularea programului ("run"), terminarea executiei (cu tastele Ctrl + C), modificarea unei linii din program ("edit 40"), listarea ("list" - de remarcat indentarea din while...), pornirea trasarii ("trace on").
Cateva raspunsuri la intrebarea "de ce am alege sa lucram in felul asta, cand exista atatea compilatoare": in opinia mea nimic nu se compara cu executia linie cu linie a unui program atunci cand invatam sa lucram cu un dispozitiv nou; debug-ul si trasarea programelor ne ajuta sa vedem clar unde gresim; putem lucra de pe orice laptop, notebook, PC, tableta, telefon care permite conexiune seriala, fara sa mai instalam nimic in afara de un terminal; pentru ca se poate si e chiar distractiv ;-)
Abonați-vă la:
Postări (Atom)











