Raspberry Pi

22
Raspberry Pi Istražite RPi preko 45 elektronskih projekata

description

RaspberryPi - Izdanje na srpskom jeziku InfoElektronika

Transcript of Raspberry Pi

Page 1: Raspberry Pi

Raspberry Pi

Istražite RPi preko 45 elektronskih projekata

Raspberry:- 5/1/2014 4:39 PM Page 1

Page 2: Raspberry Pi
Page 3: Raspberry Pi

Raspberry Pi

Istražite RPi kroz 45 elektronskih projekata

Bert van Dam

Agencija EHO

www.infoelektronika.net

Page 4: Raspberry Pi

Sva prava zadržana. Nijedan deo ove knjige ne može biti reprodukovan u bio kom mate-rijalnom obliku, uključujući fotokopiranje ili slučajno ili nenamerno smeštanje na bilo kojielektronski medijum sa ili uz pomoć bilo kog elektronskog sredstva, bez pismenog odo-brenja nosioca autorskog prava osim u skladu sa odredbama Zakona o autorskim pravima,dizajnu i patentima iz 1988 godine ili pod uslovima izdatim od Copyright Licensing AgencyLtd, 90 Tottenham Court Road, London, England W1P 9HE. Prijave za pismene dozvole radištampanja bilo kog dela ove publikacije upućuje se izdavaču ove knjige.

Izdavač je uložio najveće moguće napore da bi se obezbedila tačnost informacija sadr-žanih u ovoj knjizi. Izdavač ne može da pretpostavi neprijatnosti i ovom izjavom isklju-čuje bilo kakvu odgovornost za bilo koju stranku koja bi imala gubitke ili štetu uzrokovanugreškama ili propustima u ovoj knjizi, bez obzira da li su greške ili propusti nastali uslednemara, nezgode ili bilo kog drugog razloga.

ISBN 978-86-915999-9-7

Prevod sa engleskog: Volođa Pezo

Izdavač: Agencija EHOe-mail: [email protected]

Štampa: Agencija EHO

Page 5: Raspberry Pi

SADRŽAJ

UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

1 POTREBNI USLOVI . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

1.1 RPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121.2 SD KARTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121.3 TASTATURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121.4 MIŠ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131.5 DISPLEJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131.6 INTERNET KONEKCIJA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151.7 NAPAJANJE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161.8 USB HUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161.9 ZVUČNIK (ILI SLUŠALICE) . . . . . . . . . . . . . . . . . . . . . . . . . . . .171.10 PROTOTIPSKA PLOČICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171.11 KOMPONENTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181.12 SOFTVERSKI OSCILOSKOP . . . . . . . . . . . . . . . . . . . . . . . . . . .18

2 KRATAK PREGLED RPi RAČUNARA . . . . . . . . . . . . . . . .21

2.1 LXTERMINAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222.2 LXTERMINAL - SKROT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232.3 LXTERMINAL - NANO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232.4 IDLEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252.5 NAPOMENA O DEBIAN-U . . . . . . . . . . . . . . . . . . . . . . . . . . . .252.6 MIDORI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252.7 WIFI CONFIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262.8 SCRATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262.9 PRIBORI (ACCESSORIES) - LEAFPAD - TEKST EDITOR . . . . . . . . . . . .262.10 ACCESSORIES - FAJL MENADŽER . . . . . . . . . . . . . . . . . . . . . . .272.11 SYSTEM TOOLS - TASK MANAGER . . . . . . . . . . . . . . . . . . . . . .27

3 INSTALACIJA SOFTVERA . . . . . . . . . . . . . . . . . . . . . . .29

3.1 RPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293.1.1 Tastatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293.1.2 SD kartica većeg kapaciteta . . . . . . . . . . . . . . . . . .303.1.3 Izmena dodeljene memorije . . . . . . . . . . . . . . . . . .313.1.4 IP adresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

3.2 WINDOWS PC (OPCIJA) . . . . . . . . . . . . . . . . . . . . . . . . . . . .363.2.1 Disk Imager . . . . . . . . . . . . . . . . . . . . . . . . . . . . .373.2.2 Python, wxPython i IdleX . . . . . . . . . . . . . . . . . . . .373.2.3 Putty (SSH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393.2.4 Xming (Xwindows) . . . . . . . . . . . . . . . . . . . . . . . . .403.2.5 WinSCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

Page 6: Raspberry Pi

4 KRATAK UVOD U ... . . . . . . . . . . . . . . . . . . . . . . . . . . .47

4.1 DEBIAN LINUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474.2 PROGRAMIRANJE U BASH-U . . . . . . . . . . . . . . . . . . . . . . . . . . .534.3 PROGRAMIRANJE U PYTHON-U . . . . . . . . . . . . . . . . . . . . . . . . .584.4 PROGRAMIRANJE U JAVASCRIPT-U . . . . . . . . . . . . . . . . . . . . . . .85

5 GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91

5.1 UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .935.2 LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .965.3 BLJESKAJUĆA LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .965.4 NAIZMENIČNO BLJESKANJE LED . . . . . . . . . . . . . . . . . . . . . . .1005.5 LED TAJMER SA PROZOROM . . . . . . . . . . . . . . . . . . . . . . . . . .1025.6 PREKIDAČ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1065.7 VREMENSKI PREKIDAČ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1105.8 NAIZMENIČNI PREKIDAČ . . . . . . . . . . . . . . . . . . . . . . . . . . . .1115.9 STANJE PREKIDAČA U PROZORU . . . . . . . . . . . . . . . . . . . . . . . .113

5.9.1 Upotreba tajmera . . . . . . . . . . . . . . . . . . . . . . . .1135.9.2 Korišćenje Multi-threadinga . . . . . . . . . . . . . . . . .116

5.10 STANJE PREKIDAČA U PROZORU . . . . . . . . . . . . . . . . . . . . . . .1225.11 STANJE PREKIDAČA U PROZORU . . . . . . . . . . . . . . . . . . . . . . .124

6 JOŠ SNAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

6.1 TD627837 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1296.1.1 Svetla (6V, 65 mA) . . . . . . . . . . . . . . . . . . . . . . .1316.1.2 Motor (5V, 145 mA) . . . . . . . . . . . . . . . . . . . . . . .132

6.2 ULN20037 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1336.2.1 Ventilator (12V, 150 mA) i svetlo (6 V, 65 mA) . . . .135

6.3 IRF740 MOSFET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1376.3.1 Motor (5 V, 550 mA) . . . . . . . . . . . . . . . . . . . . . .137

7 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

7.1 PWM NA TRI NAČINA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1427.1.1 Frekventna pobuda . . . . . . . . . . . . . . . . . . . . . . .1437.1.2 Širina impulsa (mark-space) sa fiksnom učestanošću . .1457.1.3 ‘Mark-space’ sa promenljivom učestanosti . . . . . . .147

7.2 SVETLO SA POSTEPENIM POVEĆANJEM JAČINE . . . . . . . . . . . . . . . .1487.3 MOTOR PROMENLJIVE BRZINE . . . . . . . . . . . . . . . . . . . . . . . . .152

8 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155

8.1 UVOD U SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1558.2 MAX522 DIGITALNO PRETVARANJE U ANALOGNO (DAC) . . . . . . . .1588.3 DAC SA OPERACIONIM POJAČAVAČEM . . . . . . . . . . . . . . . . . . . .1648.4 VIŠE OD DVA SPI UREĐAJA . . . . . . . . . . . . . . . . . . . . . . . . . .1698.5 MCP3008 ANALOGNO DIGITALNI PRETVARAČ (ADC) . . . . . . . . . . .1708.6 MCP3008 ZA PSEUDO DIFERENCIJALNO MERENJE . . . . . . . . . . . . .176

Page 7: Raspberry Pi

9 I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

9.1 UVOD U I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1799.2 MCP23008 I/O PROŠIRENJE (EKSTENDER ILI EKSPANDER) . . . . . . .1799.3 JOŠ SNAGE EKSTENDERU . . . . . . . . . . . . . . . . . . . . . . . . . . .1819.4 TC74 DIGITALNI TERMOMETAR . . . . . . . . . . . . . . . . . . . . . . . .187

10 SERIJSKI PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

10.1 UVOD U RS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19710.1.1 SERIJSKA VEZA SA POVRATNIM SPOJEM (LOOPBACK) . . . . . .198

10.2 SERIJSKA KONEKCIJA IZMEĐU RPI I PIKOLINA . . . . . . . . . . . . . .20010.2.1 Serijski eho . . . . . . . . . . . . . . . . . . . . . . . . . . . .20210.2.2 Serijsko analogno merenje (ADC) . . . . . . . . . . . .204

11 WEB SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211

11.1 UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21111.2 HTML SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21111.3 CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214

11.3.1 HELLO USER . . . . . . . . . . . . . . . . . . . . . . . . . . . .21511.3.2 Broj posetilaca u brojaču . . . . . . . . . . . . . . . . . . .21911.3.3 Prenos promenljivih sa pretraživača na server . . . .22111.3.4 GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22411.3.5 GPIO sa JavaScript-om . . . . . . . . . . . . . . . . . . . .22811.3.6 I2C alarm za frižider sa automatskom veb stranicom .236

12 KLIJENT SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . .241

12.1 UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24112.2 TCP MULTIPLIKACIJA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24112.3 TCP LED KONTROLA . . . . . . . . . . . . . . . . . . . . . . . . . . . .24712.4 TCP DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24912.5 TCP GENERATOR TESTERASTIH I ČETVRTASTIH SIGNALA . . . . . . . . .25012.6 TCP VOLTMETAR SA 8 KANALA . . . . . . . . . . . . . . . . . . . . . . .25912.7 UDP EHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26412.8 UDP MERAČ SVETLOST . . . . . . . . . . . . . . . . . . . . . . . . . . .267

PRILOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273

1 PODESIVO NAPAJANJE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2732 KOLO GPIO LETVICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2753 SADRŽAJ PAKETA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2764 SPISAK DELOVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2775 DRUGE KNJIGE ISTOG AUTORA . . . . . . . . . . . . . . . . . . . . . . . . .278

Page 8: Raspberry Pi

5 GPIO

Pre nego započnete bilo koji projekt trebalo bi prvo da pročitate sledećiuvod a naročito instrukcije koje se tiču bezbednosti. Trebalo bi da steuvek proverili da li je RPi isključen pre izrade hardvera od navedenihprojekata. Nemojte samo da izvučete utikač nego RPi isključite napropisan način. To se može uraditi na dva načina:

Korišćenjem komande sudo shutdown -h now

Preko linije zadataka: korišćenjem ikone sa krajnje desne strane.

Linux je obično u mogućnosti da se obnovi ako ste izvukli utikač dok jeRPi uključen ali ne uvek. Ukoliko iznenada isključite napajanje i RPi nećeponovo da startuje, trebalo bi izvršiti obnovu uz pomoć rezervne SDkartice koju ste napravili po odeljku 3.2.1. Sav posao koji ste napravilido tada će biti izgubljen i biće potrebno da ga uradite ponovo ispočetka.

5.1 Uvod

Dvoreda letvica sa izvodima (GPIO) je sa gornje leve strane i sastoji seod 26 izvoda (pinova). Prva četiri pina su označena pa vidite kako idubrojevi. Neparni brojevi su sa jedne strane a parni sa druge.

GPIO letvica obavlja različite funkcije, kao što su obični pinovi (u knjiziih zovemo GPIO), I2C, SPI, PWM i serijski port. Način na koji koristimoove četiri vrste pinova će biti objašnjen detaljno u narednimpoglavljima.

Neki od izvoda se ne koriste i označeni su sa ‘n/a’ (npr. pin 4)

91

Page 9: Raspberry Pi

Tabela 12. Pregled funkcija na izvodima konektorske letvice.

Sa gornje slike možete videti da brojevi GPIO izvoda ne odgovaraju bro-jevima pinova na konektorskoj letvici. Na primer GPIO 2 je spojen napin 3 letvice, dok se GPIO 7 nalazi čak na 26. izvodu letvice. Kad pravitekolo morate paziti na ovo! U paketu koji skidate sa interneta možetepronaći fajl header.bmp koji možete odštampati tako da uvek možeteimati vidljivu informaciju.

Na GPIO konektor možete lako vezati sve vrste elektronskih uređaja,kao što su LED i prekidači. Velika nepogodnost je da ovi spojevi nemajunekakvu zaštitu.. Napon ili struja koja je samo malo veća može uništitiRPi. Oni koji su navikli da koriste mikrokontrolere, navikli su da se nosesa takvim udarcima. Ukoliko jedan uništite, možete ga zameniti jer jejeftin.

Slika 37. GPIOkonektor na RPi.

92 5. GPIO

Page 10: Raspberry Pi

1 Ne povlačite utikač da bi isključili RPi, već ga prvo zaustavite preko menija ilipreko LXterminala komandama “sudo shutdown -h now“.

2 Mi ćemo se striktno držati ovog pravila ali na internetu ćete naći dosta pro-jekata gde elektronika nije pravilno povezana. Potrebno je da budete veomapažljivi kad pravite nešto sa interneta.

3 LED iz hardverskog kita sa oznakom Everlight 264-10UYD/S530-A3/T2.

Sve ovo znači da RPi tretiramo mnogo pažljivije. Zato koristimo neko-liko zlatnih pravila:

1. Isključite RPi pre izmene kola, čak i ako hoćete samo da odspojiteprovodnik (žicu).1

2. Zaštitite sve spojeve od neželjenih operacija.

3. Koristite komponente sa malom potrošnjom i koristite eksterno na-pajanje kad god je potrebno.

Projektovana struja po pinu na GPIO je 3 mA. Za sve izvode uključujućii *3,3 V iznosi 51 mA. Kad ne koristite sve izvode možete povući višeod 3mA sve do maksimuma od 16 mA po pinu. Ukupna potrošnje nesme biti veća od 51mA. Preporučuje se da se uvek potrošnja po pinudrži ispod 3mA, koliko god je to moguće, što smo uvek i radili u ovoj knji zi.

Sa Napajanjem od !A možete uzeti oko 250mA (model B) do 300mA(model A) sa pina od +5V. U praksi ovo opet zavisi od potrošnje strujedrugih uređaja spojenih na RPi, kao što su tastatura i slično.

Za sve projekte u knjizi koristimo napajanje od 3,3 V. Razlog je to štoRPi radi na 3,3 V tako da svi izlazi pinova (za očekivanje) su 3,3V. Naletvici postoji izvod sa naponom od +5V ali ostali izvodi ne tolerišu tajnapon. Drugim rečima dizajneri RPI-ja nisu predvideli da bi neko mogaoda ostale pinove spoji na +5 V. To ne znači da bi RPi trenutno pregoreokad bi mu doveli 5 V, neko vreme bi radio ali bi brzo odustao.2

5.2 LED

Maksimalna struje koju RPi može da da sa 3,3 V je 51 mA i to na svepinove! To je razlog da kao LED koristimo isključivo one koje prihvatljivo

935.2 LED

Page 11: Raspberry Pi

svetle na 2mA sjajem od 8mcd.3

Ova Led očigledno treba da ima otpornik za ograničenje struje, što selako da izračunati. Prema tehničkim podacima ova LED ima pad naponaod 2V. Ovo znači da će napon biti kroz strujni otpornik biti 3,3 - 2 = 1,3V . Pošto struja sme da bude samo 2mA računamo potrebni otpornik uzpomoć Omovog zakona:

U = I * R

ili:

I=U/R ili R= U/I

gde su U = V (napon u voltima)I = A (struja u amperima)R = otpornost u omima (Ohm)

Formulu ćemo ispisati na drugi način kao R=U/I i zameniti vrednostima

1,3/2*10-3 =650 Ohm

Ova vrednost ne postoji a najbliže standardne vrednosti su 560 Ohm ili680 Ohm. Biramo 680 Ohm tako da potrošnja struje bude nešto niža od2mA (biće 1,3/680=1,9mA). Kolor kod za otpornik od 680 oma je plavo-sivo-smeđe.

Spajanje se vrši na sledeći način: Nizovi kvadratića sa brojevima senalaze na konektorskoj letvici RPI-ja. Pinovi 1 i 2 su na ivici RPI-ja kaošto se vidi na fotografiji na slici 37. Otpornik se spaja između pina 7 iLED. Ovo je spojeno na pin 6 koji predstavlja masu (GND). U prilogućete naći raspored svih pinova sa njihovim nazivima.

Slika 38. Ograničenjestruje uz pomoć otpornika

za ograničenje.

94 5. GPIO

Page 12: Raspberry Pi

LED ima pozitivan i negativan kraj (pozitivan se zove anoda a negati-van katoda). Kad pažljivo zagledate unutar LED videćete da je jedanod izvoda širi od drugog. To je izvod koji se spaja na negativnu elek-trodu. Često ovaj kraj ima i nešto kraći izvod.Na električnoj šemi simbol LED izgleda kao strelica sa linijom na kraje-vima. Korisno pravilo je da strelica uvek pokazuje na negativno.

Slika 41. Nameštanje naprototipskojpločici.

Slika 40.Anoda i katodaLED.

Slika 39.Spajanje LEDna konektorskuletvicu.

955.2 LED

Page 13: Raspberry Pi

129

6 Još snage

Količina struje koju može da izda RPi na 3,3 V je maksimalno 51 mA ito računajući sve izvode zajedno. Pin od 5 V može da daje nešto višestruje. Ovaj pin, u zavisnosti od napajanja i potrošnje RPi-ja može dati250 i 300 mA. To zvuči bolje ali to ograničava broj periferalija koje mo-žete spojiti, a koje zahtevaju energiju. Na primer WiFi adapter ili opti-čki miš.

U ovom poglavlju pogledaćemo nekoliko načina kako da RPi daje višesnage i na višem naponu.

U ovim projektima upotrebljavamo spoljašnje napajanje za svaku kom-ponentu. Korisno je ako imate promenljivi izvor napajanja jer vam ola-kšava vezivanje različitih komponenti iz navedenih projekata od kojihsvaka zahteva drukčije napajanje. Nema sumnje da bi ionako eksperi-mentisali sa drugim naponima. U Prilogu 1 možete naći uzorke kola zajedno promenljivo napajanje sa naponima od 1,24 V do 13 V pri strujiod 1,5 A. Ovo napajanje je korišćeno za sve eksperimente u knjizi. Uvekje najbolje da napajanje uključite na kraju, kad sve proverite i da prvoisključite kad želite da isključite RPi.

6.1 TD62783

Integrisano kolo TD62783 je 8-kanalna pobuda sa izvorima čiji izlazinominalno daju 500mA i mogu se nositi do napona od 50 V.

Projekt ImplementacijaTD62783 8 konekcija, maksimalno 500mA / 50 VULN2003 7 konekcija, maksimum 500 mA / 50 V (razli iti naponi za svaki pin)IRF740 1 konekcija, maksimalno 10 A / 400 V

Page 14: Raspberry Pi

1 Možete koristiti UDN2981 koji ide do 80V/350mA ali je inače identičan. Za-pazite da u tehničkim podacima stoji da UDN2981 može dati 500 mA ali gra-fik za strujni maksimum ima granicu na 350 mA (dokument Dwg. No.A-11,107B).

2 Drugi nazivi za klamp diode su : ‘flyback’, ‘snubber’, suppression’, ‘catch’. Ka-snije ćemo razmotriti funkciju ovih dioda.

6. JOŠ SNAGE130

Slika 54 Izlazne struje prema tehničkim podacima za komponentuTD62783 1

Jedan izlaz može dati 500 mA ali ne ako se koriste još nekoliko izlaza.Navedene brojke su iz tehničkih podataka za TD62783 i pokazuju dvevrednosti za maksimalnu struju kad se koriste svih 8 izlaza. Kod od-nosa signal pauza od 10% (PWM duty cycle) za širinsku modulacijusvaki kanal može dati 260 mA (za PDIP) a kod odnosa 50% ovo se sma-njuje na 59 mA po kanalu što ukupno čini 472 mA. Lepa stvar o ovomčipu je da je svaki izlaz obezbeđen diodom tako da možete motor spo-jiti direktno na čip. 2

Pozitivni signal na ulazu znači pozitivni signal na izlazu. Čip radi na TTLnaponu od 5 V ali i 3,3 volta smatra logičkom jedinicom (1). Ovo značida se ulaz TD62783 može direktno spojiti na RPi. Struja koja se povlačiiz ulaza je 0,13 MA što je daleko ispod maksimuma za RPi.

Raspored izvoda na TD62783 je prikazan na gornjoj slici. Svi izlazi imajuzajednički ulazni napon na pinu 9 (VCC). NA pinu 10 je zajednička masa

Slika 55.Raspored izvoda na

TD62783

Page 15: Raspberry Pi

6.1 TD62783 131

(GND) koja bi trebalo da je spojena na RPi masu (GND, pin 6 na letvici).Napajanje, pin VCC, očigledno nikako ne sme biti spojen na RPi!

6.1.1 Svetla (6V, 65 mA)

Počinjemo sa jednostavnim kolom gde spajamo svetlo od 6V sa 65 mA.Vidite da je ZD62783 vezan na 23 pin GPIO (16 pin na letvici). Masa RPIi promenljivi izvor napajanja su spojeni. Očigledno nisu spojeni +3,3 Vi + 6V. Napon od +3,3 V mikrokontrolera RPi se ne koristi pošto seTD62783 napaja preko VCC (pin 9) koji je spojen na promenljivi izvornapajanja.

Dve žice koje idu van fotografije na desno su prema promenljivom iz-voru napajanja.

Svetlo će bljeskati uz sledeće:

Slika 56.Spojevi TD62783 na letvici.

Slika 57.Postavka na prototipskoj pločici

Page 16: Raspberry Pi

1 Ovo važi i za UDN2981. Ako uzmete neki drugi čip trebalo bi pogledati tehni-čke podatke. Ukoliko Vaš čip nema klamp diode možete ih sami dodati. Kaoprimer možete koristiti diode 1N4007 čiji je probojni napon 1000 V i izdrža-vaju struje od 1 A sa impulsima od 30 A. Pošto ova dioda normalno ne pro-vodi trebalo bi je spojiti inverzno.

6. JOŠ SNAGE132

import osimport wiringpifrom time import sleep

os.system( ‘gpio export 23 out’ )sleep(0.5)

io = wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_SYS)io.pinMode(23,io.OUTPUT)

while True:io.digitalWrite(23,1)sleep(1)io.digitalWrite(23,0)sleep(1)

U projektu 7.2 ćemo pokazati kako menjati sjaj svetla. Program po-krećete sa python td6273.py a zaustavljate sa Ctrl-C.

6.1.2 Motor (5V, 145 mA)Motor (ili rele) sadrži namotaje. Struja kroz namotaje preostaje, štoznači da kad se ukloni napon struja teče još neko vreme. Pošto strujanema kuda da ode jer je napajanje sklonjeno napon će drastično pora-sti što bi moglo da uništi RPi i druge komponente. Da bi ovo sprečili,preko konektora motora se inverzno spaja dioda. Ova dioda (koja senaziva klamp ili prigušna dioda) normalno ne provodi jer je spojena in-verzno ali baš zbog toga će propustiti preostalu struju.

Za motor je problem još veći pošto on nastavlja da se okreće i posleisključenja pa radi kao dinamo (generator napona).

Kolo TD62783 već ima ove klamp diode interno spojene pa motor mo-žemo da vežemo direktno na čip.1 U ovom projektu koristimo motorMitsumi od 5 V. Motor troši 15 mA kad se slobodno vrti i 145 mA kadse zaustavi.1 Umesto ovoga možete iskoristiti neki svoj motor, sve dok

Page 17: Raspberry Pi

1 Zaustavljen, znači da se motor ne okreće neko vreme dok je na njemu punnapon. Ukoliko sami želite da merite struju ukočenog motora (stalled) to mo-rate brzo izvesti jer se većina motora hladi samo dok se vrti. Ukočen motorse može brzo pregrejati.

6.2 ULN2003 133

su napon i struja u okviru specifikacija TD62783. Kolo je identično saprethodnim samo je umesto svetla vezan motor.

Isti program koristimo za motor kao i za svetlo. U projektu 7.3 ćemovam pokazati kako da menjate brzinu motora.

6.2 ULN2003, niz od 7 darlington tranzistorasa otvorenim kolektorom.

ULN je niz od 7 darlington tranzistora sa sedam izlaza koji izdržavajunapon od 50 V. Pojedini izlaz daje 500 mA ali ne i kad se koristi više odjednog izlaza u isto vreme. Grafik sa slike 59 (sledeća stranica) je uzetiz tehničkih podataka i važi za kućište PDIP (koje odgovara prototipskojpločici). Na horizontalnoj liniji je odnos signal pauza za PWM gde je DCjednako 100% ili potpuni signal. Vertikalna osa je za maksimalnu po-trošnju struje u mA. Ovo su vršne vrednosti pa su znači apsolutni ma-ksimum. Sa jednim aktivnim izlazom (izlaz daje struju) maksimum je500mA. Za dva aktivna izlaza maksimum pri punom opterećenju (tj DC)je oko 390 mA po izlazu. Kad se koriste svih sedam izlaza maksimumse smanjuje na 179 mA po izlazu.

Izlazi ovog čipa se mogu spojiti paralelno da obezbede više snage. Uko-liko bi spojili svih sedam paralelno dobili bi struju od 7x170 = 1190 mA.Pretpostavljam da je pod tim uslovima neophodno imati dobar hladnjak!

Slika 58.Postavka sa elektromotorom

Page 18: Raspberry Pi

197

10 Serijski port

10.1 Uvod u RS232

RS232 je definisan kao standard 1969 godine za komunikaciju izmeđuračunara i periferija, obično teleprintera (kombinacija štampača i ta-stature koji su se koristili pre pojave monitora). Uzevši u obzir dobanije iznenađenje da su specifikacije za signale pomalo čudne.

Pošto računari rade na +5V (ili +3,3V) za 1 i 0, RS232 koristi negativninapon između -3 i -12 V za 1 i pozitivan napon između +3 i +12V za 0.Opseg između -3 i +3V se ne koristi da bi se sprečile greške uslovljenedugim vodovima.

Konekcija korist do osam provodnika za signale i zajedničku masu. KodRPi-ja su upotrebljene samo dve od kojih je TX za predaju a RX za pri-jem podataka. Ono što jedan uređaj šalje, trebalo bi da primi drugi pase signalni vodovi ukrštaju. Naziv masa (COMMON) se ovde odnosi nazajedničku masu pa je RPi-ju to GND.

Slika 113. Osnovni spoj serijske veze.

Važan parametar ovih komunikacija je brzina prenosa (prim. prev. en-gleski baudrate) u bodima (baud). To je mera brzine prenosa podataka.Projekti u ovoj knjizi rade sa 9600 boda. Uporedite to sa brzinom taktapa će vam biti jasno da to baš nije brz protokol.

Page 19: Raspberry Pi

1 JAL i drugi razvojni softver za Pikolino se može skinuti sa Pikolino stranice naElektoru. Platforma Pikolino se može nabaviti od Elektora. Knjiga uz Pikolinoje “Piccolino -30 Projects, Mods, Hacks and Extension Boards” koja će tekbiti izdana 2014.

10. SERIJSKI PORT198

U ovom poglavlju počinjemo sa serijskim povratnim spojem (loopback).Zatim postavljamo RS232 konekciju na TTL nivou sa Piccolino-m. Piko-lino je brza razvojna platforma sa PIC mikrokontrolerom koji je pro-gramiran u JAL. 1

10.1.1 Serijska veza sa povratnim spojem (loopback)

U ovom projektu kreiramo serijsku konekciju sa povratnom vezom. Ovoznači da je serijski izlaz vezan na ulaz. Na ovaj način možete brzo pro-veriti da li softverska podešavanja i port radi ispravno. U principu bimogli na RPi-ju direktno spojiti pinove TXD i RXD. Na kraju svi mogućiizlazni signali na TXD pinu će sami po sebi biti sa ispravnim naponimaza RXD pin.

Kao i obično mi brinemo šta bi se desilo ukoliko napravimo grešku sapinovima. Sasvim je moguće da oba pina budu konfigurisana kao izlaziod kojih je jedan u visokom naponskom stanju a drugi u niskom na-ponskom stanju. Direktna veza pravi kratak spoj sa katastrofalnim po-sledicama. Da bi to izbegli stavljamo otpornik od1,8 kOhm izmeđupinova. Neće uticati na serijsku komunikaciju ali zgodno izbegava štetuna RPi-ju kad postoji greška u programu. Maksimalna struja bi bila:

I=U/R= 3,3/1k8=1,8 mA

Slika 114. Serijska petlja sa otpornikom od 1k8.

Page 20: Raspberry Pi

1 Uputstvo možete pogledati upisivanjem “man minicom” gde je man skraće-nica za uputstvo

10.1 UVOD U RS232 199

Minicom komunikacioni program se pokreće komandom:

minicom -b 9600 -o -w -D /dev/ttyAMA0

gde su parametri komande sledećeg značenja:1

b 9600 Brzina konekcije u bodima (to je podrazumevanaRS232 TTL brzina za Pikolino

D /dev/ttyAMA0 Ime serijskog porta na RPi-ju (/dev/ttyAMA0)

o Bez inicijalizacije modema (nema ga jer je spoj direktan)

w Uključuje smeštanje redova teksta tako da uvek bude vidljiv na ekranu.

Minikom se potpuno kontroliše preko tastature. Sa Ctrl-A dobijate sta-nje linije na dnu ekrana koja daje neke osnovne podatke o konekciji. Ustatusnu liniju možete uneti komande kombinacijom tastera. Najčešćekorišćene naredbe su:

Ctrl-A X izlazC briše ekranZ pomoć

Od sada sve što kucate biće poslato preko pina TXD i biće trenutnoprimljeno preko otpornika na RXD pinu i prikazano na ekranu.

Slika 115. Minicom program za serijsku komunikaciju.

Page 21: Raspberry Pi

1 TTL je skraćenica za Transistor-Transistor Logic.

10. SERIJSKI PORT200

10.2 Serijska konekcija između RPi i Pikolina

RS232 je serijski protokol koji koristi signale od -12 V i + 12 V. Ni Pi-kolino ni RPi ne mogu dati signale tog nivoa. Umesto njih oni prave si-gnale sa naponom od 0V i +VDD. Pošto je protokol i dalje RS232 mi ganazivamo Rs232-TTL. 1

Ne bi imalo smisla ako bi na RPi i Pikolino dodali čipove za pretvaranjenapona samo da bi mogli da imamo prave RS232 signale umesto TTL.Ovako ih lako možemo spojiti direktno.

Pikolino radi na 5V a RPi na 3,3V pa moramo koristiti naponski deliteljkoji smanjuje 5V na 3,3 V na vezama koje idu od Pikolina na RPi. Kaonaponski delitelj koristimo dva otpornika sa vrednostima os 1,k8 i 3k3koji su spojeni na sledeći način:

Slika 116. Prenosslova ‘b’ uz

pomoć signalaRS232 i RS232-

TTL.

Slika 117. Na-ponski delitelj:od 5 (VIN+) na3,3 V (VOUT+).

Page 22: Raspberry Pi

10.2 SERIJSKA KONEKCIJA IZMEĐU RPI I PIKOLINA 201

U gornjoj šemi VIN+ dolazi sa Pikolina a VOUT+ ide na RPi. GND je oči-gledno spojena na Pikolino i RPi. Kada je VIN 5 V, izlaz VOUT se računana sledeći način:

VOUT= 5 * (3k3/3k3+1k8) = 3,24 V

Ovo samo malo manje od 3,3 V što je idealno za RPi. Struja koja ide izPikolina je:

I= (5/1k8+3k3)=1mA

što je dovoljno malo. Struja iz RPi-ja u slučaju da pin proglasite za vi-soki izlaz je:

I=3,3/3k3=1mA

Ništa ne moramo da radimo u drugom smeru konekcije jer Pikolino sma-tra 3,3 V visokim naponskim stanjem. Ipak smo dodali naponski deli-telj kao meru bezbednosti. Taj član neće uticati na signal od RPi-ja kaPikolinu. Otpornik će malo smanjiti struju tako da nema uticaja na rad.Naponski delitelj je tu da zaštiti RPi pošto vas ništa ne sprečava da seprogram izvršava sa Pikolina koji postavlja TTLIN pin u visoko stanje, štoznači da bi 5 V moglo otići na RPi. Pod takvim uslovima naponski deli-telj bi smanjio napon na sigurnih 3,24 V.

Druga programska greška koju bi mogli napraviti je da konfigurišeteRPi pinove kao izlaze i postavite ih u nisko stanje a kako imate Pikolinosa pinovima koji su izlazi u visokom stanju. Ovim se pravi kratak spojali na sreću otpornik u naponskom delitelju ograničava veličinu struje.Maksimalna struja bi tada bila:

I=U/R = 5/1k8 = 2,8mA

RPi se još uvek može nositi sa tom vrednošću a Pikolino teško da biuopšte opazio tu struju.

Hardver za oba projekta u ovom poglavlju je identičan. Sastoji se odRPi, Pikolina i dva naponska delitelja sa vrednostima otpornika 1k8 (kodbojenih prstenova smeđ-siv-crven) i 3k3 (prsteni narandžast-naran-džast-crven).