Slide 1

Slide 1 text

Controlando Parrot AR Drone com PHP Fernando Silva @FernandoDebrand

Slide 2

Slide 2 text

Olá! Eu sou Fernando Silva Formado em Análise e Desenvolvimento de Sistemas pela Faculdade Senac Porto Alegre, desenvolvedor PHP na empresa e-Sales Soluções de Integração e membro da Comunidade PHPRS.

Slide 3

Slide 3 text

Visão Geral 1. Parrot AR Drone 2. Formas de controlar 3. ReactPHP 4. Projetos baseados no ReactPHP 5. PHP-ARDrone 6. Controlando AR Drone com PHP 7. Demonstração

Slide 4

Slide 4 text

1. Parrot AR Drone Especificações técnicas

Slide 5

Slide 5 text

Parrot AR Drone - Especificações ● CPU OMAP 3630 1GHz ARM cortex A8 ● DDR SDRAM 128MB ● NAND Flash memory 128MB ● Wi-Fi b/g ● USB 2.0 ● Linux OS ● Altímetro ultra-sons ○ Frequência de emissão: 40kHzz ○ Alcance: 6 metros ● Câmera frontal ○ Amplo campo de visão, diagonal de 90º ○ Frequência de fluxo de vídeo: 30fps ○ Resolução: 1280x720 pixels (720p) ● Velocidade de deslocação: 18 km/h

Slide 6

Slide 6 text

2. Formas de controlar Possíveis formas de controlar o Parrot AR Drone

Slide 7

Slide 7 text

Formas de controlar ● Firmware proprietario que pode ser controlado via Wi-Fi através dos aplicativos para Android ou iOS ● SDK escrito em C e fornece bibliotecas para sistema Unix, Android e iOS ● Pacotes UDP (User Datagram Protocol)

Slide 8

Slide 8 text

Formas de controlar - UDP ● Pacotes UDP (User Datagram Protocol) ○ Porta para navegação de dados = 5554 ○ Porta para vídeo On-Board = 5555 ○ Porta para comandos AT = 5556

Slide 9

Slide 9 text

3. ReactPHP Eventos sem bloqueio de I/O com PHP

Slide 10

Slide 10 text

ReactPHP A palavra chave em React é assíncrono. Esta é a maior ideia por trás da coleção de bibliotecas que ele possui. PHP, por natureza, é dito “bloqueante”. Isto significa que cada procedimento só virá a ser executado após o anterior.

Slide 11

Slide 11 text

ReactPHP React PHP vem com o intuito, justamente, de permitir que executemos pedaços de lógica em paralelo. Para tornar isto possível, React centraliza sua execução em um “EventLoop”, que nos permitirá alcançar a ilustração seguinte:

Slide 12

Slide 12 text

4. Projetos baseados no ReactPHP Lista de projetos

Slide 13

Slide 13 text

Projeto baseados no ReactPHP

Slide 14

Slide 14 text

5. PHP AR Drone Detalhes do projeto

Slide 15

Slide 15 text

PHP AR Drone O modulo PHP AR Drone expõe uma API que suporta todas as funcionalidades do drone, tornado fácil de implementar.

Slide 16

Slide 16 text

6. Controlando AR Drone com PHP

Slide 17

Slide 17 text

PHP AR Drone - Config.php

Slide 18

Slide 18 text

PHP AR Drone - repl.php createRepl(); $client->start();

Slide 19

Slide 19 text

PHP AR Drone - control.php takeoff(); $client ->after(4, function () use ($client) { $client->up(0.4); }) ->after(4, function () use ($client) { $client->stop(); }) ->after(4, function () use ($client) { $client->down(0.4); }) ->after(2, function () use ($client) { $client->stop(); }) ->after(4, function () use ($client) { $client->land(); }); $client->start();

Slide 20

Slide 20 text

Demo

Slide 21

Slide 21 text

Obrigado! Alguma pergunta? Você pode me encontrar em @FernandoDebrand. Participe da comunidade PHPRS. phprs.com.br rselephants @phprs phprs.slack.com meetup.com/php-rs