Sunday, December 29, 2013

Testando SSD no PS3 Super Slim

Antes de tudo é necessário preciso aprender a tirar a tampa lateral do PS3 super slim.
Para remover a tampa basta empurrar para o lado de trás do console.

Tuesday, November 26, 2013

Saturday, November 23, 2013

MWC com tubos PVC

Enquanto não chega o frame de fibra de carbono, uma alternativa barata (entenda-se menos de R$30) é fazer um frame totalmente de PVC usando tubulação para água.

Friday, November 22, 2013

Estudo comparativo das técnicas de deadzone para controle do Xbox360 usando XInputDotNet

Para completar o post
http://dronespersonalizados.blogspot.com.br/2013/11/deadzones-em-controles-analogicos-e.html
implementei uma pequena aplicação de teste em C# + XinputDotNet (wrapper do DirectX input).
A ideia aqui é validar a teoria usando os sticks analógicos do controle de xbox360.

Thursday, November 21, 2013

Deadzones em controles analógicos e remoção de ruído


Encontrei um ótimo post sobre o assunto, que vai direto ao ponto e compara as abordagens existentes.
http://www.third-helix.com/2013/04/doing-thumbstick-dead-zones-right/

Wednesday, November 20, 2013

Dissecando o coração do drone, também conhecido como "program.elf"

Mais um post na série de depuração do ardrone v1, após conectar no access point wifi criado pelo drone, é possível fazer abrir uma conexão telnet no drone (ip=192.168.1.1). Como já sabemos, o ardrone é um Linux embarcado que voa.

Debugando ardrone v1 rebelde, e chegada do GPS, barômetro, hélices e carregador B3AC.


Hoje foi um dia produtivo, depois de mexer nas entranhas do ardrone, praticamente confirmei minha teoria no bug no ADC que mede a tensão e corrente da bateria.

Sunday, November 17, 2013

Arduino Multi Wii Copter (MWC)

O arduino é uma plataforma de hardware aberta.
Existem diversas placas com diversos processadores. 
Um das mais baratas é a Arduino Nano V3.0.

Comparação de baterias e supercaps

Estudo comparativo de diferentes soluções de alimentação.

ISM / WIFI / GSM

 Redes: ISM WIFI 2G 3G 4G

Sonar / Ultrasom / Anti-colisão

Anti-colisão (Sonar)

GPS e Bússola

Piloto automático

Crazyflie, SpaceX, ferramenta de cálculo de motor e hélice.

Algumas novidades...

Cameras e FPV

Comparação de alternativas.

Estabilizador de voo

Estabilizador de voo / controle PID

Tutorial hélices

As hélices possuem dois tipos CW e CCW. As CW cortam o ar em sentido horário e as CCW cortam o ar em sentido anti-horário. Para voar os drones quadrotor precisam ter 2 hélices de cada tipo

Barômetros BMP085, MS5611-01BA03, MPXH6115

O altímetro normalmente é implementado usado um barômetro.

Stellaris Launchpad / Tiva C Series

Stellaris Launchpad /  Tiva C Series

BrushLess DC Motors (BLDC)

Motores brushed são motores com escova. Interface de 2 fios, barulhentos e não precisam de ESC.
Motores brushless são motores sem escova. Interface de 3 fios, silenciosos e precisam de ESC.

Eletronic Speed Control (ESC)

O controle eletrônico de velocidade é aplicado a motores brushless para controlar a velocidade.

Bluetooth arduino

A forma mais prática de depurar um sistema é usando o tradicional printf do C/C++.

Frames

As opções no mercado são:

Buspirate

O Bus Pirate é uma ferramenta para hacking / DIY com HW / FW / SW em livres, sendo capaz de conversar com praticamente qualquer dispositivo eletrônico.

ENC28J60 no Arduino

Conectividade cabeada para roteador da rede sem-fio.

Utilidades públicas

off-topic

Configurando Ubuntu 13.10

Usando o kubuntu 13.10 como ponto de partida
http://kubuntu.org/

Configurando Fedora 19

Usando Fedora 19 como ponto de partida

Vmware ESXI - enterprise grade virtualization for free

Vmware ESXI free
www.vmware.com/go/get-free-esxi‎








Freescale FRDM-KL25Z + MBED

MBED KL25Z

git server / sparkleshare

tutorial completo

FreeRTOS no Renesas YRPBRL78G13

tutorial em desenvolvimento

Configurando Arch Linux

Configurando o ArchLinux para desktop

Debug Stellaris Lauchpad com OpenOCD

Desenvolver sem debug é tenso.

MURIX Linux

Meu projeto do Murix Linux

Wednesday, November 13, 2013

Testando motores, ESCs, hélices, consumo de corrente

Chegou a hora de testar quase tudo funcionando junto.
O Frame ainda não chegou, mas improvisei um aqui de papelão de caixa de leite.
Cortei em 2 tirinhas de 4 cm de largura e tá novo!

E a solgadem dos ESCs e motores continua, agora com exaustor

Esse exaustor é um ventilador de 12cm que  arranquei de uma fonte de PC queimada.
Também dá para comprar em qualquer loja de informática na faixa de $10 atualmente.

Sunday, November 10, 2013

Recuperando bateria do ardrone

Passos para o sucesso:
1) descarregar a bateria entre 9,53V (3,2V por célula) e 10,3V (3,43V por célula) 
2) deixar carregar até 12,5V (4,16V por célula)

Monday, November 4, 2013

Testando motores na launchpad e monitorando PWM com BusPirate

Depois de remove o R9 e R10 chegou a hora de testar os motores na launchpad (LM4F120H5QR ).
o duty cycle para ativar os motores é um pouco diferente do usado no Arduino Nano v3 (atmega328p).

Sunday, November 3, 2013

Testando MPU6050 - Acelerômetro & Giroscópio

Testando o acelerômetro a intensidade dos leds variando em função da inclinação.
Implementada task do driver do MPU-6050 no FreeRTOS com API do Arduino/Energia

Removido curto-circuto na Stellaris e Tiva C

Para solucionar o curto, é preciso remover os resistores R9 e R10.

Testando ADC de 12-bits da Stellaris Launchpad

Depois de terminar o port da API do Arduino do GCC para o IAR e juntar com o FreeRTOS é hora de começar a fazer os testes de HW. Depois dos LEDs, botões e serial, chegou a vez de testar o ADC.

Friday, October 25, 2013

Controlando ESC do motor brushless com Arduino Nano V3

Para testar o motor é preciso gerar um sinal PWM na entrada do ESC.
Mas tem um pequeno detalhe, o ESC não aceita qualquer PWM, os pulsos ativos precisam estar em 1ms (velocidade mínima) e 2ms (velocidade máxima).

Friday, October 18, 2013

Ajuste do /etc/fstab para otimizar BTRFS com LZO e autodefrag

Editar /etc/fstab assim:
/dev/sdxx / btrfs rw,relatime,compress=lzo,space_cache,autodefrag 0 0
Com compress=lzo a velocidade média fica cerca de 3x maior.

Com autodefrag, toda vez que um pasta ou arquivo estiver causando muitos seeks e lerdeza o defrag é disparado.

Tuesday, September 17, 2013

Drones no estilo faça você mesmo

Este post está sempre sendo atualizado e é dedicado a elaborar um roteiro para montar um veiculo aéreo não tripulado (VANT) ou drone do tipo quad-rotor ou multi-rotor. Incluindo o projeto do hardware e software/firmware. E que seja facilmente personalizável.

Demonstração do drone semelhante ao que está sendo montado neste post


Modelo de Drone simplificado

Requisitos:
- Baixo custo (praticamente tudo chinês)
- Anticolisão
- Automatizado por GPS

Vamos a lista de peças necessárias e revisão.
Além disso, vou colocar um acompanhamento dos prazo que leva para chegar as peças.

Comprados:
frame - Turnigy Talon v1 Carbon Fiber (R$110)
4 x ESC HobbyWing Pentium - 30A - (R$100)
4 x motores Suppo A2212/13T  12A 1000kv - (R$100)


4 x hélices 9x5 de nylon - sendo 2 CW e 2 CCW
4 x hélices 8x4 de nylon - sendo 2 CW e 2 CCW
6 x sensor ultrasom (distância até 5 metros em +-x,+-y,+-z) - HC-SR04


sensor de pressão (altitude além dos 5 metros) - bmp085
2 x comunicação rádio 433mhz - cc1101
navegador bússola 3d - hmc5883l
giroscópio 3d - MPU6050
acelerômetro 3d - MPU6050
kit microcontrolador - Texas EK-ML4F120XL (ARM Cortex-m4)
kit microcontrolador - ST Discovery-VL (ARM Cortex-m3)
kit microcontrolador - FreeScale FRDM-KL25Z (ARM Cortex-m0)
kit microcontrolador - rl78/g13 (Renesas)
kit microcontrolador - Arduino Nano v3 (Atmel-AVR)
conversor USB/TTL - Prolific 2303HX

Falta comprar:
navegador gps -
comunicação gsm quadband - sim900
comunicação wifi - cc3000
bateria LiPo -
Carregador LiPo -


Frame / Esqueleto / Armação
As opções no mercado são de alumínio, fibra de carbono, fibra de vidro e plástico.
fibra de vidro e plástico são muito moles e quebram com extrema facilidade.
A de alumínio é leve e bem resistente, mas é fácil de arranhar.
A solução ideal seria de fibra de carbono que é mais leve que alumínio e mais forte que do aço.

Plástico

Fibra de vidro

Alumínio

Fibra de carbono

(este me parece a melhor opção custo / benefício)

[a versão 2.0 da primeira]

[uma opção com pés de helicóptero]

Se estiver a fim de fazer seu próprio frame em fibra de carbono, tem um cidadão explicando como faz para montar uma bicicleta, mas o processo é o mesmo.

Eletronic Speed Control (ESC)
O controle eletrônico de velocidade é aplicado a motores brushless trifásicos para controlar a velocidade com extrema precisão. Os motores compostos por 3 bobinas separadas de 120 graus, precisam ser acionadas sequencialmente para que o motor gire. O ESC geralmente é composto de uma fonte chaveada que é alimentada pela bateria do sistema (geralmente polímero de lítio [Lipo] de 3 células), e fornece um saída estabilizada de 5V (battery eliminator circuit [BEC]) para alimentar o microcontrolador do ESC e o resto do sistema, além da saída que vai para os transistor de efeito de campo (FET) que vai alimentar cada bobina do motor no momento certo. O FET funciona como uma chave de liga e desliga eletrônica que muda de aberto para fechado dependendo do que é injetado na base. O que o programa do ESC faz é controlar os FET usando GPIO do MCU. O MCU recebe como entrada o sinal de controle, a frequência de chaveamento do sinal de controle é usada para ajustar a velocidade do PWM que auxila no chaveamento dos FET obedecendo a sequência de disparo de 120 graus. Além disso, o MCU também recebe como entrada sinais de força contra eletromotriz (back EMF) para detectar onde está o miolo central do motor. À primeira vista parece um programa muito simples, mas existe muito mais detalhes para construir um ESC com HW e SW / FW otimizados. Como o objetivo é construir um Drone e não um ESC, vamos usar um solução já pronta e disponível comercialmente.


Esquema simplificado de um ESC com BEC
Esquema elétrico de um ESC [s1]


Importante: a corrente máxima suportada pelo ESC deve ser sempre maior (pelo menos 10% de folga) em relação a corrente máxima especificada pelo motor. O erro mais comum é usar um ESC com corrente menor do que a especificada pelo motor. A consequência deste erro é ver o ESC (em especial os FETs) virar carvão em menos de 1 segundo.

Corrente máxima 30A



Corrente máxima 40A


Corrente máxima 70A


Hélices / Propellers

As hélices possuem dois tipos CW e CCW. As CW cortam o ar em sentido horário e as CCW cortam o ar em sentido anti-horário. Para voar os drones quadrotor precisam ter 2 hélices de cada tipo.

A hélices possuem dois parâmetros: tamanho e ângulo de ataque.
Uma hélice 9 x 5 que dizer que o diâmetro da hélice é 9 polegadas e 5 é o ângulo de ataque do ar, ou seja, a inclinação da hélice é de 5 graus.

Relação tamanho vs ângulo de ataque vs empuxo gerado vs corrente necessária vs bateria
Quanto maior a hélice e o ângulo de ataque, maior será a força de empuxo gerada (Thrust).
A resistência do ar é proporcional a área da pá e ângulo de ataque.
Isso implica que uma maior resistência do ar causa um maior esforço do motor, e quanto maior o esforço do motor maior será a corrente necessária. E se a corrente necessária for próxima da máxima especificada pelo motor, provavelmente a eficiência energética do motor não será otimizada. E motor não otimizado implica consumir mais energia da bateria e como consequência menor autonomia de voo, pois a quantidade de energia da bateria é limitada. Aumentar o tamanho de bateria para ter mais energia implica em aumentar o peso, e aumentar o peso também causa mais esforço do motor.
Portanto não é um problema trivial dimensionar as configurações de hélice / motor / bateria / autonomia de voo desejada / peso extra para bagagens.
Parece mais um problema recursivo que só faz crescer de si mesmo.
O desafio é encontrar uma configuração de hélice que gere o empuxo desejado sem comprometer a eficiência energética do motor.

Além disso tudo, ainda tem de escolher o material do qual é feito a hélice. As hélices de plástico são baratas, mas costumam vibrar mais do que as hélices de fibra de carbono. A hélices de fibra de carbono são 100 vezes mais forte que as hélices de alumínio.


No caso das hélices de fibra de caborno é altamente recomendado realizar o balanceamento manual da hélice. É um processo simples de tentativa e erro, até deixar os dois lados da hélice com o mesmo peso.





Motores (Brushless Outrunner)
Motor Mistery / Suppo A2212/13T 1000Kv

Existem basicamente 2 tipos de motores os outrunner (que a carcaça gira junto, tem alto torque e baixa rotação) e os motores inrunner (que somente o eixo gira, tem baixo torque e alta rotação).

A corrente máxima do ESC deve sempre ser maior que a corrente máxima exigida pelo motor.
Se o ESC tiver corrente máxima menor que a de exigência do motor, o ESC virará "plasma" em 1 segundo.

Cada motor foi projetado para um determinado esforço máximo, portanto sempre se deve utilizar uma hélice do tamanho adequado. Se a hélices exigirem mais esforço do que o máximo suportado pelo motor, quem virará "plasma" é o motor.

O desafio é usar a maior hélice possível (quanto maior a hélice e o ângulo de ataque, maior será o empuxo gerado) que o motor suporta. Uma vez achada tal hélice, é preciso usar um ESC que forneça uma corrente maior do que a corrente exigida pelo motor equipado com a hélice.

Mas aqui existe outro problema, quando o motor está trabalhando com esforço máximo em 99,99% dos casos boa parte da energia está sendo gasta em calor, pois o núcleo do motor já está saturado magneticamente faltando. Dai é necessário descobrir qual é o esforço máximo do motor que maximiza a eficiência na relação corrente consumida x torque produzido.

Opção de motor da EMAX
http://dx.com/p/emax-cf2822-1200kv-diy-brushless-external-rotor-electric-machine-motor-for-apc-8x3-8-more-218180

O fabricante é "SUPPO" modelo A2212/13T
http://dx.com/p/a2212-13t-1000kv-outrunner-brushless-motor-set-yellow-gold-silver-219554
(cerca de $12)

O mesmo motor SUPPO modelo A2212/13T com desconto
http://dx.com/p/kv1000-brushless-exterior-rotor-motor-outrunner-motor-yellow-154904
(cerca de $10)

[ref] http://www.rctimer.com/product_118.html
Model:  2212-13
Motor size: Ф28*26mm
Shaft size: Ф3.175*37mm
Weight: 50g
KV(rpm/v): 1000
Max Power: 150W
Battery: 2-3Li-Po
Test Prop: 11x7/10x5
Ri(M Ω): 0.127
ESC(A): 30A
Mecânica do motor A2212/13T

No. of Cells:    2 - 3 Li-Poly ( 7.2V até 11.1V)
  6 - 10 NiCd/NiMH  
  Kv:    1000 RPM/V  (até 11mil rpm sem hélice, com hélice é menos por causa da resistência do ar)
  Max Efficiency:    80%  
  Max Efficiency Current:    4 - 10A (>75%)  
  No Load Current:    0.5A @10V  
  Resistance:    0.090 ohms  
  Max Current:    13A for 60S  (derrete se passar mais de um minuto com essa corrente)
  Max Watts:    150W  
  Weight:    52.7 g / 1.86 oz  
  Size:    28 mm dia x 28 mm bell length  
  Shaft Diameter:    3.2 mm  
  Poles:    14  
  Model Weight:    300 - 800g / 10.5 - 28.2 oz  
[ref] http://www.batteryheatedclothing.com/pages/a2212-13t-technical-data.html

Gráfico da eficiência enérgica do motor. Pelo que pode ser visto no gráfico a maior (próxima a 80%) fica na faixa de 4 a 8 amperes.


Testando sem hélice, as velocidades são essas abaixo



VoltsAmpsRPM
70.67380
80.658460
100.7510500

Testando com hélices
[ref] http://www.flybrushless.com/motor/view/206


PropellerGear RatioVoltsAmpsWattsRPMSpeed (mph)Thrust (g)Thrust (oz)RPM as % of Kv*V
GWS HD 8x4173.3523663025.1226
(4x= 900g)
mínimo
7.9788%
GWS HD 8x417.94.132741028.128710.1287%
GWS HD 8x418.94.8543822031.134712.2486%
GWS HD 8x419.95.6555894033.942014.8284%
GWS HD 8x4110.96.570966036.6495
(4x= 1980g)
máximo
17.4682%
GWS HD 9x516.95.537600028.4348
(4x= 1392g)
mínimo
12.2881%
GWS HD 9x517.96.752666031.543615.3878%
GWS HD 9x518.97.8569729034.552618.5576%
GWS HD 9x519.99.2591792037.5627
(4x= 2508g)
máximo
22.1274%
APC E 10x516.9748561026.640614.3275%
APC E 10x517.98.4566612029.050517.8172%
APC E 10x518.99.988669031.760421.3170%
APC E 10x519.911.45113717034.070224.7667%
APC E 10x5110.913 (perigo)141765036.280228.2965% 
GWS HD 10x616.97.249561031.942414.9675%
GWS HD 10x617.98.768618035.152618.5572%
GWS HD 10x618.910.189669038.061721.7670%
GWS HD 10x619.911.7115720040.972225.4767%
GWS HD 10x6110.913.25
(perigo)
144768043.681728.8265%
GWS HD 10x8110.818.2
(perigo)
196639048.473325.8655%


Dados de temperatura do motor (complementando a tabela anterior):
[ref] http://www.rcgroups.com/forums/attachment.php?attachmentid=3996646


Com hélices de 8x4 os motores juntos conseguem levantar cerca de 2kg no máximo. Para maximizar a vida da bateria o peso máximo deve ser de 900g.

Com hélices de 9x5 os motores juntos conseguem levantar cerca de 2,5kg no máximo.
Para maximizar a vida da bateria o peso máximo deve ser de 1392g.

O peso estimado do drone (frame[240g]+motores[4x51=204g]+esc[4x27g=108g] -> 552g)
Ainda falta somar as hélices e placas de controle, sensores e bateria.

Baterias (LiPo)


Bateria - LiPo 5000mAh 50C -> 5 x 50 = 250A de corrente de pico.
Banco de baterias nuclear - NanoTritium betavoltaic 


Microncontralador ( CPU + RAM + FLASH )

Para o sistema de estabilização, anti-colisão, controle e comunicação podemos usar um microcontrolador com FreeRTOS ou um sistema com mais recursos para usar Linux.

Para FreeRTOS existem diversos kit de baixo custo (até US$ 20) com JTAG já embutida.

Texas

ST

Para Linux também existem diversas placas de baixo custo, com 512MB de RAM e cartão SD de até 64GB. Tudo de baixo custo (até $50)

Raspberry Pi

Beaglebone

Comunicação via RF ISM (433MHz / 915MHz)

Existem diversos rádio na banda de automação industrial que podem ser usados para controle remoto do drone. Todos de baixo custo (até US$ 5).

Texas CC1101

ST Spirit

Comunicação via WIFI (2.4Ghz / 5GHz)

Existem soluções de WIFI embarcado

Texas CC3000



Comunicação via GSM Quad Band

Existem soluções para usar a conexão de dados da rede celular.

Placa com SIM900 um SOC para GSM 850/900/1800/1900 Mhz
(cerca de $47)

Navegação e automação por GPS

Soluções de GPS embarcado

Navegação por Bússola 

HMC5883L - ótima para navegar onde não tem sinal de GPS disponível  




Giroscópio de 3 eixos + Acelerômetro de 3 eixos (estabilizador)


MPU6050 - Sensor da Invense 6 DOF

http://dx.com/p/gy-521-mpu6050-3-axis-acceleration-gyroscope-6dof-module-blue-154602



Sensor de distância até 5 metros (anti-colisão)
6 x Sonar -  - evitar colisão nos eixos x,y,z
(em breve como construir um sonar)

Sensor de pressão (altitude)

MS5611-01BA03 -Altímetro com precisão de +-10cm



BMP085 - Altímetro da BOSH com precisão de +-25cm segundo o datasheet


Câmeras

Existem soluções prontas de alta definição e também versões embarcadas.

ov7670 300kpixel 640x480 vga 30fps




Referências: