Totul este ca în cele mai bune case din Londra.  Conspirația Londrei și Parisului.  Alegerea celor mai buni dintre cei mai buni: Tony și Maria

Totul este ca în cele mai bune case din Londra. Conspirația Londrei și Parisului. Alegerea celor mai buni dintre cei mai buni: Tony și Maria

Salut! Astăzi vă voi spune cum am reușit să salvez porturi pe Raspberry Pi-ul meu. Mi-am dorit de mult să conectez un afișaj de linie la acest computer cu o singură placă și chiar am încercat să o fac folosind biblioteca wiringpi, dar o astfel de conexiune ocupă o mulțime de ieșiri. Primul lucru care mi-a venit în minte a fost folosirea registrelor de deplasare, dar totuși am decis să mă uit către magistrala I2C sau SPI. După ce am citit subiectele de pe Internet, am găsit o soluție grozavă - KIT SHIELD LCD RGB W/ DISPLAY 16X2 CARACTERE - UTILIZAȚI NUMAI 2 pini! . Placa folosește doar doi pini pentru a controla SDL și SCK prin magistrala I2C, plus că era suficient spațiu pentru cinci butoane tactile. În acest dispozitiv, viteza nu este atât de importantă, așa că magistrala I2C mi s-a potrivit foarte bine. „Inima” plăcii este un cip Microcip, expandorul de porturi MCP23017.

Salut!

Din când în când, în practică, au apărut situații când mă gândeam în vis că ar fi bine să depun un server web ca backend pentru unele dintre proiectele mele simple. Ei bine, pentru a avea un nume de gazdă, așa cum ar trebui să fie, și pentru a-i putea oferi niște date din exterior și a obține niște date, poate înșurubați un socket API sau poate în general - găzduiți-vă propriul blog confortabil acolo.

Un fel de rafturi cu lame au apărut imediat în imaginație, închiriind o mașină virtuală pe Digital Ocean sau, în cel mai rău caz, un computer bâzâit non-stop sub masă.

Dar vrei ceva liniștit, elegant, tăcut și, de preferință, gratuit...

Stop! Dar la urma urmei, totul a fost deja inventat înaintea noastră!

Astăzi vreau să vorbesc despre cum, pentru un ban, cu o cantitate minimă de cunoștințe, puteți tăia o mașină care va asigura 90% din nevoile dvs. de backend (ei bine, ale mele - cu siguranță).
Povestea va purta caracterul de înregistrări pentru sine - pentru a nu uita ce să facă, repetând-o data viitoare, de exemplu)

Cui îi pasă - treceți sub tăietură (apropo, acordați atenție modului în care chipsurile de pe placă sunt lipite cu un sandviș).

Raspberry PI este un dispozitiv care are performanțe suficiente pentru ca pe baza acestuia să poată fi construiți roboți capabili să recunoască imagini, să efectueze munca oamenilor și alte dispozitive similare pentru automatizarea și efectuarea de acțiuni complexe de calcul. pentru că frecvența de ceas a procesorului Raspberry PI 3 m.b. 1,2 GHz și adâncimea sa de biți este de 32 de biți, atunci Raspberry PI 3 este semnificativ superior Arduino obișnuit, care are de regulă o frecvență de ceas de 16 MHz și o lățime de biți a microcontrolerului de 8 biți, Arduino cu siguranță îi ia locul în performanță. operațiuni care nu necesită performanțe ridicate, dar când nu mai este suficient pentru Raspberry PI „vine în ajutor” și acoperă o gamă atât de largă de aplicații posibile, încât poți fi absolut sigur de oportunitatea achiziționării acestui Raspberry PI 3 single- computer de bord (poate fi comandat din link) . pentru că Raspberry PI este un computer, pentru a-l folosi trebuie să instalați un sistem de operare pe el (deși există soluții, este totuși mai bine și mai ușor să instalați sistemul de operare (os mai jos)). Există multe sisteme de operare care pot fi instalate pe Raspberry Pi, dar unul dintre cele mai populare (pentru utilizarea cu Raspberry Pi) și cel mai potrivit pentru începători este sistemul de operare Raspbian. Pentru a instala sistemul de operare pe Raspberry Pi, aveți nevoie de un card micro SD cu un expander, astfel încât să poată fi introdus într-un computer obișnuit și să scrieți sistemul de operare pe acesta. Cardul SD trebuie să aibă cel puțin 4 GB de memorie la instalarea versiunii complete de Raspbian și cel puțin 8 GB pentru instalarea versiunilor minime de Raspbian. Este posibil ca versiunile minime să nu aibă (și cel mai probabil să nu aibă) o interfață grafică și o mulțime de alte lucruri care pot fi considerate de prisos și ocupă spațiu. Pentru a evita problemele legate de lipsa fișierelor necesare, puteți instala versiunea completă. Puteți folosi un card SD de clasa 10 cu 32 GB de memorie (verificat că funcționează (a se vedea videoclipul de mai jos)). După achiziționarea unui card de memorie, trebuie să îl introduceți în computer în slotul corespunzător, apoi căutați cu ce literă a apărut discul în secțiunea „calculatorul meu” și amintiți-vă, apoi trebuie să descărcați sistemul de operare de pe site-ul oficial https: //www.raspberrypi.org/downloads/raspbian / făcând clic pe butonul „Download ZIP” de sub „RASPBIAN JESSIE” pentru a descărca versiunea completă sau sub „RASPBIAN JESSIE LITE” pentru a descărca versiunea simplă, dar, pentru începători, este mai bine a alege "RASPBIAN JESSIE" ie versiunea completa. După descărcarea arhivei „RASPBIAN JESSIE”, trebuie să o dezarhiviți, apoi să descărcați programul (sau de aici https://yadi.sk/d/SGGe1lMNs69YQ), să o instalați, să o deschideți, apoi trebuie să specificați litera unității în colțul din dreapta sus (reamintit mai devreme), găsiți imaginea OS dezarhivată

Și apăsați butonul „scriere”.

După aceea, va apărea o fereastră de avertizare și în această fereastră trebuie să faceți clic pe butonul „Da”,

După ce înregistrarea s-a încheiat și apare o fereastră care informează despre înregistrarea reușită (Write Successful), trebuie să faceți clic pe butonul „Ok” din această fereastră.

Apoi închideți programul, scoateți cardul SD într-un mod sigur și introduceți-l în Raspberry Pi.

Apoi, puteți conecta o tastatură USB (sau ps2 prin intermediul ), un mouse USB și un monitor sau televizor la Raspberry Pi printr-un cablu hdmi sau puteți conecta un cablu ethernet (dar acesta este pentru utilizatorii avansați, așa că vom lua în considerare prima opțiune de mai jos). După aceea, trebuie să conectați alimentarea prin micro usb, de exemplu, de la un încărcător de pe un smartphone. După conectarea la alimentare, va începe instalarea sistemului de operare. De regulă, în versiunile noi (la momentul scrierii acestui articol) ale sistemului de operare, capacitatea de a comunica cu Raspberry Pi prin SSH este deja configurată și, prin urmare, pentru a configura comunicarea cu Raspberry Pi 3 prin wifi, este suficient pentru a configura numai wifi. Pentru a face acest lucru, în colțul din dreapta sus al ecranului există o pictogramă pe care trebuie să faceți clic și să selectați wifi,

Apoi introduceți parola pentru acest wifi în câmpul de text care apare,

După acești pași, wifi pe Raspberry Pi 3 va fi configurat și apoi va fi posibilă programarea Raspberry Pi 3 de la distanță prin wifi fără a utiliza fire. După configurarea Raspberry Pi 3, îl puteți opri tastând sudo halt pe linia de comandă (în programul LXTerminal, care poate fi deschis făcând dublu clic pe pictograma programului) sau apăsând butoanele de oprire corespunzătoare în modul grafic , după oprirea finală, puteți opri alimentarea și data viitoare când porniți puterea Raspberry Pi 3 porniți wifi. Acum, pentru a programa Raspberry Pi 3 prin wifi, trebuie să aflați care este adresa lui IP. Pentru a face acest lucru, trebuie să porniți Raspberry Pi 3, să așteptați ca sistemul de operare să se termine de încărcare, să mergeți la interfața web a routerului (introducând 192.168.1.1 în linia browserului sau ceea ce aveți nevoie pentru a intra în interfața web, introduceți numele și parola), găsiți fila DHCP Leasing sau ceva de genul acesta, găsiți linia cu raspberry și adresa IP a Raspberry Pi 3.

Apoi, trebuie să deschideți programul PuTTY (dacă nu este acolo, atunci descărcați (sau) și instalați-l înainte) setați portul 22, conectați-vă prin SSH, introduceți adresa IP a Raspberry Pi 3 în „Nume gazdă (sau IP Câmp Adresă)",

Apoi apăsați butonul „Deschidere” din partea de jos a ferestrei, apoi va apărea o fereastră neagră care vă va cere să introduceți o autentificare. În mod implicit, autentificarea este „pi” - trebuie să îl introduceți și să apăsați enter. Apoi, trebuie să introduceți o parolă, implicit este „zmeura”. Când introduceți o parolă, aceasta nu este afișată - acest lucru este normal. După ce parola este introdusă cu litere invizibile, trebuie să apăsați enter și dacă totul a fost făcut corect, atunci vom avea acces la Raspberry Pi 3, dacă nu, atunci trebuie să repetați pașii. După ce obțineți acces la Raspberry Pi 3, îl puteți programa, mai întâi trebuie să intrați în folderul „pi”, pentru aceasta trebuie să introduceți comanda

Și apăsați enter (după cd neapărat spațiu).
Acum puteți deschide editorul de text nano. Nano este un editor de text special găsit pe majoritatea sistemelor de operare asemănătoare Linux, în care puteți scrie programe pentru Raspberry Pi. Pentru a deschide acest editor și, în același timp, a crea un fișier cu numele „first” și extensia „py”, trebuie să introduceți comanda

Și apăsați enter. Se va deschide editorul nano și poți observa că interfața sa este puțin diferită, dar practic este aceeași cutie neagră în care trebuie să introduci comenzi. pentru că dorim să controlăm porturile generale de intrare și ieșire (GPIO), apoi, înainte de a rula programul pentru a gestiona aceste porturi, trebuie să conectați un dispozitiv la ele, astfel încât să puteți vedea că controlul s-a dovedit. De asemenea, trebuie menționat că pinii configurați ca ieșiri pe Raspberry Pi pot furniza foarte puțin curent (presupun că până la 25mA) și având în vedere că Raspberry Pi încă nu este cel mai ieftin dispozitiv, este foarte recomandat să aveți grijă ca încărcarea pe pini nu este prea mare. LED-urile indicatoare de putere scăzută pot fi utilizate de obicei cu Raspberry Pi. Au nevoie doar de o cantitate mică de curent pentru a se aprinde. Pentru prima dată, puteți realiza un corp cu un conector, două LED-uri conectate în paralel în direcții opuse și un rezistor de 220Ω conectat în serie cu LED-urile. pentru că rezistența rezistorului este de 220Ω, curentul trece neapărat prin acest rezistor și nu există căi paralele pentru trecerea lui, tensiunea la bornele este de 3,3V, atunci curentul nu va fi mai mare de 3,3/220=0,015A=15mA . Puteți conecta acest lucru la GPIO-uri gratuite, de exemplu, la 5 și 13, ca în diagramă

(pinout luat de pe https://en.wikipedia.org/wiki/Raspberry_Pi), ar putea arăta cam așa:

După ce totul este conectat corect și corect și există încredere că nimic nu va arde, puteți copia primul program simplu Python în editorul NANO

Importați RPi.GPIO ca GPIO
timpul de import
GPIO.setmode(GPIO.BCM)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)
GPIO.output(13, adevărat)
GPIO.output(5, False)
timp.somn(1)
GPIO.output(13, False)
GPIO.output(5, adevărat)
timp.somn(1)
GPIO.output(13, adevărat)
GPIO.output(5, False)
timp.somn(1)
GPIO.output(13, False)
GPIO.output(5, adevărat)
timp.somn(1)
GPIO.output(13, adevărat)
GPIO.output(5, False)
timp.somn(1)
GPIO.output(13, False)
GPIO.output(5, adevărat)
timp.somn(1)
GPIO.cleanup()

Apoi apăsați

După ce părăsiți editorul NANO, puteți introduce comanda

sudo python first.py

După aceea, LED-urile vor clipi de un anumit număr de ori. Acestea. sa dovedit a controla porturile de intrare/ieșire de uz general prin wifi! Acum să ne uităm la program și să aflăm cum s-a întâmplat.
Linia:

Importați RPi.GPIO ca GPIO

Aceasta este conexiunea bibliotecii „GPIO” pentru controlul pinului.
Linia:

Aceasta este o conexiune la biblioteca „timp” pentru întârzieri.
Urmează setarea modului GPIO:

GPIO.setmode(GPIO.BCM)

Configurația pinii 5 și 13 ca ieșiri:

GPIO.setup(13, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)

Setarea unei unități logice pe pinul 13, setarea unui zero logic pe pinul 5:

GPIO.output(13, adevărat)
GPIO.output(5, False)

Întârziere

Setarea unui zero logic pe pinul 13, setarea unuia logic pe pinul 5:

GPIO.output(13, False)
GPIO.output(5, adevărat)

Resetează toți pinii și programul se termină. Acea. poți controla orice pini liberi prin wifi și dacă faci alimentare de 5V din baterie, atunci poți deja să faci un fel de robot autonom sau un dispozitiv care nu este conectat la nimic staționar. Limbajul de programare Python (python) diferă de limbajele asemănătoare C, de exemplu, în loc de punct și virgulă, pentru a finaliza comanda, python folosește un avans de linie, în loc de acolade, folosește o indentare din marginea din stânga, ceea ce se face prin tasta Tab. În general, Python este un limbaj foarte interesant care produce cod simplu ușor de citit. După ce munca (sau jocul) cu Raspberry PI 3 s-a terminat, îl puteți opri cu comanda

Și după o oprire completă, scoateți alimentarea. Când este aplicată alimentarea, Raspberry PI 3 pornește și este gata să funcționeze (sau să se joace) din nou. Puteți comanda Raspberry pi 3 la http://ali.pub/91xb2. Cum să configurați Raspberry PI 3 și să gestionați pinii acestuia poate fi văzut în videoclip:

După ce ați intermit cu succes LED-urile, puteți începe să explorați pe deplin acest computer și să creați proiecte folosind capabilitățile Raspberry PI 3 care sunt limitate doar de imaginația dvs.!

Astăzi este a patra lecție în care vom lucra cu porturile GPIO, în special, vom clipi LED-ul în diferite moduri.

Lecția se adresează utilizatorilor începători și este prezentată în formate text și video.

Videoclipul celei de-a patra lecții:

Pentru lecție avem nevoie de:

  • Placa Raspberry Pi;
  • Cablu de alimentare;
  • tastatura USB;
  • mouse USB;
  • monitor sau televizor cu interfata HDMI/RCA/DVI;
  • cablu, al cărui capăt este RCA sau HDMI, iar celălalt se potrivește cu monitorul dvs.;
  • Card SD cu sistemul de operare Raspbian deja instalat ();
  • Dioda electro luminiscenta;
  • buton;
  • rezistor de 220 ohmi
  • 3 fire "mama-tata"
  • 2 fire tată-tată.

Programare Raspberry Pi GPIO în Python

Pentru lecția de astăzi, am ales limbajul de programare Python.

Python este un limbaj modern orientat pe obiecte. Este cel mai frecvent utilizat pentru programarea GPIO pe Raspberry Pi. Python este inclus cu sistemul de operare Raspbian.

Asamblare model

Pentru a funcționa, trebuie să asamblam următoarea schemă:

Schema de conexiuni pentru LED și buton la Raspberry Pi

Vă rugăm să rețineți că porturile GPIO de pe Raspberry Pi nu sunt etichetate, este util să aveți un pinout imprimat.

Pinout pentru Raspberry Pi. Schemă de la ledgerlabs.us

Model asamblat cu LED si buton

Controlul unui LED pe un Raspberry Pi de pe consolă

Accesați LXTerminal și tastați:

După aceea, în loc de numele de utilizator de la începutul liniei, ar trebui să se afișeze >>> .

Introduceți următoarele rânduri:

Importă RPi.GPIO ca bibliotecă GPIO #import
GPIO.setmode(GPIO.BOARD) #"activați" GPIO
GPIO.setup(7, GPIO.OUT) #declararea celui de-al 7-lea pin ca ieșire

Apoi puteți folosi comanda pentru a porni LED-ul
GPIO.output(7, 1)

Și să se oprească
GPIO(ieșire(7, 0)

După ce lucrați cu GPIO, este de dorit să executați comanda
GPIO.cleanup()

Program de clipire a LED-ului Raspberry Pi

Pentru funcționarea autonomă a LED-ului, trebuie să scriem și să rulăm un program. Pentru a face acest lucru, deschideți programul preinstalat IDLE 3 iar în meniul Fișier, faceți clic pe Nou. În fereastra care se deschide, putem scrie un program.

Hai să scriem:
import RPi.GPIO ca GPIO # bibliotecă de import pentru lucrul cu GPIO
timp de import #library import de așteptat
GPIO.setmode(GPIO.BOARD) #"porniți" GPIO


____GPIO.output(7, 1) #porniți LED-ul

____GPIO.output(7, 0) #opriți LED-ul
____time.sleep(1) #așteptați 1 secundă

Salvați programul într-un folder /home/pi.

Acum putem rula programul din LXTerminal cu comanda
sudo python programname.py

Controlul LED-ului cu un buton

Controlăm LED-ul folosind un buton extern: când butonul este apăsat, LED-ul este aprins, când este eliberat, este stins.

Pentru a face acest lucru, conectați butonul la portul 5.

Pentru a gestiona avem nevoie de următorul program:

Import RPi.GPIO ca GPIO # import bibliotecă GPIO
GPIO.setmode(GPIO.BOARD) #"activați GPIO"
GPIO.setup(7, GPIO.OUT) #declararea portului 7 ca ieșire
GPIO.setup(3, GPIO.IN) #declare portul 3 ca intrare
while True: #buclă infinită
____dacă GPIO.input(3) == Fals: #dacă este apăsat butonul
________GPIO.output(7, 1) #porniți LED-ul
____altfel: #altfel
________GPIO.output(7, 0) #oprire

Control LED cu tastatura

Să facem alt program. Acesta va schimba starea LED-ului atunci când este primit un șir gol și se va termina când este primit un alt șir.

Importați RPi.GPIO ca GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
în timp ce este adevărat:
__str = input("Intrare - pornire, altfel - iesire");
____if str != "":
_______pauză
____altfel:
________GPIO.output(7, 1)
__str = input("Intrare - oprire, altfel - iesire");
____if str != "":
_______pauză
____altfel:
________GPIO.output(7, 0)
GPIO.cleanup()

Acesta încheie cel de-al patrulea tutorial despre Raspberry Pi pentru începători, care urmează să fie continuat!