Raspberry Pi

Kategória: Elektronika.

Első lépések

Áttekintés

A Raspberry Pi egy kompakt ("hitelkártya méretű"), olcsó (a kiegészítők nélküli alap "reklámára" 20 dollár) számítógép. A Raspberry Pi 3 Model B+-t próbáltam ki, melyek specifikációja:

  • Processzor: 1,4 GHz 64-bites quad-core ARM
  • Memória: 1 GB
  • Háttértár: nincs; 32 GB-os TF kártyát lehet beletenni
  • Portok:
    • 4 db USB
    • LAN
    • HDMI
    • jack dugó
    • TF kártya olvasó
    • CSI kamera
    • DSI érintőképernyő
    • LAN
    • bluetooth
    • 40 db GPIO

A Raspberry Pi kinézete:

raspberry-pi.png

Előnyök és hátrányok

Lássuk, mire jó és mire nem jó a Raspberry Pi!

Előnyei:

  • Kompakt a mérete. Kis helyen elfér.
  • Kedvező az ára. Igaz, a 20$ egy elméleti érték, a kötelező kiegészítőkkel ennek a többszöröse, de még így is megfizethető.
  • Alacsony az energiafogyasztása.
  • Stabil a működése.

Hátrányai:

  • Folyamatos áramellátás kell neki; nem lehet hordozható. Ez egyébként meglepő, mert elvileg ki lehetne alakítani egy hordozható változatot egy akkumulátorral és megfelelően használható LCD kijelzővel.
  • Vastagabb, mint feltétlenül muszáj. Pl. ma már szinte felesleges rajta a LAN kábel bemenet, ami meghatározza a vastagságát, anélkül az USB lenne a vastagsága.
  • A teljesítménye elmarad a laptopok teljesítményétől. Igazából csak egy-két egyszerűbb program futtatására alkalmas.
  • Számos lehetséges praktikus felhasználási mód esetén nem érzem kiforrottnak.

Tipikus felhasználási területei:

  • Szerverként (pl. torrent, fájlszerver stb.), ugyanis alacsony az energiafogyasztása, így folyamatosan használható.
  • Oktatási célra. Lehet rá úgy tekinteni, mint a hobbi elektronika projektek "utolsó előtti" állomása a számítógépek előtt.

Felfoghatjuk úgy is, mint egy Linux operációs rendszer alatt futó számtógépet, két korlátozással:

  • Az ARM processzor miatt nem lehet bármit feltelepíteni. Vannak programok, amelyeket nem fordítottak le erre a processzor típusra. Elvi akadálya persze nincs neki, ha meg van a forráskód, de azért ha egy olyan programmal próbálkozunk, amit még nem ültetettek át mások ARP processzorra, akkor számíthatunk arra, hogy nekünk se fog, legalábbis ár/érték arányban nem éri meg. Példát erre nehéz mondani, mert a leggyakoribb programokat átültették.
  • A teljesítménye - már a méreteiből fakadóan is - elmarad egy átlagos PC-től. A legtöbb program eleve lassabban fog futni, ill. a megszokotthoz képest korábban eljön az a pont, amikor már használhatatlanul belassul. Például lehet ugyan böngészni, de 30 böngészőlapot nem érdemes nyitva tartani. Lehet több programot futtatni párhuzamosan, de ne próbálkozzunk egyszerre hússzal. Lehet szöveget szerkeszteni, akár Word dokumentumot is, de több ezer oldalas WOrd dokumentummal ne próbálkozzunk. Az olyan komoly számításigényű feladatokkal, mint pl. videó feldolgozás, nem is érdemes próbálkozni. És nagyobb látogatottságú weblapot se erről szolgáljunk ki.

Összehasonlítások

Két irányba teszek kísérletet az összehasonlítással: "lefelé", a programozható mikrokontrollerek irányába, és "felfelé", a személyi számítógépek irányába.

Raspberry Pi vs. programozható mikrokontrollerek

Talán a legismertebb darab az Arduino Uno, viszont azóta megjelentek újabb, nagyobb tudású darabok, melyek nagyjából ugyanabban az árfekvésben találhatóak: kb. 5 dollár, házhoz szállítva. Az írás pillanatában a legjobb ár/értékű döntésnek egy ESP32-es eszköz tűnik, melyben 4 MB memória van, valamint van hozzá wifi és bluetooth is. Azonban ez önmagában szinte semmire sem használható: kellenek hozzá bemeneti és kimeneti eszközök (pl. szenzorok, kijelzők, mindenféle áramköri eszközök), amelyek pénzbe kerülnek, használatukhoz pedig megfelelő tudás és tapasztalat kell. Ezeken az eszközökön alapból nincs operációs rendszer. C++-ban programozható, és csak egy konkrét dologra használható. Nem telepíthető fel tehát rá egy általános célú operációs rendszer, ahol elindítjuk a programokat, hanem valójában mi töltjük fel az "operációs rendszert", ami azt az egy konkrét dolgot hajtja végre, ami le lett programozva.

A Raspberry Pi ára elég nagy sávban mozog. Egyrészt függ attól, hogy melyik modellt választjuk, ill. hogy milyen kiegészítőket vásárolunk hozzá (az alaphoz ugyanis még egy tápkábel sem jár, ill. nincs benne tárhely, ahova feltölthetjük az operációs rendszert). Az írás pillanatában a kifutó termékek közül a Raspberry Pi B+-t érdemes alapul venni, ami 1 GB memóriával rendelkezik. Kellően felszerelve (tápkábel, doboz, hűtés, SD kártya) az ára kb. 50 dollár. Elsőre tehát kb. tízszer drágább, mint a fent említett mikrokontrollerek. Ám a pénzünkért többet is kapunk: már a memória méret eltérésből is sejthető, hogy sokkal többre képes (és zárójelben érdemes megemlíteni, hogy a programozható mikrokontrollerek kiemelt darabja, az Arduino Uno mindössze 32 kB memóriával rendelkezik). Ez a memória már elegendő arra, hogy egy Linux alapú operációs rendszert telepítsünk fel rá. Itt tehát nem egy valami fut rajta, hanem egy teljes operációs rendszer, melyen távolról belépve programokat tudunk indítani. A programozása is tipikusan úgy történik, hogy belépünk, és ott indítjuk az integrált fejlesztőeszközt. Lényegében tetszőleges Linuxos programot fel tudunk telepíteni, ezáltal a lehetőségek tárháza összehasonlíthatatlanul bővebb annál, amint a fent említett programozható mikrokontrollerek nyújtanak.

Érdemes megemlíteni a Raspberry Pi olcsó kínai klónjait: pl. egy fél GB memóriával rendelkező Orange Pi (a Raspberry Pi-hez hasonló felszereltséggel) mindössze 25 dollár. Ott is tudunk operációs rendszert futtatni, bár sokkal nehézkesebb és lassúbb, mint a Raspberry Pi esetén. Azonban árban, ha hozzá vesszük a mikrokontrollerekhez néhány kiegészítőt, már nem sokkal több azoknál.

Raspberry Pi vs. személyi számítógép

A fent említett 1 GB memóriával rendelkező Raspberry Pi B+ egész jól használható egy-két egyszerű dologra. Ám vannak korlátai: pl. nem tudunk tucatnyi programoz futtatni egyszerre, nem érdemes egy-két böngészőablaknál többet nyitva hagyni, és az olyan erőforrás igényes programokkal, mint pl. a videó feldolgozó, nem is érdemes próbálkozni. Ez a megállapítás viszont csak erre a modellre vonatkozik! Vajon az újabb modellek mennyire veszik fel a versenyt a személyi számítógépekkel?

Gyors keresés után összehasonlítási alapnak a 8GB memóriával rendelkező laptopok kategóriájában a legolcsóbbat választottam: egy Lenovo V15-ös Notebook-ot. A specifikációjának a számunkra relevánsabb részei:

  • Memória: 8GB
  • A processzor típusa: AMD Ryzen 3 3250U (2 core, 4 thread)
  • Processzor órajele: 2,6 GHz
  • Háttértároló: 256 GB SSD

A kiválasztásnál szempont volt, hogy legyen rajta operációs rendszer: Windows 10 Home. Itt végül is lehet amellett érvelni, hogy alapból ne legyen benne operációs rendszer, és telepítsünk rá Linuxot, így Linuxot hasonlítunk Linuxszal. Mindenesetre a fenti konfiguráció ára kb. 200.000 Ft.

Lássuk az írás pillanatában legnagyobb tudású Raspberry Pi-t! Ez egy 8 GB memóriával felszerelt Raspberry Pi 4 darab. Erről nincs személyes tapasztalatom, így csak a specifikációra hagyatkozhatok. Lássuk!

  • Némi keresést követően egy magyar boltban találtam egy jól felszerelt egységcsomagot, ami tartalmaz házat, hűtést, tápkábelt, valamint egy 16 GB-os microSD kártyát.
  • Mivel a notebook-oknak van képernyőjük, a Raspberry Pi-nak meg nincs, az összehasonlításhoz azt is kell venni. A legolcsóbb olyan darab, ami a laptopok monitorainak a specifikációját hozza, valamint van HDMI kimenete (ez kell a Raspberry Pi-hez) egy kb. 30 ezer Ft-os Acer monitor.
  • A notebook-on van billentyűzet és érintőpárnája, ezek kiváltására kell a Raspberry Pi-hez is billentyűzet és egér. Ezek nagyjából 1000 Ft környékén kezdődnek, és a határ általában a csillagos ég; jótékonyan számoljuk a kettőt együtt 5000 Ft-ért.
  • A fenti laptopban van 256 GB SSD tároló, a fenti egységcsomagban viszont csak 16 GB microSD található. Ezt kiváltandó találtam egy 250 GB-os külső merevlemezt 10.000 Ft-ért. Bár a gyakorlatban valószínűleg nem ezt vennénk meg (pár ezer Ft-tal drágábban már a TB méretűek közül válogathatunk), az elméleti összehasonlításhoz példaként vegyük ezt.
  • A laptopokban van hangszóró, a Raspberry Pi-ban nincs. Feltételezhetjük, hogy egy 10.000 Ft körüli hangszóróval már megkapjuk azt a minőséget, amit a otebook nyújt.

Árban kb. 100.000 Ft-nál tartunk, és kaptunk egy, a fenti notebookkal összehasonlítható konfigurációt. Ám néhány dolgot nem vettünk figyelembe, ami a notebook irányába billenti még a mérleget:

  • A notebook hordozható, a Raspberry Pi viszont nem. Mondjuk billentyűzettel, egérrel, monitorral nem is lenne praktikus hordozni.
  • Alapból a notebooknak 3, a Raspberry Pi-nek viszont 4 USB kimenete van, csakhogy ezzel a konfigurációval a Raspberry Pi "elveszített" 3-at.
  • A processzor különbséget nem tudunk kiegyenlíteni. Egyrészt az órajelben van lényeges eltérés (2,6 GHz ill. 1,5 GHz), viszont mai még ennél is lényegesebb az az, hogy a Raspberry Pi-ben ARM processzor van, amelyre számos Linuxos programot sem fordítottak le.
  • Egy SSD-t "váltottunk ki" egy külső tárolóval. Feltehető, hogy nem ugyanazt a teljesítményt nyújtják.
  • Az itt ismertetett Raspberry Pi az egykártyás számítógépek csúcsa, a fenti notebook pedig a neki megfelelő laptopok kategóriájának belépő szintje. Közlekedési hasonlattal élve: a leggyorsabb futó majdnem olyan halad, mint a leglassúbb kerékpáros. Tehát ha kiderül, hogy valami miatt a kiválasztott laptop nem megfelelő, akkor bőven van lehetőség felfele lépni, míg a Raspberry Pi-nek ez a modellje az írás pillanatában a csúcsok csúcsa, egyelőre nincs feljebb.

Viszont a lényeg: nagyjából féláron sikerült egy Raspberry Pi alapú konfigurációt összehozni, amelynek a specifikációja megközelíti a fenti notebook-ét. Ha elsősorban asztali számítógépként tekintenénk rá, és nem szeretnénk nagyon különleges szoftvert használni, akkor a Raspberry Pi reális alternatíva lehet.

Összeszerelés

  • Szedjük szét a tokot 3 részre.
  • Helyezzük be a Raspberry Pi-t az aljába.
  • Csavarozzuk bele 4 csavarral.
  • Helyezzük rá a 3 hűtőpanelt:
    • az 5 csíkosból állót a középső USB-k mögé,
    • az 5x5-ös mátrixból állót középre, a HDMI-vel kb. egy magasságban,
    • a málna jelűt pedig a sarokba, a tűk mellé, az ugyanolyan jelű eszközre.
  • A LAN bemenet tetejére ragasszunk egy fekete párnát.
  • Helyezzük rá az LCD-t a tűkre, az USB-től legtávolabb, pontosan illesztve.
  • Helyezzük rá a tok oldalát.
  • Alul helyezzük rá a 4 csúszásgátlót.
  • LCD-vel a tok teteje kimarad.

Ez így kész. Ha nincs LCD képernyő, akkor tudunk ráhelyezni aktív hűtőt a következőképpen:

  • szedjük le az 5x5-ös mátrixból álló hűtőpanelt,
  • szereljük fel a málna jelűt ugyanoda
  • vegyük le a fóliát a hűtőről,
  • helyezzük rá közvetlenül a tűk mellé, de úgy, hogy a tűkhöz még hozzá lehessen férni,
  • a piros vezetéket a felső (külső) sor második, míg a feketét a harmadik tűjére helyezzük rá,
  • tegyük rá a tetejét.

Ez utóbbi a tipikus hosszú távú üzemeltetés alapfelállása. Aktív hűtés nélkül is működik, de a tapasztalat szerint melegszik.

Operációs rendszer telepítése

A Raspberry Pi operációs rendszere a Raspbian. A beállításokról részletesen a https://projects.raspberrypi.org/en/pathways/getting-started-with-raspberry-pi oldalon olvashatunk. Dugjuk be a TF kártyát számítógépbe: vagy az adapteren keresztül az SD kártya olvasóba, vagy az USB átalakítóval az USB-be. Töltsük le az operációs rendszert erről az oldalról: https://www.raspberrypi.org/software/.

  • Keressük meg ezt: Download for Windows
  • Töltsük le.
  • Telepítsük fel.
  • Indítsuk el. Elindul a Raspberry Pi Imager v1.6.2.

Majd hajtsuk végre a következő lépéseket:

  • Operating System: RASPBERRY PI OS (32-BIT)
  • Storage: SDHC CARD
  • Ctrl + Shift + X: előkonfigurálás. Praktikus beállítások:
    • Set hostname: maradhat raspberrypi.local. ezzel azt érjük el, hogy ilyen névvel el tudjuk érni azokról az eszközökről, amelyek ugyanarra a wifi hálózatra csatlakoznak.
    • Enable SSH: legyen bekapcsolva, így azonnal el tudjuk érni távolról, nem kell hozzá billentyűzet.
    • Use password authentication legyen bekapcsolva, és adjunk meg egy jelszót.
    • Configure wifi: a számítógép elvileg átadja az adatokat, de ha nem, meg tudjuk adni az SSID-t és a jelszót.
    • Set local settings: Time Zone: Eupore/Budapest
    • Keyboard layout: hu
  • Kattintsunk a Save gombra.
  • Kattintsunk a WRITE gombra. Hagyjuk jóvá a felülírást.

Helyezzük be az SD kártyát a Raspberry Pi-be, mintával lefelé. Dugjuk áramforrásra. Ha nem világít a piros LED, akkor nyomjuk meg a kábelen a gombot. Kb. 10-15 másodperc alatt elindul.

Tananyag

A Raspberry Pi-ról is elmondható, hogy nagy mennyiségű anyag található a neten. Ezek közül ismertetek itt párat.

A Koronavírus okozta kijárási korlátozások pozitív hozadéka az online oktatási formák örömteli elterjedése. Többek között az index.hu is létrehozott egy videósorozatot Iskolatévé néven. A Raspberry Pi-ról szóló 7+1 részes sorozat magyar nyelvű videói Kangyerka András előadásában a YouTube-on az alábbi oldalakon érhetőek el:

Ingyenes, angol nyelvű, a Raspberry Pi fizikai eszközeinek programozásáról szóló, elsősorban diákokkal foglalkozó felnőttek részére szánt on-line kurzus az alábbi linken érhető el: https://www.futurelearn.com/courses/physical-computing-raspberry-pi-python

Csatlakozás

Az eszközhöz többféle módon tudunk csatlakozni.

Közvetlenül

Csatlakoztassunk egy USB billentyűzetet, egy USB egeret, valamint egy HDMI monitort a Raspberry Pi-re. (Régebbi monitorokhoz szükség lehet HDMI-VGA átalakítóra.) Ha minden rendben történt, akkor a monitoron láthatjuk az elindult operációs rendszer grafikus felületét, és tudjuk használni a billentyűzetet és az egeret.

Terminál mód

Egy tetszőleges olyan számítógépről, amelyik ugyanarra a hálózatra kapcsolódik, mint a Raspberry Pi, indítsunk el egy távoli terminál programot. Pl. Windows alól érdemes a putty programot használni (ingyenesen letölthető innen: https://www.putty.org/):

  • Host name: raspberrypi
  • Port: 22
  • Connection type: SSH
  • Érdemes lementeni: Save
  • Kapcsolódás: Open

Első kapcsolódáskor kiír egy figyelmeztetést, azt fogadjuk el. Majd:

  • Felhasználó név: pi
  • Jelszó: amit fent megadtunk (ha nem adtunk meg semmit, akkor az alapértelmezett ez: raspberry)

Ha minden rendben történt, akkor be vagyunk jelentkezve. Ha az SSH be van állítva, akkor nemcsak terminál módban érjük el az eszközt, hanem a fájlokat is elérjük SCP protokollon keresztül. Ehhez Windows-on a WinSCP programot használhatjuk.

Számos oka lehet egyébként annak, ha nem működik. A megoldáshoz közvetlen elérésre van szükség, bár az is megfontolandó, hogy ez esetben egyszerűen újratelepítjük.

Nincs engedélyezve az SSH

Ha nem működne, akkor elképzeTelepítéskor alapértelmezésben ki van kapcsolva, de még telepítés előtt be tudjuk konfigurálni. Ha ez a helyzet, akkor csak a közvetlen elérés működik; ez esetben hajtsuk végre a következőt:

Preferences → Raspberry Pi Configuration → Interfaces fül → SSH: Enable

Nem kapcsolódik a hálózatra

Ezt is be tudjuk állítani telepítés során. Ha nem tettük meg akkor a jobb felső sarokban a wifi jelre kattintva tudjuk kiválasztani azt a hálózatot, melyre csatlakozni szeretnénk.

Név alapján nem elérhető

Ha nem töltöttük ki a nevet, akkor csak IP alapján tudjuk elérni. Ehhez meg ell tudnunk az IP címet, amit a routertől tudunk lekérdezni. Az router függő, hogy hogyan tudunk belépni. Tipikus lehetőség: egy olyan számítógépről, amivel sikerült rácsatlakozni, nyissuk meg egy böngészőből az adminisztrációs oldalt (az tipikusan 192.168.0.1 vagy 192.168.1.1; gyakran rá van írva a router aljára). A legtöbb esetben meg kell adni egy azonosítót és egy jelszót (az azonosító többnyire admin, a jelszó sokszor rá van írva a router aljára). Ott meg tudjuk nézni, hogy milyen eszközök vannak csatlakoztatva, sőt, gyakran arra is van lehetőség, hogy egy-egy eszköz számára legfoglaljuk az IP címet. Egyébként a legtöbb router igyekszik újracsatlakozáskor ugyanazt az IP címet kiosztani. Az IP cím egy 192.168-cal kezdődő valami; az én esetemben pl. 192.168.1.75.

Ha név alapján nem elérhető, akkor próbálkozhatunk az alábbival:

sudo apt-get install avahi-daemon avahi-discover libnss-mdns
sudo /etc/init.d/avahi-daemon restart

Nem tudom, mit csinál, de nálam bevált.

Távoli desktop mód

A https://raspberrytips.com/remote-desktop-raspberry-pi/ oldal kiváló leírást ad a témáról. Mi most az ott bemutatott 5 lehetőség közül az esőt nézzük meg.

Alapból nem tudunk desktop módban rácsatlakozni a Raspberry Pi-re, ahhoz fel kell telepítenünk egy szerver programot. A legkézenfekvőbb a kifejezetten erre a célra kifejlesztett xrdp. Telepítése:

sudo apt-get install xrdp

Ezt követően az alapértelmezett Windows-os Távoli asztali kapcsolat programmal tudunk csatlakozni:

  • Számítógép: raspberrypi (vagy az IP-t is megadhatjuk, pl. 192.168.1.75)
  • Csatlakozás

Ott adjuk meg a további belépési adatokat:

  • Session: Xorg
  • Username: pi
  • Password: amit megadtunk

LCD képernyő

Ha van LCD képernyőnk, azt a következőképpen tudjuk beállítani:

  • Indítsunk egy terminál ablakot: kattintsunk fent a megfelelő ikonra.
  • Ha már ott van az LCD-show könyvtár, töröljük le: sudo rm -rf LCD-show
  • Töltsük le a meghajtót: git clone https://github.com/goodtft/LCD-show.git
  • Tegyük futtathatóvá: chmod -R 755 LCD-show
  • Lépjünk be a könyvtárba: cd LCD-show
  • Indítsuk el a telepítőt: ./LCD35-show

A Raspberry Pi automatikusan újraindul, és utána a képernyő az LCD-n jelenik meg.

Ez a képernyő viszont sajnos inkább csak érdekes, mint hasznos. A következő problémák vannak vele:

  • Miután beállítottuk, nem működik monitoron keresztül (további részletek ezzel kapcsolatban: ld. lent).
  • Nem lehet kikapcsolni, így nagyobb az energiafogyasztása.
  • Túl kicsi, és vannak használhatatlan ablakok. Pl. az operációs rendszer beállításainál nem látszik az OK gomb, és nem is lehet legörgetni. Erre nem ad a rendszer megoldást.
  • Nincs aktív hűtés, így hosszú távon melegszik.
  • Billentyűzet mindenképp kell, az nincs megoldva. Tehát nincs olyan lehetőség, mint mondjuk egy okostelefonon.

Ideális esetben olyan extra lenne a kis LCD képernyő, ami kikapcsolható, és arra lenne alkalmas, hogy néhány dolgot ott helyben megnézzünk, mindenféle segédeszköz (pl. billentyűzet) nélkül.

Az első problémát egyébként próbáltam megoldani, sikertelenül. A legígéretesebb ez volt: https://www.raspberrypi.org/blog/the-eagerly-awaited-raspberry-pi-display/. Ez egy blogbejegyzés a Raspberry Pi oldalán, tehát félig-meddig hivatalos leírás. Ez alapján a /boot/config.txt fájlba az alábbi sort kell beírni:

display_default_lcd=0

majd újra indítani. Nem működött. Különböző fórumokban találtam egyéb lehetőségeket, pl. ezt:

ignore_lcd=1

Nem működött. A következő tipp:

enable_dpi_lcd=1

Ezzel pont ellenkezőleg működött. Alapból ugyanis az indulás után a HDMI monitoron kimeneten jelenik meg az eredmény, majd kb. 10 másodperc után folytatódik a kis LCD képernyőn; ezt megadva kb. 10 másodpercig nem lehetett látni semmit, majd folytatódott a kis LCD képernyőn. Logikusan próbálkoztam ezzel is:

enable_dpi_lcd=0

De sikertelenül. Végül a https://blog.mivia.dk/solved-hdmi-working-raspberry-pi/ szerint ezt kellett beleírni:

#Always force HDMI output and enable HDMI sound
hdmi_force_hotplug=1
hdmi_drive=2

Ennek az lett az eredménye, hogy sehogyan sem működött, a nulláról kellett újratelepíteni az egészet.

Összességében elmondható, hogy nem egy egyszerű problémával állunk szemben, és szemmel láthatóan a tervezők nem úgy képzelték el a használatot, hogy az LCD képernyőn keresztül történjen. Őszintén kíváncsi vagyok, mi erre a megoldás, így ha valakinek sikerül megoldania, szívesen veszem, ha megírja nekem. Az elsődleges információ forrás a témában az alábbi:

Beállítások

Billentyűzet

Induláskor alapból mindenképpen angol a billentyűzet kiosztás, akármit is adtunk meg. (Tapasztalatom szerint egyébként ez az eszköz legnagyobb hátránya.) Beállítás:

Preferences → Raspberry Pi Configuration → Localisation → Set Keyboard… → itt állítsunk be mást pl. Generic 101-key PC vagy Generic 104-key PC

Szoftverek telepítése

Első lépésben érdemes frissíteni az elérhető szoftverek listáját:

sudo apt-get update

A következő paranccsal tudjuk frissíteni a programokat a legújabbra:

sudo apt-get upgrade

Telepíteni az apt-get install paranccsal tudunk, pl.:

sudo apt-get install scratch

Jelszó megváltoztatása

Adjuk ki az alábbi parancsot:

passwd

Az alapértelmezett jelszó: raspberry

Csatlakozás kulccsal

Adjuk ki a következő parancsot:

ssh-keygen

Megadhatunk jelszót (én üresen hagytam). Eredmény:

  • /home/pi/.ssh/id_rsa - a privát kulcs
  • /home/pi/.ssh/id_rsa.pub - a publikus kulcs

Adjuk ki a következő parancsot:

ssh-copy-id pi@raspberrypi

Ezzel bemásoltuk a publikus kulcsot a /home/pi/.ssh/authorized_keys fájlba.

Most már próbálkozhatunk a csatlakozással.

  • Töltsük le a privát kulcsot
    • Csatlakozzunk a WinSCP programmal
    • Kapcsoljuk be a nem látható fájlokat: Ctrl + Alt + H
    • Másoljuk át a /home/pi/.ssh/id_rsa fájlt ide: c:\Users\Csaba\.ssh\ (ill. a megfelelő név alá).
  • Konvertáljuk át a kuclsot
    • Nyissuk meg a puttygen programot (feltelepült a putty programmal)
    • Conversion → Import key
    • Válasszuk ki a c:\users\[username]\.ssh\id_rsa-t
    • Save private key
    • Érdemes c:\Users\Csaba\.ssh\raspberry-private.ppk néven elmenteni, jelszó nélkül
  • Csatlakozzunk putty segítségével
    • Host name: raspberrypi
    • Port: 22
    • Connection type: SSH
    • Connection → SSH → Auth → Private key for authentication: c:\Users\Csaba\.ssh\raspberry-private.ppk
    • A Session-ben mentsük el valamilyen néven
    • Open

Ha mindent jól csináltunk, akkor itt elég megadni az azonosítót (pi), a jelszót nem kéri.

VPN

A https://protonvpn.com/support/linux-vpn-setup/ oldal alapján a következőképpen sikerült beállítanom a VPN-t. Telepítendő szoftverek (talán a második nem fontos):

sudo apt-get install openvpn
sudo apt-get install network-manager-openvpn-gnome
sudo apt install resolvconf

Töltsük le a konfigurációs fájlokat:

  • Nyissuk meg a https://account.protonvpn.com/login oldalt.
  • Jelentkezzünk be.
  • Bal oldalon Downloads.
  • Az OpenVPN configuration files alatt a platform legyen GNU/Linux, a protokol maradjon UDP, majd töltsünk le egyet, vagy akár az összeset alul.
  • Ha az összeset letöltöttük, akkor ki kell csomagolni: gunzip ProtonVPN_server_configs.zip

A terminál ablakos megoldást folytassuk (Option B):

sudo wget "https://raw.githubusercontent.com/ProtonVPN/scripts/master/update-resolv-conf.sh" -O "/etc/openvpn/update-resolv-conf"
sudo chmod +x "/etc/openvpn/update-resolv-conf"
cd ~/Downloads
sudo openvpn <config.ovpn>

A harmadik lépésben abba a könyvtárba lépjünk, ahova a korábbi lépésben letöltöttük a konfigurációs fájlokat. A negyedikben egy adott fájlt válasszunk ki.

A folyamat során először kérheti a sudo miatt a pi lokális jelszavát, de ez nem biztos. Utána viszont kérni fogja a VPN azonosítót (Enter Auth Username) és jelszót (Enter Auth Password). Ha minden rendben zajlott, megjelenik az Initialization Sequence Complete felirat.

Az IP címet a https://ipleak.com/ oldalon tudjuk megnézni.

Elérés hálózaton kívülről

Jó leírás a témában: https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-allow-outside-access. Kétféle megoldás létezik:

  • Port továbbítás
  • Azonos VPN-re csatlakozás

Port továbbítás

Ehhez rendszer adminisztrátori jogok kellenek a routerhez, és érteni kell annak adminisztrálásához. Nálam (Telekom internet) az alábbi módon lehetett beállítani:

  • Be kell lépni a router adminisztrációs felületére (http://192.168.1.1/; azonosító: admin, jelszó: rá van írva a router aljára)
  • Access Control → Port Forwarding fül

Itt állítsunk be egy szabályt, pl.:

  • Custom service name: Transmission
  • Service: Other
  • Protocol: TCP
  • External host: abc.def.ghi.jkl (https://whatismyipaddress.com/; a sajt biztonságom érdekében nem adom meg a tényleges IP-met)
  • External Port: 9091
  • Internal host: 192.168.1.75 (a Raspberry Pi IP címe)
  • Internal Port: 9091

DMZ fül:

  • Enable: legyen bekapcsolva
  • Local host: 192.168.1.75 (raspberrypi)
  • Apply

Az adott szoftver beállításait is lehet, hogy át beállítani. Pl. a Transmission esetén először le kell állítani:

sudo systemctl stop transmission-daemon

Utána szerkesszük a beállításokat:

sudo nano /etc/transmission-daemon/settings.json

A lényeges rész az rpc-whitelist és az rpc-whitelist-enabled. Ez utóbbi true-ra van állítva, ami azt jelenti, hogy csak az előbbi IP tartományból engedélyezett az elérés. Ami erre van állítva: 192.168.*.*, azaz csak a helyi hálózatból lehet elérni. Kétféle módszert alkalmazhatunk:

  • vagy kikapcsoljuk a whitelist-et: "rpc-whitelist-enabled": false
  • vagy kibővítjük, pl. az egész világra: "rpc-whitelist": "*.*.*.*"

Majd indítsuk újra a torrentet:

sudo systemctl start transmission-daemon

Ha mindent jól csináltunk, akkor a http://abc.def.ghi.jkl:9091/ címen akárhonnan elérhető a torrent szerverünk. Mindaddig persze, amíg az IP-nk meg nem változik.

VPN

Ugyanarra a virtuális magánhálózatra (virtual private network, VPN) kell csatlakoznia céleszközzel és azzal is, amivel rá szeretnénk csatlakozni a céleszközre.

Ld. a fenti beállításokat. Először azt tapasztaltam, hogy csak a kulcsos autentikáció működik, majd miután beállítottam, akkor az se működött. Lehet, hogy ingyenes VPN-nel a bejelentkezés nem lehetséges, vagy valami beállítás még hiányzik.

Fájlszerver

A Samba fájlszerver beállítását az alábbiak alapján készítettem el:

Telepítsük a szervert:

sudo apt-get install samba samba-common-bin

Hozzunk létre egy könyvtárat, amit meg szeretnénk osztani:

sudo mkdir -m 1777 /share

Itt az 1 a véletlen törlés ellen véd, míg a 777 mindenki számára lehetővé teszi az írást-olvasást.

Konfiguráljuk be!

sudo nano /etc/samba/smb.conf

A végére írjuk az alábbit:

[share]
   Comment = Pi shared folder
   Path = /share
   Browseable = yes
   Writeable = Yes
   only guest = no
   create mask = 0777
   directory mask = 0777
   Public = yes
   Guest ok = yes

Itt a [share] a név, amivel hivatkozunk majd rá.

Ha azt szeretnénk, hogy a szimbolikus linkek is megjelenjenek, akkor az alábbiakat kell megadnunk:

[global]
   [...]
   allow insecure wide links = yes

[...]

[share]
   [...]
   follow symlinks = yes
   wide links = yes

Adjuk hozzá a pi felhasználót:

sudo smbpasswd -a pi

Meg kell adnunk azt, hogy milyen jelszóval szeretnénk elérhetővé tenni a fájl szervert. Ez nem feltétlenül kell, hogy ugyanaz legyen, mint a pi felhasználó alap jelszava, de lehet az is.

Indítsuk újra:

sudo systemctl restart smbd

Csatoljuk fel a meghajtót:

  • Fájlkezelő (Windows + E) → jobb kattintás a Hálózaton → Hálózat meghajtó csatlakoztatása…
  • Meghajtó: bármelyik szabad, pl. Z:
  • Mappa: \\raspberrypi\share (a raspberrypi az a név, amit megadtunk telepítéskor; a hostname -I parancsal lekérdezhető, de az IP címet is megadhatjuk, a share pedig az, amit a konfigurációs fájlban szögletes zárójelek között megadtunk)
  • Adjuk meg az azonosítót és a jelszót.

Ha mindent jól csináltunk, akkor a fájlok elérhetőek a megadott meghajtón. Hasznos tudnivaló: egy megosztott filmet egy másik számítógépen folyamatosan tudtam lejátszani.

Torrent szerver

A Transmission nevű programot érdemes használni. Ezt a szakaszt a https://pimylifeup.com/raspberry-pi-transmission/ oldal alapján készítettem.

Először telepítsük fel a Transmission-t:

sudo apt-get install transmission-daemon

Első lépésben be kell konfigurálni. Ehhez győződjünk meg arról, hogy nem fut (egyébként hiába állítunk át bármit, az visszaáll):

sudo systemctl stop transmission-daemon

A beállításokat a konfigurációs fájlban tudjuk végrehajtani:

sudo nano /etc/transmission-daemon/settings.json

Néhány lényegesebb beállítás:

  • download-dir: az a könyvtár, ahova menteni szeretnénk a letöltött fájlokat. Ez praktikusan egy külső meghajtóra mutat.
  • incomplete-dir: a letöltés alatti fájlok helye.
  • incomplete-dir-enabled: legyen true, hogy az előző beállítás működjön.
  • rpc-port: ahol a Transmission webes felülete elérhető.
  • rpc-username: az azonosító, amivel be tudunk lépni.
  • rpc-password: a jelszó, amivel be tudunk lépni. Ide írjuk be a jelszót; a következő induláskor automatikusan kódolva lesz.

Majd indítsuk a programot:

sudo systemctl start transmission-daemon

Belső hálózatból a http://raspberrypi:9091/ oldalon érhető el a felület. Kipróbálás: töltsünk le egy torrent fájlt innen: https://webtorrent.io/free-torrents.

Hobbi elektronika

Áttekintés

Bár nem a hobbi elektronika a Raspberry Pi elsődleges funkciója, a rajta található 40 tű (pin) segítségével erre is van lehetőségünk. Az alábbi képet a https://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/ oldalról töltöttem le:

raspberry-pi-pinout.png

A pinout parancs kiadásával is megkapjuk a tű kiosztást, valamint egyéb hasznos információkat az eszközről:

pi@raspberrypi:~ $ pinout
,--------------------------------.
| oooooooooooooooooooo J8     +====
| 1ooooooooooooooooooo  PoE   | USB
|  Wi                    oo   +====
|  Fi  Pi Model 3B+ V1.3 oo      |
|        ,----.               +====
| |D|    |SoC |               | USB
| |S|    |    |               +====
| |I|    `----'                  |
|                   |C|     +======
|                   |S|     |   Net
| pwr        |HDMI| |I||A|  +======
`-| |--------|    |----|V|-------'

Revision           : a020d3
SoC                : BCM2837
RAM                : 1024Mb
Storage            : MicroSD
USB ports          : 4 (excluding power)
Ethernet ports     : 1
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

J8:
   3V3  (1) (2)  5V    
 GPIO2  (3) (4)  5V    
 GPIO3  (5) (6)  GND   
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND   
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND   
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8 
   GND (25) (26) GPIO7 
 GPIO0 (27) (28) GPIO1 
 GPIO5 (29) (30) GND   
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND   
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

For further information, please refer to https://pinout.xyz/

Ezzel egy teljesen új világ nyílik meg előttünk: egyrészt használhatjuk a "jó öreg" szenzorokat (ld. az Arduino bemenetek oldalt), másrészt külön vásárolhatunk a Raspberry Pi számára készített eszközöket. Viszont - az Arduino-val ellentétben - itt nincsenek analóg pinek, így bizonyos projekteket másképp kell itt megvalósítanunk.

A lehetőségekről nagy általánosságban ezen az oldalon tájékozódhatunk: https://www.futurelearn.com/info/courses/physical-computing-raspberry-pi-python/0/steps/23043.

Hasznos kereső kifejezés a témában a physical computing, ami arra utal, hogy olyan programokat készítünk, amelyek közvetlenül vezérlik a fizikai eszközöket.

Az alábbi oldalakon olvashatunk arról, hogy hogyan tudjuk natív módon elérni az egyes tűket:

Kimenet: LED

Ezt a szakaszt az alábbi, elsősorban gyerekeknek szánt videókurzus alapján készítettem el: https://www.futurelearn.com/courses/physical-computing-raspberry-pi-python.

A cél: egy olyan áramkör létrehozása, amelyben egy LED villog, azaz egy másodpercig világít, egy másodpercig nem.

Hozzuk létre az alábbi áramkört:

  • Raspberry Pi GPIO17 (ha a tűk felül vannak, akkor az alsó sor 6. tűje) → LED +
  • LED - → 330Ω ellenállás egyik szára
  • 330Ω ellenállás másik szára → Raspberry Pi GND (pl. a felső sor 3. tűje)

Programozáshoz használhatjuk a Programming → Thonny Python IDE programot. Valósítsuk meg az alábbi programot, majd indítsuk el:

from gpiozero import LED
from time import sleep
 
red_led = LED(17)
 
while True:
    red_led.on()
    print(red_led.is_lit)
    sleep(1)
    red_led.off()
    print(red_led.is_lit)
    sleep(1)

Ha minden problémamentes volt, akkor láthatjuk villogni a LED-et.

A kód magyarázata:

  • A gpiozero a Raspberry Pi GPIO programozásához megalkotott Python könyvtár (GPIO = General Purpose Input-Output = általános célú bemenet-kimenet). Ezen az oldalon találjuk a specifikációt: https://gpiozero.readthedocs.io/en/stable/.
  • A LED(17) azt jelenti, hogy a 17-es tűre egy LED-et helyezünk. A 17-es az a GPIO17-et jelenti, ami fizikailag a 11-es, azaz az aló (belső) tűsor hatodik tűje.
  • red_led.on(): a LED felkapcsolása.
  • red_led.off(): a LED lekapcsolása.
  • red_led.is_lit: ezzel lehet lekérdezni, hogy a LED világít-e.

Bemenet: nyomógomb

Talán a legegyszerűbb a nyomógomb, melynek két állapota van: vagy le van nyomva, van fel van engedve. Alakítsuk ki az alábbi áramkört:

  • Raspberry Pi GND (pl. alulról az ötödik tű) → a nyomógomb egyik szára
  • Raspberry Pi GPIO4 (alulról a negyedik tű) → a nyomógomb másik szára

Majd futtassuk az alábbi programot:

from gpiozero import Button
from time import sleep
 
btn = Button(4)
 
while True:
    if btn.is_pressed:
        print("You pressed me")
    sleep(0.1)

Ha megnyomjuk a gombot, akkor a megadott üzenetet írja ki; ha nyomva tartjuk, akkor folyamatosan. Magyarázat: a gpiozero könyvtár Button osztálya segítségével valósítottuk meg a működést; itt az is_pressed tulajdonságát kérdeztük le.

LED vezérlése nyomógombbal

A cél a következő: ha lenyomjuk a nyomógombit, akkor világítson a LED, egyébként ne. Valósítsuk meg a fenti két áramkört egyszerre:

  • Raspberry Pi GPIO17 → LED +
  • LED - → ellenállás egyik szára
  • Raspberry Pi GND → ellenállás másik szára
  • Raspberry Pi GND → a nyomógomb egyik szára
  • Raspberry Pi GPIO4 → a nyomógomb másik szára

Az eddig tanultakkal:

from gpiozero import LED, Button
 
btn = Button(4)
led = LED(17)
 
while True:
    if btn.is_pressed:
        led.on()
    else:
        led.off()

Valójában egy folyamatosan, eléggé pazarlóan figyeli a nyomógombot: az esetek túlnyomó többségében nincs változás, mégis, a teljes processzoridő arra megy el, hogy figyelje a nyomógomb állapotát. Érdemes a nyomógombot eseményvezérelten programozni: a folyamatos ellenőrzés helyett az esemény bekövetkeztésre (azaz a lenyomás és az elengedés pillanatára) reagálni. Egy lehetőség az alábbi:

from gpiozero import LED, Button
 
btn = Button(4)
led = LED(17)
 
while True:
    btn.wait_for_press()
    led.on()
    btn.wait_for_release()
    led.off()

A Button osztály itt használt két függvénye a wait_for_press() és a wait_for_release(): az előbbi a lenyomásra, míg az utóbbi az elengedésre vár. Ennek megfelelően állítjuk be a LED állapotát.

Viszont a program még így sem csinál egyebet, mint figyeli a nyomógombot, ami nagy luxus. Viszont kihasználhatjuk a Python funkcionális természetét; függvényeket lehet értékül adni. Lássuk az alábbi példát:

from gpiozero import LED, Button
 
btn = Button(4)
led = LED(17)
 
btn.when_pressed = led.on
btn.when_released = led.off

Figyeljük meg, hogy a led.on és a led.off után nincs zárójel, tehát nincs függvény hívás! A Button osztály két újabb elemével ismerkedtünk meg: a when_pressed azt a függvényt definiálja, aminek akkor kell lefutnia, amikor lenyomja a felhasználó a gombot, míg a when_released azt, ami akkor fut le, amikor elengedi. Ennek adtuk értékül a LED on ill. off függvényeit.

Reflex játék

Az eddig felhasznált eszközök segítségével valósítsunk meg egy játékot! A számítógép véletlen hosszú ideig vár, majd felvillantja a LED-et, a játékosnak az a feladata, hogy a felvillanást követően minél előbb lenyomja a nyomógombot. A számítógép kiszámolja a felvillanás és a lenyomás között eltelt időt.

from gpiozero import Button, LED
from time import time, sleep
from random import randint
 
led = LED(17)
btn = Button(4)
 
while True:
    sleep(randint(1,10))
    led.on()
    start = time()
    btn.wait_for_press()
    end = time()
    led.off()
    print(end - start)

LED vezérlése bluetooth-on keresztül

A Raspberry Pi újabb verziói tartalmaznak bluetooth interfészt is, most ezt próbáljuk ki.

Alapértelmezésben nem felderíthető; első lépésben azzá kell tennünk. Ehhez a Raspberry Pi-ben lépjünk be a Bluetooth alkalmazásba:

bluetoothctl

majd tegyük felderíthetővé:

discoverable on

A telefonunkon a Bluetooth beállításoknál keressük meg és párosítsuk össze. Telepítsük fel a telefonra a Blue Dot alkalmazást (https://play.google.com/store/apps/details?id=com.stuffaboutcode.bluedot).

A Raspberry Pi-n hozzuk létre a LED-es áramkört (17-es GPIO).

Telepítsük fel a BlueDot Python könyvtárat:

pip3 install BlueDot

Készítsük el és indítsuk el az alábbi programot:

from gpiozero import LED
from bluedot import BlueDot
 
red = LED(17)
bd = BlueDot()
 
while True:
    bd.wait_for_press()
    red.toggle()

Majd a telefonon indítsuk el a Blue Dot alkalmazást. Kapcsolódjunk a Raspberry Pi-hez (ehhez futnia kell a fenti Python alkalmazásnak). Ha minden rendben történt, akkor megjelenik egy nagy kék pont, és rányomva ki-be tudjuk kapcoslni a LED-et.

Összetettebb bemenet: hőmérséklet

Más lássuk, hogyan kell beüzemelni a HDT11 hőmérséklet és levegőnedvesség érzékelő szenzort! Ezt a szakaszt a https://www.raspberrypi-spy.co.uk/2017/09/dht11-temperature-and-humidity-sensor-raspberry-pi/ oldal alapján készítettem. A kód Pythonban készül.

Az alábbi kapcsolást hozzuk létre, amikor ki van kapcsolva az eszköz:

  • DHT11 S (szenzor) → Raspberry Pi 11. Ez a GPIO 17; ha a tűk felül vannak, akkor ez az alsó (tehát belső) sor hatodik tűje.
  • DHT11 középső (+) → Raspberry Pi 4. Ez egy 5 Voltos kimenetet jelent. Felülről balról az első vagy a második tűt használhatjuk; a második a 4-es. A leírás 3.3 Voltot mond; azt az 1-es (második sor első tűje) és a 17-es (második sor kilencedik tűje) pozíción találunk.
  • DHT11 - (jobb, GND) → Raspberry Pi 6. Ez a felső sor harmadik tűje, a GND. Felhasználható még a 9-es (alsó sor 5.), 14-es (felső sor 7.), a 20-as (felső sor 10.), a 25-ös (alsó sor 13.), a 30-as (felső sor 15.), a 34. (felső sor 17.) és a 39. (alsó sor 20., tehát a legjobboldalibb) tű is.

Szükségünk lesz a build-essential és a python-dev csomagokra a C++ és a Python fordításhoz. Ezek jó eséllyel alapból rajta vannak, de ha mégse, akkor adjuk ki az alábbi parancsokat (célszerűen ne mobilnetes kapcsolattal):

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python-dev

Az adatok kiolvasásához szükségünk van még az Adafruit DHT könyvtárára is:

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
sudo python3 setup.py install

Kipróbálása:

cd examples
python AdafruitDHT.py 11 17

A paraméterek jelentése:

  • 11: a DHT11-re utal. 22 lenne a DHT22.
  • 17: a GPIO port sorszáma.

Ha minden rendben történt, akkor a következő eredményhez hasonlót kell kapnunk:

Temp=22.0*  Humidity=52.0%

A kód egyszerűsített formában (paraméterek belekódolva):

import Adafruit_DHT
 
sensor=Adafruit_DHT.DHT11
gpio=17
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)
if humidity is not None and temperature is not None:
  print('Temp={0:0.1f}°C  Humidity={1:0.1f}%'.format(temperature, humidity))
else:
  print('Failed to get reading. Try again!')

Az eredményt az interneten is megjeleníthetjük a https://thingspeak.com/ oldalon. Lépések:

  • Regisztráljunk a https://thingspeak.com/ oldalon. (Egy időben korlátlanul lehetett; az írás pillanatában csak céges vagy oktatási azonosítóval.)
  • Hozzunk létre egy csatornát (New Channel).
  • Adjunk neki egy értelmes nevet és leírást.
  • Hozzunk létre két adatmezőt, az egyiket a hőmérséklet, a másikat a páratartalom mentésére.
  • Az API Keys fülön jegyezzük fel a kulcsot.
  • Tegyük a csatornát publikussá a Sharing fülön.

Majd készítsük el az alábbi programot (az api_key= után a saját kulcsunkat írva):

import Adafruit_DHT
import requests
import time
 
sensor=Adafruit_DHT.DHT11
gpio=17
while True:
    humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)
    print('Temp={0:0.1f}°C  Humidity={1:0.1f}%'.format(temperature, humidity))
    requests.get(url=f"https://api.thingspeak.com/update?api_key=UA************3E&field1={temperature}&field2={humidity}")
    time.sleep(1)

Indítsuk el a programot. Hamarosan diagramot kell látnunk Private vagy Public View fülön. Érdemes változást elérni, pl. rálehelni, hogy lássuk, valóban mást mér. Az enyém itt található: https://thingspeak.com/channels/1434573.

Fejlesztés Scratch-ben

A Raspberry Pi-n Scratch-ben is lehet fizikai programokat (physical computing) írni. Először telepítsük fel a Scratch-et:

sudo apt-get install scratch3

Indítsuk el: Programming → Scratch 3.

Alapból nincs benne a Raspberry Pi támogatás, azt hozzá kell adni bővítményként: bal alsó sarokban a bővítmények hozzáadása ikonra kell kattintani, majd kiválasztani a Raspberry Pi GPIO komponenst. Egy új kategória jelenik meg 4 új paranccsal:

  • adott esemény (adott tű adott értékre változása) bekövetkeztekor lefutó program,
  • adott tű értékének kiolvasása,
  • adott tű output értékének beállítása,
  • adott tű input értékének beállítása.

Valósítsuk meg a fenti, LED-et (GPIO17) és nyomógombot (GPIO4) tartalmazó áramkört. Az alábbi program a nyomógombbal vezérelt LED-et valósítja meg:

scratch.png

Szoftverek

Az operációs rendszer Linux alapú, így a leggyakoribb Linuxos szoftverek elérhetőek. Ezek részben már fel vannak telepítve, részben nekünk kell feltelepítenünk. Néhány példa látható itt, amit kipróbáltam és működött.

Terminál

Bal oldalon felül van a Terminal fekete ikonja, arra kattintsunk.

Fájl menedzser

Bal oldalon felül van a File Manager sárga ikonja, arra kattintsunk. Terminálból: pcmanfm.

A Midnight Commander is működik. Telepítés:

sudo apt-get install mc

Indítás:

mc

Kilépés: kattintás a jobb alsó sarokban (az F10 távoli desktop elérésnél nem működik).

Számológép

Accessories → Calculator
galculator

Szövegszerkesztő

A terminálablakban működnek az alábbiak:

  • vi
  • nano
  • mcedit (az mc telepítése után)

A grafikus felületen:

  • Accessories → Text Editor
  • Közvetlen indítással: mousepad
  • gedit (telepíteni kell: sudo apt-get install gedit)

PDF nézegető

A qpdfview program alkalmas erre.

Office

A LibreOffice működik. Telepítése:

sudo apt-get install libreoffice

Képes kezelni a Microsoft Office dokumentumokat is.

Képnézegető

Menüből: Grapics → Image Viewer

Terminálból: gpicview

Multimédia lejátszó

Sound & Video → VLC Media Player

Parancssori videó lejátszó: omxplayer

Videó lejátszási tapasztalat:

  • Ha nincs LCD, és rácsatlakozunk HDMI monitorral és fejhallgatóval, akkor rendesen működik, szaggatás nélkül.
  • Ha van LCD, és HDMI-vel csatlakozunk, akkor tapasztalatom szerint az omxplayer az egyetlen lehetőség, amivel meg tudjuk oldani, hogy a kép a monitoron jelenjen meg. De ez esetnek nincs hang.
  • Távoli asztali eléréssel a hang folyamatos, a kép viszont néhány másodpercenként módosul; szóval majdnem olyan, mintha egyáltalán nem működnek.

Böngésző

Beépített grafikus böngésző:

  • Internet → Chromium Web Browser
  • chromium-browser

Firefox:

sudo apt-get install firefox-esr

Indítása:

firefox-esr

Vagy: Internet → Firefox ESR

Parancssori: lynx

sudo apt-get install lynx

Fejlesztőeszközök

Általános IDE

Programming → Geany Programmer's Editor

Python

Programming → Thonny Python IDE: beépített

Scratch

sudo apt-get install scratch3

Java

sudo apt-get install default-jdk
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License