Windows.  Vírusy.  Prenosné počítače.  internet.  Kancelária.  Verejné služby.  Vodiči

Doteraz zostáva Raspberry Pi jedným z najpopulárnejších technologických gadgetov Na túto dosku môžete nainštalovať takmer akýkoľvek operačný systém. Dnes si ale povieme, ako napísať programy pre túto dosku bez operačného systému, len s použitím hardvéru.

v čom je háčik?

Na prvý pohľad sa úloha zdá triviálna: stiahnuť keil, vytvoriť projekt... Ale nie je to také jednoduché. Všetky programovacie prostredia (keil, IAR, Atolic) podporujú maximálne ARM9. Je to spôsobené nevysloveným pravidlom, že píšu na holý kov až do ARM9 a potom na Linux. Ale stále je tu jedna medzera: arm-none-eabi-gcc podporuje akýkoľvek ARM.
Druhým problémom je, že pre tento procesor (BCM2835) neexistujú žiadne konfiguračné súbory, hlavičky atď. Tu nám pomôže bootloader Raspberry Pi a je v poriadku, že vykonáva dve funkcie: inicializuje procesor a jeho periférii a tiež prenesie kontrolu do súboru kernel.img Náš program jednoducho zamaskujeme za jadro a bootloader ho spustí.

čo potrebujeme?

1) Samotné Raspberry Pi, jeho pamäťová karta a napájanie.
2) Datasheet pre procesor
3) Počítač s nainštalovaným Linuxom (ale možno to bude možné na Windowse. Neviem, neskúšal som to).
4) Cross-compiler nainštalovaný na počítači z bodu 3. Používam arm-none-eabi-gcc
5) Obsah tohto priečinka.

Prípravky.

Pamäťovú kartu musíme naformátovať na FAT16 a preniesť do nej obsah tohto priečinka. Toto je bootloader plus jadro. Potom odtiaľ vymažeme súbory kernel.img a kernel_emergency.img. Toto je jadro Linuxu a nepotrebujeme ho.

Prvý program.

Teraz môžeme začať písať náš prvý program. Vytvorte súbor main.c a napíšte nasledujúci kód
int main (void) ( while(1) ( ) ) void exit (void) ( while(1) ( ) )
Ako vidíte, tento program nerobí nič. Z nejakého dôvodu kompilátor potrebuje funkciu exit.
Teraz to poďme zbierať.
arm-none-eabi-gcc -O2 -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -nostartfiles main.c -o kernel.elf
arm-none-eabi-objcopy kernel.elf -O binárne jadro.img

Výsledný súbor kernel.img hodíme na pamäťovú kartu. Pripravený!

GPIO

Je nepravdepodobné, že budete spokojní s programom, ktorý nebude robiť absolútne nič. Teraz skúsme zapáliť žiarovku.
Najprv deklarujme adresu, kde sa GPIO nachádza (môžete si to prečítať v údajovom liste).
#define GPIO_BASE 0x20200000UL

A deklarujeme premennú, ktorá určuje, že port je nakonfigurovaný na výstup (GPIO_GPFSEL1) a premennú, ktorá dodáva portu nízku úroveň (to znamená, že svetlo svieti) (GPIO_GPCLR0).
#define GPIO_GPFSEL1 1
#define GPIO_GPCLR0 10

A nakoniec upravíme hlavnú funkciu osvetlenia žiarovky:
volatile unsigned int* gpio; int main(void) ( gpio = (nepodpísané int*)GPIO_BASE; gpio |= (1<< 16); gpio = (1 << 16); while(1) { } }

Zbierame, šijeme a radujeme sa.

V ďalšej časti sa skúsime pohrať s časovačmi a prerušeniami.

Raspberry Pi je jednodoskový počítač s rozmermi 55 × 85 mm.

Spočiatku bol projekt vytvorený ako vzdelávací. Raspberry Pi je skvelý na učenie sa základov programovania a elektroniky vďaka nízkej cene (asi 35 dolárov) a prítomnosti takmer všetkých potrebných funkcií skutočného počítača. Mnoho počítačových tried bolo vytvorených na základe Raspberry Pi. Jeho účel však dnes ďaleko presahuje rámec vzdelávania. Zariadenie je široko používané na vytváranie rôznych elektronických zariadení od rádií a prehrávačov médií až po roboty a inteligentné domácnosti.

Doteraz najvýkonnejší model, Raspberry Pi 3 Model B, má HDMI konektor na pripojenie monitora, 4 USB porty na pripojenie USB zariadení, Ethernet port na pripojenie k sieti, vstavané Wi-Fi a Bluetooth, 4 -jadrový 64-bitový procesor ARM 1,2 GHz, 1 GB RAM. Na rozdiel od bežných počítačov má malá doska Raspberry 40 GPIO kontaktov (pinov), ktoré je možné použiť ako vstupné aj výstupné pomocou rôznych protokolov pre interakciu s externými zariadeniami, čo umožňuje pripojiť k doske rôzne senzory a akčné členy.

1. Vzhľad, hlavné prvky, telo.

Takže máme v rukách Raspberry Pi 3 Model B.

Horná strana vyzerá takto:

Spodná strana:

Na spodnej strane je slot pre SD kartu a RAM. SD karta slúži ako trvalé úložné zariadenie a obsahuje súbory operačného systému, programové súbory a používateľské súbory.

Pre ľahkú manipuláciu s doskou je ponúkaných veľa rôznych puzdier, ale tu sú časti jedného z nich, ktoré sú navzájom spojené bez skrutiek:

Najprv sa však oplatí nainštalovať radiátory na procesor a grafický čip, pretože tieto čipy sú dosť horúce, keď doska aktívne pracuje:

Teraz môžete zostaviť puzdro a označiť dosku mikropočítača tam:




Puzdro má otváracie veko pre jednoduché pripojenie kamery, displeja a GPIO pinov.

2. Príprava na zapnutie a prvé spustenie.

Na prvé spustenie Raspberry potrebujete nasledovné:

  • micro SD karta s nainštalovaným operačným systémom Raspbian (OC), odporúčaná pre toto zariadenie (optimálna kapacita karty - 8 GB, rýchlostná trieda - 10);
  • monitor s HDMI vstupom;
  • AC napájací zdroj s výstupným napätím 5 V a prúdom minimálne 2 A, s výstupným micro-USB konektorom;
  • USB myš a USB klávesnica.

Obrázok operačného systému Raspbian, založeného na Linuxe Debian 8 Jessi, si môžete stiahnuť zo sekcie Downloads na webe raspberrypi.org. Na začiatok môžete použiť obrázok RASPBIAN JESSIE LITE, pretože je najjednoduchšie sa naučiť. Je vhodné zapísať obrázok na SD kartu z Windows pomocou programu Win32DiskImager. Spôsob inštalácie a samotný program sú popísané na webovej stránke Raspberry na adrese:

Môžete tiež použiť súbory zverejnené na našej webovej stránke na karte Raspberry Pi 3 alebo si ich priamo stiahnuť z disku Yandex:

  • obraz operačného systému;
  • Program Win32DiskImager.

Ďalší popis je založený práve na tomto obrázku.

Myš a klávesnicu pripojenú k Raspberry systém bez problémov rozpozná. Môžete použiť aj bezdrôtovú myš a klávesnicu, napríklad Bluetooth, ale tie je potrebné nastaviť po spustení Raspberry a na to potrebujete aspoň USB myš. Na našej farme sme nemali USB klávesnicu, takže pri prvom spustení sme pripojili USB myš, ako aj monitor a napájanie:

Mimochodom, na doske nie je vypínač, spustí sa okamžite po pripojení konektora a spustí sa načítanie operačného systému. Po načítaní sa na obrazovke objaví pracovná plocha s celkom známou (ale originálnou) tapetou a ikonami:

Domovská obrazovka má ľahko rozpoznateľné ikony pre Menu, internetový prehliadač, Bluetooth manažér, ovládanie hlasitosti, sieťové nastavenia a niektoré ďalšie. Z nich je azda najpotrebnejšia pri nastavovaní a práci čierna obrazovka v pravom hornom rohu: terminál. Príkazy operačného systému sa zadávajú pomocou terminálu. Keďže nie všetky linuxové programy majú grafické rozhranie, dajú sa spustiť a ovládať iba cez príkazový riadok. Presne túto príležitosť poskytuje terminál. Všetky operácie systému Linux, ako je inštalácia a odinštalovanie programov, sa tiež vykonávajú primárne prostredníctvom terminálu. OS používa program LXTerminal, ktorý sa spustí po kliknutí pravým tlačidlom myši na ikonu. Treba poznamenať, že veľa príkazov vyžaduje zadanie prefixu na začiatku riadku sudo(gksudo pri spúšťaní programov s grafickým rozhraním), čo vám umožňuje vykonať príkaz ako správca počítača, teda s najvyššími právami (sudo - Super User Do). Inštalovať a odstraňovať programy, ako aj meniť parametre OS a jeho konfiguráciu môže iba správca.

Po prvom spustení systému má zmysel okamžite sa pripojiť k internetu a aktualizovať súbory OS na najnovšiu verziu. V pravom hornom rohu pracovnej plochy je ikona s rozpoznateľným obrázkom dvoch terminálov. Keď pripojíte kábel do ethernetového konektora na doske Raspberry, automaticky sa pripojí k lokálnej sieti. Ak kliknete na túto ikonu, zobrazí sa zoznam bezdrôtových sietí, z ktorých si môžete vybrať svoju vlastnú a pripojiť sa k nej zadaním príslušného kľúča. V tomto prípade sa namiesto terminálov na ikone objaví štandardný obrázok pripojenia k bezdrôtovej sieti. Toto je presne situácia znázornená na obrázku vyššie.

Treba povedať, že v porovnaní so staršími verziami Linuxu je teraz veľa úloh automatizovaných. Napríklad, ak bolo predtým potrebné pripojiť zväzok z príkazového riadku pri pripojení bežného flash disku, teraz je flash disk rozpoznaný po pripojení k jednému zo štyroch USB konektorov na doske úplne nezávisle a môže byť okamžite použitý.

Teraz môžete cez Bluetooth pripojiť napríklad bezdrôtovú myš a klávesnicu:

Urobíte to kliknutím na ikonu loga Blue Tooth vedľa indikátora sieťového pripojenia v pravom hornom rohu obrazovky. Ďalej musíte kliknúť na Pridať zariadenie a vybrať svoje zariadenia zo zoznamu nájdených bezdrôtových zariadení.

Treba poznamenať, že so všetkým pohodlím používania vstupných zariadení Bluetooth s Raspberry - nezaberajú konektory USB - tieto zariadenia v našom prípade pravidelne strácajú spojenie s doskou. Pre stabilnú prevádzku by ste preto mali stále používať myš a klávesnicu USB a ako alternatívnu možnosť, ktorá zaberá iba jeden konektor USB, súpravu myši a klávesnice s jedným rádiovým vysielačom a prijímačom.

Po pripojení k sieti sme sa pomocou myši aj klávesnice pokúsili o prístup na internet kliknutím na ikonu prehliadača. Stránky sa otvárali bez problémov, prijateľnou rýchlosťou.

3. Úvod do GPIO, programovanie v Pythone a chod semafora

Piny GPIO sú určite veľmi zaujímavou súčasťou Raspberry, čo výrazne zvyšuje možnosti mikropočítača pre použitie v elektronických automatizačných systémoch. Pomocou týchto kontaktov môžete čítať údaje z obrovského množstva dnes ponúkaných snímačov: teplota, tlak, pohyb, náklon, orientácia, otvorenie atď. a odosielať príkazy akčným členom: relé, motory, akčné členy, servá atď. iní.

Tu je schéma 40-pinového konektora GPIO:

Ako vidíte, okrem bežných digitálnych vstupno/výstupných pinov, ktoré prijímajú alebo vydávajú hodnoty logických 0 a 1, sú tu kontakty, ktoré fungujú cez bežné rozhrania I 2 C, SPI a UART. Je tiež možné generovať PWM a prerušenia zo zmien vstupných úrovní.

Pomocou GPIO simulujeme činnosť semafora stlačením tlačidla, ako sa to robí na málo používaných priechodoch pre chodcov, kde zvyčajne svieti zelená pre dopravu a chodec môže tlačidlom spustiť program na odbočenie. na červené svetlo pre prepravu. Algoritmus tohto programu je nasledovný: keď stlačíte tlačidlo, zelené svetlo začne blikať, potom sa na krátky čas rozsvieti žlté, potom červené; na chvíľu sa rozsvieti červené svetlo, potom sa na krátky čas rozsvieti červená a žltá a nakoniec opäť zelená; Potom systém čaká na ďalšie stlačenie tlačidla.

Na programovanie tohto algoritmu použijeme integrované vývojové prostredie (IDE) zabudované do obrazu Raspbian OS v jazyku Python. Jazyk Python má veľké množstvo výhod, o ktorých sa môžete dočítať na internete, čo z neho robí veľmi dobrý nástroj pre začínajúcich programátorov aj profesionálov. Je to interpretačný jazyk, jeho príkazy sa vykonávajú postupne, jeden po druhom. V IDE Pythonu je možné príkazy vykonávať jednoduchým napísaním na klávesnici a stlačením klávesu Enter na konci riadku.

Vývojové prostredie programu Python sa spúšťa z pracovnej plochy postupným výberom Menu - Programovanie - Python 3. Ďalej v okne, ktoré sa otvorí Python Shell treba stlačiť Súbor - Nový súbor. V okne editora, ktoré sa otvorí, musíte napísať alebo skopírovať nasledujúci text programu, pričom venujte zvláštnu pozornosť odsadeniam v texte, pretože sú zásadne dôležité pre programy Python:

#!/usr/bin/python

importovať RPi.GPIO ako GPIO
od času import spánku

RED_PIN = 36

YELLOW_PIN = 32
GREEN_PIN = 29
BUTTON_PIN = 40

print("RPi.GPIO init start")
GPIO.setwarnings (nepravda)
GPIO.setmode(GPIO.BOARD)
print("RPi.GPIO init end")

tlač ("Nastavenie GPIO")

GPIO.setup(RED_PIN, GPIO.OUT)

GPIO.setup(YELLOW_PIN, GPIO.OUT)
GPIO.setup(GREEN_PIN, GPIO.OUT)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.output(RED_PIN, 0)
GPIO.output(YELLOW_PIN, 0)
GPIO.output(GREEN_PIN, 1)

kým pravda:

ak inp==0:
pre x v rozsahu (0, 5):
GPIO.output(GREEN_PIN, 1)
spánok (0,5)
GPIO.output(GREEN_PIN, 0)
spánok (0,5)
GPIO.output(YELLOW_PIN, 1)
spánok (2)
GPIO.output(YELLOW_PIN, 0)
GPIO.output(RED_PIN, 1)
spánok (5)
GPIO.output(YELLOW_PIN, 1)
spánok (1)
GPIO.output(RED_PIN, 0)
GPIO.output(YELLOW_PIN, 0)
GPIO.output(GREEN_PIN, 1)

Prvý riadok označuje, kde sa v OS nachádza interpret Pythonu.

Funkcia začínajúca od vytlačiť , jednoducho vytlačí svoj argument na obrazovku.

Riadky začínajúce na Nastavenie GPIO , nastavte režim odchodu ( OUT ) alebo vstup ( IN ) zodpovedajúce piny a argument pull_up_down=GPIO.PUD_UP zapne pull-up rezistor na vstupe 40, ku ktorému je pripojené tlačidlo. Keďže program v Pythone nemá štandardnú „večnú slučku“, ako napríklad v Arduine, kde program načítaný do mikrokontroléra beží nekonečne dlho, kým je pripojené napájanie, vyhlásenie kým pravda: vykonáva tento cyklus. Náš semafor musíme predsa vrátiť do pôvodného stavu vždy na konci jeho prevádzkového cyklu.

Operátor pridelenia inp = GPIO.input(BUTTON_PIN) zapíše hodnotu na vstupe 40 do premennej inp Ak tlačidlo nie je stlačené, je to 0, ak je stlačené, je to 1. Ak je inp 0, začne cyklus semaforu:

  • pomocou slučky pre Zelená LED blikne 5-krát;
  • žltá sa rozsvieti na 2 sekundy (pauza je nastavená operátorom spánku);
  • žltá zhasne, červená sa rozsvieti na 5 sekúnd atď.

Po skončení cyklu semaforov sa všetko začína odznova.

Teraz musíte zostaviť elektrický obvod pomocou drôtov s nespájkovanými konektormi:



Krátke nohy LED diód (toto je mínus) pripájame k zemi - kolíky 6, 14, 20; dlhé (plus) cez odpory 240 Ohm - ku kontaktom 29 (zelená), 32 (žltá), 36 (červená).

Tlačidlo pripojíme na kolíky 39 a 40.

Teraz v editore s naším programom vyberieme Run - Run Modul alebo stlačte F5 a program sa spustí a čaká na stlačenie tlačidla.

Ale je úplne nepohodlné spúšťať program zakaždým pomocou shellu. Pre náš program je pohodlnejšie spustiť sa pri zapnutom Raspberry, pretože vtedy je možné zariadenie používať autonómne, bez monitora, klávesnice a myši.

Aby ste to dosiahli, musíte náš program zahrnúť do spúšťania operačného systému.

Tu potrebujeme terminál, bez neho sa zaobídeme.

Najprv uložme náš program ako súbor svetofor-rpi.py3 v koreňovom adresári používateľa /home/pi.

Teraz spustíme terminál a po pozvaní pi@raspberrypi:~ $ napíšme nasledujúci riadok: gksudo leafpad /etc/xdg/autostart/Svetofor.desktop.

Tým sa otvorí textový editor listová podložka a vytvorte súbor Svetofor.desktop v spúšťacom priečinku.

V textovom editore napíšeme nasledovné:


Verzia = 1.0
Kódovanie=UTF-8
Meno=Svetofor
Komentár =
Exec=sudo python /home/pi/svetofor-rpi.py3
Terminál=false
Typ = Aplikácia

a uložte súbor.

Hlavná vec v tomto súbore je riadok začínajúci na Exec, ktorý spustí interpret Pythonu na spustenie programu svetofor-rpi.py3.

Môžete to skontrolovať tak, že prejdete do priečinka /etc/xdg/autostart pomocou správcu súborov, ktorého ikona v podobe dvoch políčok sa nachádza v ľavom rohu obrazovky, či už je to Svetofor.

Ak teraz vypnete napájanie, odpojíte monitor, myš a klávesnicu a znova zapnete napájanie, náš semafor začne pracovať v autonómnom režime!

Video zo semaforu:

Výpočtové možnosti dosky Raspberry Pi 3 (ďalej len Rpi3) sú viac než dostatočné na vývoj programov priamo na cieľovom systéme. Proces vývoja však možno urýchliť a spríjemniť, ak softvér pre Rpi3 vyvíjate na svojom osobnom počítači.

V tomto článku popíšem proces nastavenia krížovej kompilácie v Eclipse v systéme Windows. Opíše tiež nastavenie Eclipse na prácu so vzdialeným systémom Raspbian na Rpi3.

Ak Eclipse používate prvýkrát, najnovšiu verziu si môžete nainštalovať z odkazu Eclipse CDT.
Java Virtual Machine potrebný na spustenie Eclipse si môžete stiahnuť z odkazu JRE.

Po nainštalovaní vyššie uvedených komponentov je možné spustiť Eclipse CDT IDE na vašom počítači. Ako pomocné nástroje budeme používať msys z balíka MinGW, takže si musíte stiahnuť aj MinGW.

Zostáva len nainštalovať nástroje na krížovú kompiláciu programov.
Ak to chcete urobiť, musíte si ich stiahnuť z nasledujúceho súboru nástrojov s odkazmi.
Táto stránka obsahuje aj pokyny v angličtine na inštaláciu súpravy nástrojov s výučbou.

Po nainštalovaní nástrojov bude zadaný adresár obsahovať aj ďalšie pomocné programy v podadresári TOOLS:

  • – pomôcka na zápis obrazu operačného systému Rpi3 na pamäťovú kartu.
  • SmartTTY– konzola SSH – klient, ktorý umožňuje nadviazať spojenie s doskou cez protokol SSH. Okrem štandardných funkcií disponuje možnosťou nahrávania súborov na dosku z ponuky utility.
  • UpdateSysroot– dávkový súbor Windows, ktorý spúšťa proces synchronizácie súborového systému sysroot dosky a prístrojového vybavenia.

Ak ste si práve zakúpili dosku Rpi3 a ešte nemáte nainštalovaný operačný systém na pamäťovú kartu, pomôže vám s tým utilita WinFlashTool.
Obraz operačného systému Raspbian si musíte stiahnuť z oficiálneho zdroja.
Potom stiahnutý obrázok rozbaľte, vložte pamäťovú kartu do čítačky kariet a zapíšte na ňu obrázok operačného systému pomocou programu WinFlashTool.

Nastavenie bezdrôtovej siete WLAN na doske RPi3 je popísané v mojom predchádzajúcom článku.

Pomocou pomôcky SmarTTY vytvorte spojenie s doskou. Je to potrebné, aby sa predišlo problémom pri nastavovaní vzdialeného pripojenia v Eclipse.
Vytvorte nové pripojenie zadaním IP adresy dosky, loginu a hesla pre prihlásenie (predvolené hodnoty pre login a heslo pre pi a raspberry).



Teraz musíte synchronizovať súborový systém sysroot. načo to je?
Predstavte si situáciu, že ste nainštalovali najnovšiu verziu obrazu Raspbian a nepodarilo sa vám synchronizovať.
V novej verzii boli pridané alebo zmenené hlavičkové súbory a súbory knižníc. Pri práci s krížovým kompilátorom používate staré hlavičkové a knižničné súbory z adresára sysroot, ktoré nie sú identické s najnovšou verziou systému. Preto neexistuje žiadna záruka, že program úspešne skompilovaný na počítači bude fungovať vo vnútri dosky RPi3.
Spustíme skript UpdateSysroot a sledujeme súbory na aktualizácii počítača (môže to trvať niekoľko desiatok minút).

Teraz je čas nastaviť vzdialené pripojenie k doske Rpi3 v Eclipse. Spustite Eclipse CDT, z hlavnej ponuky vyberte položku Okno->Zobraziť zobrazenie->Iné... V okne, ktoré sa otvorí, vyberte položku „vzdialené systémy“.

Potom sa v spodnej časti obrazovky zobrazí nová karta „Vzdialené systémy“. V tejto záložke je potrebné definovať nové pripojenie kliknutím na prvé tlačidlo vpravo.

V okne, ktoré sa otvorí, vyberte typ pripojenia „Linux“.

Po dokončení manipulácií sa na karte „Vzdialené systémy“, ktorá má podsekcie, zobrazí nové pripojenie:

  • Sftp súbory– v tejto časti môžete zobraziť obsah vzdialeného systému súborov. Je tiež možné kopírovať súbory pomocou Drag and Drop z lokálneho projektu na vzdialený počítač a naopak.
  • Shell procesy– táto časť vám umožňuje zobraziť procesy bežiace na vzdialenom počítači.
  • Ssh Shells– v tejto časti môžete otvoriť nový terminál SSH a zadávať príkazy priamo z Eclipse. Nie je potrebný samostatný nástroj.






Pomocou karty „Vzdialené systémy“ teda môžeme skopírovať programy skompilované v počítači do súborového systému Rpi3, spustiť ich na spustenie cez Ssh Shells a odstrániť nepotrebné procesy v sekcii Shell Processes.
Teraz je čas vytvoriť nový projekt v Eclipse a napísať jednoduchý demo program.
Vytvorte nový projekt z hlavného menu File->New->C Project.

Na zostavenie používam svoj vlastný, takže typ projektu je potrebné vybrať Makefile project->Empty Project

Ďalej môžete jednoducho skopírovať môj Makefile do vyrovnávacej pamäte klávesnice (Ctrl+C) a vložiť ho do prázdneho Rpi3_Project (Ctrl+V).

Keď otvoríte Makefile, v prvom riadku po komentári uvidíte zoznam použitých cieľov:

.PHONY: Testovací projekt je čistý

  • test– skontroluje, či je v systéme nainštalovaný krížový kompilátor arm-linux-gnueabi-gcc a nástroj make.
  • projektu- vytvára adresárovú štruktúru v rámci projektu.
  • všetky— zostavuje projekt.
  • čisté— vyčistí projekt od dočasných súborov (vrátane spustiteľných).

Teraz sa musíte uistiť, že máte nástroje. Ak to chcete urobiť, musíte spustiť príkaz make test.
Najprv však musíte pridať všetky štyri ciele na kartu Make Target na pravej strane obrazovky.

Dvojitým kliknutím na cieľ testu ho spustíme na vykonanie a v okne konzoly sa zobrazí niečo ako nasledovné:

Ak sa správa nezobrazila v konzole napriek tomu, že predtým boli nainštalované nástroje arm-linux-gnueabihf a MinGW, môže to znamenať len to, že cesty k nástrojom neboli zadané v systémovej premennej Path. Do Path musíte pridať cestu k adresáru MinGW/msys/1.0/bin a adresáru bin balíka arm-linux-gnueabihf.

Teraz vytvoríme adresárovú štruktúru v projekte dvojitým kliknutím na cieľ projektu (make project).

Makefile je organizovaný takým spôsobom, že pre kompiláciu zdrojových súborov musia byť ich mená pridané do premennej SRC, všetky ostatné zdroje nebudú skompilované, aj keď sú umiestnené v adresári /src.

Štruktúra adresára projektu je nasledovná:

  • kôš– adresár obsahujúci spustiteľný súbor po zostavení.
  • Debug– adresár s ladiacou verziou programu, ktorý neobsahuje optimalizáciu kódu a obsahuje ladiace informácie.
  • Uvoľnite– adresár s finálnou verziou programu, ktorý obsahuje optimalizovaný kód a neobsahuje ladiace informácie.
  • Inc– adresár pre hlavičkové súbory.
  • obj– obsahuje dočasné súbory na zostavenie projektu, má podadresáre Debug a Release.
  • src– zdrojové súbory projektu.

Pomocou tohto súboru Makefile môžete kompilovať zdrojové súbory napísané v programovacích jazykoch, ako sú C, C++, Assembler. V tomto prípade môžete na vytvorenie jedného programu použiť všetky dostupné programovacie jazyky.

V adresári /src vytvorte nový zdrojový súbor main.c a pridajte doň nasledujúce riadky:

#include int main(int argc, char **argv); int main(int argc, char **argv) ( printf("Vitajte v programovaní Raspberry Pi 3\n"); return 0; )/* main */

#include

int main(int argc, char * * argv);

int main(int argc, char * * argv)

printf( "Vitajte v programovaní Raspberry Pi 3\n") ;

návrat 0;

) /* hlavné */

Skontrolujeme, či premenná SRC obsahuje názov zdrojového súboru main.c .
Ďalej poďme zostaviť projekt spustením cieľa all.
Teraz môžete skopírovať výsledný spustiteľný súbor do domovského adresára na cieľovej doske pretiahnutím súboru myšou.

Kliknutím pravým tlačidlom myši na sekciu Ssh Shells otvoríme kontextovú ponuku, v ktorej musíte vybrať položku Launch Shell. Otvorí sa nová karta Remote Shell, v ktorej môžete zadávať príkazy shellu do poľa Command.

Nastavte prístupové práva pre skopírovaný súbor Rpi3_Project pomocou príkazu:

sudo chmod 777 Rpi3_Project

Programovanie Raspberry Pi 3 je presne to, na čo väčšina ľudí vezme tento jednodoskový počítač. Okamžite je potrebné poznamenať, že tento materiál nebude obsahovať pokyny podrobne o tom, ako a čo je potrebné urobiť - na „sieti“ je ich veľa. Odporúča sa však prečítať si oficiálnu dokumentáciu a špecializované formuláre. Namiesto toho sa tento článok bude zaoberať hlavnými bodmi, z ktorých bude zrejmé, že programovanie na Raspberry Pi nie je ťažké.

Python je hlavným jazykom Raspberry Pi

Takmer všetci majitelia Raspberry Pi chápu, čo znamená prvé slovo v názve jednodosky - „malina“. Mnoho ľudí si však druhú interpretuje nesprávne.

Niektorí veria, že to znamená „Pi“ (3.14...), iní si myslia, že sú to prvé dve písmená slova Pie (koláč, a to dáva zmysel – „malinový koláč“). V skutočnosti je však všetko inak.

Pi je skratka pre Python, ale s y nahradeným i. Často sa to robí pri programovaní. Vezmite si napríklad KDE, kde je v mnohých programoch namiesto C napísané K (kvôli štýlu): Konsole (správne - Console), Konqueror (Conqueror) atď.

To je, ako by ste mohli hádať, hlavným jazykom v Raspberry je Python. Preto sa majiteľovi „Maliny“, ktorý ešte neovláda žiadny jazyk, odporúča študovať práve tento. Existuje mnoho dôvodov, prečo je programovanie Raspberry Pi 3 v Pythone tým najlepším riešením.

Tu je len niekoľko z nich:

  • práca z krabice v Raspbian;
  • prítomnosť rozsiahlej, dobre zdokumentovanej oficiálnej knižnice, ktorá je už súčasťou balenia;
  • jednoduchosť jazyka atď.

Tu zo zrejmých dôvodov nebudeme hovoriť o jazyku a funkciách programovania v ňom - ​​to sa môže a malo by sa robiť na oficiálnych zdrojoch (alebo, ak to nedovoľuje zlá znalosť angličtiny, na špecializovaných).

Namiesto toho sa pozrieme na to, aké ľahké je naprogramovať Raspberry. Vezmime si napríklad programovanie Raspberry Pi 3 GPIO. Predpokladajme, že všetko, čo potrebujete, je k dispozícii: vodiče, LED, rezistor atď., A existuje aj pochopenie pinout - číslovanie pinov. Predpokladajme tiež, že LED je pripojená k portu 11.

Nižšie uvedený kód rozsvieti žiarovku na 5 sekúnd a potom ju vypne:

# najprv zahrnieme potrebnú knižnicu

importovať RPi.GPIO ako GPIO

# tiež budete potrebovať knižnicu, ktorá je zodpovedná za čakanie (je potrebné nastaviť interval zapínania a vypínania žiarovky)

# na spustenie GPIO musíte spustiť nasledujúcu funkciu

GPIO.setmode(GPIO.BOARD)

# teraz Python vie o GPIO a dá sa povedať, s ktorým portom bude musieť pracovať a čo by mal robiť (v tomto prípade 11. a bude fungovať na výstupe)

GPIO.output(11, 1)

# teraz to vypnite (0 znamená nepravda)

GPIO.output(11, 0)

Zadaný kód je možné skopírovať, vložiť do dokumentu a uložiť s príponou .py a umiestniť ho napríklad do vášho domovského adresára. Potom ho musíte spustiť príkazom: python ~./názov_súboru.py.

Ak všetko funguje, zariadenie funguje správne.

Treba poznamenať, že ak vyššie uvedenému kódu dobre nerozumiete, pozrite si dokumentáciu a naučte sa základy programovania v Pythone, ako aj knižnice GPIO. A ak máte aspoň základné znalosti akéhokoľvek jazyka, uvedomíte si, že uvedený príklad je mimoriadne jednoduchý.

Programovanie v iných jazykoch pre Raspberry

Programovanie v C pre Raspberry Pi alebo iné programovacie jazyky sa takmer nelíši od písania kódu pre iné platformy. Jediná vec je, že sú potrebné špeciálne knižnice.

Knižnica WiringPi pre prácu s GPIO

Ak máte záujem o programovanie Raspberry Pi v C/C++ a prácu s GPIO, tak si do systému musíte nainštalovať priamo samotné gcc a následne knižnicu wirePi – nájdete ju na GitHub. V popise je návod na použitie.

Je potrebné poznamenať, že na inštaláciu knižníc z GitHubu je potrebný nástroj GIT. Ak ho systém nemá, budete si ho musieť nainštalovať z úložiska (celý názov: git-core).

Programovanie Raspberries pomocou Java

Tí, ktorí chcú programovať Raspberry Pi v Jave, by mali venovať pozornosť Pi4J, knižnici, ktorá je navrhnutá špeciálne pre prácu s Raspberry. Môžete si stiahnuť a dozvedieť sa o jeho funkciách na oficiálnych stránkach projektu.

Je zaujímavé, že „Malina“ bola pôvodne vyvinutá špeciálne na výučbu programovania detí. Tvorca tohto zariadenia si všimol, že úroveň pochopenia fungovania počítačov medzi modernými študentmi je oveľa nižšia ako u tých, ktorí študovali v 90. rokoch. Pripísal to skutočnosti, že výpočtové zariadenia sa stali extrémne jednoduchými: ak predtým deti a tínedžeri, ktorí boli nadšení pre elektroniku, museli rozumieť terminálovým príkazom a dokonca sami písať kód, teraz sa všetko robí stlačením niekoľkých tlačidiel.

Preto je samozrejme zabezpečené vizuálne programovanie Raspberry Pi. Na to slúži najmä jazyk Scratch so špeciálnym serverom - GPIOSERVER. Na internete je veľa príručiek, ktoré vám pomôžu zvyknúť si na príslušné programy, takže nemá zmysel o nich uvažovať.

Možnosti Malinka nie sú obmedzené na uvedené jazyky. Môžete s ním komunikovať pomocou PHP, Ruby, Perl a ďalších jazykov. Takmer pre každý populárny jazyk existujú, aj keď nie oficiálne, fungujúce a celkom funkčné knižnice. Opäť však treba spomenúť, že na programovanie Raspberry je lepšie použiť Python.



Ak si všimnete chybu, vyberte časť textu a stlačte Ctrl+Enter
ZDIEĽAŤ: