
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Node.js рдФрд░ рд╡реЗрдм рд╕реНрдкреАрдЪ рдПрдкреАрдЖрдИ рдкрд░ рд╡реЙрдпрд╕-рдПрдХреНрдЯрд┐рд╡реЗрдЯреЗрдб рдбреНрд░реЛрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦреЗрдВрдЧреЗред рд╣реИрд▓реАрдХрд╛рдкреНрдЯрд░ - рддреЛрддрд╛ ARDrone 2.0ред
рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ: "рд╣реИрдмрд░" рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП - "рд╣реИрдмрд░" рдкреНрд░реЛрдореЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдХреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп 10,000 рд░реВрдмрд▓ рдХреА рдЫреВрдЯред
рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ: рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд╛рдареНрдпрдХреНрд░рдо "рдореЛрдмрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░реЛ" ред
рдкрд░рд┐рдЪрдп
рдбреНрд░реЛрди рдЕрджреНрднреБрдд рд╣реИрдВред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╣рдХрд░реНрдореА рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ, рдлрд╝реЛрдЯреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдпрд╛ рдмрд╕ рдордЬрд╝реЗ рдХрд░рдиреЗ рдореЗрдВ рдордЬрд╝рд╛ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдорд╛рдирд╡ рд░рд╣рд┐рдд рд╣рд╡рд╛рдИ рд╡рд╛рд╣рди (рдпреВрдПрд╡реА) рди рдХреЗрд╡рд▓ рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡реЗ рд╕рд┐рдиреЗрдорд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЧреНрд▓реЗрд╢рд┐рдпрд░реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ, рд╕реИрдиреНрдп рдХреНрд╖реЗрддреНрд░ рдФрд░ рдХреГрд╖рд┐ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ рдбреНрд░реЛрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реЙрдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╣рд╛рдВ, рдХреЙрдкреНрдЯрд░ рд╡рд╣реА рдХрд░реЗрдЧрд╛ рдЬреЛ рдЖрдк рдЙрд╕реЗ рдмрддрд╛рддреЗ рд╣реИрдВред рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ - рд╕рдорд╛рдкреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░ рд╡реАрдбрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдг рдпреВрдПрд╡реАред
рд▓реЛрд╣рд╛
рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рддреЛрддрд╛ ARDrone 2.0;
- рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓
- рдЕрдЪреНрдЫрд╛ рдорд╛рдЗрдХреНрд░реЛрдлреЛрдиред
рд╡рд┐рдВрдбреЛрдЬ / рдореИрдХ / рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдореИрдХ рдФрд░ рдЙрдмрдВрдЯреВ 18.04 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ Node.js рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
Google Chrome рдХреЗ
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдХреЙрдкреНрдЯрд░ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ
рдЖрдЗрдП рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рддреЛрддрд╛ ARDrone рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреЙрдкреНрдЯрд░ рдореЗрдВ рдЪрд╛рд░ рдореЛрдЯрд░ рд╣реИрдВред

рдореЛрдЯрд░реЛрдВ рдХрд╛ рд╡рд┐рд░реЛрдз рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЬреЛрдбрд╝рд╛ рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрдд рдШреВрдорддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдкреНрд░рддрд┐рд░реВрдкред рдбреНрд░реЛрди рдкреГрдереНрд╡реА рдХреА рд╕рддрд╣ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЭреБрдХрд╛рд╡ рдХреЗ рдХреЛрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рдЪрд▓рддрд╛ рд╣реИ, рдореЛрдЯрд░реЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдХрдИ рдФрд░ рдЕрдзрд┐рдХ рдкреИрдВрддрд░реЗрдмрд╛рдЬрд╝реА рдЖрдВрджреЛрд▓рдиреЛрдВред

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЙрдкреНрдЯрд░ рдХреА рдЧрддрд┐ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рд░реЛрдЯрд╛рд░ рдХреА рд░реЛрдЯреЗрд╢рди рдЧрддрд┐ рдореЗрдВ рдХрдореА рдпрд╛ рд╡реГрджреНрдзрд┐ рдПрдХ рд░реЛрд▓ рдмрдирд╛рддреА рд╣реИред рдпрд╣ рдбреНрд░реЛрди рдХреЛ рдЖрдЧреЗ рдпрд╛ рдкреАрдЫреЗ рдЙрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдореЛрдЯрд░реНрд╕ рдХреА рдЧрддрд┐ рдХреА рдЧрддрд┐ рдФрд░ рджрд┐рд╢рд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рд╣рдо рдЭреБрдХрд╛рд╡ рдХреЗ рдХреЛрдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЕрдиреНрдп рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╕рд╣рдХрд░реНрдореА рдХреЛ рдЖрдВрджреЛрд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рджрд░рдЕрд╕рд▓, рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдпреБрдЧрддрд┐рдХреА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рдХреИрд╕реЗ рддреЛрддрд╛ ARDrone рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдбреНрд░реЛрди рд╡рд╛рдИ-рдлрд╛рдИ рдПрдХреНрд╕реЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ рд╣реИред рдХреЛрдкреНрдЯрд░ рдХреЛ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдИ рд╡рд┐рд╡рд┐рдз рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдХреЙрдкрд░реНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдПрдХ рдмрд╛рд░ рдбреНрд░реЛрди рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЯреЗрд▓рдиреЗрдЯ 192.168.1.1 рдХреЛрдкреНрдЯрд░ рдХрд╛ рдЖрдИрдкреА рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдЖрдк
рд▓рд┐рдирдХреНрд╕ рдмрд┐рдЬреАрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рд╣рдорд╛рд░рд╛ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
- рдЖрд╡рд╛рдЬ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рдг рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕;
- рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рддреБрд▓рдирд╛;
- рдбреНрд░реЛрди рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдирд╛;
- рд▓рд╛рдЗрд╡ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдгред
рдПрдкреАрдЖрдИ рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЕрдзреАрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдИрдерд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдпрд╣ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!
рдХреЛрдб
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред
рдлрд┐рд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдиреЛрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред
npm рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреАрдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ:
- рдЙрддрд╛рд░ рджреЗрдирд╛;
- рд░реЛрдкрдг;
- рдКрдкрд░ - рдбреНрд░реЛрди рдЖрдзрд╛ рдореАрдЯрд░ рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ;
- рдиреАрдЪреЗ - рдЖрдзрд╛ рдореАрдЯрд░ рдЧрд┐рд░рддрд╛ рд╣реИ рдФрд░ рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ;
- рдмрд╛рдИрдВ рдУрд░ - рдЖрдзреЗ рдореАрдЯрд░ рддрдХ рдмрд╛рдИрдВ рдУрд░ рдЬрд╛рддрд╛ рд╣реИ;
- рджрд╛рдИрдВ рдУрд░ - рдЖрдзреЗ рдореАрдЯрд░ рддрдХ рджрд╛рдИрдВ рдУрд░ рдЬрд╛рддрд╛ рд╣реИ;
- рд░реЛрдЯреЗрд╢рди - рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрдд 90 рдбрд┐рдЧреНрд░реА рдШреВрдорддрд╛ рд╣реИ;
- рдЖрдЧреЗ - рдЖрдзрд╛ рдореАрдЯрд░ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИ;
- рдкреАрдЫреЗ - рдЖрдзрд╛ рдореАрдЯрд░ рдкреАрдЫреЗ рдЬрд╛рддрд╛ рд╣реИ;
- рдмрдВрдж рдХрд░реЛред
рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдФрд░ рдбреНрд░реЛрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
const express = require('express'); const bodyparser = require('body-parser'); var arDrone = require('ar-drone'); const router = express.Router(); const app = express(); const commands = ['takeoff', 'land','up','down','goleft','goright','turn','goforward','gobackward','stop']; var drone = arDrone.createClient();
рдФрд░ рдпрд╣рд╛рдВ HTML рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдиреЛрдб рд╕рд░реНрд╡рд░ рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрддрд╛ рд╣реИред
<!DOCTYPE html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Voice Controlled Notes App</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shoelace-css/1.0.0-beta16/shoelace.css"> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="container"> <h1>Voice Controlled Drone</h1> <p class="page-description">A tiny app that allows you to control AR drone using voice</p> <h3 class="no-browser-support">Sorry, Your Browser Doesn't Support the Web Speech API. Try Opening This Demo In Google Chrome.</h3> <div class="app"> <h3>Give the command</h3> <div class="input-single"> <textarea id="note-textarea" placeholder="Create a new note by typing or using voice recognition." rows="6"></textarea> </div> <button id="start-record-btn" title="Start Recording">Start Recognition</button> <button id="pause-record-btn" title="Pause Recording">Pause Recognition</button> <p id="recording-instructions">Press the <strong>Start Recognition</strong> button and allow access.</p> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="script.js"></script> </body> </html>
рдФрд░ Node рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдХрд░ рд╡реЙрдпрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдбред
try { var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; var recognition = new SpeechRecognition(); } catch(e) { console.error(e); $('.no-browser-support').show(); $('.app').hide(); }
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреЙрдкреНрдЯрд░ рд╡рд╛рдИ-рдлрд╛рдИ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдФрд░ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ)ред
рдУрдкрди рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ 3000 рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рд░рд┐рдХреЙрдЧреНрдирд┐рд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рд╣рдо рдбреНрд░реЛрди рдФрд░ рдЖрдирдиреНрдж рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдбреНрд░реЛрди рд╕реЗ рдкреНрд░рд╕рд╛рд░рдг рд╡реАрдбрд┐рдпреЛ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рд╡рд╣рд╛рдВ рдХреЙрдкреА рдХрд░реЗрдВ:
const http = require("http"); const drone = require("dronestream"); const server = http.createServer(function(req, res) { require("fs").createReadStream(__dirname + "/public/video.html").pipe(res); }); drone.listen(server); server.listen(4000);
рдФрд░ рдпрд╣рд╛рдВ HTML рдХреЛрдб рд╣реИ, рд╣рдо рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦрддреЗ рд╣реИрдВред
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Stream as module</title> <script src="/dronestream/nodecopter-client.js" type="text/javascript" charset="utf-8"></script> </head> <body> <h1 id="heading">Drone video stream</h1> <div id="droneStream" style="width: 640px; height: 360px"> </div> <script type="text/javascript" charset="utf-8"> new NodecopterStream(document.getElementById("droneStream")); </script> </body> </html>
рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреИрдорд░реЗ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 8080 рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡
- рдЗрд╕ рдбреНрд░реЛрди рдХреЛ рдШрд░ рдХреЗ рдЕрдВрджрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВред
- рд╣рдореЗрд╢рд╛ рдЯреЗрдХрдСрдлрд╝ рд╕реЗ рдкрд╣рд▓реЗ рдбреНрд░реЛрди рдкрд░ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рдЯреЛрдкреА рд▓рдЧрд╛рдПрдВред
- рдмреИрдЯрд░реА рдЪрд╛рд░реНрдЬ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
- рдпрджрд┐ рдбреНрд░реЛрди рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рджрдмрд╛рдП рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдкрд▓рдЯреЗрдВред рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдХреЙрдкреНрдЯрд░ рдХреЛ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рдореЛрдб рдореЗрдВ рдбрд╛рд▓ рджреЗрдЧреА рдФрд░ рд░реЛрдЯрд░ рддреБрд░рдВрдд рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рддреИрдпрд╛рд░ рдХреЛрдб рдФрд░ рдбреЗрдореЛ
рд▓рд╛рдЗрд╡ рдбреЗрдореЛрдбрд╛рдЙрдирд▓реЛрдб
рдпрд╣ рдирд┐рдХрд▓рд╛!
рдПрдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХрд╛рд░ рдХрд╛ рдкрд╛рд▓рди рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдк рдЖрдирдВрдж рд▓реЗрдВрдЧреЗ! рдЕрдм рд╣рдордиреЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рд╡реЙрдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░реЛрди рдХреЛ рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рдирд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди, рд╕реНрд╡рд╛рдпрддреНрдд рдЙрдбрд╝рд╛рдиреЗрдВ, рд╣рд╛рд╡рднрд╛рд╡ рдкрд╣рдЪрд╛рди рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреНрдпрд╛ рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ: