Raspberry PI 3 áá±á¬áºááẠB+
á€áááºáááºážá á¬ááœáẠRaspberry Pi ááœáẠSwift ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážáá¡ááŒá±áá¶áá»á¬ážááá¯áá»áœááºá¯ááºááá¯á·áááºááŒáá«áááºá Raspberry Pi ááẠáá±ážáááºááŒá®áž á á»á±ážáááŒá®ážáá±á¬ single-board ááœááºáá»á°áá¬áá áºáá¯á¶ážááŒá áºááŒá®áž áááºážá ááœááºáá»ááºááŸá¯ááá¯ááºáᬠá¡áááºážá¡ááŒá áºáá»á¬ážááŒáá·áºáᬠá¡ááá·áºá¡áááºááŸááááºá áááºážááᯠáááºážááá¬áá»áœááºážáá»ááºáá°áá»á¬ážááŸáá·áº DIY áá«ááá¬ááŸááºáá»á¬ážááŒá¬ážááœáẠáá°áááá»á¬ážáááºá áááºážááẠá áááºáá°ážáá áºáá¯á¡á¬áž á ááºážáááºááẠááá¯á·ááá¯áẠáááºááœá±á·ááœáẠá¡áá»áá¯á·áá±á¬ á¡áá°á¡ááá áºáá¯ááᯠá ááºážáááºááẠááá¯á¡ááºáá°áá»á¬ážá¡ááœáẠáá±á¬ááºážááœááºáá±á¬áááááá¬áá áºáá¯ááŒá áºáááºá áááºážááᯠááá±á¬áá»ááºá¡áá»áá¯ážáá»áá¯ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááŒá®áž áá±áá¬ááá¯ááºážáá®ážáá«ážááœáẠá¡ááœááºááá° á¡áááºááŒá±ááá¯ááºááẠ- á¥ááá¬á¡á¬ážááŒáá·áºá áááºážááᯠáá±á¬áºáá®áá¬á¡áá¯á¶ážáá±á«áºááœáẠáááºáááºááá¯ááºááŒá®áž áááºá áá±á¬á·áá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯ááŒááºáž ááá¯á·ááá¯áẠá¡á®áááºáááœááºážáá áºáá¬ážáá áºááᯠááááºážáá»á¯ááºááẠáá±á«ááºáá¯áá·áºáá¯ááºááŸáá·áº áá»áááºáááºááá¯ááºáááºá
Malinka áááá¬ážáááºáááá¯ááááºáá¬áá¬á
áá¬ážááŸá¬ Python ááŒá
áºáááºá Python ááẠá¡áá¯á¶ážááŒá¯áá¡ááœááºááœááºáá°áá±á¬áºáááºáž áááºážááẠá¡áá»áá¯ážá¡á
á¬ážáá¯á¶ááŒá¯á¶ááŸá¯áááŸáááá·áºá¡ááŒáẠmemory áááºážáá»á¬ážá
áœá¬á
á¬ážáá¯á¶ážáááºá Swift ááœáẠARC memory management áá«ááŸáááŒá®áž Python ááẠ8 ááá®ážáá«áž ááá¯ááŒááºáááºá áá±á¬ááºážááŒá®á RAM ááá¬áááŸáá·áº Raspberry Pi áááá¯áááºáá¬á ááœááºááŒá°áá¬á
áœááºážáááºáá»á¬ážááẠá¡ááá·áºá¡áááºááŸááá±á¬ááŒá±á¬áá·áº Swift áá²á·ááá¯á·áá±á¬ áá¬áá¬á
áá¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº ဠmini-PC á áá¬á·ááºáá²á á¡áá¬ážá¡áá¬ááᯠá¡ááŒáá·áºáá¯á¶ážááŒá
áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá
áºáááºá
OS ááá·áºááœááºážááŒááºážá
Swift ááᯠáááá·áºááœááºážáá®á áááºááẠOS áá
áºáá¯ááᯠááœá±ážáá»ááºááẠááá¯á¡ááºáááºá áá®ááá¯áá¯ááºááá¯á· áááºáá¯ááºááá¯ááºáááºá
- Raspbian OS á áá±á¬ááºáá¯á¶ážáá¬ážááŸááºážááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«á
áá®ááŸá¬ . Disk Utility ááᯠá¡áá¯á¶ážááŒá¯á SD áááºááᯠFAT ááá¯á· áá±á¬áºáááºáá¯ááºáá«á .- áá»áœááºáá±á¬áºááá¯
balenaetcher áá±á¬áºáááºáááºáá áºáá¯ááá¯á· á¡ááºáá¯ááºáááºááŒááºážá¡ááœááºá
á¡ááá·áºááŸá
áº- SD áááºááᯠMS-DOS (FAT) ááŒáá·áº áá±á¬áºáááºáá¯ááºáá«á
á¡ááá·áº á- áááºáá²ááá¯á· Raspbian ááá¯ááŒáá·áºááẠbalenaEtcher ááá¯áá¯á¶ážáá«á
á áááºáá°áá»á¬ážá¡ááœáẠá ááºáááºáá°ááŒááºážááá¯ááºáᬠá¡ááá²á· á¡áá°ážááŒááºáááºáááºáááºážááᯠáá»áœááºá¯ááºááá¯á· á¡ááŒá¶ááŒá¯á¡ááºáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ážáááºá¡ááœááºáž ááááá¯á¶áž á ááºáááºáá°ááŸá¯áá¯á¶á á¶ááᯠáá±ážáá«áááºá á ááºáááºáᬠá-áá Machine Learning á áá¬áá²ááá¯áá¬ááᯠáá¬ážáááºááŒá®áž á¡ááºáá¬áááºááá± áá±áá¬ááœáá·áºáááºážáá²á· á¡áá¯ááºáá¯ááºáá¯á¶ááᯠáá±á·áá¬ááá¯ááºá á±ááá·áº á¡ááá²á· á¡áá°ážáá®ážááá·áºáááºáááºážáá áºáá¯áá«á ááá¯ááºááá¯ááºáááºáá®ážáá¬ážáá±á¬ áá±á¬áºáááºááᯠá¡áá¯á¶ážááŒá¯á áá±á«áºáá¬ááœá±áá²ááŸá¯ááºážááᯠááá·áºááŸááºážáááºáááºáž áá±á·áá¬áá«áááºá.
Raspberry Pi á áá áºááá·áºááœááºážááŒááºážá
áááºážáá áºáááºáá±á¬ááºáá±ááŒá®á ááá¯áá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯ááá·áº OS áá«áá±á¬ SD áááºáá áºáá¯ááŸááá±á¬áºáááºáž áááºáááºááŸá¯á áá áºá¡á¬áž ááá·áºááœááºážááŒááºážáááŸááá±ážáá«á áá®á¡ááœáẠááŒá áºááá¯ááºááŒá± ááŸá áºáá¯ááŸááá«áááº-
- á ááºááŸáá·áºáá»áááºáááºáá¬ážáá±á¬ áá±á¬áºáá®áá¬á áá®ážáá¯ááºááŸáá·áº áá±á¬ááºá áºááᯠá¡áá¯á¶ážááŒá¯áá«á
- SSH ááá¯á·ááá¯áẠUSB Console ááŒáá¯ážááᯠá¡áá¯á¶ážááŒá¯á á¡ááŒá¬áž PC á០á¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒá¯áá¯ááºáá«á
áááºážááẠPi ááŸáá·áº áááºáááááá¯á¶ážá¡ááœá±á·á¡ááŒá¯á¶ááŒá áºáá«áá áá»áœááºá¯ááºááẠááœá±ážáá»ááºááŸá¯ #1 ááᯠá¡ááŒá¶ááŒá¯áá«áááºá Raspbian OS SD áááºááᯠPi áá²ááá¯á· ááá·áºááœááºážááŒá®ážáááºááŸáá·áº HDMI ááŒáá¯ážá áá±á¬ááºá áºá áá®ážáá¯ááºááŸáá·áº áá«áá«ááŒáá¯ážááá¯á·ááᯠáá»áááºáááºáá«á
ááœáá·áºáá¬ážáá±á¬á¡áá« Pi ááẠboot ááŒá áºááá·áºáááºá áá¯ááºáá°áá«áááºá ááᯠáááºááẠáááºá desktop ááŸáá·áº áááºážá áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬ážá¡ááŒá±á¬ááºáž á¡áááºážááẠá¡áá»áááºááŒá¯ááºážááá¯ááºáá«ááŒá®á
Swift ááᯠááá·áºááœááºážááŒááºážá
Raspberry áá±á«áºááœáẠSwift ááá¯ááá·áºááœááºážáááºá¡ááœááºá áááºážááá¯á¡ááºáá¬áááºááá¯á·áá»áááºáááºááẠááá¯á¡ááºááẠ(áá¯ááºáá±á¬áºáááºáá±á«áº áá°áááºá Ethernet ááá¯á·ááá¯áẠWiFi ááá¯á¡áá¯á¶ážááŒá¯áááº)á á¡ááºáá¬áááºáá»áááºáááºááŒá®ážáááºááŸáá·áº Swift ááᯠá áááºááá·áºááœááºážááá¯ááºáá«áááºá
áááºážááᯠáááºážáááºážááŸá
áºáá»áá¯ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáááºá ááá-
áááºážááẠLinux á
ááºáá
á¹á
ááºážáá»á¬ážá¡ááœáẠá¡ááºááºáá»á¬ážááŸáá·áº áááºáá±á·áá»áºáá»á¬ážá¡ááœáẠApp Store áá²á·ááá¯á· á¡áááá·áºáá±ážááá¯ááºážáá°ážááºáá
áºáá¯ááŒá
áºáááºá terminal ááœáẠapt-get ááá¯ááá·áºááœááºážááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠapt ááŸáá·áº á
áááºáá¯ááºáá±á¬ááºáá«áááºá ááá¯á·áá±á¬ááºá áááºáá¯ááºáá±á¬ááºáá±áá±á¬áá¯ááºáááºážááá¯ááŸááºážáááºážá
á±ááá·áº command á¡áá»á¬ážá¡ááŒá¬ážááá¯áááºááŸááºáááºááá¯á¡ááºáááºá áá»áœááºá¯ááºááá¯á·áááá
á¹á
ááœááºá áá»áœááºá¯ááºááá¯á·ááẠSwift 5.0.2 ááá¯ááá·áºááœááºážáááºááá¯á¡ááºáááºá áááºááá¯ááºáᬠáááºáá±á·ááºá»áá»á¬áž áááºáž ááŸáááá¯ááºáá«áááºá
áá² á ááá¯ááºááŒáá¡á±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠapt ááá¯á¡áá¯á¶ážááŒá¯á Swift ááá¯ááá·áºááœááºážáááºááá¯ááá¯áá»áœááºá¯ááºááá¯á·áááá±á¬ááŒá±á¬áá·áº repo ááᯠrepositories á á¬áááºážááœááºááá·áºáááºááá¯á¡ááºáááºá
repo á¡áááá·áºááᯠááá·áº/ááœááºážáá«á
curl -s <https://packagecloud.io/install/repositories/swift-arm/release/script.deb.sh> | sudo bash
ááá¯á·áá±á¬áẠááá·áºááœááºážáá¬ážáá±á¬ repo á០Swift ááᯠááá·áºááœááºážáá«á
sudo apt-get install swift5=5.0.2-v0.4
áá«áá«áá²! Swift ááᯠáá»áœááºá¯ááºááá¯á·á Raspberry ááœáẠááá¯ááá·áºááœááºážáá¬ážáá«áááºá
á ááºážáááºááŸá¯ ááá±á¬áá»ááºáá áºáᯠáááºáá®ážááŒááºážá
ááá¯á¡áá»áááºááœááº,
ááááŠážá áœá¬ MyFirstProject áá¯áá±á«áºáá±á¬ áááºážááœáŸááºáá áºáá¯ááᯠáááºáá®ážáá«á
mkdir MyFirstProject
ááá¯á·áá±á¬áẠá¡áá
áºáááºáá®ážáá¬ážáá±á¬ MyFirstProject ááá¯á· áááºááŸááá¯ááºáá±á¬ááºáá±ááá·áº áááºážááœáŸááºááᯠááŒá±á¬ááºážáá«á
cd MyFirstProject
á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá±á¬ Swift áááºáá±á·ááºá»á¡áá
áºááᯠáááºáá®ážáá«á
swift package init --type=executable
á€á
á¬ááŒá±á¬ááºážáá¯á¶ážááŒá±á¬ááºážááẠMyFirstProject áá¯áá±á«áºáá±á¬ á¡áá»ááºážááŸá®ážáá±á¬ Swift á¡áá¯ááºáá
áºáá¯ááᯠáááºáá®ážáááºá áááºážááᯠrun ááẠswift run command ááá¯ááá¯ááºááá·áºáá«á
á
á¯á
ááºážááŸá¯ááŒá®ážááœá¬ážáááºááŸáá·áº "Hello, world!" ááá¯áá²á· á
áá¬ážáá¯á¶ážááᯠááœá±á·ááá«áááá·áºáááºá command line áá±á«áºááŸá¬á
ááá¯áá»áœááºá¯ááºááá¯á·áááááá¯á¶áž Pi áááá¯ááááºááá¯áááºáá®ážááŒá®ážáá±á¬á¡áá¬á¡áá»áá¯á·ááá¯ááŒá±á¬ááºážáá²ááŒáá«á áá¯á·á MyFirstProject directory ááœáẠmain.swift ááá¯ááºááᯠá¡ááŒá±á¬ááºážá¡áá²áá¯ááºááŒáá«á áá¯á·á á¡áá¯ááºááá¯áá»áœááºá¯ááºááá¯á· swift run command ááŒáá·áºáá¯ááºáá±á¬ááºáá±á¬á¡áá«áááºážááœááºáá¯ááºáá±á¬ááºáá±á¬áá¯ááºáá«ááŸááááºá
áááºážááœáŸááºááᯠSources/MyFirstProject ááá¯á· ááŒá±á¬ááºážáá«á
cd Sources/MyFirstProject
built-in ááᯠá¡áá¯á¶ážááŒá¯á main.swift ááá¯ááºááᯠáááºážááŒááºááŒááºážá
nano main.swift
áááºážááŒááºáá°ááœáá·áºááŒá®ážáááºááŸáá·áºá áááºáááºáááºááááá¯ááááºááá¯ááºááá¯ááŒá±á¬ááºážáá²ááá¯ááºáááºá main.swift ááá¯ááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá€á¡áá¬ááŒáá·áº á¡á
á¬ážááá¯ážááŒáá«á
áá¯á·á
print("Hello, Marc!")
áá±áá»á¬áá¬ááá±á¬á· áááºážáá¬áááºááá·áºááá¯á·ááááºá ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠááááºážáááºážááẠá¡á±á¬ááºáá«ááá¯á·ááᯠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááº-
- ááá¯ááºááá¯ááááºážáááºážááẠCTRL+Xá
- âYâ ááá¯ááŸáááºááŒááºážááŒáá·áº ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡áááºááŒá¯áá«á
- Enter ááŸáááºááŒááºážááŒáá·áº main.swift ááá¯ááºááá¯á· ááŒá±á¬ááºážáá²ááŸá¯ááᯠá¡áááºááŒá¯áá«á
ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠááŒá¯áá¯ááºááŒá®ážáá«ááŒá®á ááᯠáááá¯ááááºááᯠááŒááºáááºá
áááºááẠá¡áá»áááºáá»áá±á¬ááºáá«ááŒá®á
swift run
áá¯ááºáá°áá«áááºá áá¯ááºááᯠá
á¯á
ááºážááŒá®ážáááºááŸáá·áºá terminal ááẠááŒá¯ááŒááºáá¬ážáá±á¬ á
á¬ááŒá±á¬ááºážááᯠááŒáááá«áááºá
ááᯠSwift ááᯠinstall áá¯ááºáá¬ážááŒá®ážá áááºáá¯ááºá
áá¬áá
áºáá¯ááŸááááºá ááá¯á·ááŒá±á¬áá·áºá á¥ááá¬á LEDsá servosá relays áá»á¬ážááᯠááááºážáá»á¯ááºáááºá Linux/ARM boards áá»á¬ážá¡ááœáẠáá¬á·ááºáá²ááá±á¬áá»ááºáá»á¬ážá á
á¬ááŒáá·áºááá¯ááºááᯠáááºáá¯á¶ážááá¯ááºáááºá
Raspberry Pi ááœáẠSwift ááᯠáá»á±á¬áºááœáŸááºá
áœá¬ á
ááºážáááºááá¯ááºáá«á
source: www.habr.com