miercuri, 25 ianuarie 2012

Programarea microcontrollerelor PIC - Lecția 3

Cerințe preliminare

Înainte de a porni la drum este necesar:

1. să aveți o placă de dezvoltare minimală
Pentru placa de dezvoltare există două posibilități:
   - fie o veți construi (în fond sunteți electroniști și DIY-eri, nu-i așa?)
   - fie o veți cumpăra (dacă aveți de unde)

În privința plăcii de dezvoltare, în cazul în care o veți construi singur, este bine să vă gandiți că există în esență două abordări. Prima este de tipul "totul într-un singur loc" (o placă cât mai completă posibil). Aceasta ar trebui să integreze un soclu robust (eventual ZIF) și diverse elemente "periferice":
- microswitch-uri
- leduri
- memorie EEPROM
- ceas de timp real (RTC)
- interfață RS232 și / sau RS 485
- interfață pentru LCD alfanumeric și / sau grafic
- interfață pentru card SD

- circuite integrate pentru comenzi de putere (tranzistoare Darlington, ULN2003, relee) 

Modele tipice sunt plăcile de dezvoltare produse de firma Mikroelektronika (www.mikroe.comwww.mikroe.com) sau cunoscuta placă poloneză EvB4.3 (http://zestawyuruchomieniowe.pl/). 



Dincolo de avantajele indiscutabile, există însă și câteva dezavantaje importante:
- complexitatea abordării
- o abordare judicioasă a alocării pinilor soclului ZIF la utilizarea de microcontrollere cu diverse capsule (8, 14, 16, 18, 28, 40 pini)
- indiferent de complexitate, întotdeauna va fi necesară conectarea cu plăci de extensie externe (pentru componente neprevăzute pe placă)

Al doilea tip de abordare este cel "modular" (o placa pe care să existe microcontrollerul, extensiile de porturi, eventual alimentarea și un convertor USB - serial). În acest sens, un exemplu faimos este cel al plăcii Arduino, împreună cu plăcile sale de extensie (numite shield-uri). 


Sunt sigur, ați înțeles deja: prețul plătit pentru o construcție mai simplă a plăcii este că fiecare aplicație ar putea avea nevoie de un shield dedicat. 

Bazat pe microcontrollerele AVR (Atmel), modelul de succes Arduino a câștigat nenumărați adepți, dar și competitori. În acest sens se pot aminti Pinguino, cu variante pe 8 sau 32 de biți (www.pinguino.cc). În imagine este PIC32 Pinguino produsă de firma bulgară Olimex (www.olimex.com).


Dar despre cele mai noi apariții vom vorbi în lecția următoare...

sâmbătă, 21 ianuarie 2012

Screen recorder-ul Camtica


Facând parte din categoria programelor înregistratoare de desktop, Camtica vă permite să creaţi înregistrări profesionale de ecran, prezentări, tutoriale şi multe altele. Puteţi înregistra orice activitate pe ecran cu click-uri animate de mouse, înregistrarea incluzând sunet (prin intermediul microfonului) sau imagine (prin intermediul webcam-ului). Secvenţele video rezultate pot fi salvate în diferite formate, inclusiv AVI şi WMV.


La ce poate fi folosit Camtica?
* pentru a crea înregistrări profesionale ale ecranului, demonstraţii, prezentări, screencast-uri şi (video)tutoriale 
* pentru a crea videoclipuri eficiente care vă ajută să învăţati pe alţii sau să vindeţi anumite produse şi / sau servicii
* pentru a crea clipuri demonstrative pentru orice program software (de exemplu un tutorial video despre învăţarea Eagle, Design Spark sau ExpressPCB - suite software foarte utilizate în electronică)
* pentru a arăta clienţilor cum să utilizeze produsul dvs.
* pentru a crea un set de videoclipuri care pot răspunde la întrebările dumneavoastră sau la cele mai frecvente întrebări (FAQ)
* pentru a putea partaja înregistrările dvs. pe YouTube, Screencast.com şi alte site-uri video


Caracteristici:
înregistrează întregul desktop, o regiune dreptunghiulară selectată, o regiune dinamică în jurul cursorului mouse-ului sau imaginea de pe webcam
înregistrează orice obiect de pe ecran (inclusiv ferestre, obiecte, meniuri), ecranul complet sau regiuni dreptunghiulare
înregistrează desktop-ul împreună cu sunetul şi imaginea de pe webcam - permite astfel  personalizarea videoclipurilor dvs.
* poate înregistra videochat-uri, apeluri Skype video, jocuri jucate pe site-uri, filme flash 
* permite iluminarea mouse-ului pentru vizualizarea poziţiei cursorului
înregistrează în mai multe formate de fişiere video, inclusiv AVI şi WMV
* suportă diverse codec-uri video şi audio
* actualizări gratuite pe întreaga durata de viaţă şi upgrade-uri ale produslui


Cerinţele de sistem sunt obişnuite (Windows XP / 2000 / 2003 / Vista / Windows 7) iar Camtica este un program foarte uşor de utilizat.


Mai multe informaţii despre Camtica 4.3.22811 puteţi obţine la adresa de web (inclusiv explicaţii asupra modului de utilizare):
http://jiteco.com/screen_recorder_software.html

sâmbătă, 14 ianuarie 2012

Tutorial despre microcontrollerele PIC - Lecția 2


Faţă de posibilităţile electronicii cu precădere analogice, în aceste zile tot mai mulţi tineri se simt atraşi de ideea de a învăţa să scrie aplicaţii cu microcontrollere (o componentă atrăgătoare şi magică totodată). Preţul relativ scăzut al componentelor, inteligenţa înglobată în chip, popularitatea mediilor de dezvoltare (unele dintre ele gratuite) şi dorinţa de asigurare de cunoştinţe solide pe termen lung ar putea fi doar câteva dintre motivele acestei tendinţe. 


Pentru început, prezentarea aceasta ar fi putut avea un caracter general, indiferent dacă s-ar fi referit la microcontrollere de tip PIC (Microchip) sau AVR (Atmel) – pentru a aminti de cele mai utilizate componente de acest tip. Totuşi, pentru fixarea cunoştinţelor şi focalizarea discuţiei, vom alege să ne referim la microcontrollere de tip PIC (produse de către compania Microchip). Este posibil, ca, în viitorul apropiat, o prezentare similară să fie făcută pentru MCU AVR Atmel. 


În plus, un model de urmat va fi explicarea programelor realizate în asamblor, urmată de varianta lor într-un limbaj de nivel înalt, în scopul unei mai bune fixări a cunoştinţelor. O variantă de limbaj de nivel înalt este JALv2, foarte interesant, intuitiv si elegant, având în plus şi o caracteristică imbatabilă: este absolut gratuit. Nu în ultimul rând, JALv2 este susţinut de o echipă entuziastă de dezvoltatori, care contribuie prin munca lor generoasă la dezvoltarea şi actualizarea bibliotecilor limbajului. Oricum, despre istoricul şi evoluţia limbajului JALv2 vom mai discuta. 

vineri, 6 ianuarie 2012

Tutorial despre microcontrollerele PIC - Lecția 1


    Motto: „Dacă orice cunoştinţă pe care o deprinde un copil va fi depăşită moral înainte ca acesta să o poată folosi, care este utilitatea procesului de învăţare? Răspunsul este unul singur: unica abilitate cu adevărat competitivă şi valoroasă pe termen lung este capacitatea de a învăţa.” - Seymour Papert

Istoric


Anul 1971, prin fabricarea primului procesor de către societatea Intel, este considerat ca fiind cel care marchează începutul erei informaticii industriale. Acesta, setul 4004, proiectat de catre "legendarul" designer Federico Faggin - devenit ulterior preşedinte al faimoasei societăţi Zilog - avea deja 2300 tranzistoare integrate pe cip şi lucra cu un bus de date de 4 biţi. 4004 cuprindea o memorie fixă de 256 octeţi, o memorie RAM de 32 de biţi cu un port de ieşire de 4 biţi, un registru de deplasare de 10 biţi şi un microprocesor pe 4 biţi. 

Integrarea unui număr tot mai mare de tranzistoare pe cip a evoluat exponenţial (conform legii lui Moore), în paralel cu creşterea puterii de calcul şi a vitezei de execuţie. Ca “pietre de hotar” pe tărâmul acestor excelente realizări, au urmat celebrele 8080, 8085 şi Z80.

Avantajul principal al implementării cu microprocesor faţă de logica denumită “cablată” este aceea că se execută un program plasat în memorie, deci care se poate modifica. Acesta este principiul automatului programabil, la care sunt conectate toate intrările unei aplicaţii, programul administrând ieşirile în virtutea ecuaţiilor predefinite de către proiectant.

Logica clasică (numit
ă şi cablată), deşi încă extrem de aplicabilă, pare rămasă puţin în urmă faţă de avântul acestor componente noi şi performante, care îmbunătăţesc enorm flexibilitatea utilizării. În ziua de azi, majoritatea realizărilor electronice fac apel la aceste componente, care pot controla eficient practic orice element de automatizare, de uz casnic sau profesional.

Apariţia microcontrollerelor care asociază unui microprocesor “de bază” un program integrat în circuit, ca şi integrarea perifericelor şi a mai multor tipuri de memorie (RAM, EEPROM şi Flash) a permis evoluţia montajelor în sensul simplităţii şi a vitezei. Mai mult decât atât, prin progresul proceselor tehnologice o mulţime de periferice de maxim
ă utilizare au fost integrate în circuit (exemple: USB, I2C, RS232 / RS485, etc.). Ca  rezultat direct, există în acest moment pe piaţă numeroase familii de microcontrollere.

La începutul anilor 90, compania Microchip a proiectat un microcontroller CMOS (Complementary Metal Oxide Semiconductor – termenul se referă la tehnologia de realizare), anume microcontrollerul PIC. Extrem de utilizat la ora actuală, acest dispozitiv este un compromis între simplitate în utilizare, rapiditate şi preţ de cost scăzut.

MCU (MicroController Unit - abreviere uzuală pentru microcontrollere) din această familie posedă un set de instrucţiuni redus, fapt care îl plasează în familia de circuite de tip RISC (Reduced Instruction Set Computer). Nu în ultimul rând, PIC sunt apreciate pentru curba de învăţare rapidă (este vorba doar de 35 de instrucţiuni de bază).

Încă de la apariţie, microcontrollerele PIC au fost fabricate în mai multe versiuni:
- PIC UVPROM, care se pot şterge cu ajutorul unei surse de raze ultraviolete (UV)
- PIC OTPROM, programabile o singură dată (OTP – One Time Programmable)
- PIC EEPROM şi Flash EPROM, care sunt şterse electric şi re-inscriptibile

Din familiile de mai sus, practic astăzi ultimele sunt extrem de cunoscute (componentele cu memorie Flash – exemplu PIC 16F628), datorită flexibilităţii în utilizare. Există încă variantele OTP (cu posibilitatea de a fi scrise chiar de către fabricant) pentru aplicaţii ne-modificabile. Deşi re-inscriptibile, cele din gama UV sunt la un preţ de cost ridicat, datorită prezenţei ferestrei de cuarţ plasate pe cip, care permite ştergerea cu raze ultra-violete.

Când discutăm despre PIC, discutăm în fond despre o întreagă familie de microcontrollere. Modul în care diverse microcontrollere PIC diferă unele de altele este în cantitatea de resurse integrate pe cip: dimensiunea memoriilor RAM, EEPROM şi Flash, prezenţa / absenţa anumitor periferice (cum ar fi: I2C, RS232 – serial, USB, etc.) sau frecvenţa maximă a oscilatorului (pentru a aminti doar câteva dintre ele). 

O implicaţie importantă faţă de cele spuse mai sus este necesitatea ca în funcţionare, PIC să opereze în conformitate cu caracteristicile tehnice proprii, corecte. Setarea anumitor parametri de funcţionare este prevăzută prin „cuvântul de configurare” (Configuration Word), înainte de punerea în funcţiune. 

Modul de configurare poate fi definit chiar în etapa elaborării programului (fiind chiar recomandabil sa se procedeze in acest fel). Rezultatul va fi scrierea acestui cuvânt special într-o locaţie rezervată a memoriei program, cunoscut sub numele de „cuvânt de configurare” (Configuration Word). Dar pentru că este un subiect destul de “delicat”, voi reveni pe larg cu o altă ocazie.



duminică, 4 septembrie 2011

O scurtă introducere


Acest blog este destinat celor interesați de tehnologie în general și, ca subdomenii, electronică, programare (inclusiv software embedded) computere și software. Blogul caută să umple un gol de resurse de natură teoretică și practică, pe care este evident că școala românească - din diverse motive, care pot fi discutate, dar cred că fără finalitate practică - nu le poate furniza. În paginile sale veți găsi în principal articole complete despre proiecte de interes de tip DIY (Do It Yourself), descrieri ale unor realizări de natură practică și tutoriale despre subiecte actuale.


Intenția declarată este ca schemele utilizate (inclusiv cu modificările survenite) pe măsura realizării în practică, programele aferente de funcționare (inclusiv codul sursă) și cablajele să fie publicate integral. Susțin ideea includerii codului sursă fără restricții, eventual însoțit de comentarii, deoarece am constatat din experiență că este o cale bună de învățare. Nu sunt dintre cei care cred că ascunderea codului sursă este utilă, publicarea variantei hex (sau bin) nu duce decât la creșterea numărului de imitatori, și nu la creșterea numărului de persoane cu reale calități tehnice și creative. Apoi, ne putem întreba ce ar fi fost mișcarea "open-source", aflată într-un succes semnificativ în zilele noastre, fără publicarea codului sursă și legat de aceasta, fără capacitatea de reacție rapidă la bug-uri sau diverse alte probleme, fără munca generoasă și excelentă tehnic a multor programatori entuziaști răspânditi în toate colțurile lumii?

Am mai întâlnit această idee în reviste de prestigiu - Elektor Electronics, ca să dau un exemplu la îndemână. Editorii de la prestigioasa revistă de electronică, destinată unui cerc extrem de larg de entuziaști dar și de profesioniști, încurajează publicarea integrală a schemei, a cablajului și – acolo unde este cazul – a programului în forma inițială, tocmai în ideea de a putea fi preluat, comentat și eventual, modificat.

În concluzie, invit și sper ca la îmbunătățirea acestui blog să contribuie cât mai mulți entuziaști, hobby-iști, studenți și profesioniști de orice varstă.