luni, 9 august 2021

Acord de licență

Această prezentare (care este gândită în intenție a fi cât mai deschisă și liber posibilă) se supune termenilor prevăzuți de licența tip Creative Common Attribution-Noncommercial-Share Alike 3.0.



La modul elementar și repetând cele ce se află pe website-ul Creative Common,  sunteți liberi:

  • to Share - să copiați, distribuiți și transmiteți această lucrare
  • to Remix - să adaptați această lucrare (să o "remixați")
Respectând următoarele condiții:
  • Atribuire - Trebuie să atribuiți lucrarea în maniera specificată de autor sau licențiator (dar în niciun caz în care ar sugera că acesta vă îndrituiește pe dvs sau utilizarea acestei lucrări)

  • Utilizare necomercială - Nu puteți utiliza această lucrare în scopuri comerciale

  • Distribuire similară sau compatibilă - Dacă modificați, transformați sau construiți pe baza acestei lucrări puteți distribui lucrarea rezultată sub o aceeași, similară sau compatibilă licență

Întregul cod legal al licenței poate fi citit la: http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode

Această licență se aplică la conținutul blog-ului însuși și nu la porțiunile de cod, biblioteci, exemple, etc... Puteți găsi, sau când este declarat în mod explicit, faptul că lucrarea este publicată sub o altă licență.

De exemplu, cea mai mare parte a bibliotecilor Jallib este publicată sub licențele BSD și ZLIB, nu  sub aceasta licență (licența Creative Common).

Dacă sunteți în dubiu cereți, vă rog, lămuriri pe Jallib Group. (http://groups.google.com/group/jallib)

luni, 14 septembrie 2020

Biblioteca grafică JAL (Just Another Language) pentru display-ul grafic SSD 1306

Submitted by Rob on Sat, 07/18/2020 - 11:30

Tradus de Viorel Bianu, 09/14/2020 - 12:17

Biblioteca JAL glcd_ssd1306.jal susține modulul de afișare grafică care utilizează controlerul de afișare SSD1306, acesta având o rezoluție de 128 pixeli (orizontal) și 64 pixeli (vertical). Atât textul cât și grafica pot fi afișate pe acest display. Pentru text sunt utilizate bibliotecile de fonturi JAL existente, iar pentru caracterele grafice este utilizată biblioteca JAL glcd_common.jal.

Acest modul vine în 2 variante, o versiune I2C și o versiune SPI. Biblioteca acceptă ambele versiuni prin configurarea anumitor constante în programul principal. În afară de aceasta, utilizarea hardware I2C sau software I2C, respectiv hardware SPI sau software SPI, poate fi de asemenea setată în programul principal .

Modulul trebuie alimentat la 3,3 volți, dar conform datelor furnizorului funcționează bine și la 5 volți. Acesta idee este puțin surprinzătoare, deoarece tensiunea maximă absolută a circuitului integrat SSD1306 este de 4 volți. Prin urmare, este mai sigur să utilizați modulul la 3,3 Volți.

Memoria totală a controlerului de afișaj este de 128 * (64/8) = 1024 octeți. Deoarece această memorie poate fi scrisă numai prin interfața I2C sau SPI, o copie locală trebuie păstrată în PIC atunci când se utilizează caracteristicile grafice. Nu este necesară copia locală dacă folosiți numai text. 

Utilizând o setare în programul principal, poate fi activată funcția "text numai" ("text only"). Acest lucru face posibilă utilizarea bibliotecii sus-amintite de către PIC-uri cu un spațiu de memorie de date limitat. Când utilizați caracteristicile grafice, PIC trebuie să aibă un spațiu de date liber de cel puțin 1024 (2**10) de octeți.

Împreună cu biblioteca sunt prezentate două exemple de programe, care pun în evidență toate caracteristicile display-ului. Cele două exemple lucrează cu microcontrollerele PIC16F1825 și PIC16F18857 (Microchip):

16f1825_glcd_ssd1306_font.jal - această bibliotecă prezintă toate caracteristicile modulului pentru utilizare numai text ("text only")

16f18857_glcd_ssd1306_font_graphics.jal - această bibliotecă prezintă toate caracteristicile modulului pentru text și grafică.

Următorul videoclip demonstrează toate caracteristicile de text și grafică ale modulului și ale bibliotecii utilizând exemplul de program 16f18857_glcd_ssd1306_font_graphics.jal

https://youtu.be/Tx-RCtyAqUk

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 să 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 relativ 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 "embedded software"), 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ândiți î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ă.