hamradioshop.ro
Articole > Echipamente si constructii radio Litere mici Litere medii Litere mari     Comentati acest articol    Tipariti

piCore, variantă viabilă pentru Raspberry Pi

Daniel Mihai YO4HKH

În ultimii ani, Raspberry Pi (RPi) a devenit un hardware foarte popular datorită în special prețului redus precum și datorită ariei vaste de utilizare , care poate fi mărginită doar de imaginația utilizatorului. De la apariție și pînă în prezent, au fost realizate mai multe variante constructive, diferențiate prin dimensiuni, putere de calcul sau diverse facilitați. Însă caracteristicile comune au rămas procesorul de tip ARM și sistemul de operare bazat pe Linux.

Radioamatorii au descoperit rapid potențialul RPi și l-au integrat în diverse proiecte, în special datorită ușurinței cu care poate fi conectat la module electronice externe dar și a modului simplu de programare. Din punct de vedere al sistemului de operare utilizat, Raspbian pare a fi cea mai bună variantă, mai ales când scopul utilizarii RPi este didactic. Un alt mare avantaj al acestui sistem de operare este faptul ca există o mare comunitate care îl utilizează, implicit există o cantitate mare de informații utile ce poate fi accesată. De remarcat este faptul că în afara sistemului de operare optimizat Raspbian, pot fi instalate și alte sisteme de operare bazate pe Linux, iar pentru cei care nu iubesc Linux-ul, există chair și varianta instalării Windows 10 IoT.

Personal, am experimentat utilizarea acestui hardware în versiunile Raspberry Pi Zero W ( RPiZW) și Raspberry Pi 3 model B+ (RPi3B+), împreună cu sistemul de operare Raspbian , fapt care m- a ajutat să înteleg în bună măsură funcționarea acestui hardware. Am realizat diverse proiecte, folosind atăt componente extra-hardware gata fabricate ( module display Nokia 5510, module RFID, module RF 433Mhz), cât și construite de către mine ( interfețe de intrare GPIO, module ieșire cu releu, interfețe pentru diverse tipuri de senzori ).

Nu voi mai insista pe avantajele pe care le are RPi în ceea ce privește realizarea proiectelor experimentale, dar voi prezenta în cateva cuvinte unul din marile dezavantaje, care apare în momentul în care se încearcă realizarea unui produs finit util, căruia i se impun condiții în ceea ce privește siguranța în funcționare. Subliniez aici că nu este vorba despre produse comerciale, utilizabile în industria auto, feroviară, navală sau aero, unde sunt impuse conditii extreme în ceea ce privește modul de construcție al echipamentelor și asupra caracteristicilor tehnice și funcționale, mă refer la produse strict pentru uzul radioamatorilor, dar care necesită o functionare cât mai sigură.

Dupa cum se cunoaste, RPi utilizeaza un micro SD card atât pentru instalarea sistemului de operare dar și pentru stocarea aplicațiilor și datelor utilizatorului. Acest fapt este un dezavantaj major în cazul în care, din diverse motive, apare o cădere a tensiunii de alimentare în timpul funcționării, sau este necesară din punct de vedere funcțional deconectarea bruscă de la tensiunea de alimentare. În astfel de situații, sunt cele mai mari șanse ca datele aflate pe micro SD card să fie alterate, iar RPi nu va mai porni, fiind necesar un proces de mentenanță. În unele situații, micro SD cardul devine inutilizabil din punct de vedere fizic.

Există diverse soluții pentru reducerea riscurilor în aceste situații, respectiv utilizarea unor echipamente UPS specializate, instalarea sistemului de operare pe un SSD sau HDD extern (RPi3B+) sau realizarea unor surse de alimentare bazate pe supercapacitoare. Am constatat că niciuna din aceste soluții nu este 100% sigură, în plus apare și un grad mai mic sau mai mare de complexitate precum și extra-costuri.

Voi prezenta în continuare o altă rezolvare a problemei în cauză, care, în opinia proprie, reprezintă cea mai bună soluție pentru realizarea unui sistem funcțional, cu grad ridicat de fiabilitate. Este vorba de înlocuirea sistemului de operare Raspbian cu piCore, o variantă optimizată a Tiny Core Linux pentru RPi. Menționez că pentru a utiliza piCore împreună cu RPi este necesară o bună întelegere a modului în care funcționează acest sistem de operare, iar informațiile se găsesc din abundență pe internet. Ce trebuie reținut este faptul că în momentul pornirii, piCore expandează și lucrează în RAM, iar datele obținute în urma proceselor se pot salva în diverse faze pe micro SD card. În acest mod, sistemul de operare scris pe micro SD card ramâne intact și nu poate fi afectat de o intrerupere brusca a tensiunii de alimentare. La reconectarea tensiunii de alimentare, RPi va porni în siguranță.

Există diverse metode de instalare a sistemului de operare piCore, dar voi prezenta în continuare metoda pe care eu am utilizat-o pentru RPiZW și a funcționat fară a fi întampinat dificultăți.

1. Descărcarea unei imagini piCore disponibile
Descărcarea se face pe un computer cu Windows, de la adresa:
https://distro.ibiblio.org/tinycorelinux/9.x/armv6/releases/RPi/piCore-9.0.3.zip
Se salvează fișierul piCore-9.0.3.zip la o locație cunoscută și se dezarhivează.
În urma dezarhivării rezultă fișierul piCore-9.0.3.img, care ne este necesar.

2. Descărcarea fișierelor necesare activării modulului wifi
Descărcarea se face pe același computer cu Windows, de la adreasa:
https://www.novaspirit.com/?smd_process_download=1&download_id=1375
Rezultă fișierul “rpi-wireless.tar”, care se poate dezarhiva cu winRAR și se obține directorul “rpi-wireless”, ce conține fișierele necesare activării modulului wifi.

3. Pregătirea unui micro SD card pentru instalare
Este necesar un micro SD card de calitate, dar spre deosebire de instalarea sistemului Raspbian, aici nu mai este necesar un card de clasa 10 ( care asigură o viteză mare de citire/scriere) datorită faptului că piCore expandează în memorie și aceasta influentează în principal viteza de citire/scriere. Dimensiunea cardului utilizat se va alege în funcție de ceea ce se intenționează a se realiza și în special de volumul de date ce se vor salva pe card în timpul funcționării. Cardul se va formata din Windows cu FAT32 și allocation unit size 4096 bytes.

4. Transferarea imaginii piCore pe micro SD card
Se descarca si se instaleaza Etcher pentru Windows de la locatia:
https://github.com/balena-io/etcher/releases/download/v1.4.6/Etcher-Setup-1.4.6-x86.exe
pentru Win 32
sau
https://github.com/balena-io/etcher/releases/download/v1.4.6/Etcher-Portable-1.4.6-x64.exe pentru Win 64
Se introduce micro SD cardul în adaptor sau cititorul de carduri ( dupa caz ), se selectează fișierul imagine piCore-9.0.3.img (vezi pct. 1), se selecteaza micro SD cardul, iar Etcher va scrie imaginea piCore într-un timp relativ scurt.

Atenție:
Deși există și alte aplicații care pot transfera fișiere imagine pe micro SD card ( ex:Win32DiskWriter), Etcher
este singura aplicație care a fost utilă scopului propus, prin prisma dimensiunilor partițiilor scrise pe card și
care a permis instalarea inițială din windows a fișierelor pentru activarea modulului wifi.

5. Transferarea pe micro SD card a fișierelor necesare activării modulului wifi
Pe același computer, în Windows Explorer se va selecta micro SD cardul. Windows va vedea doar partiția de pe card denumită piCore.
Se caută fișierul 9.0.3.v7.gz și se sterge, pentru a face loc pe disc.
Se crează un director nou numit, de exemplu “opt” .
Se copiază în acest director toate fișierele incluse în directorul “rpi-wireless” (vezi pct. 2).
După ce se termină copierea fișierelor, se ejectează micro SD cardul din adaptor sau cititor.

6. Redimensionarea partițiilor pe micro SD card
După scrierea imaginii piCore pe micro SD card, rezultă doua partitii. De interes este partiția /boot care are o dimensiune de aproximativ 3,7Mb. Această partiție trebuie extinsa
pentru a ocupa întreaga dimensiune ramasă a micro SD cardului, pentru a permite instalarea de noi extensii și a asigura spațiu de stocare pentru datele ce necesită a fi salvate.
Pentru a efectua redimensionarea partiției /boot, introduceți micro SD cardul întru-un calculator pe care rulează Ubuntu 18.04 LTS și utilizați aplicația preinstalată Disks.
Se porneste aplicatia Disks.
În partea stangă a ferestrei se selectează micro SD cardul ( removable disk).
În partea dreaptă va apare o reprezentare grafică a conținutului micro SD cardului . Se selectează partiția /boot, iar din butonul “Settings” se selectează “Resize”.
În fereastra nou aparută se translatează cursorul până la valoarea maximă permisă. În acest fel partitia obținută utilizează spațiul maxim disponibil pe card, fară a afecta
fișierele deja scrise în această partiție. După finalizare, se ejecteaza micro SD cardul din sistem.

7. Pornirea RPi
Se montează micro SD cardul în RPi, acesta fiind nealimentat.
Se montează o tastatură la unul din porturile USB disponibile ( RPi3B+) sau prin intermediul unui cablu OTG (RPiZW).
Se conectează RPi printr-un cablu HDMI la un monitor dotat cu o astfel de facilitate. Se poate utiliza orice modalitate de conectare a monitorului, în funcție de disponibilitați.
Se alimenteaza RPi.
Sistemul de operare va porni în scurt timp și va apare cursorul tc@box~$ .

8. Instalarea și pornirea modulului wifi
La acest moment, Raspberry Pi , este teoretic functional, dar nu este foarte util întrucat instalarea este minimală. Este necesară instalarea extensiilor care vor fi utilizate și
acest lucru se poate face cel mai simplu prin activarea modulului wifi și accesarea internetului. Dupa activare, RPi se va putea conecta la o rețea wifi existentă, ce va permite
descărcarea și instalarea de noi extensii, precum și comunicarea TCP/IP sau UDP cu alte dispozitive. Deasemenea, conectarea în rețeaua wifi permite controlul RPi prin SSH de la un
alt computer din rețea, eliminandu-se astfel utilizarea monitorului și a tastaturii.

Se copiază conținutul directorului “opt” (vezi pct. 5) de pe partiția /piCore în directorul “optional” din partiția /boot.
tc@box~$ sudo mount /dev/mmcblk0p1 /mnt/mmcblk0p1
tc@box~$ cp /mnt/mmcblk0p1 /opt/* /mnt/mmcblk0p2/tce/optional/
În timpul copierii răspundeți cu “y” în cazul în care este solicitată suprascriere pentru diverse fișiere.


Se tastează comenzile:
tc@box~$ tce-load -i firmware-rpi3-wireless
Output: firmware-rpi3-wireless.tcz : OK
și
tc@box~$ tce-load -i wifi
Output: readline.tcz : OK
libn1.tcz : OK
wpa-supplicant.tcz : OK
wireless-4.9.22-piCore.tcz : OK
libiw.tcz : OK
wireless_tools.tcz : OK
wifi.tcz : OK

Se execută pornirea modulului wifi
tc@box~$ sudo wifi.sh

În urma acestei comenzi, începe scanarea și apar pe ecran rețelele wifi găsite.
În această fază nu se selectează nicio retea, doar se tastează q ( pentru iesire ).

Se execută comenzile:
tc@box~$ echo “firmware-rpi3-wireless.tcz” >> /mnt/mmcblk0p2/tce/onboot.lst
tc@box~$ echo “wifi.tcz” >> /mnt/mmcblk0p2/tce/onboot.lst

Se resetează RPi
tc@box~$ sudo reboot

Se repornește modulul wifi
tc@box~$ sudo wifi.sh
Apare lista rețelelor wifi disponibile, se selectează indexul rețelei dorite, se introduce parola
pentru această rețea, iar conectarea se va face automat. Pentru a verifica dacă setarile au fost
preluate, se verifică adaptorul wlan0 cu comanda: tc@box~$ ifconfig
Dacă totul este in regulă, la secțiunea wlan0 va apare inet address: 192.168.xxx.xxx, adresa
internă cu care este conectat RPi în rețea.

Se setează conectarea automată la rețea în momentul pornirii RPi.
tc@box~$ echo “wifi.sh -a” >> /opt/bootlocal.sh

Se salvează toate setările făcute cu comanda:
tc@box~$ filetool.sh -b

Se resetează RPi și se urmărește dacă se face conectarea automată la rețea, utilizand comanda
ping și un server cunoscut ( ex: www.google.com):
tc@box~$ sudo reboot
tc@box~$ ping www.google.com

9. RPi, utilizarea în proiecte electronice
În acest moment, RPi este funcțional, avînd și o conexiune la internet prin rețeaua wifi. Tastatura și monitorul nu mai sunt necesare și controlul RPi se poate face prin SSH de la
orice computer conectat în rețea. Personal, utilizez un computer cu Windows 7 și aplicația “puTTY”. Pentru a afla adresa ip cu care RPi este conectat în rețea, utilizez aplicația “WNetWatcher”.

Logarea la RPi se face cu:
user : tc
password: piCore

Cel mai facil mod de a utiliza RPi pentru diverse proiecte electronice este instalarea limbajului de programare “python”, care nu este inclus în piCore.
tc@box~$ tce-load -wi python.tcz

De asemenea, pentru acces la porturile GPIO, este necesară instalarea modulului RPi.GPIO
tc@box~$ tce-load -wi python-RPi.GPIO.tcz

O aplicație utilă pentru editarea de fișiere este “nano”
tc@box~$ tce-load -wi nano.tcz

Editarea fișierului config.txt se face cu comanda:
tc@box~$ sudo nano /mnt/mmcblk0p1/config.txt

Pentru a începe un proiect, recomand următorii pasi:
Creerea unui director ( ex:”script”) care va găzdui scriptul python, precum și alte fișiere necesare proiectului.
tc@box~$ mkdir /home/tc/script

Poziționarea în directorul “script”
tc@box~$ cd /home/tc/script

Creerea unui fișier (ex: ”test.py” ) care va fi executat de python și care conține comenzile și
instrucțiunile caracteristice.
tc@box~$ sudo nano test.py
Editorul “nano ” va deschide un fișier nou, care, după completarea cu instrucțiuni și comenzi se va salva cu Ctrl+O , urmând a se ieși cu Ctrl+Y.

Următorul pas este comunicarea către sistemul de operare a numelui directorului care conține
datele ce trebuie salvate. Aceasta se face cu comanda:
tc@box~$ sudo echo '/home/tc/script' >> /opt/.filetool.lst

În permanență trebuie ținut cont că orice modificare făcută trebuie completată cu comanda
tc@box~$ filetool.sh -b
pentru a asigura persistența modificărilor făcute. Deasemenea, această comandă poate fi folosită și în interiorul unui script (prin intermediul modulului specific), când este necesară salvarea unor date în timpul execuției scriptului.

De mare interes în cazul proiectelor electronice este atunci când un script trebuie să ruleze o dată cu pornirea sistemului. Pentru aceasta, se folosește următoarea comandă:
tc@box~$ sudo echo “sudo python /home/tc/script/test.py” >> /opt/bootlocal.sh
tc@box~$ filetool.sh -b

Configurația astfel creată va permite utilizarea RPi în proiecte simple, care necesită accesarea porturilor GPIO și comunicația prin TCP/IP sau UDP cu alte dispozitive sau senzori.
Pentru proiecte mai complexe este necesară cunoașterea în amănunt a sistemului de operare piCore, în special modul în care se pot instala diverse module python. Nu în ultimul rând trebuie ținut cont de dimensiunea RAM-ului instalat.

Documentație:
http://tinycorelinux.net/corebook.pdf
https://www.novaspirit.com/2018/01/09/tiny-core-raspberry-pi-zero-w-install/

03.11.2018

Daniel Mihai YO4HKH

Articol aparut la 8-11-2018

800

Inapoi la inceputul articolului

Comentarii (2)  

  • Postat de Lucian DAMIAN - YO8SSB (yo8ssb) la 2018-11-08 13:10:56 (ora Romaniei)
  • Felicitari, un articol foarte interesant!

    73 de YO8SSB!

  • Postat de Dan - YO3GH (yo3gh) la 2018-11-09 11:40:45 (ora Romaniei)
  • Super, f practic , multumim !

    Scrieti un mic comentariu la acest articol!  

    Opinia dumneavoastra va aparea dupa postare sub articolul "piCore, variantă viabilă pentru Raspberry Pi"
    Comentariul trebuie sa se refere la continutul articolului. Mesajele anonime, cele scrise sub falsa identitate, precum si cele care contin (fara a se limita la) atac la persoana, injurii, jigniri, expresii obscene vor fi sterse.
    Comentariu *
     
    Trebuie sa va autentificati pentru a putea adauga un comentariu.


    Opiniile exprimate în articole pe acest site aparţin autorilor şi nu reflectă neapărat punctul de vedere al redacţiei.

    Copyright © Radioamator.ro. Toate drepturile rezervate. All rights reserved
    Articole | Concursuri | Mica Publicitate | Forum YO | Pagini YO | Call Book | Diverse | Despre Radioamator.ro | Contact