SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Implementação de Aplicações Móveis
e Jogos com Python
Internet Tablets
Internet Tablets
Internet Tablets
 O que são?
 Dispositivos móveis capazes de conectar-se a internet através
de redes wireless ou bluetooth (agora também com 3g!)
Internet Tablets
 O que são?
 Dispositivos móveis capazes de conectar-se a internet através
de redes wireless ou bluetooth.
 Hardware
 Tela resolução de 800x480
 Processador ARM-Based (330mhz ~ 600mhz)
 1GB~128MB Memória RAM
 WLAN (bg) e Bluetooth
 Telas Sensíveis ao toque
 Teclado QWERTY embutido (em alguns)
Internet Tablets
 Sistemas Operacionais (baseados em Linux)
 Maemo
 Mamona
 Ubuntu (9.04)
 Gentoo
O OpenEmbedded
 O que é?
 Build Framework pra embedded Linux
 bitbake
 Arquivos de metadata
Quem usa?
 OpenMoko
 Idéia de desenvolvimento de celular 100% livre
Quem usa?
 Ångström
 Distribuição mais “madura” do OE
 Dispositivos que aceitam essa distro:
 Nokia 770 Internet Tablet
 HTC Universal / iMate JasJar
 Motorola A780
 Psion| Teklogix NetBook Pro
 Gumstix and Kouchuk-Bars
 Beagle Board
 Pandora
Quem usa?
 BeagleBoard
● HW baseado em OMAP3
● Baixo custo
– $ 149
● Baixo consumo de energia
– Máximo 2W
● http://beagleboard.org
– Esquema de HW aberto o/
Quem usa?
 BeagleBoard
U-boot: acesso via Minicom
sudo apt-get install minicom
minicom --setup
minicom
Quem usa?
Quem usa?
 Palm Pre
 Aposta da Palm em reverter o jogo
 WebOS
Quem usa?
 KaeilOS
 Fabricante de Hardware
 Suporte Pago
Internet Tablets
 Projetos e Softwares
 Mozilla Fennec (Firefox pra Mobile)
 Brisa UPnP
 Canola
 CarMan
 Tapioca Framework
 Maemo Community (No Google Summer of Code)
Internet Tablets
Demo!
Off-Topic: Arduino
● O que é?
É um projeto de Hardware e
Software Livre voltado para
artistas, designers, hobbystas ou
qualquer um interessado em criar
objetos e ambientes interativos.
Arduino
● O que é?
 Arduino Programming Language (Baseada em Wiring)
 Arduino Development Environment (IDE baseada em Processing)
 Pode ser feito a mão (Paperduino, Severino, Toscoduino, etc)
 Múltiplas derivações
 Comunicação fácil
 Ciclo de desenvolvimento rápido
 Barato!
Arduino
● Hardware
 Microcontrolador Atmega168
 RISC (131 instruções)
 24 Mhz
 NVM de 16KBytes (2k usados no bootloader)
 1KByte de SRAM
 Portas AD
 UART
 6v – 20v (Recomendado 7v a 12v)
Arduino
● Software Estrutura Básica
ArduinoArduino
Arduino
● Ciclo de Desenvolvimento
● Shields
Arduino
● Computadores (lado Computador)
PySerial
Arduino
Arduino
● Dispositivos Móveis
Pra PyS60 e Bluetooth: lightblue
Jogos com Python
Jogos com Python
PyGame
 Criando um joguinho do tipo Arkanoid
PyGame
 A Classe bouncer
class Bouncer(pygame.sprite.Sprite):
def __init__(self, startpos):
pygame.sprite.Sprite.__init__(self)
#direcao: 1=direita, -1=esquerda
self.direction = 1
#carrega a imagem e a posiciona na tela
self.image, self.rect = load_image('bouncer.gif')
self.rect.centerx = startpos[0]
self.rect.centery = startpos[1]
def update(self):
#multiplicamos x por 3 pro bouncer mover-seum pouco mais rápido!
self.rect.move_ip((self.direction*3,0))
#se o bouncer atingir os limites da tela, invertemos a sua direcao
if self.rect.left < 0:
self.direction = 1
elif self.rect.right > width:
self.direction = -1
PyGame
 A Classe ball
class Ball(pygame.sprite.Sprite):
"""classe para a bola"""
def __init__(self, startpos):
pygame.sprite.Sprite.__init__(self)
self.speed = [2,2]
#carrega a imagem e a posiciona na tela
self.image, self.rect = load_image('ball.gif')
self.rect.centerx = startpos[0]
self.rect.centery = startpos[1]
#salva a posicao inicial para ser reutilizada
#quando a bola sair da tela pelo fundo
self.init_pos = startpos
def update(self):
self.rect.move_ip(self.speed)
#se a bola atingir os lados da tela, inverte a
#direcao horizontal (x)
if self.rect.left < 0 or self.rect.right > width:
self.speed[0] = -self.speed[0]
#se a bola atingir o topo da tela, inverte a
#posicao vertical (y)
if self.rect.top < 0:
self.speed[1] = -self.speed[1]
#se a bola atingir o fundo da tela, reseta
#a sua posicao
if self.rect.bottom > height:
self.rect.centerx = self.init_pos[0]
self.rect.centery = self.init_pos[1]
PyGame
 Checando eventos (já no mainloop!)
#checa eventos de teclado
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
bouncer.direction = -1
if event.key == pygame.K_RIGHT:
bouncer.direction = 1
PyGame
 Reagindo a colisões
if bouncer.rect.colliderect(ball.rect):
if ball.speed[1] > 0:
ball.speed[1] = -ball.speed[1]
PyGame
 Atualizando a tela e redesenhando
#atualiza os objetos
ball.update()
bouncer.update()
#redesenha a tela
screen.fill(black)
screen.blit(ball.image, ball.rect)
screen.blit(bouncer.image, bouncer.rect)
pygame.display.flip()
Tudo Pronto!
PyGame
Exerc cio!í
Faça um pong!
Práticas de Conectividade
(web e bluetooth)

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKBruno Cicanci
 
Criando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aulaCriando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aulaDiego Lopes
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECLW3P Projetos Web
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Pythondmmartins
 
Desenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengineDesenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengineDiego Lopes
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Tchelinux
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenziejonathanblacknight
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamAndré Espeiorin
 

Mais procurados (20)

Python 03
Python 03Python 03
Python 03
 
Python 02
Python 02Python 02
Python 02
 
Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDK
 
Desenvolvimento iOS
Desenvolvimento iOSDesenvolvimento iOS
Desenvolvimento iOS
 
Game programming
Game programmingGame programming
Game programming
 
Python 01
Python 01Python 01
Python 01
 
Criando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aulaCriando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aula
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECL
 
Game programming
Game programmingGame programming
Game programming
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Python
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Desenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengineDesenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengine
 
Python 05
Python 05Python 05
Python 05
 
Aula3 input
Aula3   inputAula3   input
Aula3 input
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
 
Aula1 intro
Aula1  introAula1  intro
Aula1 intro
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
 
Biblioteca Allegro
Biblioteca AllegroBiblioteca Allegro
Biblioteca Allegro
 
Python
PythonPython
Python
 

Semelhante a Implementação de Aplicações Móveis com Python

Desenv. jogos em java e Proj. Parallax
Desenv.  jogos em java e Proj. ParallaxDesenv.  jogos em java e Proj. Parallax
Desenv. jogos em java e Proj. ParallaxMichel Montenegro
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersiMasters
 
FLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidFLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidMaurílio Silva
 
Internet das coisas, conhecendo plataformas de desenvolvimentos
Internet das coisas, conhecendo plataformas de desenvolvimentosInternet das coisas, conhecendo plataformas de desenvolvimentos
Internet das coisas, conhecendo plataformas de desenvolvimentosDouglas Esteves
 
Como Fazer Seu Próprio Gameboy - CPBR11
Como Fazer Seu Próprio Gameboy -  CPBR11Como Fazer Seu Próprio Gameboy -  CPBR11
Como Fazer Seu Próprio Gameboy - CPBR11Rafael Moreira
 
A Internet das coisas e a programação de micro controladores
A Internet das coisas e a programação de micro controladoresA Internet das coisas e a programação de micro controladores
A Internet das coisas e a programação de micro controladoresIgor Kondrasovas
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users InterfacesMauricio Alegretti
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Eronides Da Silva Neto
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos clienteAndré Dias
 
Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xDesenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xBruno Cicanci
 
Introdução à plataforma Arduino
Introdução à plataforma ArduinoIntrodução à plataforma Arduino
Introdução à plataforma Arduinoentrebits
 
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataformaDesenvolvendo games multiplataforma
Desenvolvendo games multiplataformaAndré Santee
 
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasSP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasPedro Kayatt
 

Semelhante a Implementação de Aplicações Móveis com Python (20)

Desenv. jogos em java e Proj. Parallax
Desenv.  jogos em java e Proj. ParallaxDesenv.  jogos em java e Proj. Parallax
Desenv. jogos em java e Proj. Parallax
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game Developers
 
FLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidFLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para Android
 
Internet das coisas, conhecendo plataformas de desenvolvimentos
Internet das coisas, conhecendo plataformas de desenvolvimentosInternet das coisas, conhecendo plataformas de desenvolvimentos
Internet das coisas, conhecendo plataformas de desenvolvimentos
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Como Fazer Seu Próprio Gameboy - CPBR11
Como Fazer Seu Próprio Gameboy -  CPBR11Como Fazer Seu Próprio Gameboy -  CPBR11
Como Fazer Seu Próprio Gameboy - CPBR11
 
A Internet das coisas e a programação de micro controladores
A Internet das coisas e a programação de micro controladoresA Internet das coisas e a programação de micro controladores
A Internet das coisas e a programação de micro controladores
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users Interfaces
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos cliente
 
Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xDesenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-x
 
Introdução à plataforma Arduino
Introdução à plataforma ArduinoIntrodução à plataforma Arduino
Introdução à plataforma Arduino
 
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataformaDesenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
 
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasSP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
 
Ppt informática básica sistema operacioanal
Ppt informática básica sistema operacioanalPpt informática básica sistema operacioanal
Ppt informática básica sistema operacioanal
 

Mais de Flávio Ribeiro

Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingFlávio Ribeiro
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesFlávio Ribeiro
 
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerBemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerFlávio Ribeiro
 
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxDesenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxFlávio Ribeiro
 
stewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasstewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasFlávio Ribeiro
 
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeTest Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeFlávio Ribeiro
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Linux em Sistemas Embarcados
Linux em Sistemas EmbarcadosLinux em Sistemas Embarcados
Linux em Sistemas EmbarcadosFlávio Ribeiro
 

Mais de Flávio Ribeiro (12)

Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media Encoding
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York Times
 
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming ...
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerBemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
 
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxDesenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
 
stewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomaliasstewie: Machine Learning para detecção não supervisionada de anomalias
stewie: Machine Learning para detecção não supervisionada de anomalias
 
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividadeTest Driven Development - Trabalhe tranquilo e maximize sua produtividade
Test Driven Development - Trabalhe tranquilo e maximize sua produtividade
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Linux em Sistemas Embarcados
Linux em Sistemas EmbarcadosLinux em Sistemas Embarcados
Linux em Sistemas Embarcados
 

Implementação de Aplicações Móveis com Python

  • 1. Implementação de Aplicações Móveis e Jogos com Python
  • 4. Internet Tablets  O que são?  Dispositivos móveis capazes de conectar-se a internet através de redes wireless ou bluetooth (agora também com 3g!)
  • 5. Internet Tablets  O que são?  Dispositivos móveis capazes de conectar-se a internet através de redes wireless ou bluetooth.  Hardware  Tela resolução de 800x480  Processador ARM-Based (330mhz ~ 600mhz)  1GB~128MB Memória RAM  WLAN (bg) e Bluetooth  Telas Sensíveis ao toque  Teclado QWERTY embutido (em alguns)
  • 6. Internet Tablets  Sistemas Operacionais (baseados em Linux)  Maemo  Mamona  Ubuntu (9.04)  Gentoo
  • 7. O OpenEmbedded  O que é?  Build Framework pra embedded Linux  bitbake  Arquivos de metadata
  • 8. Quem usa?  OpenMoko  Idéia de desenvolvimento de celular 100% livre
  • 9. Quem usa?  Ångström  Distribuição mais “madura” do OE  Dispositivos que aceitam essa distro:  Nokia 770 Internet Tablet  HTC Universal / iMate JasJar  Motorola A780  Psion| Teklogix NetBook Pro  Gumstix and Kouchuk-Bars  Beagle Board  Pandora
  • 10. Quem usa?  BeagleBoard ● HW baseado em OMAP3 ● Baixo custo – $ 149 ● Baixo consumo de energia – Máximo 2W ● http://beagleboard.org – Esquema de HW aberto o/
  • 12. U-boot: acesso via Minicom sudo apt-get install minicom minicom --setup minicom Quem usa?
  • 13. Quem usa?  Palm Pre  Aposta da Palm em reverter o jogo  WebOS
  • 14. Quem usa?  KaeilOS  Fabricante de Hardware  Suporte Pago
  • 15. Internet Tablets  Projetos e Softwares  Mozilla Fennec (Firefox pra Mobile)  Brisa UPnP  Canola  CarMan  Tapioca Framework  Maemo Community (No Google Summer of Code)
  • 18. ● O que é? É um projeto de Hardware e Software Livre voltado para artistas, designers, hobbystas ou qualquer um interessado em criar objetos e ambientes interativos. Arduino
  • 19. ● O que é?  Arduino Programming Language (Baseada em Wiring)  Arduino Development Environment (IDE baseada em Processing)  Pode ser feito a mão (Paperduino, Severino, Toscoduino, etc)  Múltiplas derivações  Comunicação fácil  Ciclo de desenvolvimento rápido  Barato! Arduino
  • 20. ● Hardware  Microcontrolador Atmega168  RISC (131 instruções)  24 Mhz  NVM de 16KBytes (2k usados no bootloader)  1KByte de SRAM  Portas AD  UART  6v – 20v (Recomendado 7v a 12v) Arduino
  • 21. ● Software Estrutura Básica ArduinoArduino
  • 22. Arduino ● Ciclo de Desenvolvimento
  • 24. ● Computadores (lado Computador) PySerial Arduino
  • 25. Arduino ● Dispositivos Móveis Pra PyS60 e Bluetooth: lightblue
  • 28. PyGame  Criando um joguinho do tipo Arkanoid
  • 29. PyGame  A Classe bouncer class Bouncer(pygame.sprite.Sprite): def __init__(self, startpos): pygame.sprite.Sprite.__init__(self) #direcao: 1=direita, -1=esquerda self.direction = 1 #carrega a imagem e a posiciona na tela self.image, self.rect = load_image('bouncer.gif') self.rect.centerx = startpos[0] self.rect.centery = startpos[1] def update(self): #multiplicamos x por 3 pro bouncer mover-seum pouco mais rápido! self.rect.move_ip((self.direction*3,0)) #se o bouncer atingir os limites da tela, invertemos a sua direcao if self.rect.left < 0: self.direction = 1 elif self.rect.right > width: self.direction = -1
  • 30. PyGame  A Classe ball class Ball(pygame.sprite.Sprite): """classe para a bola""" def __init__(self, startpos): pygame.sprite.Sprite.__init__(self) self.speed = [2,2] #carrega a imagem e a posiciona na tela self.image, self.rect = load_image('ball.gif') self.rect.centerx = startpos[0] self.rect.centery = startpos[1] #salva a posicao inicial para ser reutilizada #quando a bola sair da tela pelo fundo self.init_pos = startpos def update(self): self.rect.move_ip(self.speed) #se a bola atingir os lados da tela, inverte a #direcao horizontal (x) if self.rect.left < 0 or self.rect.right > width: self.speed[0] = -self.speed[0] #se a bola atingir o topo da tela, inverte a #posicao vertical (y) if self.rect.top < 0: self.speed[1] = -self.speed[1] #se a bola atingir o fundo da tela, reseta #a sua posicao if self.rect.bottom > height: self.rect.centerx = self.init_pos[0] self.rect.centery = self.init_pos[1]
  • 31. PyGame  Checando eventos (já no mainloop!) #checa eventos de teclado for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: bouncer.direction = -1 if event.key == pygame.K_RIGHT: bouncer.direction = 1
  • 32. PyGame  Reagindo a colisões if bouncer.rect.colliderect(ball.rect): if ball.speed[1] > 0: ball.speed[1] = -ball.speed[1]
  • 33. PyGame  Atualizando a tela e redesenhando #atualiza os objetos ball.update() bouncer.update() #redesenha a tela screen.fill(black) screen.blit(ball.image, ball.rect) screen.blit(bouncer.image, bouncer.rect) pygame.display.flip()