ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi
Raspberry PI 3 ื“ื’ื B+

ื‘ืžื“ืจื™ืš ื–ื” ื ืขื‘ื•ืจ ืขืœ ื”ื™ืกื•ื“ื•ืช ืฉืœ ื”ืฉื™ืžื•ืฉ ื‘ืกื•ื•ื™ืคื˜ ื‘-Raspberry Pi. ื”-Raspberry Pi ื”ื•ื ืžื—ืฉื‘ ื™ื—ื™ื“ ืงื˜ืŸ ื•ื–ื•ืœ ืฉื”ืคื•ื˜ื ืฆื™ืืœ ืฉืœื• ืžื•ื’ื‘ืœ ืจืง ืขืœ ื™ื“ื™ ืžืฉืื‘ื™ ื”ืžื—ืฉื•ื‘ ืฉืœื•. ื–ื” ื™ื“ื•ืข ื‘ืงืจื‘ ื’ื™ืงื™ื ื˜ื›ื ื•ืœื•ื’ื™ื™ื ื•ื—ื•ื‘ื‘ื™ ืขืฉื” ื–ืืช ื‘ืขืฆืžืš. ื–ื”ื• ืžื›ืฉื™ืจ ืžืฆื•ื™ืŸ ืœืžื™ ืฉืฆืจื™ืš ืœื”ืชื ืกื•ืช ื‘ืจืขื™ื•ืŸ ืื• ืœื‘ื—ื•ืŸ ืงื•ื ืกืคื˜ ืžืกื•ื™ื ื‘ืคื•ืขืœ. ื”ื•ื ื™ื›ื•ืœ ืœืฉืžืฉ ืœืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืคืจื•ื™ืงื˜ื™ื, ื•ืžืชืื™ื ื‘ืงืœื•ืช ื›ืžืขื˜ ืœื›ืœ ืžืงื•ื - ืœืžืฉืœ, ื ื™ืชืŸ ืœื”ืจื›ื™ื‘ ืื•ืชื• ืขืœ ืžื›ืกื” ืฆื’ ื•ืœื”ืฉืชืžืฉ ื‘ื• ื›ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื”, ืื• ืœื—ื‘ืจ ืื•ืชื• ืœืœื•ื— ืœื—ื ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ืžืขื’ืœ ืืœืงื˜ืจื•ื ื™.

ืฉืคืช ื”ืชื›ื ื•ืช ื”ืจืฉืžื™ืช ืฉืœ Malinka ื”ื™ื Python. ืœืžืจื•ืช ืฉ-Python ื“ื™ ืงืœ ืœืฉื™ืžื•ืฉ, ื”ื•ื ื—ืกืจ ื‘ื˜ื™ื—ื•ืช ืกื•ื’, ื‘ื ื•ืกืฃ ื”ื•ื ืฆื•ืจืš ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ. ืœืกื•ื•ื™ืคื˜, ืœืขื•ืžืช ื–ืืช, ื™ืฉ ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ARC ื•ื”ื™ื ืžื”ื™ืจื” ื›ืžืขื˜ ืคื™ 8 ืžืคื™ื™ืชื•ืŸ. ื•ื‘ื›ืŸ, ืžื›ื™ื•ื•ืŸ ืฉื›ืžื•ืช ื”-RAM ื•ื™ื›ื•ืœื•ืช ื”ืžื—ืฉื•ื‘ ืฉืœ ืžืขื‘ื“ Raspberry Pi ืžื•ื’ื‘ืœื•ืช, ืฉื™ืžื•ืฉ ื‘ืฉืคื” ื›ืžื• Swift ืžืืคืฉืจ ืœืžืงืกื ืืช ื”ืคื•ื˜ื ืฆื™ืืœ ืฉืœ ื”ื—ื•ืžืจื” ืฉืœ ื”ืžื™ื ื™-PC ื”ื–ื”.

ื”ืชืงื ืช ืžืขืจื›ืช ื”ืคืขืœื”

ืœืคื ื™ ื”ืชืงื ืช Swift, ืขืœื™ืš ืœื‘ื—ื•ืจ ืžืขืจื›ืช ื”ืคืขืœื”. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช ืืชื” ื™ื›ื•ืœ ื”ืฉืชืžืฉ ื‘ืื—ืช ืžื”ืืคืฉืจื•ื™ื•ืชื”ืžื•ืฆืขื™ื ืขืœ ื™ื“ื™ ืžืคืชื—ื™ ืฆื“ ืฉืœื™ืฉื™. ื”ื‘ื—ื™ืจื” ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ ื”ื™ื Raspbian, ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ืจืฉืžื™ืช ืฉืœ Raspberry Pi. ื™ืฉื ืŸ ืžืกืคืจ ืืคืฉืจื•ื™ื•ืช ืœื”ืชืงื ืช Raspbian ืขืœ ื›ืจื˜ื™ืก SD; ื‘ืžืงืจื” ืฉืœื ื• ื ืฉืชืžืฉ ื‘-balenaEtcher. ื”ื ื” ืžื” ืœืขืฉื•ืช:

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi
ืฉืœื‘ ืฉื ื™: ืคืจืžื˜ ืืช ื›ืจื˜ื™ืก ื”-SD ื‘-MS-DOS (FAT)

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi
ืฉืœื‘ ืฉืœื™ืฉื™: ื”ืฉืชืžืฉ ื‘-balenaEtcher ื›ื“ื™ ืœืžืœื Raspbian ืขืœ ื”ื›ืจื˜ื™ืก

ืื ื• ืžืžืœื™ืฆื™ื ืขืœ ืงื•ืจืก ืื™ื ื˜ื ืกื™ื‘ื™ ื‘ื—ื™ื ื ืขืœ ืœืžื™ื“ืช ืžื›ื•ื ื” ืœืžืชื—ื™ืœื™ื:
ืื ื• ื›ื•ืชื‘ื™ื ืืช ืžื•ื“ืœ ืœืžื™ื“ืช ื”ืžื›ื•ื ื” ื”ืจืืฉื•ืŸ ืชื•ืš ืฉืœื•ืฉื” ื™ืžื™ื - 2-4 ื‘ืกืคื˜ืžื‘ืจ. ืงื•ืจืก ืื™ื ื˜ื ืกื™ื‘ื™ ื—ื™ื ืžื™ ื”ืžืืคืฉืจ ืœืš ืœื”ื‘ื™ืŸ ืžื”ื™ Machine Learning ื•ืœืœืžื•ื“ ื›ื™ืฆื“ ืœืขื‘ื•ื“ ืขื ื ืชื•ื ื™ื ืคืชื•ื—ื™ื ืžื”ืื™ื ื˜ืจื ื˜. ืื ื• ื’ื ืœื•ืžื“ื™ื ืœื—ื–ื•ืช ืืช ืฉืขืจ ื”ื“ื•ืœืจ ื‘ืืžืฆืขื•ืช ืžื•ื“ืœ ืฉืคื•ืชื— ื‘ืขืฆืžื•.

ื”ื’ื“ืจืช Raspberry Pi

ื›ื‘ืจ ื‘ื—ืฆื™ ื”ื“ืจืš! ื›ืขืช ื™ืฉ ืœื ื• ื›ืจื˜ื™ืก SD ืขื ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื‘ื” ื ืฉืชืžืฉ, ืืš ืžืขืจื›ืช ื”ื”ืคืขืœื” ื˜ืจื ื”ื•ืชืงื ื”. ื™ืฉ ืœื›ืš ืฉืชื™ ืืคืฉืจื•ื™ื•ืช:

  • ื”ืฉืชืžืฉ ื‘ืฆื’, ืžืงืœื“ืช ื•ืขื›ื‘ืจ ื”ืžื—ื•ื‘ืจื™ื ืœืžื›ืฉื™ืจ.
  • ืขืฉื” ื”ื›ืœ ืžืžื—ืฉื‘ ืื—ืจ ื‘ืืžืฆืขื•ืช SSH ืื• ื‘ืืžืฆืขื•ืช ื›ื‘ืœ ืงื•ื ืกื•ืœืช USB.

ืื ื–ื• ื”ื”ืชื ืกื•ืช ื”ืจืืฉื•ื ื” ืฉืœืš ืขื ื”-Pi, ืื ื™ ืžืžืœื™ืฅ ืขืœ ืืคืฉืจื•ืช ืžืก' 1. ืœืื—ืจ ื”ื›ื ืกืช ื›ืจื˜ื™ืก ื”-SD ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” Raspbian ืœ-Pi, ื—ื‘ืจ ืืช ื›ื‘ืœ ื”-HDMI, ื”ืขื›ื‘ืจ, ื”ืžืงืœื“ืช ื•ื›ื‘ืœ ื”ื—ืฉืžืœ.

ื”-Pi ืืžื•ืจ ืœืืชื—ืœ ื›ืฉื”ื•ื ืžื•ืคืขืœ. ืžื–ืœ ื˜ื•ื‘! ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื”ืฉืงื™ืข ืงืฆืช ื–ืžืŸ ื‘ืœื™ืžื•ื“ ืขืœ ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื” ืฉืœืš ื•ื”ื™ื›ื•ืœื•ืช ืฉืœื•.

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ื”ืชืงื ืช Swift

ืขืœ ืžื ืช ืœื”ืชืงื™ืŸ ืืช Swift ืขืœ ืคื˜ืœ, ืขืœื™ืš ืœื—ื‘ืจ ืื•ืชื• ืœืื™ื ื˜ืจื ื˜ (ื‘ืืžืฆืขื•ืช Ethernet ืื• WiFi, ื‘ื”ืชืื ืœื“ื’ื ื”ืœื•ื—). ืœืื—ืจ ื—ื™ื‘ื•ืจ ื”ืื™ื ื˜ืจื ื˜, ืชื•ื›ืœ ืœื”ืชื—ื™ืœ ืœื”ืชืงื™ืŸ ืืช Swift.

ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช ื‘ืฉืชื™ ื“ืจื›ื™ื. ืจืืฉื•ืŸ - ื™ืฆื™ืจืช ืžื‘ื ื” Swift ืžืฉืœืš, ื”ืฉื ื™ ื”ื•ื ืœื”ืฉืชืžืฉ ื‘ืงื‘ืฆื™ื ื‘ื™ื ืืจื™ื™ื ืฉื›ื‘ืจ ื”ื™ื“ื•ืจ. ืื ื™ ืžืžืœื™ืฅ ื‘ื—ื•ื ืขืœ ื”ืฉื™ื˜ื” ื”ืฉื ื™ื™ื”, ืฉื›ืŸ ื”ืจืืฉื•ื ื” ืชื“ืจื•ืฉ ืžืกืคืจ ื™ืžื™ ื”ื›ื ื”. ื”ืฉื™ื˜ื” ื”ืฉื ื™ื™ื” ื”ื•ืคื™ืขื” ื‘ื–ื›ื•ืช ื”ืงื‘ื•ืฆื” Swift-ARM. ื”ื™ื ื”ื‘ืขืœื™ื ืฉืœ ืจื™ืคื• ืฉืžืžื ื• ืืชื” ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ ืืช Swift ื‘ืืžืฆืขื•ืช apt (Advanced Pืขืคืจ TOOL).

ื–ื”ื• ื›ืœื™ ืฉื•ืจืช ืคืงื•ื“ื”, ื‘ืขืจืš ื›ืžื• ื”-App Store ืขื‘ื•ืจ ืืคืœื™ืงืฆื™ื•ืช ื•ื—ื‘ื™ืœื•ืช ืขื‘ื•ืจ ืžื›ืฉื™ืจื™ ืœื™ื ื•ืงืก. ืื ื• ืžืชื—ื™ืœื™ื ืœืขื‘ื•ื“ ืขื apt ืขืœ ื™ื“ื™ ื”ื–ื ืช apt-get ื‘ื˜ืจืžื™ื ืœ. ืœืื—ืจ ืžื›ืŸ, ืขืœื™ืš ืœืฆื™ื™ืŸ ืžืกืคืจ ืคืงื•ื“ื•ืช ืฉื™ื‘ื”ื™ืจื• ืืช ื”ืžืฉื™ืžื” ื”ืžืชื‘ืฆืขืช. ื‘ืžืงืจื” ืฉืœื ื•, ืขืœื™ื ื• ืœื”ืชืงื™ืŸ ืืช Swift 5.0.2. ื”ื—ื‘ื™ืœื•ืช ื”ืžืชืื™ืžื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืœืžืฆื•ื ื›ืืŸ.

ื•ื‘ื›ืŸ, ื‘ื•ืื• ื ืชื—ื™ืœ. ื›ืขืช, ื›ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉื ืชืงื™ืŸ ืืช Swift ื‘ืืžืฆืขื•ืช apt, ืขืœื™ื ื• ืœื”ื•ืกื™ืฃ ืืช ื”-repo ืœืจืฉื™ืžืช ื”ืžืื’ืจื™ื.

ื”ื•ืกืฃ/ื”ืชืงืŸ ืคืงื•ื“ืช ืจื™ืคื• ื–ืจื•ืข ืžื”ื™ืจื” ื ืจืื” ื›ืš:

curl -s <https://packagecloud.io/install/repositories/swift-arm/release/script.deb.sh> | sudo bash

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืœืื—ืจ ืžื›ืŸ, ื”ืชืงืŸ ืืช Swift ืžื”ืžืื’ืจ ืฉื ื•ืกืฃ:

sudo apt-get install swift5=5.0.2-v0.4

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ื–ื” ื”ื›ืœ! Swift ืžื•ืชืงืŸ ื›ืขืช ื‘ืคื˜ืœ ืฉืœื ื•.

ื™ืฆื™ืจืช ืคืจื•ื™ืงื˜ ืžื‘ื—ืŸ

ื‘ืื•ืชื• ื”ืจื’ืข, ืกื•ื•ื™ืคื˜ REPL ืœื ืขื•ื‘ื“, ืื‘ืœ ื›ืœ ื”ืฉืืจ ื›ืŸ. ืœืฆื•ืจืš ื”ื‘ื“ื™ืงื”, ื‘ื•ืื• ื ื™ืฆื•ืจ ื—ื‘ื™ืœืช Swift ื‘ืืžืฆืขื•ืช Swift Package Manager.

ืจืืฉื™ืช, ืฆื•ืจ ืกืคืจื™ื™ื” ื‘ืฉื MyFirstProject.

mkdir MyFirstProject

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืœืื—ืจ ืžื›ืŸ, ืฉื ื” ืืช ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื” ื”ื ื•ื›ื—ื™ืช ืœ-MyFirstProject ื”ื—ื“ืฉ ืฉื ื•ืฆืจ.

cd MyFirstProject

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืฆื•ืจ ื—ื‘ื™ืœืช ื”ืคืขืœื” ื—ื“ืฉื” ืฉืœ Swift.

swift package init --type=executable

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืฉืœื•ืฉ ืฉื•ืจื•ืช ืืœื• ื™ื•ืฆืจื•ืช ื—ื‘ื™ืœืช Swift ืจื™ืงื” ื‘ืฉื MyFirstProject. ื›ื“ื™ ืœื”ืคืขื™ืœ ืื•ืชื•, ื”ื–ืŸ ืืช ืคืงื•ื“ืช ื”ื”ืคืขืœื” ื”ืžื”ื™ืจื”.

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืœืื—ืจ ื”ืฉืœืžืช ื”ืงื•ืžืคื™ืœืฆื™ื”, ื ืจืื” ืืช ื”ืžืฉืคื˜ "ืฉืœื•ื, ืขื•ืœื!" ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”.

ื›ืขืช, ืœืื—ืจ ืฉื™ืฆืจื ื• ืืช ืชื•ื›ื ื™ืช ื”-Pi ื”ืจืืฉื•ื ื” ืฉืœื ื•, ื‘ื•ืื• ื ืฉื ื” ื›ืžื” ื“ื‘ืจื™ื. ื‘ืกืคืจื™ื™ืช MyFirstProject, ื‘ื•ืื• ื ืขืฉื” ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื‘ืฅ main.swift. ื”ื•ื ืžื›ื™ืœ ืืช ื”ืงื•ื“ ืฉืžื•ืคืขืœ ื›ืืฉืจ ืื ื• ืžืจื™ืฆื™ื ืืช ื”ื—ื‘ื™ืœื” ืขื ื”ืคืงื•ื“ื” swift run.

ืฉื ื” ืืช ื”ืกืคืจื™ื™ื” ืœ-Sources/MyFirstProject.

cd Sources/MyFirstProject 

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืขืจื™ื›ืช ืงื•ื‘ืฅ main.swift ื‘ืืžืฆืขื•ืช ื”ืžื•ื‘ื ื” ืขื•ืจืš ื ื ื•.

nano main.swift

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ื‘ืจื’ืข ืฉื”ืขื•ืจืš ืคืชื•ื—, ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ื”ืงื•ื“ ืฉืœ ื”ืชื•ื›ื ื™ืช ืฉืœืš. ื‘ื•ืื• ื ื—ืœื™ืฃ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืงื•ื‘ืฅ main.swift ื‘ื–ื”:

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

print("Hello, Marc!")

ื›ืžื•ื‘ืŸ ืฉืืชื” ื™ื›ื•ืœ ืœื”ื›ื ื™ืก ืืช ืฉืžืš. ื›ื“ื™ ืœืฉืžื•ืจ ืฉื™ื ื•ื™ื™ื, ืขืœื™ืš ืœื‘ืฆืข ืืช ื”ืคืขื•ืœื•ืช ื”ื‘ืื•ืช:

  • CTRL+X ื›ื“ื™ ืœืฉืžื•ืจ ืืช ื”ืงื•ื‘ืฅ.
  • ืืฉืจ ืืช ื”ืฉื™ื ื•ื™ื™ื ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ "Y".
  • ืืฉืจ ืืช ื”ืฉื™ื ื•ื™ ืœืงื•ื‘ืฅ main.swift ืขืœ ื™ื“ื™ ื”ืงืฉื” ืขืœ Enter.

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ื‘ื•ืฆืขื•, ืขื›ืฉื™ื• ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืชื•ื›ื ื™ืช.

swift run

ืฉืคืช ืชื›ื ื•ืช ืžื”ื™ืจื” ื‘-Raspberry Pi

ืžื–ืœ ื˜ื•ื‘! ืœืื—ืจ ื”ื™ื“ื•ืจ ื”ืงื•ื“, ื”ื˜ืจืžื™ื ืœ ืืžื•ืจ ืœื”ืฆื™ื’ ืืช ื”ืฉื•ืจื” ืฉื”ืฉืชื ืชื”.

ืขื›ืฉื™ื• ื›ืฉืกื•ื•ื™ืคื˜ ืžื•ืชืงื ืช, ื™ืฉ ืœืš ืžื” ืœืขืฉื•ืช. ืื–, ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ื—ื•ืžืจื”, ืœืžืฉืœ, ื ื•ืจื™ื•ืช, ืกืจื•ื•, ืžืžืกืจื™ื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื™ืช ืคืจื•ื™ืงื˜ื™ ื”ื—ื•ืžืจื” ืขื‘ื•ืจ ืœื•ื—ื•ืช Linux/ARM, ื”ื ืงืจืืช SwiftyGPIO.

ืชื”ื ื” ืœื”ืชื ืกื•ืช ืขื Swift ื‘-Raspberry Pi!

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”