vineri, 17 decembrie 2010

Placile noi

Ieri, chiar inainte sa plec la intalnirea Tehnorama, a sosit LPCXpresso cu LPC1343, dupa doar 47 de ore de cand am trimis comanda! Venind din Anglia prin Germania si pana la mine la usa mi se pare un timp super OK pentru Farnell si UPS, bravo lor!

Despre continut nu e mare lucru de spus, doar placa si un cupon cu seria pentru compilator (probabil, desi nu am avut nevoie de ea ca sa-l inregistrez).
Astazi dupa-amiaza am taiat si lipit headere stil "Arduino", evident ;-)
Cum am scos ciocanul de lipit din priza am avut nevoie de el din nou... a sunat la usa curierul DHL care aducea cele doua placi de la Texas Instruments MSP430 Launchpad.
Aici ar fi mai multe de spus despre continutul pachetului. Este de departe cea mai ingrijita si bine prezentata placa de dezvoltare de care m-am "lovit" pana acum! Iar despre pretul de 13 (treisprezece) RON pe bucata, cu tot cu transportul pana acasa, nu prea vad ce ar mai fi de spus... nu cred ca acopera nici macar ambalajele. A meritat asteptarea de aproape doua luni :D
N-am mai facut poza la continut, aici e un link catre pagina Texas Instruments, cu mentiunea ca in poza nu apare cristalul (sau nu-l vad eu).

Evident, n-a scapat nici Launchpad-ul de conectorii gen "Arduino" ;-)

Am instalat compilatoarele, am rulat demo-urile, detaliile le voi posta in urmatoarele zile in paginile aferente (accesibile din meniul "familii de microcontrolere"). Tot ce pot spune deocamdata este ca timpul in care s-a initializat MSP430 Launchpad m-a naucit total... imediat cum am conectat placa prima data pe USB a si pornit demo-ul :)
Acesta e un pic mai interesant decat obisnuitul "LED blink" si merita descris. La initializare cele doua LED-uri (rosu si verde) se aprind alternativ. Dupa apasarea butonului utilizator se inregistreaza temperatura actuala. Pe masura ce temperatura creste, LED-ul rosu lumineaza din ce in ce mai puternic. Atunci cand temperatura ajunge sa scada fata de cea initiala, LED-ul verde lumineaza din ce in ce mai puternic. Senzorul de temperatura este in interiorul microcontrollerului.

miercuri, 15 decembrie 2010

Astept noile placi

Ieri am comandat un LPCXpresso cu LPC1343 si tot ieri am avut surpriza sa primesc in sfarsit mesaj de la Texas Instruments ca mi-au trimis cele doua placi MSP430 Launchpad comandate acum vreo doua luni :)

Dupa cum se poate vedea, celelalte le asteapta cu nerabdare sa li se alature ;-)

vineri, 10 decembrie 2010

Arduino Powered Scorpion

La intalnirea Tehnorama de ieri am avut ocazia sa vedem prin videoconferinta in direct de la Timisoara Arduino Powered Scorpion.
"Jucaria" e superba, baietii merita toate laudele! Zgomotul pe care-l face pasind pe parchet este de neuitat :D



Mai multe detalii pe Tehnorama

marți, 7 decembrie 2010

Fire de executie (Threads) in .NET

Fire de executie (Threads) in .NET Micro Framework

Cu ce ne ajuta?
Procesoarele executa o singura instructiune la un moment dat. Cu toate acestea, atunci cand lucram pe un PC, ni se pare ca mai multe programe sunt rulate in acelasi timp. De fapt, fiecare program se executa un timp foarte scurt, dupa care se trece la urmatorul program, apoi la urmatorul s.a.m.d.
Folosind thread-urile din .NET Micro Framework putem amana (delay) anumite instructiuni, putem executa periodic o verificare sau o alta actiune, putem scrie pe un card SD si, in acest timp, putem face alte lucruri mai urgente.

Cum facem asta din C#?
Vestea buna este ca avem deja un thread principal in orice program! Metoda Main a programului este executata intr-un thread, astfel incat putem utiliza direct delay-uri (sleep).

using System;
using System.Threading;

using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;

namespace FEZ_Panda_Application1
{
public class Program
{
public static void Main()
{
while (true)
{
Debug.Print("La culcare pentru o secunda ;-)");
Thread.Sleep(1000);
}
}
}
}


Programului va afisa, din secunda in secunda, textul:
La culcare pentru o secunda ;-)
La culcare pentru o secunda ;-)
La culcare pentru o secunda ;-)
.....

Un alt thread
Avem o instructiune care se executa la fiecare secunda... complicam un pic treaba si mai facem un thread, care sa se execute din 5 in 5 secunde.

using System;
using System.Threading;

using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;

namespace FEZ_Panda_Application1
{
public class Program
{
public static void ThreadLa5Secunde()
{
while (true)
{
Debug.Print("Din 5 in 5 secunde...");
Thread.Sleep(5000);
}
}
public static void Main()
{
Thread UnAltThread;
UnAltThread = new Thread(ThreadLa5Secunde);
UnAltThread.Start();

while (true)
{
Debug.Print("Din secunda in secunda...");
Thread.Sleep(1000);
}
}
}
}

Iesirea programului:
Din 5 in 5 secunde...
Din secunda in secunda...
Din secunda in secunda...
Din secunda in secunda...
Din secunda in secunda...
Din secunda in secunda...
Din 5 in 5 secunde...
Din secunda in secunda...
Din secunda in secunda...
Din secunda in secunda...
Din secunda in secunda...


Subiectul este extrem de vast, mai multe informatii (nu si despre Micro Framework, dar sunt bune) gasiti la:
Despre fire de executie in c# (threads)
Threading in C# - documentatie online si PDF de descarcat.

joi, 2 decembrie 2010

Preturi Arduino - episodul 2

Sa vedem unde si la ce preturi mai gasim Arduino in Romania, ca tot a inceput "luna cadourilor" ;-)

O enumerare a magazinelor, in ordine alfabetica:

1. Electronista - De cand nu am mai scris pe tema asta, magazinul s-a inchis permanent. Pacat, preturile erau mai mult decat OK. In plus nici nu se mai gasesc pe nicaieri pe la noi produse de la DFRobot...

2. Magazinul de Mecatronica - A aparut o noua sursa de Arduino, multumesc SupradozzaDeVisse pentru informatie! Ideea interesanta este de a comercializa pachete "Plus", adica Arduino + diverse componente pentru primele proiecte (LED-uri, rezistori, push button si o cutiuta pentru ele). Exista variantele Uno Plus (130 lei) si Mega 2560 Plus (250 lei).

3. Turuga - Pe site apar doar Duemilanove (120 lei) si Mega 1280 (255 lei), doar la comanda, dar se pot aduce si altele.

4. RoboFun - Aici gasim pe stoc diverse placi Arduino si nu numai!
- Arduino: Mega2560 (250 lei), Nano (179 lei), Pro (90,00 lei), Pro Mini 328 - 5V/16MHz (85 lei), Uno (119 lei), ArduPilot Mega (283 lei), OpenLog (104 lei), LilyPad (93 lei)
- .NET: FEZ Domino, FEZ Panda, Netduino
- Altele: Beagle Board, Chumby Hacker
Ideea interesanta pentru proiecte de inceput de aici este brick (un modul usor de conectat prin cablu la microcontroler).

5. RoboTop - Duemilanove (190 lei), respectiv Mega 1280 (385 lei)

Cam atat pe moment. Daca am scapat din vedere pe cineva din Romania astept comentarii si voi modifica postarea :)

marți, 30 noiembrie 2010

Bitlash - un alt shell pentru Arduino

Bitlash este un shell si, in acelasi timp, un mediu de programare embedded simplu si usor de folosit pentru Arduino. Mai este si open source ;-)

Bitlash ruleaza pe Arduino si accepta multe dintre functiile obisnuite pe care le gasim in documentatia Arduino.

Moduri de lucru cu Bitlash:
1. Comenzile se pot introduce si interpreta interactiv, cu ajutorul "Serial Monitor" din IDE-ul Arduino (vezi observatiile de mai jos), sau cu un program gen "Hyperterminal".
2. Mai interesant, pot fi salvate secvente macro in EEPROM si le putem rula oricand dorim, inclusiv la boot-area placii!
3. Si mai interesant, functiile built-in ale Bitlash pot fi apelate din propriile sketch-uri, adaugand biblioteca aferenta!!
4. Inca si mai interesant, putem adauga propriile noastre functii la biblioteca Bitlash, cu ajutorul addBitlashFunction()!!!


Sketch-ul demo incarcat pe un Arduino 2009 cu bootloader-ul normal


Sketch-ul demo incarcat pe un Arduino 2009 cu bootloader-ul Optiboot... de remarcat diferenta de spatiu liber ramas...


Cateva comenzi simple


HELP! :D

Documentatia este destul de mare, asa ca nu mai intru in alte amanunte.

Observatii:
- daca utilizati "Serial Monitor" din kit-ul Arduino pentru comunicare, fiecare comanda trebuie finalizata cu tasta apostrof "`" aflata in general pe tastatura sub Escape, in stanga sus, inainte de cifra 1;
- ocupa mult loc... dar cred ca merita ;-)
- am incercat mai de mult biblioteca inclusa in kit-ul Arduino Firmata, prefer totusi Bitlash...