Linux a Raspberry Pi ■ Linux na dlani - koncepce Raspberry Pi ■ operační systém na bázi Debianu ■ představení programování v Pythonu ■ příklad - web kamera pro obrázky z mikroskopu Raspberry Pi malý jednodeskový počítač s deskou plošných spojů o velikosti zhruba platební karty 2012 vyvinut britskou nadací Raspberry Pi Foundation cílem podpořit výuku informatiky ve školách a seznámit studenty s tím, jak mohou počítače řídit různá zařízení primárním operačním systémem je Raspbian (odvozeno od Debianu = Linuxová distribuce) postupně varianty A1, B2, B3, aktuálně RPi Zero W a RPi 4 - samostatně fungující, plus zásuvné moduly - varianta Raspberry Pi Pico patří do světa Arduina - stovky navazujících produktů - shieldy resp. HATs cs.wikipedia.org/wiki/Raspberry_Pi www.raspi.cz/ www.raspberrypi.org www.raspberrypi.com RPi Zero 2 W 4-jádrový 64bitový procesor ARM Cortex-A53 taktovaný na 1 Ghz - Broadcom BCM2710A1 integrovaný spolu s 512 MB SDRAM do jednoho celku, system-in-package (SiP) velikost 65 x 30 mm mini HDMI, micro USB pro data (OTG) a další pro napájení (5 V), CSI-2 pro kameru, slot pro mikroSD kartu - na ní operační systém, standardn GPIO konektor pro periferie, WiFi a BLE Í40 pi RPi 4 ■ nejoblíbenější jednodeskový počítač ■ první model přišel v roce 2012 se skromným cílem - posílit technické vzdělávání dětí - a odstartoval malou průmyslovou revoluci ■ Raspberry Pi 4B je nejvýkonnější model a plnohodnotná náhrada PC ■ 1.5 GHz 4-jádrový procesor ARM Cortex-A72, 28 nm technologie (Broadcom BCM2711) - 2GB/4GB/8GB RAM modely ■ 4K grafika VideoCore přináší 4Kp60 video, dekódování HEVC / H.265 a režim dvou monitorů - 2 mikroHDMI konektory ■ standardní 40 pin GPIO konektor pro periferie, WiFi a BLE, gigabit ethernet, USB 3.0 Co je na desce • LPDDR4 SDRAM I • 3 variants • 1GB, 2GB and 4GB • Broadcom BCM2711, Quad-Core Cortex-A72, 64-bit, 1.5 GHz, 28nm • VideoCore VI GPU • Shielded • 802.11 b/g/n/ac dual band, 2.4GHz & 5GHz WiFi • Bluetooth 5.0 & BLE Pre-soldered 40-pin GPIO PoE (Power over Ethernet) Heoder pins True Gigabit Ethernet Port 2 x USB 3.0 Ports PCB Antenna MIPI DSI port (Display device) microSD card socket (bottom) RUN & GlobaLEN pins Activity Indicator Green LED 2 x USB 2.0 Ports Audio + Video Composite 3.5mm Jack MIPI CSI Port, camera interface Power (5V) Indicator Red LED HDMI1 micro HDMI Port HDMIO micro HDMJ Port USB Type C, for Power, upto 3A or 15W 2.5mm diameter Mounting Hole Support Dual Display Raspberry Pi 400 vše vestavěno v klávesnici kompaktní řešení, méně kabelů na stole, ideální jako stolní PC s linuxem, kolem 2000 Kč N Ql Active Containers ^Bpi@debian-buster-64;... } Programming .) Internet U| Sound & Vrdeo ^ Graphics JÍT System (oofs Accessones @ Help Preferences <^Run... Monitor Active Containers > <§y Run 64-bit Program . j Start 64-bit Container Stop 64-bit Container A Active Containers **■ * x File Edi Tabs Help NAME STATE FAILED JOBS raspberry >i (host) running Q Q debian-bu 2 machine ster-64 running a a s listed. r I Connected to machine debian-buster-64. Press A] three times within Is to exit se ssion. pi@debian-buster-64: S file £(which Is) /usr/bin/ls: ELF 64-bit LSB pie executable,. ARM aarch64r version 1 [SYSVJ, dynam ically linked, interpreter /lib/Id-linux-aarcb64.so.lr for GNU/Linux 3.7.Q, Buil dIQ[shalJ=9ecc063cc78aQa8cl5f950e5e8fc4a6954c734dc, stripped pigdebian buster-64: - S whoami - piEdcbiaii buster-64: S groups pi adm diatout cdrom sudo audio video plugdev games users input netdev piEdebian-buster-64:- 5 Is -I - total 36 drwxr-x drwxr-: drwxr-x drwxr-: drwxr-x drwxr -x drwxr-x drwxr-x drwxr-: piSdebian-buster-64: x r - -- 2 Pi pi -i. v: Sep In 14 54 Desktop ■ ;■ - - 2 pi pi Sií-í? l'j' 14 54 Documents IT - .-. 2 Pi Pi JŇ9Ó E f p i'!' 14 54 Downloads xr-x 2 pi pi 4'!'■"=■ ŕ Ju L i'l' ai 15 HagPi xr-x 2 Pi pi 4'!'■"=■ ŕ Erf i'l' 14 54 Music xr-x 2 pi pi S ŕ f i'!' 16 24 Pictures xr-x 2 Pi Pi Srp i'!' 14 54 Public ST- --■ 2 Pi pi i . V : S*jP i'!' 14 54 Templates xr-x 2 pi pi 4 . v: Sep JŇ 14 54 Videos •n ■ běžné grafické uživatelské prostředí ■ samozřejmě k dispozici terminál pro klasické ovládání Operační systémy ■ Raspberry Pi OS (dříve Raspbian) je oficiální OS pro Raspberry Pi ■ na bázi osvědčeného (stabilního) projektu Debian Linux a používá upravené desktopové prostředí LXDE, které využívá správce oken Openbox ■ funkční pracovní plocha nepotřebuje mnoho systémových zdrojů ■ Volumio - dokonalý jukebox, přehrávání skladeb z externího úložiště ■ možnost připojení k mnoha hudebním službám ■ podporuje zařízení kompatibilní s DLNA ■ LibreELEC - ideální pro multimediální centrum založené na Kodi ■ OpenMediaVault - pro použití jako NAS ■ intuitivní rozhraní, možnosti vzdálené správy ■ další linuxové distribuce - Ubuntu (Debian), Manjaro nebo Gentoo (ArchLinux), Fedora (RedHat), Kali Linux-testování možných ohrožení ■ Kano OS - speciálně pro děti, RetroPie - herní konzole ■ Windows IOT Core, dokonce návody i na Windows 11 (for ARM) raspberrytips.com/best-os-for-raspberry-pi/ Raspberry Pi OS ■ https://www.raspberrypi.com/software/ ■ instalace na mikroSD kartu - použitím aplikace Raspberry Pi Imager ■ ruční postup - stáhne se obraz požadovaného OS a přenese na mikroSD kartu - bootovací medium a současně „pevný disk" pro provoz OS ■ Raspberry Pi OS with desktop - release date: September 22nd 2022, System: 32-bit (64-bit), Kernel version: 5.15, Debian ver. 11 (bullseye), velikost: 894 MB ■ Raspberry Pi OS with desktop and recommended software ■ 2 700 MB, celkem hodně balastu ■ Raspberry Pi OS Lite (nemá grafické prostředí) - 338 MB ■ první spuštění - klávesnice, monitor, myš, internet (lze alternativně provést i v „headless" modu - pouze připojení SSH přes internet ■ provoz - desktopové grafické prostředí - „normální PC; terminálové prostředí, vzdálený přístup jako server - textový terminál (SSH), včetně GUI (VNC) Oficiální web i q Getting started www.raspberrypi.com How to get started with your Raspberry Pi dokumentace detailní návody řešení typických situací fórum - uživatelská podpora technické detaily The config.txt file Low-level settings control Camera software Software and libraries for Raspberry Pi camera hardware Raspberry Pi OS The official Raspberry Pi operating system The Linux kernel How to configure and build a custom kernel for your Raspberry Pi r™ Raspberry Pi hardware Technical information about Raspberry Pi hardware Configuration Configuring your Raspberry Pi's settings n Remote access Accessing your Raspberry Pi remotely Compute Module hardware Technical information about Raspberry Pi Compute Processors Technical information about the CPUs used by Raspberry Pi Product Information Portal Raspberry Pi compliance documents Datasheets PDF documentation Periferie do USB portů to, co pro normální PC 0 Camera Raspberry Pi camera boards přes GPIO sběrnici - HAT Build HAT How to use the Build HAT Display The Raspberry Pi Touch Display Sense HAT How to use the Sense HAT Keyboard and mouse Official Raspberry Pi keyboard and mouse TV HAT How to watch TV on your Raspberry Pi Raspberry Pi Audio High-definition audio with Raspberry Pi Designing a HAT Information on the HAT specification Product Information Portal Raspberry Pi compliance documents 78 —I 100% INDEPENDENT mb^b Raspberry Pi Annual EVERYTHING YOU NEED TO GET THE MOST FROM YOUR RASPI Tištěné (resp. PDF) informace ■ knihy ■ měsíčník MagPI ■ ročenky ■ řada Complete Manuál Series >W The Complete Manual Series Raspberry Pi Coding & Projects The essential step-by-step manual to learning coding skills with Raspberry Pi 100% Independent SEP 2022 EDITION Typické možnosti použití ■ desktop - grafické prostředí linuxu, klávesnice a klikání myší, alternativně dotykový display ■ server - zjednodušená instalace bez grafické nadstavby, textová konzole, obvykle jen RPi připojené do internetu, bez ovládacích periferií; vzdálené připojení přes SSH protokol • klientské programy - sériový terminál, putty, mobax ■ kiosek - pouze display pro zobrazování informací ■ webová kamera, fotoaparát, mikroskop ■ herní konzole ■ ... fantazii se meze nekladou ... Mobax terminál Terminal Sessions View X server Tools Games Settings Macros Help Quick connect.,. ★ Mi T • M ■ • i [■]/! □ 1 ▼ Name e (KB) j Last modified Owner s3 ■ boot 2022-08-30 14:35 root 4 2022-08-30 15:44 root m ■ etc 2022-08-30 15:00 root ^Bhome 2022-08-30 14:35 root lost-t-found 2022-08-30 14:30 root ^|media 2022-08-30 14:31 root ^|mnt 2022-08-30 14:30 root ■ opt 2022-08-30 14:30 root 2022-08-30 15:44 root ■ root 2022-08-30 15:20 root ^(r.iri 2022-11-30 12:11 root IH^rv 2022-08-30 14:30 root ■sys 2022-08-30 15:44 root ■tmp 2022-11-30 12:09 root 2022-0B-30 14:30 root ^|var 2022-08-30 14:34 root 9 bin 1 2022-08-30 14:30 root 9 initrd.img 1 2022-08-30 14:33 root 9 initrd.img.old 1 2022-0B-30 14:33 root 9 lib 1 2022-08-30 14:30 root 9 Iib32 1 2022-08-30 14:30 root 9 Iib64 1 2022-08-30 14:30 root 9 Hbx32 1 2022-08-30 14:30 root 9 sbin 1 2022-08-30 14:30 root 1 E 3 Remote monitoring □ Follow terminal folder 12. callisto [SSH] x \ + \ • MobaXterm Personal Edition V22.0 • (SSH client, X server and network tools) > SSH session to xuser@147.251.32.51 • Direct SSH : ✓ • SSH compression : ✓ • SSH-browser : ✓ • Xll-forwarding : ✓ (remote display is forwarded through SSH) > For more info, ctrl+click on help or visit our website. Linux Callisto 5.10.0-17-amd64 #1 SMP Debian 5.10.136-1 (2022-08-13) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Oct 12 12:52:06 2022 from 147.251.32.50 xuser@Callisto:~$ df Filesystem lK-blocks Used Available Use% Mounted on udev 8049464 0 8049464 0% /dev tmpf s 1613252 840 1612412 1% /run /dev/nvme0nlp2 478096136 2466672 451270040 1% / tmpf s 8066260 0 806626O 0% /dev/shm tmpf s 5120 0 5120 0% /run/lock /dev/nvmeOnlpl 523248 3484 519764 1% /boot/efi tmpf s 1613252 0 1613252 0% /run/user/1000 xuser@Callisto: ~$ 1 f Callisto O O0/«! 1 BB 0.20 GB / 15.39 GB T 0.01 Mb/s ± 0.01 Mb/s M 91 days [E /: 1% /b UNREGISTERED VERSION - Please support MobaXterm by subscribing to the professional edition here: https://mobaxterm.mobatek.net SSH připojení k debianu - vlevo typická struktura souborového systému na vzdáleném pc, vpravo terminálové okno - zadávání příkazů, zobrazení odezev Kde to pořídit cz.farnell.com 974 položek rpishop.cz 1694 položek Embedded Dceřiné Desky & Moduly - Raspberry Pi Embedded Jednodeskové Počítače - SBC - Raspberry Pi Embedded Vývojové Sady - Raspberry Pi Příslušenství Embedded Vývojových Sad - Raspberry Pi Embedded Počítače, Výukové & Vývojové Desky (917) Raspberry Pi (590) Příslušenství Embedded Vývojových Sad - Raspberry Pi (267) Embedded Dceřiné Desky & Moduly - Raspberry Pi (209) Embedded Jednodeskové Počítače - SBC - Raspberry Pi (79) Embedded Vývojové Sady - Raspberry Pi (35) Krabičky pro Vývojové Desky (202) Arduino (103) Příslušenství Embedded Vývojových Sad - Arduino (92) Embedded Dceřiné Desky & Moduly - Arduino (11) Jiné Embedded Počítače (15) Příslušenství Embedded Vývojových Sad - Jiné Embedded Počítače (12) Embedded Dceřiné Desky & Moduly - Jiné Embedded Počítače (3) Sady loT Řešení (2) Embedded Vývojové Sady - Sady loT Řešeni (2) Micro:bit (2) Příslušenství Embedded Vývojových Sad - Micro:bít (2) ARM (2) Embedded Vývojové Sady - ARM (1) Embedded Dceřiné Desky & Moduly - ARM (1) Jiné Výukové & Vývojové Desky (1) Příslušenství Embedded Vývojových Sad - Jiné Výukové & Vývojové Desky (1) Vývojové Desky, Zkušební Nástroje (17) Embedded Vývojové Sady & Příslušenství (6) Integrované Dceřiné Desky & Moduly (5) Integrované Vývojové Sady - Primární Platforma (1) Vývojové Sady pro Displeje (4) Příslušenství Analogových Vývojových Sad (4) RF / Bezdrátové Vývojové Sady (2) Win (i) RF Vývojové Nástroje (1) Embedded Jednodeskový Počítač - SBC (1) 4 Polovodiče - IO (8) Paměť (4) Flash Paměťové Karty (4) Mikrokontroléry - MCU (4) 16 / 32 Bitové Mikrokontroléry - MCU - ARM (4) Ceny: RPi 4B 2GB 1350 Kč, 4GB 1650 Kč, 8GB 2250 Kč RPi Zero W 280 Kč, 2 W 410 Kč GPIO konektor („header") ■ pro připojování externích zařízení nebo zásuvné moduly „hats" (RPi 4) ■ úrovně 3,3 V (!) ■ X nemá to analog, vstupy 3.3V GPIO 2 Serial Data (I2C) GPI03 Serial Clock (I2C) GPIO 4 Ground GPIO 17 Chip Enable-CEl (SPI1) GPIO 27 GPIO 22 3.3v GPIO 10 MOSI (SPI 0) GPIO 09 MISO (SPI 0) GPIO 11 SCLK (SPI 0) Ground GPIO 0 EEPROM Serial DATA (I2C) GPIO 5 GPIO 6 GPIO 13(PWM) fPWM] GPIO 19 MISO (SPI 1) GPIO 26 Ground O 0 5V o o 5V o • Ground o 0 GPIO 14(UARTTX) • o GPIO 15 (UART RX) o o GPIO 18 Chip Enabte-CEO (SPI) [PWM] o • Ground o o GPIO 23 0 0 GPIO 24 0 • Ground o o GPIO 25 o o GPIO 8 Chip Enable-CEO (SPI0) • o GPIO 7 Chip Enable-CEl(SPIO) o 0 GPIO 1 EEPROM Serial Clock (I2C) 0 • Ground o 0 GPIO 12 (PWM) o • Ground o 0 GPIO 16 Chip Enable-CE2 (SPI 1) o o GPIO 20 MISO (SPI 1) • o GPIO 21 SCLK (SPI 1) www.eTechnophiles.com GPIO po skupinách ■ GPIO: standardní piny, které lze použít k zapnutí a vypnutí zařízení, třeba LED, spínače ■ I2C (Inter-lntegrated Circuit): připojení a komunikace s moduly, které podporují I2C protokol ■ SPI (Serial Peripheral Interface Bus), obdobné, ale využívá jiný protokol ■ UART (universal asynchronous receiver/transmitter) je sériový protokol (může být blokován pro terminálový přenos - odblokovat) ■ DNC znamená nepřipojovat ■ napájecí piny přivádějí napájení přímo z Raspberry Pi, jediné 5 V piny Pi. ■ GND: k uzemnění zařízení, jsou všechny připojeny ke stejnému vedení ■ není zde vůbec možnost analogového vstupu či výstupu (snad přes audio, nebo PWM) Úsporný systém ■ jedním z benefitů je nízká energetická náročnost, zejména když se nic neděje („idle" stav) - typická situace u permanentně zapnutých (mini)serverových systémů (24/7) Python - programování python www.python.org I* ■ Python3 standardní součástí instalace OS ■ detailní návod, jak začít v Rpi: ■ https://leam.sparkfun.com/tutorials/python-programming-tutorial-getting-started-with-the-raspberry-pi/all ■ obecný stručný úvod: ■ https://python.swaroopch.com/about_python.html ■ u nás: ■ https://python.cz/zacatecnici/ ■ nejjednodušší - programový kód se píše v textovém editoru (např. nano), uloží se s koncovkou .py a poté se spustí v rámci terminálu ■ využití dedikovaného IDE - Idle (standardní) nebo Thonny (obojí přeinstalováno již v OS Python začátek ■ v terminálu spustit editor nano, zadat: #!/usr/bin/python print "Hello, World!"; ■ uložit třeba jako hello.py a spustit příkazem python hello-world.py ■ až bude program dokončen, lze soubor převézt na „executable": chmod +x hello.py ■ a pak spustit alternativně zadáním ./hello.py #!/usr/bin/python Python - hodiny import time » & import datetime from Adafruit_7Segment import SevenSegment import wiringpi PIN_TO_SENSE = 22 TickNo = 0 wiringpi.wiringPiSetupGpio(); wiringpi.pinMode(PIN_TO_SENSE, wiringpi.GPIO.INPUT); # ================= Clock Example segment = SevenSegment(address=0x70) # print "Press CTRL+Zto exit" # Continually update the time on a 4 char, 7-segment display while(True): if ((wiringpi.digitalRead(button)==1) | (TickNo>0)): now = datetime.datetime.now() hour = now.hour; minute = now.minute; second = now.second; segment.writeDigit(0, int(hour/10)) # Tens segment.writeDigit(1, hour % 10) # Ones segment.writeDigit(3, int(minute /10)) # Tens segment.writeDigit(4, minute % 10) # Ones segment.setColon(second % 2) # Toggle colon at 1 Hz time.sleep(0.25) if (TickNo==0): TickNo = 10; else: TickNo-=1; if (TickNo<=0): segment.clear(); ,56" 7-segment LED HT16K33 Backpack^ C/C++ na RPi_? ■ v rámci OS nainstalovány standardní komponenty, obecné i RPi-specifické knihovny, jako IDE může sloužit editor Geany ■ na začátek - textový soubor hello.cpp s obsahem: #include using namespace std; int main(){ cout « "Hello in C++" « endl; return 0; } ■ zkompilovat: g++ -o hello hello.cpp ■ a spustit: ./hello https://raspberrytips.com/use-c-on-raspberry-pi/ Python vs. C 1 #!/usr/bin/python 1 #include 2 2 3 print "Hello, World!"j 3 int main() 4 4 { 5 printf("Hello, World! \n"); 6 return 0; 7 } 8 "Hello, World!" program "Hello, World!" program in Python in C ■ Python ... interpretovaný jazyk (pomalé ...), vhodný pro začátečníky ■ C/C++ ... kompilovaný jazyk - nativní kód - maximální rychlost, spíše pro pokročilejší uživatele Jazyk / Využití mezi vývojáři JavaScript 67.7% HTML/CSS 63.1% Python 44.1% Java 40.2% C# 31.4% PHP 26.2% C++ 23.9% C 21.8% C++ vývojáři lépe placeni (113 561 $) než ti s Pythonem (107 397 $) Ukázka z vědy - mikroskop ■ základem kamera s C-mount rozhraním ■ umožní připojení různých standardních objektivů, včetně mikroskopických (i nástavce pro objektivy ze stolních mikroskopů DIN standardu) ■ 12.3 megapixel Sony IMX477 sensor 7.9 mm diag. snímač, 1.55x1.55 |jm pixely ■ záznam a (před)zpracování obrazu či videa - dostatečný výkon z RPi ■ WiFi bezdrátový přenos obrazu ■ Open source „top" systém: https ://g ith u b. com/l B M/M icrosco Py Závěr ■ cílem přednášky bylo představit možnosti aplikací moderních mikrokontrolerů v oblasti vědeckého využití, s důrazem na digitální část problematiky ■ ukázat možnosti, nejvhodnější systémy a základy jejich použití a programování ■ vědu lze dělat nejen s profesionálními, často předraženými systémy, ale zejména v oblasti (bio)analytické chemie je stále dostatečný prostor i pro vlastní konstrukci zvolený přístup je kompatibilní s aktuálními trendy: ■ point-of-care diagnostics ■ lab-on-chip miniaturization ■ wearables for analysis ■ smarphone use, internet of things