Doriti sa incepeti un proiect personal cu PIC si nu stiti cum ?
Va stam cu drag la dispozitie.
Tot ce va trebuie stabilim impreuna.
Gratis !
Iata citeva informatii preliminare:
Un microcontroler de tip PIC este un microprocespr care pe linga intrari si iesiri are memorie RAM, EEPROM si Flash.
Poate fi programat sa execute un program logic asa cum doreste utilizatorul.
Utilizat intr-un proiect anume acesta poate realiza cele mai diverse functii de la aprinderea unui LED pina la (sa zicem) reglarea unui mic proces industrial.
ALEGEREA CIRCUITULUI PIC
Sa presupunem ca dorim sa aprindem doua LED-uri (acestea ar fi iesirile din sistem) atunci cind are loc o combinatie de 4 butoane (acestea ar fi intrarile in sistem).
In acest caz avem nevoie de un microcontroler PIC cu cel putin 6 terminale de date.
Circuitul utilizat poate fi de tipul 12F675. Acesta are 6 terminale de date care se pot programa la dorinta in intrari sau iesiri.
Dintre acestea, insa, un anume terminal poate fi numai intrare digitala si nu poate fi iesire. Restul de cinci pot fi intrari sau iesiri. Mergind mai departe, din acestea cinci putem avea 4 intrari analogice.
Exista mai multe familii : 10F, 12F ,16F, 18F etc. In cadrul acestor familii sint circuite cu 4/6/14/16 etc terminale de date. Capsula PIC-ului poate avea 6/8/14/18/28/40 etc pini.
Cel mai simplu le puteti vedea caracteristicile principale utilizind softul gratuit pentru Android : PICmicro database - nu avem legatura cu furnizorii softului, nu facem reclama :). Softul permite cautarea in functie de numarul de terminale de date dorit, memorie, intrari analogice etc.
CONCEPTIA PROGRAMULUI
Aici sint citeva reguli dar nu prezentarea acestora este scopul acum.
Mai intii ar trebui sa ne facem o idee clara despre functionarea sistemului. Adica sa o descriem cit mai corect, cit mai tehnic si cit mai precis. Putem chiar sa "desenam" desfasurarea functionarii. Exista asa numita logigrama realizata pe o coala de hirtie si care utilizeaza niste simboluri simple (romb, dreptunghi etc). Sa zicem ca la programe simple nu e necesara.
EDITAREA PROGRAMULUI
Apoi trebuie scris programul. Scrierea se face cu editoare specializate. Exista editoare de mai multe feluri.
Microcontrolerul (ca orice alt procesor) are un limbaj propriu cu niste instructiuni simple (citire de intrari, scriere la iesiri, adunare, transfer etc). Microcontrolerele PIC simple au 35 de instructiuni (altele...putin mai multe). Cu aceste instructiuni putem scrie programul de aplicatie in limbajul de asamblare.
Programul de aplicatie
Avem mai multe posibilitati pentru a scrie programul de aplicatie:
1) Putem utiliza MPLAB, softul gratuit de la Microchip (producatorul acestor PIC-uri). Exista tutoriale pentru utilizarea acestui soft. Sa zicem, momentan, ca acest soft este mai greu de utilizat de incepatorii care nu au scris nici un program. Avantajele ar fi ca se pot concepe programe care lucreaza in timp real si ca lungimea programului poate fi mica.
(puteti cere detalii daca nu cunoasteti conceptul de rulare in timp real; probabil ca pentru incepatori sau aplicatii simple nu are mare importanta).
2)Putem utilza pentru editarea programului un compilator de C. Cei care cunosc limbajul C pot avea un avantaj fiindca trebuie sa invete doar putine lucruri specifice. Exista mai multe astfel de programe:
-MPLAB XC, care este gratuit (de la Microchip).
-CCS (gratuit timp limitat)
-etc.
Compilatoarele de C pot produce un program mai lung (depinde de compilator) si, de obicei, nu prea ar functiona in timp real (cam asa se spune, dar sigur depinde de aplicatie).
3)Mai exista si soft de tip BASIC pentru conceptia programului microcontrolerului PIC. La fel ca mai sus poate fi avantajos pentru cei care stiu orice versiune de BASIC. Si in BASIC vom avea un program mai lung, neoptimizat.
4)Mai exista inca o posibilitate. Am lasat-o la sfirsit. Exista softuri de programare cu simboluri grafice. Sa zicem ca sint destinate incepatorilor sau proiectelor simple. Cu toate acestea ele pot fi destul de puternice fiindca pot accepta si scrierea de instructiuni.
Exemplu : ezCircuit. Aveti pe site-ul nostru destule tutoriale pentru a invata foarte repede acest soft. Practic, daca descrieti programul intr-o logigrama, trebuie doar sa o transpuneti in acest soft si ...voila...aveti programul.
Evident, codul rezultat nu este prea optimizat dar pentru proiecte simple nu am avut probleme.
Cu oricare soft scrieti programul veti obine in final un fisier cu teminatia hex. Acest fisier se va transfera in memoria PIC-ului.
TRANSFERUL PROGRAMULUI
Avem nevoie de un programator de tip PIC-KIT2 / PIC-KIT3. Acestea functioneaza prin conectarea pe de o parte la portul USB al unui PC si pe de alta parte la PIC. Cam (!) orice PIC are nevoie de 5 terminale pentru programare. Sistemul de programare (portul de programare) se numeste ICSP.
Softul utilizat pentru transfer este gratuit pentru aceste programatoare. Pentru programatorul cel mai raspindit (PIC-KIT2) se utilizeaza softul PIC-KIT2 (cum altfel). Il gasiti pe net la Microchip.
PIC-ul se poate programa fie montat intr-un soclu (conectat la programator) fie pe placa de circuit a proiectului.
In acest caz trebuie luate masuri speciale (intreruperea legaturilor de la terminalele de programare la restul montajului).
Aici e putin de discutat , daca doriti.
CONCLUZII
-Alegere PIC in functie de numarul de intrari / iesiri (si alte caracteristici, evident : daca avem nevoie de memorie EEPROM, cite intrari analogice, timer-e, comparatoare, etc).
-Conceptia programului (ce si cum trebuie sa faca aplicatia, proiectul)
-Editarea programului (cu MPLAB sau un compilator de C sau un BASIC sau grafic)
-Transferul programului la PIC (soft PIC-KIT2 si programator PIC-KIT2).
Ce va putem oferi pentru a dezvolta si realiza un proiect cu PIC ?
-Informatii pentru a alege PIC-ul necesar
-Recomandari in alegerea softului de programare (MPLAB/CCS/BASIC/ezCircuit)
-Tutoriale pentru ezCircuit si CCS
-Programator PIC-KIT2 de tip PK2R
-Module de tip placa de dezvoltare PD16 sau automate prgramabile de tip AP6/10/16/20 :
AP6 = 2 x iesiri pe releu si 4 x intrari / PIC12F675 inclus
AP10=4 x iesiri cu driver L293D si 6 x intrari / PIC16F819 inclus
AP10R = 4 x iesiri pe releu si 6 x intrari / PIC16F819 inclus
AP16= 2 x relee, 4 x iesiri cu driver, 10 x intrari, buzzer, LCD (optional) / PIC16F819 inclus
AP20=4 x relee, 4 x iesiri cu driver, 12 x intrari, afisor LCD, buzzer, IR, RF, ceas de timp real /PIC16F887 inclus
Toate permit utilizarea de senzori digitali (inclusiv de IR) si analogici, potentiometre, LED-uri si intrerupatoare externe.
Succes !
Citeva site-uri interesante:
Robotprog (pentru incepatori, invatati logigrame)
www.physicsbox.com/indexrobotprogen.html
Compilator C (foarte usor de utilizat, help foarte bun)
www.ccsinfo.com
Tutoriale C pentru PIC daca utilizati compilatorul CCS
www.gooligum.com.au
Proiecte PIC
http://www.rickard.gunee.com/projects/video/pic/pong.php
http://www.moty22.co.uk/index.php
http://picprojects.org.uk/projects/picprojects.htm
http://ccspicc.blogspot.com/