Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 37

Автор Монк Π‘Π°ΠΉΠΌΠΎΠ½

Β Β usb.Task();

}

// Π­Ρ‚Π° функция ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ наТатия клавиш

void keyPressed()

{

Β Β char key = keyboard.getKey();

Β Β Serial.write(key);

}

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° KeyboardController Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ keyPressed Π² скСтчС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° происходит Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ клавиши. Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ отпускания клавиш с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ keyReleased. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° keyboard:

β€’ getModifiers β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ маску с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π½Π°ΠΆΠ°Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΠ°Ρ…-ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… (Shift, Ctrl ΠΈ Ρ‚.Π΄.). ΠšΠΎΠ΄Ρ‹ клавиш ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу http://arduino.cc/en/Reference/GetModifiers;

β€’ getKey β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ASCII Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши;

β€’ getOemKey β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ скан-ΠΊΠΎΠ΄ клавиши.

ВзаимодСйствиС с ΠΌΡ‹ΡˆΡŒΡŽ осущСствляСтся Ρ‚Π°ΠΊ ΠΆΠ΅ просто ΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ шаблона. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π±ΡƒΠΊΠ²Ρ‹ L, R, U ΠΈΠ»ΠΈ D Π² зависимости ΠΎΡ‚ направлСния пСрСмСщСния указатСля ΠΌΡ‹ΡˆΠΈ β€” Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ, Π²Π²Π΅Ρ€Ρ… ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·:

// sketch_11_06_mouse_due

#include <MouseController.h>

USBHost usb;

MouseController mouse(usb);

void setup()

{

Β Β Serial.begin(9600);

Β Β Serial.println("Program started");

Β Β delay(200);

}

void loop()

{

Β Β usb.Task();

}

// Π­Ρ‚Π° функция ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ пСрСмСщСния ΠΌΡ‹ΡˆΠΈ

void mouseMoved()

{

Β Β int x = mouse.getXChange();

Β Β int y = mouse.getYChange();

Β Β if (x > 50) Serial.print("R");

Β Β if (x < -50) Serial.print("L");

Β Β if (y > 50) Serial.print("D");

Β Β if (y < -50) Serial.print("U");

}

Помимо mouseMoved Π² скСтч ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… событий ΠΎΡ‚ ΠΌΡ‹ΡˆΠΈ:

β€’ mouseDragged β€” это событиС гСнСрируСтся, ΠΊΠΎΠ³Π΄Π° происходит ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ с Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ;

β€’ mousePressed β€” это событиС гСнСрируСтся, ΠΊΠΎΠ³Π΄Π° происходит Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ, ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ mouse.getButton с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ LEFT_BUTTON, RIGHT_BUTTON ΠΈΠ»ΠΈ MIDDLE_BUTTON для опрСдСлСния Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ;

β€’ mouseReleased β€” это событиС являСтся ΠΏΠ°Ρ€Π½Ρ‹ΠΌ для mousePressed ΠΈ гСнСрируСтся, ΠΊΠΎΠ³Π΄Π° происходит отпусканиС ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ познакомились с нСсколькими способами использования Arduino с устройствами USB.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Arduino ΠΊ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈ бСспроводным сСтям, познакомимся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ°ΠΌΠΈ программирования сСтСвых взаимодСйствий, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ethernet ΠΈ WiFi.

12. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСтСвых взаимодСйствий

ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ Π²Π΅Ρ‰Π΅ΠΉ, простираСтся Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π²Π΅Π±-сСрвСров ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ устройствами, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сСтСвых взаимодСйствий. ΠŸΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹, устройства Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Ρ…ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ становятся всС Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. ΠŸΠ»Π°Ρ‚Ρ‹ Arduino Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ срСди ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-устройств, поддСрТивая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ бСспроводного ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Etherner ΠΈΠ»ΠΈ WiFi. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ посмотрим, ΠΊΠ°ΠΊ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Arduino, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСти.

Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

Π£ вас Π½Π° Π²Ρ‹Π±ΠΎΡ€ Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Arduino ΠΊ сСти. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ethernet с Arduino Uno, ΠΈΠ»ΠΈ приобрСсти модСль Arduino со встроСнным Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ Ethernet, ΠΈΠ»ΠΈ Ρ€Π°ΡΠΊΠΎΡˆΠ΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈ приобрСсти ΠΏΠ»Π°Ρ‚Ρƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ WiFi для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ бСспроводной сСти.

ΠŸΠ»Π°Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ethernet

ΠŸΠ»Π°Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ethernet (рис. 12.1) Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти Ethernet, Π½ΠΎ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ слот для ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти microSD, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… (см. Ρ€Π°Π·Π΄Π΅Π» «ИспользованиС SD-ΠΊΠ°Ρ€Ρ‚Ρ‹Β» Π³Π»Π°Π²Ρ‹ 6).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами - _79.jpg

Рис. 12.1. ΠŸΠ»Π°Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ethernet

На ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ микросхСма W5100, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ethernet Π½Π° Π½Π°Π±ΠΎΡ€Π΅ микросхСм ENC28J60. Но эти Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ Π½Π΅ совмСстимы с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Ethernet, ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΈΡ…, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π² срСдствах.

Arduino Ethernet/EtherTen

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ использованию ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ являСтся ΠΏΠΎΠΊΡƒΠΏΠΊΠ° Arduino со встроСнным Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ Ethernet. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ считаСтся модСль Arduino Ethernet, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ имССтся ΠΎΡ‡Π΅Π½ΡŒ нСплохая ΠΈ совмСстимая с Uno ΠΏΠ»Π°Ρ‚Π° EtherTen, производимая ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Freetronics (www.freetronics.com) (рис. 12.2).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами - _80.jpg

Рис. 12.2. ΠŸΠ»Π°Ρ‚Π° EtherTen

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹, содСрТащиС всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ для сСтСвых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° основС Arduino. ΠŸΠ»Π°Ρ‚Ρ‹ Arduino Ethernet ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ питания ΠΏΠΎ линиям Ethernet (Power over Ethernet, PoE) Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€ PoE, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², ΠΈΠ΄ΡƒΡ‰ΠΈΡ… ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Arduino, Π΄ΠΎ СдинствСнного кабСля Ethernet. ΠŸΠ»Π°Ρ‚Ρ‹ EtherTen Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ настроСнными Π½Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ PoE. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± использовании Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ PoE Π² ΠΏΠ»Π°Ρ‚Π°Ρ… EtherTen ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу www.doctormonk.com/2012/01/power-over-ethernet-poe.html.

Arduino ΠΈ WiFi

Главная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· Ethernet Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² нСобходимости ΠΏΡ€ΠΎΠΊΠ»Π°Π΄ΠΊΠΈ кабСля. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Arduino ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ ΠΈΠ»ΠΈ сСти Π±Π΅Π· использования ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ Π²Π°ΠΌ потрСбуСтся ΠΏΠ»Π°Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ WiFi (рис. 12.3). Π­Ρ‚ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ стоят довольно Π΄ΠΎΡ€ΠΎΠ³ΠΎ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Sparkfun WiFly (https://www.sparkfun.com/products/9954).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Arduino. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со скСтчами - _81.jpg

Рис. 12.3. ΠŸΠ»Π°Ρ‚Π° Arduino WiFi

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ethernet

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ethernet ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»Π° сущСствСнныС измСнСния с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° выпуска Π² 2011 Π³ΠΎΠ΄Ρƒ вСрсии Arduino 1.0. Она Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ позволяСт ΠΏΠ»Π°Ρ‚Π΅ Arduino с Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ Ethernet Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ Π²Π΅Π±-сСрвСра ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ запросы, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌ), Π½ΠΎ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° динамичСской ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСтСвого ΡƒΠ·Π»Π° (Dynamic Host Configuration Protocol, DHCP), автоматичСски ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ»Π°Ρ‚Π΅ IP-адрСс.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ описаниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ethernet ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Arduino: http://arduino.cc/en/reference/ethernet10.

БозданиС соСдинСния

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ взаимодСйствиям ΠΏΠΎ сСти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС с ΡΠ΅Ρ‚ΡŒΡŽ. Π­Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ функция Ethernet.begin(). Она позволяСт Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ соСдинСния с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ синтаксиса:

Ethernet.begin(mac, ip, dns, gateway, subnet)

Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

β€’ Mac β€” MAC-адрСс сСтСвой ΠΊΠ°Ρ€Ρ‚Ρ‹ (я расскаТу ΠΎ Π½Π΅ΠΌ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅);

β€’ Ip β€” IP-адрСс ΠΏΠ»Π°Ρ‚Ρ‹ (ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой допустимый для вашСй сСти);

β€’ Dns β€” IP-адрСс сСрвСра Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ (Domain Name Server, DNS);

β€’ Gateway β€” IP-адрСс шлюза для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ (ваш домашний ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ‚ΠΎΡ€);

β€’ Subnet β€” маска подсСти.

Π­Ρ‚ΠΎΡ‚ синтаксис каТСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ mac, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ Π² 90% случаСв Π²Π°ΠΌ придСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ mac ΠΈ ip ΠΈΠ»ΠΈ, вСсьма вСроятно, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ mac. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ настроСны автоматичСски.