tag:blogger.com,1999:blog-23189340350964950202024-03-06T04:50:21.435-04:00José Maria DVD FilhoEngenheiro de Computação - Universidade do Estado do Amazonas.
Participei do grupo Zagaia(projeto INdT/FUCAPI) desenvolvendo Jogos e aplicações linux para dispositivos móveis.
Atualmente estou trabalhando no Instituto Certi Amazônia onde desenvolvo jogos e aplicações voltada para polo industrial de manaus.
Este blog está voltado para alguns trabalhos que faço como hobby, atuando principalmente com programação baixo nível, dispositivos móveis, arduino e placas eletrônicas.Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-2318934035096495020.post-63831354234485658012012-06-25T17:54:00.001-04:002012-06-25T17:55:43.666-04:00Arduino + Sensor de Estacionamento<br />
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<br />
<br />
Olá pessoal, comprei alguns componentes novos para melhorar o <a href="http://josemdvdf.blogspot.com.br/2012/05/tutorial-arduino-robo-seguidor-de-luz.html" target="_blank">robô</a> e resolvi fazer alguns tutoriais para mostrar o melhor funcionamento de cada componente.<br />
<div>
<br /></div>
<div>
O componente que irei mostrar hoje é o sensor infra vermelho sharp. Ele é nada mais e nada menos que um detector de obstáculos, com isso vou tentar "simular" um sensor de estacionamento.</div>
<div>
<br /></div>
<div>
Estou usando:</div>
<div>
<br /></div>
<div>
1 - Arduino Duemilanove</div>
<div>
2 - Sensor Sharp</div>
<div>
3 - Led</div>
<div>
4 - Resistor 220</div>
<div>
5 - Buzzer<br />
6 - Botão Liga/Desliga</div>
<div>
7 - Fio e Protoboard</div>
<div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDXox-gX0FudJHXIxR6YG_3HTCe1lYcsFe8Q6GxTeqlm-r28C_LSFzGqoW8P8qLQisw5gqRHMEatNtikLD2c3Fzns1_k0z-ecIuGzfA82H5p_FtDLI1zsnIMBzL-hN1yBxFAYleukraQk/s1600/IMG_20120625_150107.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDXox-gX0FudJHXIxR6YG_3HTCe1lYcsFe8Q6GxTeqlm-r28C_LSFzGqoW8P8qLQisw5gqRHMEatNtikLD2c3Fzns1_k0z-ecIuGzfA82H5p_FtDLI1zsnIMBzL-hN1yBxFAYleukraQk/s320/IMG_20120625_150107.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Componentes</td></tr>
</tbody></table>
<br />
<br /></div>
<div>
Primeiro vamos verificar como funciona o Sensor Sharp. Utilizaremos uma chave on/off para simular a marcha ré, o sensor e um led para mostrar a presença do obstáculo.<br />
<br />
Segue o modelo do circuito.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp5d4H7rrcGkwrFZf1EEMrJdl8SWD8Ucns8WVsVw1EuchdAiXwTTxjC1Sg_qP54LGKgufKL8zLpgRW35sClUf1n7VxqaiQbEe1-0bHJe4wYFPcTcOrH5DUXN7zkz3vn0zyynJC7h_ZYN8/s1600/sensor+estacionamento_bb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp5d4H7rrcGkwrFZf1EEMrJdl8SWD8Ucns8WVsVw1EuchdAiXwTTxjC1Sg_qP54LGKgufKL8zLpgRW35sClUf1n7VxqaiQbEe1-0bHJe4wYFPcTcOrH5DUXN7zkz3vn0zyynJC7h_ZYN8/s320/sensor+estacionamento_bb.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Circuito</td></tr>
</tbody></table>
<br />
Em seguida faça o upload do código<br />
<br />
<br />
<blockquote class="tr_bq">
/*<br />
**************************************<br />
Teste do Sensor Sharp<br />
José Maria DVD<br />
http://josemdvdf.blogspot.com.br/<br />
--------------------------------------<br />
<br />
*/<br />
int pinLed = 12;<br />
int pinSensor = 0;<br />
int pinChave = 2;<br />
void setup(){<br />
pinMode(pinLed, OUTPUT);<br />
pinMode(pinSensor, INPUT);<br />
pinMode(pinChave, INPUT);<br />
}<br />
void loop() {<br />
int vlChave = digitalRead(pinChave);<br />
<br />
if(vlChave == HIGH)<br />
{<br />
int vlSensor = analogRead(pinSensor);<br />
int sleep = map(vlSensor, 0, 800, 250,0);<br />
digitalWrite(pinLed,HIGH);<br />
delay(sleep);<br />
digitalWrite(pinLed,LOW);<br />
delay(sleep);<br />
}<br />
}</blockquote>
<br />
<br />
Veja o vídeo do funcionamento.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/x6uwLdy-dpI?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Próximo passo é inserir o buzzer para fazer aquele barulho conhecido :D<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUanRZfftjThIbfY2F-G_U6NRe52TnmVn-6_dDGx7FZrmnePa9qpqsX1ok6O4GYMZf0BjcXQMr6PDriz9KTmd3TQ_xkmkKl_3BTCH4uCoOsdCAESPy818EYUS1t0fMmEHx2FED01885tU/s1600/IMG_20120625_171855.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUanRZfftjThIbfY2F-G_U6NRe52TnmVn-6_dDGx7FZrmnePa9qpqsX1ok6O4GYMZf0BjcXQMr6PDriz9KTmd3TQ_xkmkKl_3BTCH4uCoOsdCAESPy818EYUS1t0fMmEHx2FED01885tU/s320/IMG_20120625_171855.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Buzzer</td></tr>
</tbody></table>
<br />
O buzzer possui 2 pinos, um negativo e outro de dados. Portanto basta ligar o pino negativo no terra e o positivo em uma porta digital do arduino. Veja na figura abaixo.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjAuxnJvF8q-Jk-vrsnwy0LbEtJ2HDnk1Op4NxsJXB1PpLql130VFD9T7rov90wWyDsEtg5MqOvmj7Djo9v5b8Qd97H8d5ruJNYm9Xs2hOYO4QMY-HDQmJh3lNWUd5gy7CJx-jowUHO5w/s1600/sensor+estacionamento_buzzer.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjAuxnJvF8q-Jk-vrsnwy0LbEtJ2HDnk1Op4NxsJXB1PpLql130VFD9T7rov90wWyDsEtg5MqOvmj7Djo9v5b8Qd97H8d5ruJNYm9Xs2hOYO4QMY-HDQmJh3lNWUd5gy7CJx-jowUHO5w/s320/sensor+estacionamento_buzzer.jpg" width="306" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Circuito Completo</td></tr>
</tbody></table>
<br />
Em seguida faça o upload do seguinte código:<br />
<br />
<br />
<blockquote class="tr_bq">
/*<br />
**************************************<br />
Simulação de um Sensor de Estacionamento<br />
José Maria DVD<br />
http://josemdvdf.blogspot.com.br/<br />
--------------------------------------<br />
<br />
*/<br />
int pinLed = 12;<br />
int pinSensor = 0;<br />
int pinChave = 2;<br />
int pinBuzzer = 4;<br />
void setup(){<br />
pinMode(pinLed, OUTPUT);<br />
pinMode(pinSensor, INPUT);<br />
pinMode(pinChave, INPUT);<br />
pinMode(pinBuzzer, OUTPUT);<br />
}<br />
void loop() {<br />
int vlChave = digitalRead(pinChave);<br />
<br />
if(vlChave == HIGH)<br />
{<br />
int vlSensor = analogRead(pinSensor);<br />
int sleep = map(vlSensor, 0, 800, 250, 1);<br />
digitalWrite(pinLed, HIGH);<br />
tone(pinBuzzer, 2637, sleep);<br />
delay(sleep);<br />
digitalWrite(pinLed,LOW);<br />
delay(sleep);<br />
}<br />
}</blockquote>
<br />
<br />
Quem quiser saber um pouco mais como funciona a função <a href="http://arduino.cc/en/Tutorial/Tone" target="_blank">tone</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwiwM6AzJqauMQUz1pOpR4uRqVl9-0YCkZSbhQjhUptsooksE4VQA1Ogq7CQSF3p1RYx4zg1-AXKYxaw2QtN9Lkkv1bU0BbDNPVTE7vGWMSEHJv0vDcK6M1oecvQelqXbfr0j2zaKb83o/s1600/IMG_20120625_171622.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwiwM6AzJqauMQUz1pOpR4uRqVl9-0YCkZSbhQjhUptsooksE4VQA1Ogq7CQSF3p1RYx4zg1-AXKYxaw2QtN9Lkkv1bU0BbDNPVTE7vGWMSEHJv0vDcK6M1oecvQelqXbfr0j2zaKb83o/s320/IMG_20120625_171622.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Versão Final</td></tr>
</tbody></table>
<br />
Veja o vídeo de funcionamento.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/Cikewq_7_jQ/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/Cikewq_7_jQ?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" />
<param name="bgcolor" value="#FFFFFF" />
<param name="allowFullScreen" value="true" />
<embed width="320" height="266" src="http://www.youtube.com/v/Cikewq_7_jQ?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
<br />
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<br />
<br />
<g:plusone annotation="inline"></g:plusone>
<script type="text/javascript">
window.___gcfg = {lang: 'pt-BR'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com4Manaus - AM, Brasil-3.1064093 -60.0264297-4.1156133 -61.2898572 -2.0972053 -58.7630022tag:blogger.com,1999:blog-2318934035096495020.post-60085895631851767592012-05-11T14:41:00.000-04:002012-05-11T14:41:21.753-04:00Tutorial : Arduino + Robô seguidor de luz ( Light follower Robot )<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><br />
<div>
<br /></div>
<div>
<div style="text-align: justify;">
Olá pessoal após os pequenos projetos <a href="http://josemdvdf.blogspot.com.br/2012/04/arduino-ldr-light-dependent-rsistor.html" target="_blank">Arduino LDR</a> e <a href="http://josemdvdf.blogspot.com.br/2012/04/arduino-servo-motor.html" target="_blank">Arduino Servo Motor</a> resolvi criar um projeto um pouco maior: Robô seguidor de luz.</div>
<div style="text-align: justify;">
Se alguém quiser entender um pouco melhor sobre pequenas partes como LDR e Servo Motor, sugiro que vejam o link referenciado acima.</div>
<br />
<div style="text-align: justify;">
Gostaria de avisar que o robô apenas segue a luz, ou seja caso a luz incidente seja maior no lado direito ele segue para a direita, caso
a luz incidente seja maior no lado esquerdo segue para a esquerda senão segue em frente (caso não tenha luz ou a luminosidade seja homogênea). </div>
<br />
E como eu sei onde tem mais luz ?<br />
Para verificar a incidência de luz utilizei os <a href="http://josemdvdf.blogspot.com.br/2012/04/arduino-ldr-light-dependent-rsistor.html" target="_blank">LDR´s</a><br />
<br />
E como mudar a direção ?<br />
Para mudar a direção utilizei um <a href="http://josemdvdf.blogspot.com.br/2012/04/arduino-servo-motor.html" target="_blank">Sero Motor</a>.<br />
<br />
<div style="text-align: justify;">
Antes de começar o tutorial propriamente dito, gostaria de fazer um agradecimento a um amigo e grande jogador de StarCraft 2: Mateus Makarov Souza pelo apelido de Hellion ao robô. Só falta o jato de Fogo... rsrsrs</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7KGBirazfTabY79G_VBbmlUSizJy3LT0GLkFIGYys8THwhfkMAf3V9LyIvZTqRufp0wZ0x3zZijFRgb6KaFFyePkDtZoAHL9qQST4sXKc-To3564JkacgodYIWLreFuDagp-8Pz8Xcq4/s1600/IMG_1946.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7KGBirazfTabY79G_VBbmlUSizJy3LT0GLkFIGYys8THwhfkMAf3V9LyIvZTqRufp0wZ0x3zZijFRgb6KaFFyePkDtZoAHL9qQST4sXKc-To3564JkacgodYIWLreFuDagp-8Pz8Xcq4/s320/IMG_1946.JPG" width="235" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Robô Seguidor de Luz</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsbBLP6kfA5lxKnAc53HWmsRyT0khWUeOkWJtiqJ-OC81xvIJHgjeqoAIy53RwhpRXMVv0bWLJG3G68u8YsP2EJroQ99f8wN9yVcabFLxsX5hdI4DuMiqWekkGr4D6AL6OXzhaow3OaiQ/s1600/Hellion_SC2_DevRend1-500x505.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsbBLP6kfA5lxKnAc53HWmsRyT0khWUeOkWJtiqJ-OC81xvIJHgjeqoAIy53RwhpRXMVv0bWLJG3G68u8YsP2EJroQ99f8wN9yVcabFLxsX5hdI4DuMiqWekkGr4D6AL6OXzhaow3OaiQ/s320/Hellion_SC2_DevRend1-500x505.jpg" width="312" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Hellion - StarCraft 2</td></tr>
</tbody></table>
<br />
Vamos começar.<br />
<br />
<b>Lista de componentes:</b><br />
1 - Arduino Duemilanove<br />
2 - Servo<br />
3 - 2 * LDR 5mm<br />
4 - 2 * Resistor de 10k<br />
5 - Bateria<br />
6 - Protoboard<br />
7 - Fios<br />
8 - 2 carrinhos de brinquedo + pilhas<br />
<br />
<h2>
Passo 1</h2>
</div>
<div style="text-align: justify;">
Fazer uma extensão para os LDRs. Isso faz com que as variações de luz sejam mais evidentes, além de criar um visual com a forma de um inseto, como se o robô tivesse antenas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Se você tiver um cabo de rede velho ou que não irá usar, corte e retire dois pares de fios.</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeBpBmGXHC3tGsvhkw6JgAoqnVnLpJpjm2u_d0MG54CRAX2ZmoNht3VADhHcAcWnrw2hox5ADPfgkv6YUYTZFG8ieYvZvAEo7JN0KS0fL99Y5dEhUU6vxrY-EfvBjRltSzBai88PzxiTU/s1600/cabo+de+rede.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeBpBmGXHC3tGsvhkw6JgAoqnVnLpJpjm2u_d0MG54CRAX2ZmoNht3VADhHcAcWnrw2hox5ADPfgkv6YUYTZFG8ieYvZvAEo7JN0KS0fL99Y5dEhUU6vxrY-EfvBjRltSzBai88PzxiTU/s320/cabo+de+rede.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cabo de rede</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Em seguida solde os fios aos LDRs e use fita isolante. </div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-qPlmq_aGJ3NVgcsLJ2LEVEpq3biXMB0stRZt_sj0Q0yGt3kST2VJhPvBV5iI7qXd7aC9CMTTKVBfUBDMTWwkzXOv-FnBj69QFr_zq2-r3OSLldDdbEpTOCvRKSFa3pxO_AC_G_vfAks/s1600/IMG_20120405_170858.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-qPlmq_aGJ3NVgcsLJ2LEVEpq3biXMB0stRZt_sj0Q0yGt3kST2VJhPvBV5iI7qXd7aC9CMTTKVBfUBDMTWwkzXOv-FnBj69QFr_zq2-r3OSLldDdbEpTOCvRKSFa3pxO_AC_G_vfAks/s320/IMG_20120405_170858.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Soldar os fios a LDR</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH8CZFduqcvPYBGThT8_G-fdkiS7h73WzWWjJm6J8phNht_C-WCIlfxu-0l1yV0XgZqx64foUl3UE3BcghCG-IY9RnLMDpCy8WAMoXPBMq17IPmk_HIPIrmqxW_kyneP34MHU-c5U_QBg/s1600/IMG_20120409_110131.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH8CZFduqcvPYBGThT8_G-fdkiS7h73WzWWjJm6J8phNht_C-WCIlfxu-0l1yV0XgZqx64foUl3UE3BcghCG-IY9RnLMDpCy8WAMoXPBMq17IPmk_HIPIrmqxW_kyneP34MHU-c5U_QBg/s320/IMG_20120409_110131.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Antena LDR</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Obs.: Tente deixar os fios trançados como mostra a foto acima.
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pra quem quiser e tiver material pode deixar as antenas um pouco mais amigáveis utilizando o tubo termo retrátil.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj3PYyoBMb6JU2UdpojjuKG2tMFOx6w7UyXlSZLUNtIg-NszIwUIaXix3jFUlKhMdePy-wpQg0wYLKBOWVZJ8Kq1piZM061pgISek83_MTI0ziNPmLvAE_Fkdtu0VEfOWKvo5Crw1rrMk/s1600/IMG_20120409_110401.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj3PYyoBMb6JU2UdpojjuKG2tMFOx6w7UyXlSZLUNtIg-NszIwUIaXix3jFUlKhMdePy-wpQg0wYLKBOWVZJ8Kq1piZM061pgISek83_MTI0ziNPmLvAE_Fkdtu0VEfOWKvo5Crw1rrMk/s320/IMG_20120409_110401.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Inserindo o tubo</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjaHKtNBTpUP94qqmtBS_ihiATCBxukVlSqFQoqhcyqYRcfTO9qfmTQMm4xxncO-U0Xt9fCvrJjs-WBxPDA-6tmhM3SFoczOVzGYyStsflz0aXOmzrisUQbc6z0aMSuUsbmCSoHDK7Og/s1600/IMG_20120409_110512.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjaHKtNBTpUP94qqmtBS_ihiATCBxukVlSqFQoqhcyqYRcfTO9qfmTQMm4xxncO-U0Xt9fCvrJjs-WBxPDA-6tmhM3SFoczOVzGYyStsflz0aXOmzrisUQbc6z0aMSuUsbmCSoHDK7Og/s320/IMG_20120409_110512.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Aquecendo para fixar</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqEpN-kZx4GC5aQXRvaZFimbknXU9vCAh4GDtTysNK8i-G6DhWsCoLcumRFxX0M_el6DEcfk5PaT2tF51_awG_57FuG1sUP0KpiWe3pnXZDNJbLDgr2w0sP6cRtZh4lYjkGUvDK3BN0x0/s1600/IMG_20120409_111217.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqEpN-kZx4GC5aQXRvaZFimbknXU9vCAh4GDtTysNK8i-G6DhWsCoLcumRFxX0M_el6DEcfk5PaT2tF51_awG_57FuG1sUP0KpiWe3pnXZDNJbLDgr2w0sP6cRtZh4lYjkGUvDK3BN0x0/s320/IMG_20120409_111217.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Resultado final</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimi_8QJGiLSsTv-8Ajcn7E3f5OAv0Q_Mu2RVTLNLq1zyyjFPeUdYu_bPM5zURXTku3VFfFsf9weK8gLJJidqliGkV_XyFHX0bbGh6GW1y2j1H1z8wsfDNZemNxbfCJALXu50Nvpi6hZQw/s1600/IMG_20120411_114550.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimi_8QJGiLSsTv-8Ajcn7E3f5OAv0Q_Mu2RVTLNLq1zyyjFPeUdYu_bPM5zURXTku3VFfFsf9weK8gLJJidqliGkV_XyFHX0bbGh6GW1y2j1H1z8wsfDNZemNxbfCJALXu50Nvpi6hZQw/s320/IMG_20120411_114550.jpg" width="238" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Faça para os dois LDR´s<br />
<br /></td></tr>
</tbody></table>
<div style="text-align: -webkit-auto;">
</div>
<h2>
Passo 2</h2>
Assim que estiver pronto podemos fazer o nosso primeiro circuito. A figura abaixo mostra o circuito do LDR. Caso você queira ver como funciona um LDR pode ver nesse <a href="http://josemdvdf.blogspot.com.br/2012/04/arduino-ldr-light-dependent-rsistor.html" target="_blank">link</a>.<br />
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnx-Op-cugAqmDH7Ul6xnAKwjCWU0EGV5YNOdUwjGbZ5_RLLYIuRC4Lxyk86Km5lJhinjHN0J51eUotkVvszfaujAuEf0-E-UxdXDKLvylRSxAp1QhzlRQygSVPkcDbtUDGBPcnyCHoqM/s1600/CircuitoLDR.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="145" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnx-Op-cugAqmDH7Ul6xnAKwjCWU0EGV5YNOdUwjGbZ5_RLLYIuRC4Lxyk86Km5lJhinjHN0J51eUotkVvszfaujAuEf0-E-UxdXDKLvylRSxAp1QhzlRQygSVPkcDbtUDGBPcnyCHoqM/s320/CircuitoLDR.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Circuito LDR</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZzHCGzPmSMRK6FhnC20OCmbF-p0caDUbXFv7xGfGNCCRav2I6fkE0xwu6_3VD2RTyOKM1mUsnQGD1I4HviCOVzGBqUjmDeDJTopsaauowWMDrJLKaRt2ASVmyBWSEgVZuXoCEi0cE9Hk/s1600/IMG_20120411_163112.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZzHCGzPmSMRK6FhnC20OCmbF-p0caDUbXFv7xGfGNCCRav2I6fkE0xwu6_3VD2RTyOKM1mUsnQGD1I4HviCOVzGBqUjmDeDJTopsaauowWMDrJLKaRt2ASVmyBWSEgVZuXoCEi0cE9Hk/s320/IMG_20120411_163112.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Foto - Circuito LDR</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6b2i8GuCAubG3H9fSVqJExmyLYEUsmcDDpdZFbYRKMdpLr6f7Xfu9GIvp7TaUnQHVfiV9KN9DUo61WhZI7a9a1Y2yc7rs0MNA4TfrZ5THopb9xAaWz7gSGKI4ptWeuWKgGQC3XoAwCFE/s1600/IMG_20120411_163138.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6b2i8GuCAubG3H9fSVqJExmyLYEUsmcDDpdZFbYRKMdpLr6f7Xfu9GIvp7TaUnQHVfiV9KN9DUo61WhZI7a9a1Y2yc7rs0MNA4TfrZ5THopb9xAaWz7gSGKI4ptWeuWKgGQC3XoAwCFE/s320/IMG_20120411_163138.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Foto - Circuito LDR</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Em seguida rode o seguinte código e veja se está funcionando normalmente. O resultado será apenas via serial.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<blockquote class="tr_bq">
int pinLDRDir = 5; // pino analógico 5 direita<br />
float LDRDir = 0; // receberá o valor do LDR da direita<br />
int pinLDREsq = 0; // pino analógico 0 esquerda<br />
float LDREsq = 0; // receberá o valor do LDR da esquerda<br />
<br />
void setup() {<br />
Serial.begin(9600);<br />
}<br />
void loop(){<br />
//O valor lido da porta será no intervalo (0 a 1023)<br />
LDRDir = analogRead(pinLDRDir);<br />
LDREsq = analogRead(pinLDREsq);<br />
<br />
//Mostra na serial<br />
Serial.print("LDR Dir= ");<br />
Serial.println(LDRDir); <br />
Serial.print("LDR Esq= ");<br />
Serial.println(LDREsq); <br />
<br />
//Se 75% de LDREsq >= LDRDir - Vira a esquerda<br />
if( LDREsq*0.75 >= LDRDir)<br />
Serial.println("Vira a esquerda");<br />
//Senão se 75% de LDRDir >= LDREsq - Vira a direita<br />
else if( LDRDir*0.75 >= LDREsq)<br />
Serial.println("Vira a direita");<br />
else<br />
Serial.println("Centro");<br />
delay(500);<br />
}</blockquote>
<div class="separator" style="clear: both;">
<br /></div>
</div>
<div style="text-align: justify;">
<h2 style="text-align: -webkit-auto;">
Passo 3</h2>
<div>
Após montar o circuito LDR, partimos para as ligações do Servo Motor. Essa parte é a mais fácil pois o Servo não precisa de nenhum circuito adicional, apenas das ligações com os pinos do arduino.</div>
<div>
<br /></div>
<div>
O servo motor possui 3 fios:</div>
<div>
<br /></div>
<div>
Amarelo : Fio de dados</div>
<div>
Vermelho: VCC (5v)</div>
<div>
Marrom: GND (terra)</div>
<div>
<br /></div>
<div>
Portanto devemos apenas ligar um fio ao pino 9 do arduino, que será o de dados, outro ao vcc e outro ao terra. A figura abaixo mostra essas ligações. Caso você queira ver como funciona um Servo Motor, clique no <a href="http://josemdvdf.blogspot.com.br/2012/04/arduino-servo-motor.html" target="_blank">link</a>.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPdxTbPPP0HKtCYeK2cM0zWYZrYF6F9I8S2Wn88HoFx6TEDJNj2VxquKu2irNgE2yl4CzpjBBnvEnzClMKB_w019-y1vXq2ZFmN5Jae3b2Nav_4QdpaUnIa3a2owaONOmrPG0DLfILftU/s1600/Circuito+++servo.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPdxTbPPP0HKtCYeK2cM0zWYZrYF6F9I8S2Wn88HoFx6TEDJNj2VxquKu2irNgE2yl4CzpjBBnvEnzClMKB_w019-y1vXq2ZFmN5Jae3b2Nav_4QdpaUnIa3a2owaONOmrPG0DLfILftU/s320/Circuito+++servo.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fios Para o Servo</td></tr>
</tbody></table>
<div>
<br /></div>
</div>
<div style="text-align: justify;">
<h2 style="text-align: -webkit-auto;">
Passo 4</h2>
</div>
<div>
<div style="text-align: justify;">
Chegou o grande momento de montarmos o nosso robô. Pegue o primeiro carrinho e desmonte, utilizaremos suas rodas da frente para controlar a direção do nosso robô.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJWmGRqJHVi09s7Gd5s312EAR4wxQf4VrJfbYkgMuKezm9f8DsdnGcksqfnrTJckaRtdDuVU1_9V8uC3qKMThRwu9GMD9EA_tUKfacfd5sKSkoEq93OSaBvhONZfjBF7-RCzOLkb6cNmw/s1600/IMG_20120409_135836.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJWmGRqJHVi09s7Gd5s312EAR4wxQf4VrJfbYkgMuKezm9f8DsdnGcksqfnrTJckaRtdDuVU1_9V8uC3qKMThRwu9GMD9EA_tUKfacfd5sKSkoEq93OSaBvhONZfjBF7-RCzOLkb6cNmw/s320/IMG_20120409_135836.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Carro 1 - Normal</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsiK9T5we41jtIlEHwX2qrxo5llxu1ktoKH9MxE78x4Wz6eiRrJcxTcwerkHRtpTYBdcAp1DkAn3F04mN4LtpSvrSKu_hg4dEP7UWiL0PaUWL_xxb9iHjooyoPT2YWVAOggsyJen9X_S8/s1600/IMG_20120409_135845.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsiK9T5we41jtIlEHwX2qrxo5llxu1ktoKH9MxE78x4Wz6eiRrJcxTcwerkHRtpTYBdcAp1DkAn3F04mN4LtpSvrSKu_hg4dEP7UWiL0PaUWL_xxb9iHjooyoPT2YWVAOggsyJen9X_S8/s320/IMG_20120409_135845.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Carro 1 - Desmontado</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY_OFDmwppyCA_BN2mMmLvRj8Kkpgpj5QNncULGKz44CVL52850H-qxzoan8EJDTvZ5MytV72A56QldjHqigYEcMbovR34o86oz9aBbXpCLjxzYnc9ahCG7QHX_G4YUOMis_gaWKHMAAI/s1600/IMG_20120409_144727.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY_OFDmwppyCA_BN2mMmLvRj8Kkpgpj5QNncULGKz44CVL52850H-qxzoan8EJDTvZ5MytV72A56QldjHqigYEcMbovR34o86oz9aBbXpCLjxzYnc9ahCG7QHX_G4YUOMis_gaWKHMAAI/s320/IMG_20120409_144727.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Carro 1 - Retire as rodas da frente.</td></tr>
</tbody></table>
<br />
<h2 style="text-align: -webkit-auto;">
Passo 5</h2>
Em seguida, de alguma maneira (rsrs), cole as rodas ao servo motor.<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>OBS.: Antes de colar as rodas ao Servo, certifique-se que ele esteja posicionado em 90º. Você tem duas maneiras de fazer isso. A primeira é girar o eixo até o final para ambos os lados e tentar achar o centro. A segunda eh fazer via software.</b></div>
<br />
No software você deve fazer as seguinte ligações:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih9O4p2QB5f_40XWT6fS1_OV-4hu-wa982OnNGaLypb8er83IuhBEKQjoZqnwmf8KhAywliOyl-wp6JPUmIU7te7DY1_trHY3Ha9zE5yzlVYclZ10o4x9Nt9HkB5XxQ0pPNFY48DXzL3k/s1600/servo.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih9O4p2QB5f_40XWT6fS1_OV-4hu-wa982OnNGaLypb8er83IuhBEKQjoZqnwmf8KhAywliOyl-wp6JPUmIU7te7DY1_trHY3Ha9zE5yzlVYclZ10o4x9Nt9HkB5XxQ0pPNFY48DXzL3k/s320/servo.jpg" width="278" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Servo</td></tr>
</tbody></table>
<div style="text-align: justify;">
<b>OBS.: Não esqueça de usar uma bateria para alimentar o arduino. Caso você não tenha uma bateria com o plug para o arduino, esse </b><a href="http://www.arduino.cc/playground/Learning/9VBatteryAdapter" target="_blank">link</a><b> mostra como fazer.</b></div>
<br />
Em seguida rode o código:<br />
<br />
<blockquote class="tr_bq">
/*<br />
**************************************<br />
Colocando o Servo em 90º<br />
José Maria DVD<br />
http://josemdvdf.blogspot.com.br/<br />
--------------------------------------<br />
<br />
<br />
*/<br />
#include <servo.h><br />
Servo servo1;<br />
void setup() {<br />
servo1.attach(9);<br />
servo1.write(90);<br />
}<br />
void loop(){}</blockquote>
</div>
<div>
<br />
<div style="text-align: justify;">
Com o Servo posicionado de maneira correta, fixe-o de alguma forma. Peço desculpas pois não sou muito habilidoso nesses detalhes, o trabalho ficou um pouco feio porque usei fitas e abraçadeiras.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVhxiHVY2TbEyApHuEuENLl0BdOr4QTHnBnhejP2Eu6Bgw5guAGR7jBB16PM45TWW57nCmSuocBN-FuR4Hvi_sGmj4rhdokGEKwXvVGVZ9-jiikIaxkFtVEN9rYxZnl6KNnc4KgW1WTYU/s1600/Servo+Rodas.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVhxiHVY2TbEyApHuEuENLl0BdOr4QTHnBnhejP2Eu6Bgw5guAGR7jBB16PM45TWW57nCmSuocBN-FuR4Hvi_sGmj4rhdokGEKwXvVGVZ9-jiikIaxkFtVEN9rYxZnl6KNnc4KgW1WTYU/s400/Servo+Rodas.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Servo + Rodas</td></tr>
</tbody></table>
<br />
<br />
<h2 style="text-align: -webkit-auto;">
Passo 6</h2>
<br />
Agora chegou a vez do segundo carro. Faça o mesmo processo, a diferença é que agora você ficará com as rodas traseiras que servirá de tração, com a base do carrinho que servirá de suporte para o protoboard (circuito completo) e chassis, além do motor e as pilhas que farão o nosso robô andar.<br />
<br />
No meu caso, tive que desmontar todo o carrinho pois ele tinha outras funções que não me serviriam. Também estava com sorte pois o carrinho já tinha duas chaves, uma para ligar/desligar e outra para fazer o carro ir para frente ou ré. Caso o seu não tenha, basta ele andar mesmo :D.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP_LVNfWagNYA4F4MD7l1H3VqsMY4-WEXj4CUsVr044H3Rx4zjeHP6MAkfPcPJApPNyp3rDsJOZX1JvXoXtIR24Aig3Nc_q8aEEzybjXefKp7pAi5_boBBhkkYHegaMf8HgKukVxdkgdQ/s1600/IMG_20120409_115354.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP_LVNfWagNYA4F4MD7l1H3VqsMY4-WEXj4CUsVr044H3Rx4zjeHP6MAkfPcPJApPNyp3rDsJOZX1JvXoXtIR24Aig3Nc_q8aEEzybjXefKp7pAi5_boBBhkkYHegaMf8HgKukVxdkgdQ/s320/IMG_20120409_115354.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Carro 2 - Desmontado</td></tr>
</tbody></table>
<br />
<br />
<h2 style="text-align: -webkit-auto;">
Passo 7</h2>
<br />
<div style="text-align: justify;">
Após desmontar o carrinho, verifique se o motor e as chaves estão funcionando normalmente. Na hora de testar o ideal é usar as pilhas (observe que não usei :/ ), pois com elas podemos ter certeza que o suporte está normal.Veja o vídeo.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/QIk-d1kU9Fk?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<h2 style="text-align: -webkit-auto;">
Passo 8</h2>
<br />
<div style="text-align: justify;">
Após os testes, remonte e deixe as rodas traseiras, o suporte para a pilha, e toda a parte de tração.</div>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4qGLg7l_crHxWgZ9A2TGg36vXbXwMX52zp_N3kDJSW-wbt-pGMBTDyvzDz58H82M4TDi8G2Uv3MexvI58uOxcJ04cAw9YZ5ritzxRNPC5vNLAJHmLK2do27GrcLD7HSlREGBR5lYyyBQ/s1600/IMG_20120411_120753.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4qGLg7l_crHxWgZ9A2TGg36vXbXwMX52zp_N3kDJSW-wbt-pGMBTDyvzDz58H82M4TDi8G2Uv3MexvI58uOxcJ04cAw9YZ5ritzxRNPC5vNLAJHmLK2do27GrcLD7HSlREGBR5lYyyBQ/s320/IMG_20120411_120753.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Carro 2 - Remontado</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRaN_nxqgkPW2mCAdbu3WPjaIChxLWzIs1igI4yfiMzEz2ae5QJSnMdcgyxDpglb2nDNezeouNqB1hPNLzHLJ8jG5E2ioWdTI1WGRaApp-Gt0WeL7Srz2-PoRzf3kKIfMm9nO4W-hiHbY/s1600/IMG_20120411_120758.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRaN_nxqgkPW2mCAdbu3WPjaIChxLWzIs1igI4yfiMzEz2ae5QJSnMdcgyxDpglb2nDNezeouNqB1hPNLzHLJ8jG5E2ioWdTI1WGRaApp-Gt0WeL7Srz2-PoRzf3kKIfMm9nO4W-hiHbY/s320/IMG_20120411_120758.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Carro 2 - Remontado, com tração completa</td></tr>
</tbody></table>
<br />
<br />
<br />
<h2 style="text-align: -webkit-auto;">
Passo 9</h2>
<br />
<div style="text-align: justify;">
Bom, agora que tudo está funcionando vamos começar a integração. Junte o servo/rodas dianteiras ao chassis. Nesse passo tive vários problemas por falta de material rsrsrs, mas no fim deu tudo certo.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixo0VWsRLHF0YRvhi7O29tyjSLy2-Z_v9aWDTC8IyMR7CTXhc6uMC0GUiINinecdpJmJ-kEITKDfBneFqJJIKgyJE2VDFWYnxZnzCs4SoPRVHuiBXxKD4wf4vUveLgjlxoN17FkF5_Rzk/s1600/IMG_20120411_141728.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixo0VWsRLHF0YRvhi7O29tyjSLy2-Z_v9aWDTC8IyMR7CTXhc6uMC0GUiINinecdpJmJ-kEITKDfBneFqJJIKgyJE2VDFWYnxZnzCs4SoPRVHuiBXxKD4wf4vUveLgjlxoN17FkF5_Rzk/s320/IMG_20120411_141728.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Integração - Rodas dianteiras</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxduLs5gXFTnZfEDwHLRTn4sbSw_XRqZul18cutEqwbwTDsNT8lUiMtH3CYrzAR2mqKwvzo2oyTn38X0R6l6LiNytFwCQmssWuHmIDY7KxNwnDDNoPMax3xncoKLPAaAOnw0AmEEZK6bg/s1600/IMG_20120411_141733.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxduLs5gXFTnZfEDwHLRTn4sbSw_XRqZul18cutEqwbwTDsNT8lUiMtH3CYrzAR2mqKwvzo2oyTn38X0R6l6LiNytFwCQmssWuHmIDY7KxNwnDDNoPMax3xncoKLPAaAOnw0AmEEZK6bg/s320/IMG_20120411_141733.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Integração - Rodas Dianteiras</td></tr>
</tbody></table>
<br />
<br />
<h2 style="text-align: -webkit-auto;">
Passo 10</h2>
<br />
<div style="text-align: justify;">
Agora vamos testar o servo integrado ao chassis. Use as mesmas ligações da figura <b>servo</b> no <b>passo 5 </b>e<b> </b>rode o seguinte programa:</div>
<br />
<br />
<blockquote class="tr_bq">
/*<br />
<div style="text-align: justify;">
**************************************</div>
Teste do Servo<br />
José Maria DVD<br />
http://josemdvdf.blogspot.com.br/<br />
--------------------------------------<br />
<br />
*/<br />
#include
<servo.h><br />
Servo servo1;<br />
int pos = 90;<br />
char lado = 'n';<br />
void setup()<br />
{<br />
servo1.attach(9); // Porta de dados do servo<br />
Serial.begin(9600); // inicializa porta serial<br />
servo1.write(pos);<br />
}<br />
void loop(){<br />
lado = Serial.read();<br />
if (lado == 'l') ){<br />
pos = 10;<br />
}else if (lado == 'r'){<br />
pos = 170;<br />
} else pos = 90<br />
lado = 'n';<br />
servo1.write(pos);<br />
delay(350);<br />
}</blockquote>
<br />
<div style="text-align: justify;">
OBS.: É necessário abrir o <b>serial monitor do skd</b> e digitar a letra 'l' para esquerda e 'r' para a direita.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Veja o vídeo de demonstração.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/TdDUi0Jkx2s?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<h2>
Passo 11</h2>
<br />
<div style="text-align: justify;">
Próximo passo é integrar o circuito do <b>passo 3</b> ao servo, lembrando que o fio AMARELO é de dados, o VERMELHO é o VCC (5v) e o MARROM o GND (terra). Em seguida rodar o código:<br />
<br />
<br />
<blockquote class="tr_bq">
#include <span style="text-align: -webkit-auto;"><servo.h></span><br />
int pinLDRDir = 5; // pino analógico 5 direita<br />
float LDRDir = 0; // receberá o valor do LDR da direita<br />
int pinLDREsq = 0; // pino analógico 0 esquerda<br />
float LDREsq = 0; // receberá o valor do LDR da esquerda<br />
Servo servo1;<br />
int pos = 90;<br />
void setup() {<br />
servo1.attach(9);<br />
servo1.write(pos);<br />
}<br />
void loop(){<br />
//O valor lido da porta será no intervalo (0 a 1023)<br />
LDRDir = analogRead(pinLDRDir);<br />
LDREsq = analogRead(pinLDREsq);<br />
//Se 75% de LDREsq >= LDRDir - Vira a esquerda<br />
if( LDREsq*0.75 >= LDRDir){<br />
pos = 10;<br />
}<br />
//Senão se 75% de LDRDir >= LDREsq - Vira a direita<br />
else if( LDRDir*0.75 >= LDREsq){ <br />
pos = 170;<br />
}<br />
//Senão - centro<br />
else{<br />
pos = 90;<br />
}<br />
servo1.write(pos);<br />
delay(350);<br />
}</blockquote>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Veja os vídeos.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/l01qtBMuwcw?feature=player_embedded' frameborder='0'></iframe></div>
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/t5IRuOlbGJA?feature=player_embedded' frameborder='0'></iframe></div>
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br />
<h2 style="text-align: -webkit-auto;">
Passo 12</h2>
</div>
<div style="text-align: justify;">
Agora integre o circuito completo ao chassis do robô. Usei uma liga pra fixar o arduino ao protoboard e uma abraçadeira plástica para fixar o protoboard ao chassis.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-JDJAEyBhNBavXlzDOxv7JOWH_-xrXpZXbSk2N3v7gbxzvPEMgMYmIrD0uZcCXYPzIJ7wZ6MP51IEbGKm4uzkvBpm2gXQkYI1FAieaIs5btFVrYWzyCiLp1pYkGxOUR_3YayBBPnKtWE/s1600/IMG_20120411_173145.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-JDJAEyBhNBavXlzDOxv7JOWH_-xrXpZXbSk2N3v7gbxzvPEMgMYmIrD0uZcCXYPzIJ7wZ6MP51IEbGKm4uzkvBpm2gXQkYI1FAieaIs5btFVrYWzyCiLp1pYkGxOUR_3YayBBPnKtWE/s320/IMG_20120411_173145.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Robô seguidor de luz - final</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk2tKLaanNdicXuQHlET4N1c4mCY8FkB1XomNOpFLom4hncjFPqcHuq38eLrP_8LfQkZxxArzBJzGk6LLABv0trCCfw5ofrmJB5KGL7gx84AhbWKrK2rfkJZplPxve6jO-lhHBTQtNx3E/s1600/IMG_20120411_173155.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk2tKLaanNdicXuQHlET4N1c4mCY8FkB1XomNOpFLom4hncjFPqcHuq38eLrP_8LfQkZxxArzBJzGk6LLABv0trCCfw5ofrmJB5KGL7gx84AhbWKrK2rfkJZplPxve6jO-lhHBTQtNx3E/s320/IMG_20120411_173155.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Robô seguidor de luz - final</td></tr>
</tbody></table>
<br />
Agora com o robô completo refaça os testes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/b4snftuWy58?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
Perceba que o robô tem uma reação um pouco demorada, portanto mude a última linha de código do <b>passo 11</b> para delay(100); e veja como a resposta aos comandos fica mais rápido.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/9X2cEwb-bqY?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<br />
<h2 style="text-align: -webkit-auto;">
Passo 13 - FINAL</h2>
<br />
Após alguns testes em campo, percebi que o robô não conseguia fazer as curvas direito. Isso acontecia porque o ângulo que o servo rotacionava era muito alto, então fiz alguns ajustes e cheguei a um ponto bom. Você pode fazer isso com o seu também, faça vários testes e veja qual o melhor ângulo de posicionamento possível. Segue o código final:<br />
<br />
<br />
<blockquote class="tr_bq">
#include <span style="text-align: -webkit-auto;"><servo.h></span><br />
int pinLDRDir = 5; // pino analógico 5 direita<br />
float LDRDir = 0; // receberá o valor do LDR da direita<br />
int pinLDREsq = 0; // pino analógico 0 esquerda<br />
float LDREsq = 0; // receberá o valor do LDR da esquerda<br />
Servo servo1;<br />
int pos = 90;<br />
void setup() {<br />
servo1.attach(9);<br />
servo1.write(pos);<br />
}<br />
void loop(){<br />
LDRDir = analogRead(pinLDRDir);<br />
LDREsq = analogRead(pinLDREsq);<br />
<br />
//Se 75% de LDREsq >= LDRDir - Vira a esquerda<br />
if( LDREsq*0.75 >= LDRDir){<br />
pos = 60;<br />
}<br />
//Senão se 75% de LDRDir >= LDREsq - Vira a direita<br />
else if( LDRDir*0.75 >= LDREsq){<br />
pos = 120;<br />
}<br />
else{<br />
pos = 90;<br />
}<br />
servo1.write(pos);<br />
delay(100);<br />
}</blockquote>
<br />
<br />
<h2>
Veja o Making Off</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/g30v8Y7H4sk?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<g:plusone annotation="inline"></g:plusone>
<script type="text/javascript">
window.___gcfg = {lang: 'pt-BR'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
<br />
<br />
Outras fotos....<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Ap3UHIWL5cDoHjTNHM9rx4-hBsViNpxXwMI0F8ZKLAouVMrr9Qo-Zl29-DwrvZfmQLftiLc3I7liNzb77cETMwUG2gLcRhgyiaQJc_AHaIuuGKouDyKoYTYnrG-QlCatQhxDrj4K154/s1600/IMG_1933.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Ap3UHIWL5cDoHjTNHM9rx4-hBsViNpxXwMI0F8ZKLAouVMrr9Qo-Zl29-DwrvZfmQLftiLc3I7liNzb77cETMwUG2gLcRhgyiaQJc_AHaIuuGKouDyKoYTYnrG-QlCatQhxDrj4K154/s400/IMG_1933.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-KGxNv3rM6PR1C0GEASTaletkBq2IWIb6D6lyT2nMUqzUCRVB15zR0PUmiGh-N0Uc_FsZP0brbOP21oFPLtJeTEnOIEzP3J5ytxp4BpvJAcyWbpR13yTldNQ-FXZDYjnjw8QeaKfzEyc/s1600/IMG_1936.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-KGxNv3rM6PR1C0GEASTaletkBq2IWIb6D6lyT2nMUqzUCRVB15zR0PUmiGh-N0Uc_FsZP0brbOP21oFPLtJeTEnOIEzP3J5ytxp4BpvJAcyWbpR13yTldNQ-FXZDYjnjw8QeaKfzEyc/s400/IMG_1936.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdHl8GhdNvAPBb3BHMKdW7DqY-0XEg7VoGnPdW9X45h22opKkgT6Hgw5uQ-UFuP0eWMaOD-_s8BhYYUeEQ9YtmpntuXHcfYjYWeQcrT_l3LuOoTtpza7Is6fACDiAhM-AGaoMghXaUpS4/s1600/IMG_1940.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdHl8GhdNvAPBb3BHMKdW7DqY-0XEg7VoGnPdW9X45h22opKkgT6Hgw5uQ-UFuP0eWMaOD-_s8BhYYUeEQ9YtmpntuXHcfYjYWeQcrT_l3LuOoTtpza7Is6fACDiAhM-AGaoMghXaUpS4/s400/IMG_1940.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6tSdoFNM9ciKp-BdPVJ5zL-zw4G5A9s9RUq7-_QllTEHM7ovD1GV8xxjX-wCJ3QwrrKm-AedC-k1YF6hp4pzXm3tbULEFIXAoVjotXhpqZvYURg3tPDskarpeyvuTY1MCA4UeBIFhjG8/s1600/IMG_1941.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6tSdoFNM9ciKp-BdPVJ5zL-zw4G5A9s9RUq7-_QllTEHM7ovD1GV8xxjX-wCJ3QwrrKm-AedC-k1YF6hp4pzXm3tbULEFIXAoVjotXhpqZvYURg3tPDskarpeyvuTY1MCA4UeBIFhjG8/s400/IMG_1941.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDN3Ows73XBa4SP-E7ebjkB71auFlXVo0aBBg_JNqYYHg5-LidhEMPo-HuDbcjZ9KAN5FAyygoTL7qGY-50yRvsoglIy8zK-mKQAcwwddpk-Jx8EgNQrIq2oG2ICJaZRiENGjcdTWr2s/s1600/IMG_1944.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDN3Ows73XBa4SP-E7ebjkB71auFlXVo0aBBg_JNqYYHg5-LidhEMPo-HuDbcjZ9KAN5FAyygoTL7qGY-50yRvsoglIy8zK-mKQAcwwddpk-Jx8EgNQrIq2oG2ICJaZRiENGjcdTWr2s/s400/IMG_1944.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5w01-_4xZdLsixgYm74YxvzJ44PD9JGwtHxa2JAjgs1K2YE4N-x5YYuHAPLAu4XKi1NP3pX7Aqn3dM3NuOVk2pDdq7tezh88o-aujsNVhPe4v6XEaX24ByLmxbJ6U7TEu_ra-yaNaNe8/s1600/IMG_1948.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5w01-_4xZdLsixgYm74YxvzJ44PD9JGwtHxa2JAjgs1K2YE4N-x5YYuHAPLAu4XKi1NP3pX7Aqn3dM3NuOVk2pDdq7tezh88o-aujsNVhPe4v6XEaX24ByLmxbJ6U7TEu_ra-yaNaNe8/s400/IMG_1948.JPG" width="296" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoy4mm3klR0DYEABECzXXQoHQY2TEhsnBOiaptyUI6UPA8XajiLgZrSpIYadpN8ZjzIy4oJMnjcfIeO_PT5Oo0_JKSwJN_WyF5Rs2mX6Rg-YlZvIeDQkdbrAqSNTpWYIIZ-O_aNP5omhg/s1600/IMG_1952.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoy4mm3klR0DYEABECzXXQoHQY2TEhsnBOiaptyUI6UPA8XajiLgZrSpIYadpN8ZjzIy4oJMnjcfIeO_PT5Oo0_JKSwJN_WyF5Rs2mX6Rg-YlZvIeDQkdbrAqSNTpWYIIZ-O_aNP5omhg/s400/IMG_1952.JPG" width="400" /></a></div>
<br />
<br /></div>
</div>
<div style="text-align: justify;">
<br /></div>
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com22tag:blogger.com,1999:blog-2318934035096495020.post-31758553092604038222012-04-10T11:47:00.004-04:002012-04-26T16:07:39.407-04:00Arduino + LDR (Light Dependent Resistor)<br />
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<br />
<div style="text-align: justify;">
Olá povo, hoje vou fazer um pequeno exemplo de como usar um LDR (Light Dependent Resistor, ou em português Resistor Dependente de Luz).<br />
<br /></div>
<div style="text-align: justify;">
Um LDR é um tipo de resistor cuja resistência varia conforme a intensidade de luz que incide sobre sua superfície. Portanto o LDR "transforma luz em valores de resistência".</div>
<br />
<div style="text-align: justify;">
A idéia é poder controlar a intensidade de um LED de acordo com a intensidade de luz que incide sobre o LDR, ou seja, quanto mais luz tivermos no local, menor será o brilho do LED e quanto mais escuro, maior será o brilho do LED.</div>
<br />
Bom... então segue a lista de componentes:<br />
<br />
1 - Arduino Duemilanove<br />
2 - LDR 5mm<br />
3 - LED<br />
4 - Resistor de 10K<br />
5 - Resistor 220<br />
6 - Fios<br />
<br />
O primeiro passo é fazer as devidas ligações como no circuito abaixo:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg39AK3voobJyiKDP0jGMFo68Xl1_OIaOlq30j7ka-8amUb7_bnIG2l_z8e72uVpOC81A89PyCHP1DEiR7NIVwlEIx87CtxhOHBuuCa3fJu4_pn4EUIeuypKvvmaiMDDvPlOO6vlNeAYmg/s1600/ldr_bb.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg39AK3voobJyiKDP0jGMFo68Xl1_OIaOlq30j7ka-8amUb7_bnIG2l_z8e72uVpOC81A89PyCHP1DEiR7NIVwlEIx87CtxhOHBuuCa3fJu4_pn4EUIeuypKvvmaiMDDvPlOO6vlNeAYmg/s320/ldr_bb.jpg" /></a></div>
<br />
<br />
<br />
em seguida o código:<br />
<br />
<blockquote class="tr_bq">
/*<br />
***Arduino + LDR***<br />
José Maria DVD<br />
*/<br />
int pinoLED = 9; // pino digital 9<br />
int pinoLDR = 5; // pino analógico 5<br />
int LDR = 0; // receberá o valor do LDR<br />
int LED = 0; // valor do LED<br />
void setup() {<br />
Serial.begin(9600);<br />
}<br />
void loop(){<br />
//O valor lido da porta será no intervalo (0 a 1023)<br />
LDR = analogRead(pinoLDR);<br />
//Mostra na serial<br />
Serial.print("LDR = ");<br />
Serial.println(LDR);<br />
//Ajuste de valores para um melhor filtro<br />
if(LDR > 600) LDR = 600;<br />
else if(LDR < 100) LDR = 100;<br />
//Tranforma uma escala de valores em outra (255 a 0).<br />
LED = map(LDR, 100, 600, 255, 0);<br />
analogWrite(pinoLED, LED);<br />
delay(50);<br />
}</blockquote>
Resultado final:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKdiCdN-En_z1YryTGdCFrtxzuSM6gX1XE3QIqPEdpMykPSkcHPRIRBzMdqPjR1ggAp0cN92CVAhq6WI7DTS9DLoIwWWXeJFnGpgtZY3xZ1xAzXv-lfpq2chCEKkQMtIpi153F3qbHDPI/s1600/LDR_1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKdiCdN-En_z1YryTGdCFrtxzuSM6gX1XE3QIqPEdpMykPSkcHPRIRBzMdqPjR1ggAp0cN92CVAhq6WI7DTS9DLoIwWWXeJFnGpgtZY3xZ1xAzXv-lfpq2chCEKkQMtIpi153F3qbHDPI/s400/LDR_1.jpg" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr5M0LNX5gQyaJ3gPWiYdRLD60SYF19n2w7meoJ8x1yoqlhG0azJ7lwdEb6cOfmZtoQJCdRMg3GVMztl452h2mFpyv9EIcnXvivaPlgfPRGLf4b4pa6DbE8m8Ovl9sXSjQix6ftaKEct0/s1600/LDR_2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr5M0LNX5gQyaJ3gPWiYdRLD60SYF19n2w7meoJ8x1yoqlhG0azJ7lwdEb6cOfmZtoQJCdRMg3GVMztl452h2mFpyv9EIcnXvivaPlgfPRGLf4b4pa6DbE8m8Ovl9sXSjQix6ftaKEct0/s400/LDR_2.jpg" /></a></div>
<br />
<br />
Veja o vídeo do funcionamento.<br />
<br />
<div style="text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/_mkLZhRrhto/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/_mkLZhRrhto?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" />
<param name="bgcolor" value="#FFFFFF" /><embed width="320" height="266" src="http://www.youtube.com/v/_mkLZhRrhto?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash"></embed></object></div>
<br />
<br />
<br />
<b>Observações e Comentários: </b><br />
<b><br />
</b><br />
1 - Você deverá fazer alguns ajustes dependendo da intensidade de luz no ambiente. No meu caso precisei ajustar a seguinte linha de código:<br />
<br />
<br />
<blockquote class="tr_bq">
//Ajuste de valores para um melhor filtro<br />
if(LDR > 600) LDR = 600;<br />
else if(LDR < 100) LDR = 100;<br />
//Tranforma uma escala de valores em outra (255 a 0).<br />
LED = map(LDR, 100, 600, 255, 0);</blockquote>
Normalmente o valor do LDR é de 0 a 1023 no entanto com os testes feito no ambiente, observei que o valor variava de 50 a 700. Portanto optei por diminuir o intervalo (100 a 600) e com isso obtive um resultado final mais concreto(o LED chegava a apagar totalmente).<br />
<br />
2 - Aconselho estudar um pouco sobre a função <a href="http://arduino.cc/en/Reference/Map" target="_blank">map</a>, com ela boa parte de seus problemas serão resolvidos.<br />
<br />
3 - O resistor de 10k é para o LDR e o de 220 é para o LED. Aconselho também estudar um pouco sobre <b>Divisor de Tensão</b>.<br />
<br />
Até a próxima.<br />
<br />
<g:plusone annotation="inline"></g:plusone>
<script type="text/javascript">
window.___gcfg = {lang: 'pt-BR'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
<br />
<br />
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com7tag:blogger.com,1999:blog-2318934035096495020.post-20381089833768496992012-04-02T18:35:00.001-04:002012-04-27T10:53:36.368-04:00Arduino + Servo Motor<br />
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<br />
<br />
Olá pessoal, hoje vou mostrar como utilizei o meu arduino para controlar um servo motor.<br />
<br />
Estou usando:<br />
1 - Arduino Duemilanove<br />
2 - Servo Motor HX5010<br />
3 - Bateria<br />
4 - Fios<br />
<br />
O primeiro passo é montar o circuito abaixo:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvr-DY9Yb2Oi7Shy2aLDfgbUmv1sdDAf7syA1BlSE0eHqgl6J5k-Sn752VbPOm46YjQDdicJEiej7XC-p4CbkdbfokxR7yR0bH1FpT6dM1SxwXpM7ENsMc8auOeIBj48R9ZDbkbF06wbI/s1600/servo.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvr-DY9Yb2Oi7Shy2aLDfgbUmv1sdDAf7syA1BlSE0eHqgl6J5k-Sn752VbPOm46YjQDdicJEiej7XC-p4CbkdbfokxR7yR0bH1FpT6dM1SxwXpM7ENsMc8auOeIBj48R9ZDbkbF06wbI/s320/servo.jpg" /></a></div>
<br />
<br />
<div style="text-align: justify;">
<b>OBS.: Dependendo do servo que esteja trabalhando, será necessário utilizar uma fonte externa para alimentação, o círculo vermelho indica onde deverá ser inserido. No meu caso usei uma bateria.</b></div>
<br />
<div style="text-align: justify;">
Bom, a ideia é que o servo se mova para a direita ou para a esquerda, usando a porta serial como parâmetro de entrada. Para fazer o controle do servo utilizaremos um biblioteca nativa do arduino chamada Servo.
</div>
<br />
<br />
<div style="text-align: justify;">
OBS.: Para quem não sabe, o servo possui 180º de movimento(0 até 179 = 180 posições). Portanto usaremos uma variável chamada pos para fazer esse controle. Utilizaremos também uma outra chamada graus, que será o nosso incremento de posição.
</div>
<br />
<br />
<div style="text-align: justify;">
Nesse caso a variável pos possui valor inicial 90 e a varável graus possui valor 10. Com isso teremos para a varável pos um valor mínimo de 0 e máximo de 170. Caso queira ter uma melhor precisão, basta diminuir o valor de graus.</div>
<br />
Segue o código:<br />
<br />
<blockquote class="tr_bq">
/*<br />
** Servo **<br />
José Maria DVD<br />
*/<br />
#include <Servo.h><br />
Servo servo1;<br />
//variavel de posicao do servo, inicialmente com 90(meio), já que o servo varia entre 0-179 graus<br />
int pos = 90;<br />
int graus = 10;<br />
char lado;<br />
void setup()<br />
{<br />
servo1.attach(9); // Porta de dados do servo<br />
Serial.begin(9600); // inicializa porta serial<br />
}<br />
void loop(){<br />
lado = Serial.read();<br />
//verifica a letra e se chegou ao valor máximp da posição, senão incrementa x graus<br />
if (lado == 'l' && pos < (180-graus) ){<br />
pos += graus;<br />
}<br />
//verifica a letra e se chegou ao mínimo da posição, senão diminiu x graus<br />
else if (lado == 'r' && pos >= graus){<br />
pos -= graus;<br />
}<br />
lado = 'n';<br />
//muda de posicao<br />
servo1.write(pos);<br />
//delay de 350ms;<br />
delay(350);<br />
}</blockquote>
<br />
Em seguida salve e digite Ctrl + U ...<br />
<br />
Trabalho Final:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUqx8_gcF3Z1jybyd5om4B8v-BKmWZbDgALneaIPdhVCs-P1_ux1mbYXNJMLoK7suNp_EJMeY21PtzvhNTVhGOD-yqw7CXjNCJXuNoKN_osOpCB4yYvr9Guw7BNp1bK8AXoj4F2EtoMf4/s1600/servo_arduino.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUqx8_gcF3Z1jybyd5om4B8v-BKmWZbDgALneaIPdhVCs-P1_ux1mbYXNJMLoK7suNp_EJMeY21PtzvhNTVhGOD-yqw7CXjNCJXuNoKN_osOpCB4yYvr9Guw7BNp1bK8AXoj4F2EtoMf4/s320/servo_arduino.jpg" width="320" /></a></div>
<br />
Um vídeo para melhor visualização:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ytKw03j5b0o?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Até a próxima.
<br />
<br />
<g:plusone annotation="inline"></g:plusone>
<script type="text/javascript">
window.___gcfg = {lang: 'pt-BR'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br />
<br />Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-34718651017038930582012-03-23T11:14:00.001-04:002012-04-26T15:22:00.147-04:00Arduino + LCD<br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br />
Olá pessoal, hoje vou mostrar um Hello World ! usando Arduino + LCD (16x2).<br />
<br />
Estou usando:<br />
<br />
1 - Arduino Duemilanove;<br />
2 - LCD 16x2;<br />
3 - Potenciômetro B10K<br />
4 - Protoboard<br />
5 - Fios<br />
<br />
Bom, O primeiro passo é montar o circuito, para isso use a imagem abaixo.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw3SlFWb2lcSsyKchj9_OcFlwHYdp3Cwr-FaBCqYnZPhh4V0FbHjpqbJQU_QGBkId0et8NxIM9ywZ-dH4CqgEncwMSR8RggAvEWOmh47XjXw-sUqp6GdvnVU4M5cbWo8C7ZdiAOht9sYY/s1600/Arduino_LCD.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw3SlFWb2lcSsyKchj9_OcFlwHYdp3Cwr-FaBCqYnZPhh4V0FbHjpqbJQU_QGBkId0et8NxIM9ywZ-dH4CqgEncwMSR8RggAvEWOmh47XjXw-sUqp6GdvnVU4M5cbWo8C7ZdiAOht9sYY/s400/Arduino_LCD.png" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
O segundo passo é a codificação<br />
<br />
<br />
/*<br />
** DISPLAY LCD 16X2 **<br />
José Maria DVD<br />
*/<br />
<br />
#include <liquidcrystal.h></liquidcrystal.h><br />
<br />
//Inicializar o LCD<br />
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);<br />
<br />
void setup() {<br />
//Setup do LCD com o númnero de colunas x linhas<br />
lcd.begin(16, 2);<br />
lcd.setCursor(0, 0);<br />
lcd.print("Hello World!");<br />
//Pular para a coluna 1 linha 1<br />
lcd.setCursor(1, 1);<br />
lcd.print("o");<br />
lcd.setCursor(0, 1);<br />
lcd.print("_");<br />
}<br />
<br />
void loop(){<br />
delay(1000);<br />
lcd.setCursor(2, 1);<br />
lcd.print('/');<br />
delay(1000);<br />
lcd.setCursor(2, 1);<br />
lcd.print("_");<br />
}<br />
<br />
Em seguinda salve e digite Ctrl + U ...<br />
<br />
Caso não consiga visualizar nada, basta ajustar o potenciômetro.<br />
<br />
Trabalho final :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVhZ_3qlLfoK_ArZrUJOycnc2UH2v51zQXwPvqdyrE_2uGBIccFqym8EHZ59kpLo5LZYbKD0W4TvIaNOwvCYkbJAtwVrpLeo6PEW0E_wnL_TEE-R4y41JD3uQ8sgMNZ9b_rdu-jZeP8ws/s1600/final.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVhZ_3qlLfoK_ArZrUJOycnc2UH2v51zQXwPvqdyrE_2uGBIccFqym8EHZ59kpLo5LZYbKD0W4TvIaNOwvCYkbJAtwVrpLeo6PEW0E_wnL_TEE-R4y41JD3uQ8sgMNZ9b_rdu-jZeP8ws/s320/final.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<g:plusone annotation="inline"></g:plusone>
<script type="text/javascript">
window.___gcfg = {lang: 'pt-BR'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
Até a próxima.
<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com1tag:blogger.com,1999:blog-2318934035096495020.post-6612690509260759522012-02-01T09:59:00.001-04:002012-02-01T09:59:14.016-04:00ArduinoComeçando alguns trabalhos com arduino.<br />
<br />
Em breve alguns posts.<br />
<br />
Segue o link do site oficial <a href="http://www.arduino.cc/">http://www.arduino.cc/</a>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-90413808047489427652011-04-08T15:46:00.002-04:002011-04-08T15:46:31.750-04:00Comemoração pelos 20 anos do Linux<code><a href="http://www.linuxfoundation.org/%2020th" target="_blank"><img alt="I'll be celebrating 20 years of Linux with The Linux
Foundation!" border="0" height="250" src="http://www.linuxfoundation.org/20th/images/lf_linux20_webbadge.png" width="300" /></a></code>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-63358579996915550402010-06-25T19:02:00.006-04:002012-05-03T17:24:10.349-04:00Tutorial : PyQt no Windows<script type="text/javascript"><!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br />
<div style="text-align: justify;">
Após 3 anos programando em Linux, tive a necessidade de trabalhar no windows (trabalho). Não queria abandonar o mundo open source tão facilmente, então tentei buscar soluções para que futuramente eu pudesse portar a aplicação para Linux. </div>
<br />
<div style="text-align: justify;">
Assim sendo, vou mostrar como instalar o Qt, Python e PyQt no windows para então trabalharmos.</div>
<br />
<div style="color: #660000; text-align: justify;">
<span style="font-size: large;"><i><b><span style="color: #444444;">Introdução</span></b></i></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esse tutorial foi feito com os seguintes Programas-Versões:</div>
<div style="text-align: justify;">
<ul>
<li>Qt - 4.6.2</li>
<li>Qt Creator - 1.3.1 </li>
<li>Python - 2.6.5</li>
<li>MinGW</li>
<li>SIP-4.10.2</li>
<li>PyQt-win-gpl-4.7.3</li>
</ul>
<div style="color: #444444; text-align: justify;">
<span style="font-size: large;"><i><b>Downloads e Instalação</b></i></span></div>
<br />
<b style="background-color: white; color: #660000;"><span style="font-size: large;">Qt ---------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------------------------------</span></b><br />
<br />
Caso você não tenha o Qt, você pode baixar o SDK (QtCreator + Qt) em <a href="http://qt.nokia.com/downloads">http://qt.nokia.com/downloads</a> na aba LGPL.<br />
Após o download, faça a instalação típica do windows (.exe) e escolha a versão com MinGW, caso você não tenha.<br />
O Qt será intalado em C:\Qt\<version> como Default</version><br />
<br />
<b style="background-color: white; color: #660000;"><span style="font-size: large;">Python </span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------------------------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;"></span></b><br />
<br />
Caso você não tenha o Python, você pode baixar o binário em <a href="http://python.org/download/">http://python.org/download/</a> e instalar.<br />
O python será intalado em C:\Python26<br />
<br />
<b style="background-color: white; color: #660000;"><span style="font-size: large;">Path </span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------------------------------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;"></span></b><br />
<br />
Agora você precisa sertar a PATH do sistema para realizar os próximos passos.<br />
Siga os Passos: INICIAR>>Painel de Controle>>Sistema>>Configurações Avançadas do Sistema(Lateral direita - Windows Vista)>>Variáveis de Ambiente.<br />
Vá em Váriaveis de Sistema (parte de baixo) e edite a varável "Path" incluindo a linha:<br />
<ul>
<li>;C:\Qt\2010.02.1\qt\bin;C:\Qt\2010.02.1\mingw\bin</li>
</ul>
Essa linha pode ser diferente para cada instalação, portanto, verifique onde o "qmake.exe" foi instalado, no meu caso está em C:\Qt\2010.02.1\qt\bin\. o mingw, segue o mesmo padrão do "qmake.exe", no meu caso o mingw foi instalado junto com o Qt, pontanto está em C:\Qt\2010.02.1\mingw\bin\.<br />
<br />
Para que a PATH tenha validade, reinicie seu computador.<br />
<br />
Após reiniciar, vá no prompt de comando: INICIAR>>cmd.exe para verificar se a path foi digitada corretamente. Verifique se os proximos dois comandos são ativados:<br />
g++ -v <br />
qmake -v<br />
<br />
Caso aconteça algum erro, a path não foi digitada correatemnte, ou o programa naum se encontra no lugar especificado.<br />
<br />
<b style="background-color: white; color: #660000;"><span style="font-size: large;">SIP </span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------------------------------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;"></span></b><br />
<br />
Faça o download do SIP em <a href="http://www.riverbankcomputing.co.uk/software/sip/download%20">http://www.riverbankcomputing.co.uk/software/sip/download</a> , faça o unzip e siga os próximos passos para instalação:<br />
INICIAR >> cme.exe<br />
C:\Desktop\sip-4.10.2\ > C:\Python26\python configure.py -p win32-g++<br />
C:\Desktop\sip-4.10.2\ > mingw32-make<br />
C:\Desktop\sip-4.10.2\ > mingw32-make install<br />
<br />
Verifique se os arquivos foram adicionados corretamente:<br />
C:\Python26\include\sip.h<br />
C:\Python25\Lib\site-packages\sip.pyd</div>
<div style="text-align: justify;">
C:\Python25\Lib\site-packages\sipconfig.py</div>
<div style="text-align: justify;">
C:\Python25\Lib\site-packages\sipconfig.pyc </div>
<div style="text-align: justify;">
C:\Python25\Lib\site-packages\sipdistutils.py</div>
<div style="text-align: justify;">
C:\Python25\sip.exe</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b style="background-color: white; color: #660000;"><span style="font-size: large;">PyQt </span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-----------------------------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;"></span></b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br />
Faça o download do PyQt em <a href="http://www.riverbankcomputing.co.uk/software/pyqt/download">http://www.riverbankcomputing.co.uk/software/pyqt/download</a> faça o unzip e siga os próximos passos:<br />
<br />
INICIAR >> cme.exe<br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > C:\Python26\python configure.py -w<br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > ..........Configurando............<br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > Do you accept the terms of the license? yes<br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > ..........Configurando............ <br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > mingw32-make<br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > ..........Configurando............ <br />
C:\Desktop\PyQt-win-gpl-4.7.3\ > mingw32-make install<br />
<br />
Após a instalção, verifique os arquivos:<br />
<br />
<br />
C:/Python25/Lib/site-packages/PyQt4<br />
C:/Python25/Lib/site-packages/PyQt4/pyqtconfig.py<br />
C:/Python25/Lib/site-packages/PyQt4/Qt.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtAssistant.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtCore.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtDesigner.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtGui.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtNetwork.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtOpenGL.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtScript.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtSql.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/QtSvg.pyd<br />
C:/Python25/Lib/site-packages/PyQt4/etc..........<br />
C:/Python25/pylupdate4.exe<br />
C:/Python25/pyrcc4.exe<br />
C:/Python25/pyuic4.bat<br />
C:/Python25/sip<br />
C:/Python25/sip/PyQt4<br />
C:/Python25/sip/PyQt4/Qt<br />
C:/Python25/sip/PyQt4/Qt/Qtmod.sip<br />
C:/Python25/sip/PyQt4/QtAssistant<br />
C:/Python25/sip/PyQt4/QtCore<br />
C:/Python25/sip/PyQt4/QtDesigner<br />
C:/Python25/sip/PyQt4/QtGui<br />
C:/Python25/sip/PyQt4/QtNetwork<br />
C:/Python25/sip/PyQt4/etc..........<br />
<br />
Pronto, PyQt Foi intalado com sucesso !!!!!!!!!!!!!!<br />
<br />
<br />
<div style="text-align: justify;">
<b style="background-color: white; color: #660000;"><span style="font-size: large;">Teste </span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">---------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-------</span></b><b style="background-color: white; color: #660000;"><span style="font-size: large;">-----------------------------</span></b><br />
<br />
Abra o pythone faça o teste:<br />
>>> from PyQt4.Qt import *<br />
>>> from sip import *<br />
>>> print SIP_VERSION_STR, QT_VERSION_STR, PYQT_VERSION_STR<br />
4.10.2 4.6.2 4.7.3<br />
>>> <br />
<br />
<br />
<br />
<br />
Agora você pode ver alguns exemplos dentro da pasta do PyQt.<br />
<br />
Bom Trabalho.<br />
<br />
<br />
<g:plusone annotation="inline"></g:plusone>
<script type="text/javascript">
window.___gcfg = {lang: 'pt-BR'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
<a href="http://www.diotavelli.net/PyQtWiki/BuildPyQt4Windows">Fonte</a> <br />
<br />
<br />
<script type="text/javascript">
<!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
</div>
</div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com8tag:blogger.com,1999:blog-2318934035096495020.post-61320497145911148272010-04-23T10:15:00.003-04:002010-04-23T10:22:44.683-04:00FLISoL 2010<p style="text-align: justify;">No dia 24 de Abril de 2010(sábado), será realizado, em toda a América-latina, o Festival Latino-Americano de Instalação de Software, FLISoL.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">Evento de tradição em manaus contará com palestras, oficinas, mesa redonda e mini-cursos relacionados ao mundo do Software Livre. Para você que gosta, curte ou qquer aprender sobre esse outro mundo do software, não perca esta oportunidade.</p> O prazo para inscrições do FLISoL 2010 vai até o dia <strong>23/04/2010</strong> às <strong>23:59</strong>.<div class="PostContent"> <p>O Cadastro pode ser realizado no link <a href="http://am.softwarelivre.org/flisol/?page_id=3">http://am.softwarelivre.org/flisol/?page_id=3</a>.</p> <p>Não esqueça de no dia do evento levar os 2kg de alimento não perecível que serão doados a casa dos portadores de hanseníase no bairro da Alvorada.</p><p>Para maiores informações consulte <a href="http://am.softwarelivre.org/flisol/">http://am.softwarelivre.org/flisol/</a></p><p>O que vai acontecer ? consulte o <a href="http://am.softwarelivre.org/flisol/cronograma.html">cronograma</a><br /></p><p></p></div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-79717174487217499452010-03-18T19:24:00.003-04:002010-03-18T19:44:39.173-04:00RS232 Cabo Serial Espião<div style="text-align: justify;">Bom galera, hpa um tempo que não posto, pois estava de férias e também por falta de informação relevante.<br /><br />Ultimamente tenho trabalhado com "C" pra captura de dados via serial de máquinas. Bom, nunca tinha trabalhado nessa área, estou gostanto me saindo muito bem.<br /><br />Como havia dito, preciso capturar dados de máquinas via serial, no qual eu e o bruno conseguimos tranquilamente, pra isso precisamos montar alguns cabos, exemplo:<br /><br />DB9(Fêmea) -> DB9(Fêmea)<br />DB9(Macho) -> DB9(Macho)<br />DB9 -> DB25<br /><br />entre outros...<br /><br />sendo o normal DB9(Fêmea) -> DB9(Macho), aquele que todo mundo conhece.<br /><br />No entanto nos deparamos com uma máquina no qual o cabo serial está comunicando-se com um outro computador e não pode ser desplugado, pra isso precisavamos criar um cabo serial espião, onde passamos uns 4 dias tentando., até acharmos o modelo abaixo:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6bVsIrtjq-3TjWRM7uAQN4-LMQiW7KmvqCGn-UqpCNqJU0kd4d1w0tlrEwCzMA7_3Pj_4MSmSCnrvri7TJufWSOT9-NKG5h4_qV4kOItiV0ZUXoXj8f_gz-nOuCTzDPLhpABBqmtWKaU/s1600-h/en_db9_monitor.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 195px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6bVsIrtjq-3TjWRM7uAQN4-LMQiW7KmvqCGn-UqpCNqJU0kd4d1w0tlrEwCzMA7_3Pj_4MSmSCnrvri7TJufWSOT9-NKG5h4_qV4kOItiV0ZUXoXj8f_gz-nOuCTzDPLhpABBqmtWKaU/s320/en_db9_monitor.png" alt="" id="BLOGGER_PHOTO_ID_5450122206569474178" border="0" /></a><br />Após feito o cabo, conseguimos capturar os dados enviado.<br /><br /><a href="http://www.lammertbies.nl/comm/cable/RS-232-spy-monitor.html#intr">Fonte: </a><br /></div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-41151512253967232342010-02-04T15:12:00.003-04:002010-02-04T15:47:19.745-04:00Twittando via linha de comando com TTYtterNo post anterior, mostrei como twittar via linha de comando com curl. Agora vou mostrar como usar o twitter de uma me TTYtter.<br /><br />Primeiramente vamos baixar o TTYtter:<br /><span style="color: rgb(255, 0, 0);" class="kw2">sudo</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="kw2">wget</span><span style="color: rgb(255, 0, 0);"> http:</span><span style="color: rgb(255, 0, 0);" class="sy0">//</span><span style="color: rgb(255, 0, 0);">www.floodgap.com</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">software</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">ttytter</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">ttytter.txt </span><span style="color: rgb(255, 0, 0);" class="re5">-O</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">usr</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">local</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">bin</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">ttytter</span><br /><br />Permissão de Execução:<br /><span style="color: rgb(255, 0, 0);" class="kw2">sudo</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="kw2">chmod</span><span style="color: rgb(255, 0, 0);"> +x </span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">usr</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">local</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">bin</span><span style="color: rgb(255, 0, 0);" class="sy0">/</span><span style="color: rgb(255, 0, 0);">ttytter</span><br /><br />Criar um Alias:<br /><span style="color: rgb(255, 0, 0);">cd /~</span><br /><span style="color: rgb(255, 0, 0);" class="kw3">echo</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="re5">-e</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="kw3">alias</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="re2">ttytter</span><span style="color: rgb(255, 0, 0);">=</span><span style="color: rgb(255, 0, 0);" class="co3">\"</span><span style="color: rgb(255, 0, 0);">ttytter </span><span style="color: rgb(255, 0, 0);" class="re5">-user</span><span style="color: rgb(255, 0, 0);">=rodrigochiquito </span><span style="color: rgb(255, 0, 0);" class="re5">-ansi</span><span style="color: rgb(255, 0, 0);" class="co3">\"</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);" class="sy0">>></span><span style="color: rgb(255, 0, 0);"> .profile</span><br /><span style="color: rgb(255, 0, 0);">source .profile</span><br /><br />Pronto, agora so eh iniciar o TTYtter:<br /><span style="color: rgb(255, 0, 0);">ttytter</span><br /><br />Comandos:<br /><br /><dl><dt><tt>/help</tt> (<tt>/?</tt>) </dt><dd>Displays mad-k001 ASCII art. Oh, and a quick list of commands, secondarily speaking. </dd><dt><tt>/refresh</tt> (<tt>/r</tt>) </dt><dd>Thumps the background process to do another update for new tweets right away instead of waiting for the next one scheduled. Remember, Twitter only gives us the last twenty tweets, so you will therefore only get the last twenty too (important if you're watching the public timeline, or have a lot of friends). If nothing new is available, the background process will politely tell you so. (<tt>/thump</tt> is a synonym since I keep typing it.) </dd><dt><tt>/again</tt> (<tt>/a</tt>) </dt><dd>Displays the last twenty tweets from your timeline, even old ones, along with refreshing the most recent results from keywords and hashtags you may be tracking (if any). </dd><dt><tt>/again [username]</tt> (<tt>/a [username]</tt>) </dt><dd>Displays the last twenty tweets for user <tt>username</tt> (sans braces, of course). If the user doesn't exist, or is protected/otherwise not available to you, you will get an error message instead. <i>This command is synchronous and the foreground process will pause until the tweets are received or timed out.</i> </dd><dt><tt>/whois [username]</tt> (<tt>/w [username]</tt>) </dt><dd>Displays the Twitter "vital statistics" for the specified user, including number of people they follow and are followed by (<tt>f:</tt>), number of updates (<tt>u:</tt>), real name, location, description, URL and image/picture, along with (if you are not anonymous) if you already follow this user and if this user follows you. Their URL, if they have one, is loaded into the variable <tt>%URL%</tt> so you can substitute it in a tweet (see command history and substitution below), <tt>/short</tt>en it, or open it with <tt>/url</tt>. <p> If you specify a filter with <tt>-avatar</tt>, then the URL for the user's picture is passed to the specified shell command to operate upon it, including saving it, opening it in a window somewhere else, or even <a href="http://www.floodgap.com/software/ttytter/whois.txt">converting it to ASCII art</a>. See <a href="http://www.floodgap.com/software/ttytter/copts.html">Command-line options</a> for more. <i>This command is synchronous and the foreground process will pause until the data is received or timed out.</i> </p></dd><dt><tt>/wagain [username]</tt> (<tt>/wa [username]</tt>) </dt><dd>Combines <tt>/again</tt> followed by <tt>/whois</tt> (yes, the name is out of order, but it sounded better than <tt>/againw</tt>). </dd><dt><tt>/dmrefresh</tt> (<tt>/dm</tt>) </dt><dd>Thumps the background process to do another check for direct messages right away instead of waiting for the next one scheduled. Again, this is limited to the last twenty, if you are a particularly popular person to whisper to. See the section on direct messaging below. </dd><dt><tt>/dmagain</tt> (<tt>/dma</tt>) </dt><dd><tt>/again</tt>:<tt>/refresh</tt>::<tt>/dmagain</tt>:<tt>/dmrefresh</tt> </dd><dt><tt>/replies</tt> (<tt>/re</tt>) </dt><dd>Displays your last twenty <tt>@</tt> replies. This may be affected by your <a href="http://twitter.com/account/notifications"><b>Twitter account notifications</b></a> settings. <i>This command is synchronous and the foreground process will pause until the replies are received or timed out.</i> </dd><dt><tt>/reply [menu code] [tweet]</tt> (<tt>/re</tt>), <tt>/vreply [menu code] [tweet]</tt> (<tt>/vre</tt>), <tt>/thread [menu code]</tt> (<tt>/th</tt>) </dt><dd>This set of commands respectively replies directly to a tweet or direct message using threading if possible (the first using conventional replies; the second using a publicly visible reply a la "<tt>r @al3x Twitter API roxx</tt>"), and the last displays the thread a tweet is part of (if any). See the sections on tweet selection and DM selection below. </dd><dt><tt>/delete [menu code]</tt> (<tt>/del</tt>) </dt><dd>Deletes a tweet (only your own tweet -- nice try) or a direct message. See the sections on tweet and DM selection below. </dd><dt><tt>/favourite [menu code]</tt> (<tt>/fave</tt>, <tt>/f</tt>), <tt>/unfavourite [menu code]</tt> (<tt>/unfave</tt>, <tt>/unf</tt>) </dt><dd>Favourites or unfavourites a tweet, respectively. See the section on tweet selection below. </dd><dt><tt>/favourites</tt> (<tt>/faves</tt>, <tt>/fl</tt>) </dt><dd>Displays your most recent favourite tweets. <i>This command is synchronous and the foreground process will pause until the data is received or timed out.</i> </dd><dt><tt>/favourites [username]</tt> (<tt>/faves [username]</tt>, <tt>/fl [username]</tt>) </dt><dd>Displays someone else's most recent favourite tweets. <i>This command is synchronous and the foreground process will pause until the data is received or timed out.</i> </dd><dt><tt>/retweet [menu code]</tt> (<tt>/rt</tt>), <tt>/eretweet [menu code]</tt> (<tt>/ert</tt>), <tt>/fretweet [menu code]</tt> (<tt>/frt</tt>) </dt><dd>Retweets a tweet (direct messages, wisely, not allowed). <tt>/eretweet</tt> loads the tweet into the special substitution variable <tt>%RT%</tt> which you can use at the beginning or end of your next tweet; regular <tt>/retweet</tt> just sticks on <tt>RT @username:</tt> and sends it right away. If you really like the tweet, then <tt>/fretweet</tt> will favourite it for you at the same time as you retweet it. See the sections on tweet selection and command history/substitution below. </dd><dt><tt>/search [query]</tt> (<tt>/se</tt>) </dt><dd>Queries the Twitter Search API, as if you had typed it into the box on <a href="http://search.twitter.com/"><tt>search.twitter.com</tt></a>, and displays the most recent results. See the section on Search API integration below. <i>This command is synchronous and the foreground process will pause until the data is received or timed out.</i> </dd><dt><tt>/track [keywords]</tt> and <tt>/tron [keywords]</tt>, <tt>/troff [keywords]</tt>, <tt>/#[hashtag]</tt>, <tt>/notrack</tt> </dt><dd>Keyword and hashtag tracking (respectively: set your keywords, add a keyword, remove a keyword, shortcut for adding a hashtag, and cancel all tracking keywords). See the section on Search API integration below. </dd><dt><tt>/trends</tt> (<tt>/tre</tt>) </dt><dd>Asks the Twitter Search API for the most current trending topics. Displays them as <tt>/search</tt> and <tt>/tron</tt> commands (qq.v.) you can simply cut and paste to execute. See the section on Search API integration below. <i>This command is synchronous and the foreground process will pause until the data is received or timed out.</i> </dd><dt><tt>/versioncheck</tt> (<tt>/vcheck</tt>) </dt><dd>Pings the <tt>floodgap.com</tt> server (this one!) to see if you are using the most current version. </dd><dt><tt>/short</tt> (<tt>/sh</tt>) </dt><dd>Shortens a supplied URL (by default using the <a href="http://is.gd/"><tt>is.gd</tt></a> service, but may be compatible with others). The new shortened URL is displayed and you can substitute it at the beginning or end of subsequent tweets using <tt>%URL%</tt> (see command history and substitution). If you don't specify a URL, then the current value of <tt>%URL%</tt> is substituted. </dd><dt><tt>/url [menu code]</tt> </dt><dd>Opens the URL(s) specified in the tweet or direct message indicated by the selected menu code, according to the current <tt>-urlopen</tt> option. See the sections on tweet and DM selection below. If you don't specify a menu code, then the current value of <tt>%URL%</tt> is substituted (you can also use an arbitrary URL if you like). (Nota bene: While <tt>/url</tt> will accept UTF-8 characters as valid parts of a URL (damn you <tt>tinyarro.ws</tt>), that doesn't mean your underlying browser will.) </dd><dt><tt>/dump [menu code]</tt> (<tt>/du</tt>) </dt><dd>Dumps out the internal structure for the tweet referenced by the specified menu code (which, if only stored in <tt>TTYtter</tt>'s backing store, may omit fields irrelevant to <tt>TTYtter</tt>). This is mostly for debugging, but useful for people who want to grab URLs to individual tweets, as the URL for this particular tweet is placed into <tt>%URL%</tt> for additional use. </dd><dt><tt>/!</tt> </dt><dd>Allows you to enter a shell command from within <tt>TTYtter</tt>. This is run with whatever Perl thinks your shell is (inside <tt>system()</tt>); for example, <tt>/!ls</tt> displays the contents of the current working directory. Remember that this opens up subshells (on purpose), so you can't change, say, an environment variable this way and expect the Perl running <tt>TTYtter</tt> to see it. </dd><dt><tt>/history</tt> (<tt>/h</tt>) </dt><dd>Displays the last set of commands entered (see <a href="http://www.floodgap.com/software/ttytter/#history">Command history and substitution</a> below). </dd><dt><tt>/set [key] [value]</tt> (<tt>/s</tt>) and <tt>/print [key]</tt> (<tt>/p</tt>) </dt><dd>Allow setting and printing of command line options at runtime. Not all command line options can be changed. For more about this, see <a href="http://www.floodgap.com/software/ttytter/copts.html">Command-line options</a>. <p> If you type <tt>/print</tt> by itself with no key, the (visible) settable values are displayed. </p></dd><dt><tt>/me</tt> </dt><dd>For the IRC freaks. Simply echoed as a tweet, <tt>/me</tt> included. </dd><dt><tt>/ruler</tt> (<tt>/ru</tt>) </dt><dd>Prints a "ruler," 140 characters wide plus the size of the prompt, as a convenient visual aid. </dd><dt><tt>/quit</tt> (<tt>/q</tt>) </dt><dd>Leaves <tt>ttytter</tt>. Pressing CTRL-D or CTRL-C will also do this. It's preferable to use this command (or those keysequences) to exit <tt>ttytter</tt> because if you kill the console process outside of <tt>ttytter</tt>, the background process may not get cleaned up and will have to be killed separately. <tt>/exit</tt> and <tt>/bye</tt> are synonyms by popular request. <p> <tt>/quit</tt> immediately stops anything running in the background, including pending requests for new tweets or DMs. If you want to wait for these to complete, use <tt>/end</tt> (<tt>/e</tt>). </p></dd></dl><br /><br /><br />Para maiores informações:<br /><a href="http://www.floodgap.com/software/ttytter/">http://www.floodgap.com/software/ttytter/</a><br /><tt><br /></tt>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-37240761272324879932010-02-02T15:43:00.003-04:002010-02-02T16:13:30.952-04:00Twittando via linha de comandoBom, estava procurando como twittar via linha de comando no linux. esse tutorial foi retirado de um site que o laredo indicou...<br /><br /><br />Primeiro é necessário instalar o pacote:<span class="fullpost"><br /><span style="color: rgb(255, 0, 0);">sudo apt-get install curl</span><br /><br />Em seguida crie um script em /bin:<br /><span style="color: rgb(255, 0, 0);">sudo vim /bin/twitter.sh<br /><br /><span style="color: rgb(0, 0, 0);">Digite as seguintes linhas:</span><br /></span></span><span style="color: rgb(255, 0, 0);" class="fullpost">#!/bin/bash<br />curl -u USUARIO:SENHA -d status="$*" http://twitter.com/statuses/update.xml > /dev/null<br />echo "Mensagem Enviada!"</span><br /><br /><span style="color: rgb(0, 0, 0);">Trocando as palavras <span style="color: rgb(255, 0, 0);">USUARIO:SENHA</span> pelos seus respectivos valores referentes ao twitter.</span><br /><br />em seguida dê permissão:<br /><span class="fullpost"><span style="color: rgb(0, 102, 0);"><span style="color: rgb(255, 0, 0);">sudo chmod 755 /bin/twitter.sh</span><br /><br /><span style="color: rgb(0, 0, 0);">Caso /bin não esteja incluso no seu $PATH, inclua da seguinte forma:<br /><span style="color: rgb(255, 0, 0);">sudo vim /.bashrc</span></span></span></span><br /><br />e digite no final do arquivo:<br /><span style="color: rgb(255, 0, 0);">export PATH=/home/USER/bin/:$PATH</span><br /><br />salve o arquivo e por fim, no terminal:<br /><span style="color: rgb(255, 0, 0);">source /.bashrc</span><span class="fullpost"><br /><br />Pronto! basta testar. Abra o terminal e digite:<br /></span><span style="color: rgb(255, 0, 0);" class="fullpost">twitter.sh </span><span style="color: rgb(255, 0, 0);">Testando twitter via linha de comando</span><br /><br /><br />Espero que tenha ajudado alguem.<br /><br /><a href="http://tuxarena.blogspot.com/2009/12/how-to-post-to-tweeter-from-command.html">Fonte</a>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-2369507117263914882010-02-01T09:35:00.002-04:002010-02-01T10:52:56.812-04:00Instituto CERTI Amazônia esteve presente na FIAM 2009<span style="text-align: justify;"><p>Na avaliação dos organizadores, o evento conseguiu atingir o seu principal objetivo de contribuir para o desenvolvimento sustentável, gerando benefícios econômicos, sociais, científicos e ambientais para a região amazônica. A Feira também ganhou nova dimensão ao incorporar atividades com foco na responsabilidade social, ambiental e cultural. Além de superar o número de expositores em relação à edição anterior e apresentar novidades tecnológicas das empresas instaladas no Polo Industrial de Manaus (PIM), este ano a FIAM também bateu recordes da Rodada de Negócios e inovou na promoção de serviços ambientais e sociais.<br /> <br />Segundo a superintendente da Zona Franca de Manaus, Dra. Flávia Grosso, a cada ano a FIAM se fortalece e apresenta novidades para o público em geral e os empresários em particular.<br /><br />Neste ano, as principais novidades foram o Balanço Socioambiental e o Pavilhão Amazônia, espaço inédito destinado à cultura regional e à divulgação de produtos inovadores com base na matéria-prima amazônica. "O diferencial da FIAM é que ela não se restringe meramente a exposições de produtos, mas difunde o conhecimento, movimenta a ciência e realiza também ações na esfera social", disse a Superintendente da SUFRAMA.</p> </span> <p><strong>ICA apresentou seus Projetos Inovadores</strong><br /> <br />Durante a feira, o estande do Instituto CERTI Amazônia (Figura 01) recebeu aproximadamente 1.000 visitantes, interessados nas diferentes áreas de atuação destacadas, que incluiu processos produtivos, convergência digital e responsabilidade social. O público da Feira como um todo também prestigiou o evento mais uma vez em grande número, registrando mais de 100 mil visitantes ao longo dos cinco dias de programação.<br /><br /> </p><p align="center"><img src="http://www.labelectron.org.br/informativo/dezembro/fotos/9.jpg" width="450" height="349" /><br /> </p> <p align="center"><img src="http://www.labelectron.org.br/informativo/dezembro/fotos/8.jpg" width="400" height="319" /><br /></p> <br />O grande destaque do estande do ICA foram os projetos executados em 2009, como o Sistema Fábrica Visual, que está sendo operacionalizado em 3 diferentes clientes e configurações: Teikon, Jabil e PST. Outro destaque foi o PABX-IP, projeto financiado pela FINEP e Trópico Telecomunicações, que visa disponibilizar uma solução completa e robusta para telefonia fixa baseada em VoIP. Outros destaques foram os jogos eletrônicos educacionais, um para ensino de informática básica e outro referente a gestão de pequenos negócios. Estes dois últimos projetos tiveram o patrocínio da OI Futuro.<br /><p>A Feira também foi palco do lançamento da nova logomarca do Instituto CERTI Amazônia, que contém um visual mais moderno e compatível com conceitos e valores associados a sua atuação (figura 03).</p> <table align="center" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td align="center"><img src="http://www.labelectron.org.br/informativo/dezembro/fotos/10.jpg" align="center" width="200" height="152" hspace="12" /></td> </tr> </tbody></table><p><em>Fonte: http://www.labelectron.org.br/mostraNoticia.php?edicao=dezembro&noticia=5<br /></em></p>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-30445588065503631382009-09-01T14:22:00.009-04:002009-09-01T15:45:50.596-04:00Desenvolvendo QT para MaemoPrimeiramente você precisa instalar os <a href="http://josemdvdf.blogspot.com/2009/08/instalando-softwares-necessarios-para.html">SW necessários para desenvolver QT para MAEMO</a><br /><br />em seguida vamos criar o nosso Hello World:<br /><br />entre no scratchbox e cria uma pasta para o codigo fonte:<br /><span style="color: rgb(204, 0, 0);">- /scratchbox/login</span><br /><span style="color: rgb(204, 0, 0);">- [sbox-DIABLO_ARMEL: ~] > mkdir hello</span><br /><span style="color: rgb(204, 0, 0);">- [sbox-DIABLO_ARMEL: ~] > cd hello</span><br /><br />em seguida inicie a codificação:<br /><span style="color: rgb(204, 0, 0);">- [sbox-DIABLO_ARMEL: ~/hello] > vi hello.cpp</span><br /><br />digite o código abaixo:<br /><span style="color: rgb(204, 0, 0);font-size:100%;" > #include <QApplication></span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /><span style="color: rgb(204, 0, 0);font-size:100%;" > #include <QLabel></span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /><br /><span style="color: rgb(204, 0, 0);font-size:100%;" >int main( int argc, char *argv[] )</span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" >{<br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" > QApplication a( argc, argv );</span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" > QLabel * label = new QLabel("HELLO WORLD !");</span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" > label->setAlignment(Qt::AlignCenter);</span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" > label->show();</span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" > return a.exec();</span><span style="color: rgb(204, 0, 0);font-size:100%;" ><br /></span><span style="color: rgb(204, 0, 0);font-size:100%;" >}</span><span style="font-size:100%;"><br /><br />Em seguida vamos compilar:<br /><span style="color: rgb(204, 0, 0);">- [sbox-DIABLO_ARMEL: ~/hello] > qmake -project</span> <span style="color: rgb(204, 0, 0);">- [sbox-DIABLO_ARMEL: ~/hello] > qmake</span> <span style="color: rgb(204, 0, 0);">- [sbox-DIABLO_ARMEL: ~/hello] > make</span><br /></span><br />Pronto!!! seu programa está completo.<br />Agora precisamos startar o Xephyr e rodamos a aplicação. para isso abra um novo terminal(fora do scratchbox) e digite:<br />- <span style="color: rgb(204, 0, 0);">Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite</span><br /><br /><ol><li>Obs.: Caso você não queira decorar essa linha, crie um alias. Para isso no /home/user digite:</li></ol><ul><li><span style="color: rgb(204, 0, 0);">sudo vi .bashrc </span></li></ul><ul><li>no final do arquivo digite: <span style="color: rgb(204, 0, 0);">alias xephyr='Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite'</span></li><li><span style="color: rgb(204, 0, 0);"></span>pronto! da próxima vez que quiser startar o Xephyr apenas digite: <span style="color: rgb(204, 0, 0);">xephyr <span style="color: rgb(0, 0, 0);">no terminal</span></span></li></ul><span style="color: rgb(204, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />em seguida no scratchbox digite :<br />[sbox-DIABLO_ARMEL: ~/hello] > <span style="color: rgb(204, 0, 0);">export DISPLAY=:2<br /></span></span></span><span style="color: rgb(204, 0, 0);"><span style="color: rgb(0, 0, 0);">[sbox-DIABLO_ARMEL: ~/hello] > </span>af-sb-init.sh start</span><br /><span style="color: rgb(204, 0, 0);"><span style="color: rgb(0, 0, 0);">[sbox-DIABLO_ARMEL: ~/hello] > </span>./hello</span><br /><br />deverá ficar assim:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilpNTlKjX2CiPzAttXw8Y7MaybOXGNgdtvbpTpSDaeD9S1XdDcr5Qrl9kFrMna3I9FQHPHQAJ1wN66JIAawgnSIAYcLJibR9mH6UgDeyiGdO2BwEL2yEhYpAxEfmq9NDauhQ5RYT5DRGQ/s1600-h/Screenshot.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilpNTlKjX2CiPzAttXw8Y7MaybOXGNgdtvbpTpSDaeD9S1XdDcr5Qrl9kFrMna3I9FQHPHQAJ1wN66JIAawgnSIAYcLJibR9mH6UgDeyiGdO2BwEL2yEhYpAxEfmq9NDauhQ5RYT5DRGQ/s320/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5376584777449519154" border="0" /></a></span></span>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-13048552374547962612009-08-27T14:28:00.005-04:002009-08-31T18:41:24.379-04:00Instalando Softwares Necessarios para Desenvolver QT para Maemo<span style="font-size:100%;">Bom, este post eh destinado a todos aqueles que precisam usar o a plataforma MAEMO, Desenvolvimento QT ou mesmo fazer o cross-compile de alguma aplicação pra essa plataforma.<br /><br />segue a lista<br /></span><span style="font-weight: bold;"><span style="font-size:100%;"><br /><br /></span>-INSTALANDO SCRATCHBOX<br /></span><br /><span style="font-size:100%;">- Primeiro </span>fazer o download do script <a href="http://repository.maemo.org/stable/diablo/maemo-scratchbox-install_4.1.2.sh">maemo-scratchbox-install_4.2.sh</a><br />- sudo vi /etc/sysctl.conf e adicione <span style="color: rgb(255, 0, 0);">vm.vdso_enabled = 0</span> ao fim do arquivo<br />- <span style="color: rgb(0, 0, 0);">sudo sysctl -p</span><br />- <span style="color: rgb(0, 0, 0);">sudo chmod a+x ./maemo-scratchbox-install_4.1.2.sh</span><br />- <span style="color: rgb(0, 0, 0);">sudo ./maemo-scratchbox-install_4.1.2.sh</span><br /><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><br />Depois da instalacao concluida , teremos que adicionar um usuario aos grupos do sbox:<br /><br /><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);">- /scratchbox/sbin/sbox_adduser username</span><br /><br /><span style="color: rgb(0, 0, 0);">Efetua-se logout do terminal e depois entra novamente</span><br /><span style="color: rgb(0, 0, 0);">A instalacao do scratchbox criou uma pasta chamada scratchbox na raiz do sistema<br /><br /><span style="color: rgb(0, 0, 0);">- su username</span><br /></span><span style="color: rgb(0, 0, 0);"><br />-Para testar se o scratchbox esta funcionando</span><br /><br /><span style="color: rgb(0, 0, 0);">- /scratchbox/login<br /><br />Pronto! o </span></span></span></span><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"></span></span><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 153, 0);"></span></span></span></span><span style="font-weight: bold;">SCRATCHBOX</span> já esta intalado...<br /><br />Continuando....<br /><br /><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0); font-weight: bold;">-INSTALANDO MAEMO SDK<br /><br /></span><span style="color: rgb(0, 0, 0);">Fechar o terminal e o abrir novamente</span><span style="color: rgb(0, 0, 0); font-weight: bold;"><br /></span></span></span></span>Fazer o download do script <a href="http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh">maemo-sdk-install_4.1.2.sh</a> <span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0); font-weight: bold;"><br /></span></span></span></span>- sudo vim /etc/sysctl.conf e adicione <span style="color: rgb(255, 0, 0);">vm.mmap_min_addr = 4096</span> ao fim do arquivo<span style="color: rgb(51, 51, 255);"><br /></span><span style="color: rgb(0, 0, 0);">- sudo sysctl -p</span><br /><span style="color: rgb(0, 0, 0);">- sudo chmod a+x ./</span><a style="color: rgb(0, 0, 0);" href="http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh">maemo-sdk-install_4.1.2.sh</a><br /><span style="color: rgb(0, 0, 0);">- ./</span><a style="color: rgb(0, 0, 0);" href="http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh">maemo-sdk-install_4.1.2.sh</a><br />Escolha a opcao de instalacao "Runtime Environment + All Dev Packages. Choose this to get a full development environment."<br /><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0); font-weight: bold;"><br /></span></span></span></span><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);">Pronto! o </span></span></span></span><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0); font-weight: bold;">MAEMO SDK</span></span></span></span> já esta intalado...<br /><br />Continuando....<br /><br /><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0); font-weight: bold;">-INSTALANDO XEPHYR</span><span style="color: rgb(0, 0, 0);"><br /><br />- sudo apt-get install xserver-xephyr<br /><br /></span></span></span></span><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0); font-weight: bold;">-INSTALANDO O QT NO SCRATCHBOX</span></span><br /><span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);"></span></span></span><br />- /<span style="color: rgb(0, 0, 0);">scratchbox/login</span><br />- <span style="color: rgb(51, 51, 255);"><span style="color: rgb(255, 0, 0);">[sbox-DIABLO_ARMEL: ~] ></span> </span>vim <span style="color: rgb(51, 51, 255);"><span style="color: rgb(0, 0, 0);">/etc/apt/sources.list<br /><br />em seguida digite as seguintes linas no final do arquivo<br /><br /></span></span><code style="color: rgb(255, 0, 0);">deb http://repository.maemo.org/extras/ diablo free non-free<br /> deb-src http://repository.maemo.org/extras/ diablo free<br /> deb http://repository.maemo.org/extras-devel/ diablo free non-free<br /> deb-src http://repository.maemo.org/extras-devel/ diablo free</code><span style="color: rgb(255, 0, 0);"></span><br /><span style="color: rgb(51, 51, 255);"><br /></span>- <span style="color: rgb(51, 51, 255);"><span style="color: rgb(255, 0, 0);">[sbox-DIABLO_ARMEL: ~] ></span> </span><span style="color: rgb(0, 0, 0);">apt-get update</span><br />- <span style="color: rgb(51, 51, 255);"><span style="color: rgb(255, 0, 0);">[sbox-DIABLO_ARMEL: ~] ></span> </span><span style="color: rgb(0, 0, 0);">apt-get install</span><br />- <span style="color: rgb(51, 51, 255);"><span style="color: rgb(255, 0, 0);">[sbox-DIABLO_ARMEL: ~] ></span> </span><span style="color: rgb(0, 0, 0);">apt-get install libqt4-dev</span><br /><br /><br />Pronto! seu ambiente está todo configura e pronto para ser usado.<br />no próximo post mostrarei como criar um hello world usando QT.<br /><br />Esse post foi baseado nesse <a href="http://flaviofabricio.blogspot.com/2009/08/instalando-scratchbox-no-ubuntu.html">link</a><br /><br /><br /><br /><span style="color: rgb(0, 153, 0);"></span>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com2tag:blogger.com,1999:blog-2318934035096495020.post-63910256697054572752009-08-13T10:32:00.003-04:002009-08-13T10:51:28.554-04:00Instalando Sun VirtualBox no ubuntuHoje precisei rodar o windows(por causa do trabalho). Portanto com a indicação do meu amigo João Lúcio, instalei o Sun VirtualBox, segue a dica da instalação:<br /><br /><span style="font-weight: bold;">Para instalar o Sun VirtualBox</span> <span style="font-weight: bold;">no ubuntu</span>:<br /><br /><span style="font-style: italic;">sudo apt-get install dkms</span><br /><br />em seguida:<br /><br />Add uma dessas linhas no sources.list dependendo da versão do ubuntu:<br /><pre><span style="font-style: italic;">deb </span><a style="font-style: italic;" href="http://download.virtualbox.org/virtualbox/debian" target="_blank">http://download.virtualbox.<wbr>org/virtualbox/debian</a><span style="font-style: italic;"> jaunty non-free</span><br /><span style="font-style: italic;">deb </span><a style="font-style: italic;" href="http://download.virtualbox.org/virtualbox/debian" target="_blank">http://download.virtualbox.<wbr>org/virtualbox/debian</a><span style="font-style: italic;"> intrepid non-free</span><br /><span style="font-style: italic;">deb </span><a style="font-style: italic;" href="http://download.virtualbox.org/virtualbox/debian" target="_blank">http://download.virtualbox.<wbr>org/virtualbox/debian</a><span style="font-style: italic;"> hardy non-free</span><br /></pre>caso você naum saiba qual a versão digite:<br /><span dir="ltr" id=":56"><span style="font-style: italic;">lsb_release -a</span><br /><br />depois de verificada a versão: vá ateh o seu srouce list:<br /><span style="font-style: italic;">sudo vim /etc/apt/sources.list</span><br /><br />e digite uma das 3 linhas descritas acima(dependendo da versão)<br /><br /><br /></span>depois:<br /><span style="font-style: italic;">wget -q </span><a style="font-style: italic;" href="http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc" target="_blank">http://download.virtualbox.<wbr>org/virtualbox/debian/sun_<wbr>vbox.asc</a><span style="font-style: italic;"> -O- | sudo apt-key add -</span><br /><br />e pra finalizar:<br /><span style="font-style: italic;" dir="ltr" id=":56">sudo apt-get install virtualbox-3.0</span><br /><br />Pronto! agora é so configuração.<br /><br />Depois segue o outro post sobre essa configuração.Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-42835763714986383682009-07-28T16:49:00.003-04:002009-07-28T17:00:14.803-04:00Abil<div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw9AKXTeD6HIgV3YTc6Ny6P74oaV5JloZa2wcfWah7jp0W8tX6BuxXXbq3oWFuogC6ic4gL2Ow78PwUS6oRAowYqB74M8Kt6EYFL5RmMaeyoOx3ybVvCVgkjb3mMHpP8JSj7_-x3Tjawc/s1600-h/abil.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw9AKXTeD6HIgV3YTc6Ny6P74oaV5JloZa2wcfWah7jp0W8tX6BuxXXbq3oWFuogC6ic4gL2Ow78PwUS6oRAowYqB74M8Kt6EYFL5RmMaeyoOx3ybVvCVgkjb3mMHpP8JSj7_-x3Tjawc/s320/abil.png" alt="" id="BLOGGER_PHOTO_ID_5363616671071458562" border="0" /></a><br />Abil é uma aplicação <span style="font-style: italic;">instant messenger</span>. O projeto traz muitas inovações com uma ótima interface e muitas animações.<br /><br />maiores informações acesse <a href="http://www.indt.org.br/institutional/news_interna.php?noticia=130&area=">aki</a><br /></div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-46341957784570770362009-07-13T11:38:00.003-04:002009-07-13T11:58:14.050-04:00Dia Mundial do Rock<h1>Dia Mundial do Rock</h1><div style="text-align: justify;">No dia 13 de julho de 1985, foi realizado o histórico show Live-Aid (Ajuda ao vivo). O evento foi idealizado pelo irlandês Bob Geldof, integrante da banda Boomtown Rats, para ajudar as pessoas que passavam fome na África. Os shows aconteceram simultaneamente em Londres, na Inglaterra, e na Filadélfia, nos Estados Unidos. Cerca de 170 mil pessoas participaram da maratona musical – 70 mil na Inglaterra e 100 mil nos Estados Unidos, enquanto 1,5 bilhão de pessoas assistiram tudo pela TV. O objetivo era reverter toda a renda obtida para as vítimas da seca que devastava a África.<br />Com a venda de ingressos a 35 dólares e a venda dos direitos de transmissão a 160 países, o espetáculo conseguiu arrecadar cerca de 70 milhões de dólares. Participaram do Live-Aid artistas como Mick Jagger, Tina Turner, Madonna, David Bowie, Sting, Phil Collings, Eric Clapton, Elton John, Paul McCartney, Jimmy Page, Robert Plant, além das bandas U2, Ozzy Osbourne e The Who, entre outros.<br />A idéia de montar o espetáculo surgiu quando George Geldof assistiu, pela televisão, o documentário Fome na Etiópia. Ele ficou chocado em ver a situação das pessoas que não tinham forças nem para espantar, do próprio corpo, as moscas que as rodeavam.<br /></div><div style="text-align: justify;"> </div><p style="text-align: justify;">Hoje dia 13 de Julho comemora-se o Dia Mundial do Rock, um gênero musical que influenciou e influência inúmeras gerações. Com estilo rebelde, inquisitor, ativista ou mesmo embriagado, ele modificou o mundo com os jovens que se cansaram da mesmice e tradição impostas pela sociedade.Nesses anos de vida, o rock, que não é apenas música, e sim comportamento, pensamento, moda - uma religião , está cada vez mais maduro e com espírito evolutivo, vive em constante transição.</p><p style="text-align: justify;"><br /></p><p style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG1Q1XPeKnNcBLsFSJmvn79WzgYMn5Wl4H_tfDMmEIecPmOwMj4avu8tj01kRtknfmthJFEekzVBxizGntz1_UOz5XoVAUgWCm5o2WMVSPxRjFvfsX3d1lgkhP3KWiprSEljbftGZV7FU/s1600-h/ledzeppelin_banner_558_divulgacao.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 114px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG1Q1XPeKnNcBLsFSJmvn79WzgYMn5Wl4H_tfDMmEIecPmOwMj4avu8tj01kRtknfmthJFEekzVBxizGntz1_UOz5XoVAUgWCm5o2WMVSPxRjFvfsX3d1lgkhP3KWiprSEljbftGZV7FU/s320/ledzeppelin_banner_558_divulgacao.jpg" alt="" id="BLOGGER_PHOTO_ID_5357974290124340082" border="0" /></a></p><p style="text-align: justify;"><br /></p><p style="text-align: justify;">Veja as fotos do caras quando menores....</p><p style="text-align: justify;">http://multishow.globo.com/Materia/Dia-Mundial-do-Rock---Reconhece-.html#=undefined&fotogaleria=11<br /></p><p></p>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-51457553884294494732009-06-22T10:34:00.003-04:002009-06-22T11:42:59.076-04:00Instituto CERTI Amazônia desenvolve jogo educativo<p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" >Segue a notícia do ABRAGAMES. O jogo Magekom do qual sou desenvolvedor, está indo para a fase de piloto 1.</span></p><p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" ><br /></span></p><p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" >O <strong>Instituto CERTI Amazônia</strong> está desenvolvendo mais um game no segmento educativo. O <strong>MAGEKOM - Macro Gestão Competitiva</strong> - tem a finalidade de transmitir conteúdos que auxiliem a gestão de pequenos negócios por empreendedores e microempresários.</span></p> <p align="center"><img src="http://www.abragames.org/newsletter/editions/jun09/images/certi_logo.jpg" width="200" height="59" /></p> <p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" > O jogador é estimulado a administrar uma empresa, que ele escolhe através de uma análise de mercado; é incentivado a elaborar um plano de negócio, a conhecer o papel de repartições públicas e a acessar um diversificado conteúdo sobre empreendedorismo. </span></p> <p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" >O jogo está em um ambiente de plataforma, que permite o jogador navegar livremente por uma cidade repleta de referências e informações sobre negócios, que o ajudarão a atingir os desafios de cada fase do jogo.</span></p> <p align="center"><img src="http://www.abragames.org/newsletter/editions/jun09/images/certi_screen.jpg" width="200" height="150" /></p> <p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" > Escolha sua empresa, administre-a, passe por situações de aumento e diminuição de receita, barreiras impostas pelo mercado e outras dificuldades. Alcance o sucesso nos negócios através do ato de empreender. </span></p> <p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" >O Game MAGEKOM está em desenvolvimento, terá distribuição livre e será portado para os sistemas operacionais Windows e Linux.<br /></span></p><p><br /></p><p><span style="color: rgb(102, 102, 102);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;" >fonte: http://www.abragames.org/newsletter/arquivo/09/06/<br /></span></p>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-35700588057713412972009-05-25T16:47:00.003-04:002009-05-28T15:32:07.486-04:00<h1>Dia Mundial do Orgulho Nerd é comemorado nesta segunda</h1> <span id="SearchKey_Text1"> <p>Aficionados por novas tecnologias comemoram nesta segunda-feira, 25 de maio, o Dia Internacional do Orgulho <a href="javascript:CntxLinks.MakeCall('Nerd')" class="SearchKey_Href" style="text-decoration: none; color: rgb(0, 0, 0); font-weight: bold;" onmouseover="CntxLinks.Show('Nerd', 'Clique na palavra para saber mais sobre: Nerd ');" onmouseout="CntxLinks.Hide();">Nerd</a>. A data é uma referência à estréia do primeiro filme da série <i>Guerra nas Estrelas</i>, em 1977, e começou a ser celebrada em 2006 na Espanha. A idéia partiu de Germán Martínez (conhecido como Señor Buebo) e defende de forma bem-humorada o "direito de ser nerd".</p><p>Bom, aproveitei para fazer o meu primeiro teste de nerdeza, segue o score, acho que fui bem para a primeira vez. High-Nerd!<br /></p><p><a href="http://www.nerdtests.com/ft_nq.php"><br /><img src="http://www.nerdtests.com/images/ft/nq/d219c5080b.gif" alt="I am nerdier than 82% of all people. Are you a nerd? Click here to take the Nerd Test, get nerdy images and jokes, and talk on the nerd forum!" /></a></p><p><br /></p><p>Ver. 2.0!!!</p></span><br /><br /><a href="http://www.nerdtests.com/ft_nt2.php"><br /><img src="http://www.nerdtests.com/images/badge/nt2/fdf975bd4e606803.png" alt="NerdTests.com says I'm a Kinda Dorky Nerd King. Click here to take the Nerd Test, get geeky images and jokes, and talk to others on the nerd forum!" /><br /></a>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-85925834229585855872009-05-21T16:04:00.006-04:002009-05-21T17:04:01.394-04:00Geek ScapeBom... esse poste eh pra falar um pouco sobre o projeto GeekScape.<br />O projeto está indo muito bem, começamos a fazer as classes bases do projeto, e o Design já fez algumas telas...<br /><br />Mas o mais importante é que já criamos o projeto no Garage.<br />segue o link: https://garage.maemo.org/projects/geekscape/<br />segue também a primeira tela do GeekScape<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHlfcR80LV_14hAesr4PPBjYDMNo0Xs6QzFAFf4hrcK7lWm1hGR6TfyrhFVjF-sRw7yUYMYUdzK_cwCWAENJPTbjtEV0rYvBUK324m5vaPXWjU0ypugYL7VyP0ASOZhkYyY7af1ir_ifI/s1600-h/backgroundMenu.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHlfcR80LV_14hAesr4PPBjYDMNo0Xs6QzFAFf4hrcK7lWm1hGR6TfyrhFVjF-sRw7yUYMYUdzK_cwCWAENJPTbjtEV0rYvBUK324m5vaPXWjU0ypugYL7VyP0ASOZhkYyY7af1ir_ifI/s320/backgroundMenu.jpg" alt="" id="BLOGGER_PHOTO_ID_5338371861278787890" border="0" /></a><br /><div style="text-align: center;">Tela de Menu<br /><br /><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkcFMn_uPBb0IuxQz0P3dHlLSWOiw4D86WiBp902MkDCllUe5-_GI2PbnpT3xxcEvOc6mpIFdzH-uS9QVlmgortf8RWtm2ree7QYKg9nhKX85FirRE4Cdu2y-emRaPwFvkDtJ9bD8QAxw/s1600-h/backgroundJogo.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkcFMn_uPBb0IuxQz0P3dHlLSWOiw4D86WiBp902MkDCllUe5-_GI2PbnpT3xxcEvOc6mpIFdzH-uS9QVlmgortf8RWtm2ree7QYKg9nhKX85FirRE4Cdu2y-emRaPwFvkDtJ9bD8QAxw/s320/backgroundJogo.jpg" alt="" id="BLOGGER_PHOTO_ID_5338373247050337890" border="0" /></a>Tela do Jogo<br /><br /><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0KXN9nXZ-h9rHeVpnnuAXa5HsiFz20LFZeoJBzSdDm28H6dtTgCBQC5RyNgXeDWGLSdzJC-nIqhbAV9ZQ9gcZVFyRrHBiYUiSJIXNwUKXMeQiEgAG_iVfvMRK8FgfP5oBBU6s4R89bZc/s1600-h/backgroundItems.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0KXN9nXZ-h9rHeVpnnuAXa5HsiFz20LFZeoJBzSdDm28H6dtTgCBQC5RyNgXeDWGLSdzJC-nIqhbAV9ZQ9gcZVFyRrHBiYUiSJIXNwUKXMeQiEgAG_iVfvMRK8FgfP5oBBU6s4R89bZc/s320/backgroundItems.jpg" alt="" id="BLOGGER_PHOTO_ID_5338372798148097330" border="0" /></a><br />Tela de Itens<br /><br /><br /><br /><div style="text-align: justify;">Bom galera, em breve postarei mais sobre o GeekScape e sobre a engine que estamos criando, ou seja, você també poderá ser um desenvolvedor dessa série.<br /><br />Té + !<br /></div><br /><br /><br /></div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-32184293621372886462009-05-08T18:03:00.002-04:002009-05-08T18:06:22.173-04:00Site Zagaiauuuuoohhhhhhhhhhhhhhhhh!!!!!<br /><br />finalmente o site do Zagaia está na rede... segue o link...<br /><br /><br />http://portal.fucapi.edu.br/nepcomp/zagaia/Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com1tag:blogger.com,1999:blog-2318934035096495020.post-88968414670995781152009-05-07T15:15:00.002-04:002009-05-07T15:22:00.325-04:00Cluster mysql<div style="text-align: justify;">O tempo fechou na fcaul, precisei fazer um cluster mysql e o negócio foi meio complicado por causa das máquinas,mas no final ficou tudo certinho...<br />segue o tutorial...<br /></div><br /><span style="font-weight: bold;">Clusterização</span><br /><br /><div style="text-align: justify;">A clusterização de um serviço é uma funcionalidade avançada, que tem como objetivo em comum aumentar a qualidade, de alguma forma, dos serviços disponibilizados pela tecnologia que adota. O que a clusterização oferece é a possibilidade de dois ou mais servidores disponibilizam exatamente o mesmo serviço, de forma sincronizada, aumentando o poder de execução e o percentual de disponibilidade do serviço em questão.<br />A necessidade de se montar um cluster no MySQL está relacionada à alta disponibilidade das informações e à tolerância a falhas. Com dois ou mais servidores MySQL sendo executados em cluster os dados são automaticamente replicados entre os servidores e cada nó que pertence ao cluster pode ser removido sem afetar a disponibilidade da aplicação.<br /></div><br /><div style="text-align: justify;">Criando um Cluster MySQL<br />O exemplo de cluster a ser utilizado é composto por três servidores, sendo eles:<br />Servidor central(10.0.50.11): Responsável por gerenciar os servidores conectados ao cluster(Managment Node). O número IP atribuído a esse servidor será o 10.0.50.11, sendo necessáro alterar esse valor para o número IP real do seu servidor central.<br />Servidores de Armazenamento(10.0.50.5/ 10.0.50.10): Dois servidores que serão responsável pelo real armazenamento dos bancos de dados, por meio de uma conexão com o servidor central(Storage Nodes e SQL Nodes). Sendo necessário a verificação do IP como acima.<br /></div><br /><span style="font-weight: bold;">Configurando o servidor central</span><br /><br /><div style="text-align: justify;"> Para configuar o sevidor central você tem duas opções, uma instalando o mysql-server, ou apenas baixando pacote responsável pelo cluster: <br /> Se você quiser intalar o mysql no servidor central, bastar abrir o terminal e digitar:<br />sudo apt-get install mysql-server-5.0<br /> Outra opção, faça o download http://dev.mysql.com/get/Downloads/MySQL-Cluster-6.3/mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz/from/pick#mirrors<br />e copie para o /home<br /></div><br />em seguida faça os seguintes passos:<br /><br />mkdir /usr/src/mysql-mgm<br />cd /usr/src/mysql-mgm<br />cp /home/mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz .<br />tar xvfz mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz<br />cd mysql-cluster-gpl-6.3.20-linux-i686-glibc23/<br />mv bin/ndb_mgm /usr/bin<br />mv bin/ndb_mgmd /usr/bin<br />chmod 755 /usr/bin/ndb_mg*<br />cd /usr/src<br />rm -rf /usr/src/mysql-mgm<br /><br />Obs.: nesse caso, foi feito o download do mysql-server<br /><br /><div style="text-align: justify;"> Em seguida cadastre os endereços IP dos nós dos cluster no arquivo de configurações chamado config.ini.<br /></div><br /><div style="text-align: justify;"> O arquivo config.ini possui várias sessões e chaves de configuração. De acordo com a arquitetura, precisamos indicar neste arquivo que o servidor 10.0.50.11 conerá as ferramentas administrativas do cluster e que os servidores 10.0.50.10 e 10.0.50.5 são os nós do cluster. Fazemos isso modificando a chave HostName da sessão [NDB_MGMD] de modo a colocar o endereço do servidor que conterá as ferramentas administrativas. Para cada nó do cluster devemos colocar o seu endereço na chave HostName da sua respectiva sessão [NDBD], portanto:<br /></div><br />mkdir /var/lib/mysql-cluster<br />cd /var/lib/mysql-cluster<br />vim config.ini<br /><br />digite:<br /><br />[NDBD DEFAULT]<br />NoOfReplicas=2<br />[MYSQLD DEFAULT]<br />[NDB_MGMD DEFAULT]<br />[TCP DEFAULT]<br /># Section for the cluster management node<br />[NDB_MGMD]<br /># IP address of the management node (this system)<br />HostName=10.0.50.11<br /># Section for the storage nodes<br />[NDBD]<br /># IP address of the first storage node<br />HostName=10.0.50.5<br />DataDir= /var/lib/mysql-cluster<br />[NDBD]<br /># IP address of the second storage node<br />HostName=10.0.50.10<br />DataDir=/var/lib/mysql-cluster<br /># one [MYSQLD] per storage node<br />[MYSQLD]<br />[MYSQLD]<br />em seguida inicie o cluster central<br />ndb_mgmd -f /var/lib/mysql-cluster/config.ini<br /><br /><div style="text-align: justify;">para inicar automaticamente basta editar a linha no arquivo ndb_mgmd:<br /></div>sudo vim /etc/init.d/ndb_mgmd<br />ndb_mgmd -f /var/lib/mysql-cluster/config.ini<br />sudo chmod 755 /etc/init.d/ndb_mgmd<br />sudo update-rc.d ndb_mgmd defaults<br /><br /><br /><br /><div style="text-align: justify;"><div style="text-align: justify;"> Para verificar se o serviço foi iniciado sem problemas podemos utilizar o seguinte comando que verifica os processos do servidor:<br /></div>ps -A | grep mgm.<br /></div><br /><div style="text-align: justify;"> Após iniciar o serviço podemos nos conectar na ferramenta de administração do cluster. Esta ferramenta chama-se Management Client e é executada pelo comando ndb_mgm. Após iniciar a ferramenta devemos enviar o comando SHOW para verificar o estado do cluster.<br />Configurando os nós(10.0.50.10 e 10.0.50.5):<br /></div><br /><div style="text-align: justify;">Para configurar o nós, precisamos primeiro instalar o mysql, para isso faça o download so mysql-server-5.0(versãom mais recente):<br /></div><br />sudo apt-get install mysql-server-5.0<br /><br /><div style="text-align: justify;"> Após ter feito o download, é preciso modificar as configurações em cada um dos nós. Estas configurações são armazenadas no arquivo de configuração do MySQL chamado my.cnf. Nesse caso o arquivo estava localizado no diretório /etc/mysql, porém esta localização pode variar de acordo com a instalação do MySQL.<br /></div><div style="text-align: justify;"> Para configurar um nó de modo que ele faça parte de um cluster MySQL é preciso alterar três chaves em duas sessões do arquivo my.cnf. As duas primeiras chaves são a ndbcluster e a ndb-connectstring, sendo que esta última deve receber o endereço 10.0.50.11, que é o servidor onde o serviço de administração do cluster está instalado.<br /></div><div style="text-align: justify;"> Também é preciso alterar a chave ndb-connectionstring da sessão [MYSQL_CLUSTER] da mesma forma que a chave anterior, é preciso colocar o endereço do servidor que contém o serviço de administração do cluster na chave ndb-connectionstring da sessão [MYSQLD].<br /></div><br />...<br />...<br />[mysqld]<br />ndbcluster<br />ndb-connectstring=10.0.50.11<br />...<br />...<br />[mysql_cluster]<br />ndb-connectstring=10.0.50.3<br /><br /><br /><div style="text-align: justify;"> Obs.: Por padrão, estas chaves estão comentas(“#”), portanto basta retirar o comentário, e associar o IP a cada uma como descrito acima.<br /></div><br /><div style="text-align: justify;"> Após a modificação das chaves no arquivo my.cnf é preciso iniciar o serviço do MySQL. Além disso também é preciso iniciar o serviço ndbd nos nós do cluster, pois ele é o responsável por gerenciar o acesso aos arquivos com os dados compartilhados. Para isso digite:<br /></div><br />sudo mysqld_safe -user=mysql &<br />sudo ndbd<br />sudo /etc/init.d/mysql.server start<br /><br /><div style="text-align: justify;">Verificando se funciona(10.0.50.11):<br /> A partir deste momento o cluster já está sendo executado. Podemos enviar o comando SHOW na interface console do Management Client do cluster e verificar que os dois nós já são considerados parte do cluster.<br /></div><br /><div style="text-align: justify;">Criando o Banco de dados(10.0.50.10 ou 10.0.50.5):<br /> Apesar de o cluster já estar configurado, a partir desde momento os dois servidores MySQL ainda estão trabalhando de forma independente. Para que possamos usufruir das funcionalidades do cluster é preciso criar manualmente um banco de dados com o mesmo nome em cada servidor e, dentro deste banco de dados, criar tabelas que utilizem o engine de banco de dados NDBCLUSTER.<br /> Portanto em um dos servidores(10.0.50.10 ou 10.0.50.5) digite:<br /></div><br />mysql -u root -p<br />Enter password:<br /><br /> Se tudo ocorrer nomrlmente, você entrará no Mysql monitor, e em seguida:<br /><br />mysql> CREATE DATABASE TESTE;<br />Query OK, 1 row affected<br />mysql> USE TESTE;<br />Database changed<br />mysql> CREATE TABLE tblTeste (I INT) ENGINE=NDBCLUSTER;<br />Query OK, 0 rows affected (0.44 sec)<br />mysql> INSERT INTO tblTeste () VALUES (1);<br />Query OK, 1 rows affected (0.03 sec)<br />mysql> SELECT * FROM tblTeste;<br /><br />+------+<br />| i |<br />+------+<br />| 1 |<br />+------+<br />1 row in set (0.01 sec)<br /><div style="text-align: justify;"> Se funcionar, vá até o outro nó e verifique se o cluster está funcionando normalmente, para isso digite:<br /></div><br />mysql -u root -p<br />Enter password:<br /><br />mysql> CREATE DATABASE TESTE;<br />mysql> USE TESTE;<br />Database changed<br />mysql> SELECT * FROM tblTeste;<br /><br />+------+<br />| i |<br />+------+<br />| 1 |<br />+------+<br />1 row in set (0.03 sec)<br /><div style="text-align: justify;"> Pronto, agora insira um novo a partir do segundo nó e verifique se ela aparece no primeiro.<br /> Como a tabela tblTeste foi criada utilizando o engine de banco de dados NDBCLUSTER todas as modificações nos dados realizadas em qualquer um dos nós será replicada automaticamente para os demais.<br /> Para finalizar os testes do cluster, desconecte um dos nós e faça um INSERT em outro, em seguida conecte o nó anteriormente desconctado com o comando “ndbd” e faça um SELECT, se o valor anteriormente inserido aparecer no outro nó, Pronto! Seu cluster está funcionado.<br /> Com o cluster conseguimos montar uma solução que atende a requisitos de alta disponibilidade, pois caso um nó do cluster não esteja operacional isso não será um problema para a aplicação, uma vez que os outros nós funcionaram de forma independente. Quando o nó que apresentou um problema foi iniciado novamente o próprio serviço NDBD irá procurar as informações perdidas e tentará sincronizar os dados da tabela.<br /></div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-35185804586396435662009-04-14T15:08:00.004-04:002009-04-14T15:12:23.963-04:00Lista de equipes selecionadas para a participação na competição<p style="color: rgb(0, 153, 0); text-align: justify;"><span style="font-size:130%;color:#000000;"><b>Segue abaixo a lista de equipes selecionadas para a participação na competição:</b></span></p><div style="text-align: justify;"><br /><span style="font-size:130%;">BumpTag</span><br /><b>Nome da Equipe:</b> BumP<br /><b>Equipe: </b>Airton Arantes, Diogo Dutra Albuquerque,<br /><b>Representante:</b> Airton Arantes - <a href="mailto:airton.arantes@gmail.com" target="_blank">airton.arantes@gmail.com</a><br /><b>Descrição do Projeto:</b> O BumpTag é um software que implementa o protocolo BumP (Bump Protocol). O BumP é um protocolo inter-dispositivo que oferece uma forma fácil e simples de comunicação entre pessoas de interesses comuns. Este protocolo roda em cima do bluetooth e especifica como esta comunicação de interesses é feita. A ideia do BumP é disponibilizar os interesses em comum entre pessoas através de tags (palavras-chave de assuntos), dando a possibilidade de ver foto e um mini-chat. Com isso, pessoas com as mesmas tags são alertadas para caso queiram, interagirem entre si.<br /><b>Tecnologia:</b> Qt<br /><br /><span style="font-size:130%;">Toucher!</span><br /><b>Nome da Equipe:</b> Toucher!<br /><b>Equipe: </b>José Cavalcante Reis Neto, Lucas Benevides Viana de Amorim, Rodrigo Peixoto<br /><b>Representante:</b> Rodrigo Peixoto - <span><span><a href="mailto:rodrigopex@gmail.com" target="_blank">rodrigopex@gmail.com</a></span></span><br /><b>Descrição do Projeto:</b> O Toucher! é um editor simples que possibilita a inserção de desenhos e fotos dentro do próprio texto e que permite exportar esse conteúdo para formatos como html e/ou pdf. Um exemplo visual da solução está anexo. Abaixo são citados dois cenários de uso do Toucher!.<br /><b>Tecnologia:</b> Qt/Maemo<br /><br /><span style="font-size:130%;">Seriguela</span><br /><b>Nome da Equipe:</b> Seriguela<br /><b>Equipe: </b>Elaine Cristina Juvino de Araujo, Rhavy Maia Guedes, David Henrique de Moura Viana, <span><span></span></span>Danilo Carlos Gouveia de Lucena.<br /><b>Representante:</b> <span><span></span></span>Danilo Carlos Gouveia de Lucena - <a href="mailto:rygaweb@gmail.com" target="_blank">rygaweb@gmail.com</a><br /><b>Descrição do Projeto:</b> A proposta é a criação de um sistema que permitirá um usuário ter uma forma de acessar conteúdos de redes sociais através de uma aplicação no celular.<br /><b>Tecnologia:</b> WRT<br /><br /><span style="font-size:130%;">Lemurianos</span><br /><b>Nome da Equipe:</b> Lemurianos<br /><b>Equipe: </b>Dimas Cassimiro, José Martins, Vicente Matias, Vinícius Cavalcanti<br /><b>Representante:</b> Vinícius Cavalcanti - <a href="mailto:viniciuscdst@gmail.com" target="_blank">viniciuscdst@gmail.com</a><br /><b>Descrição do Projeto:</b> O projeto tem a finalidade de permitir que as pessoas possam administrar seus lares remotamente, de uma forma simples, utilizando uma plataforma portável e flexivel. A parte de controle dos recursos na casa será feita através de micro controladores os quais atuarão nos sensores, dispositivos elétricos e dispositivos eletronicos. O controle dos recursos da casa e a aquisição dos dados será disponibilizada por um Web Service o qual poderá ser acessado por dispositivos móveis.<br /><b>Tecnologia:</b> ?<br /><br /><span style="font-size:130%;">Mobile Text Racers</span><br /><b>Nome da Equipe:</b> Mobile Text Racers<br /><b>Equipe: </b>Felipe Leal Coutinho, <span><span></span></span>Thiago Santos<br /><b>Representante:</b> <span><span></span></span>Thiago Santos - <span><span><a href="mailto:thiagossantos@gmail.com" target="_blank">thiagossantos@gmail.com</a></span></span><br /><b>Descrição do Projeto:</b> Desenvolver uma aplicação TypeRacer like (<a href="http://play.typeracer.com/" target="_blank">http://play.typeracer.com</a>), na qual os jogadores competem numa corrida para digitar um texto mais rápido que os demais.<br /><b>Tecnologia:</b> Qt/Maemo<br /><br /><span style="font-size:130%;">Olympus Mobile</span><br /><b>Nome da Equipe:</b> Olympus Mobile<br /><b>Equipe: </b>Iara Pereira Ribeiro, Carlos Alberto de Amorim Porto, Wagner Leal da Costa Torres de Andrade, Zeus Cunha Barros.<br /><b>Representante:</b> Iara Pereira Ribeiro - <span><span></span></span><span><span><a href="mailto:iara.prbr@gmail.com" target="_blank">iara.prbr@gmail.com</a></span></span><br /><span><span></span></span><b>Descrição do Projeto:</b> Com uma interface agil e de facil entendimento, Olympus Mobile trata-se de um aplicativo que através do uso de uma rede sem fio ; criada por meio da conexão bluetooth; que possiblitará aos usuarios realizar comunicação e compartilhamento de dados, como informações de contato; arquivos, como fotos,musicas; entre os celulares incluidos na rede.<br /><b>Tecnologia:</b> PyS60<br /><br /><span style="font-size:130%;">Bomberman Multiplayer</span><br /><b>Nome da Equipe:</b> WenerWagnerBC<br /><b>Equipe: </b>Wener Wagner<br /><b> </b><b>Representante:</b> Wener Wagner - <span><span><a href="mailto:wenerwagner@gmail.com" target="_blank">wenerwagner@gmail.com</a></span></span><span><span></span></span><br /><span><span> </span></span><b>Descrição do Projeto:</b> Um jogo bastante conhecido, onde existe um campo com alguns obstaculos, os personagens podem soltar bombas que destroem os obstaculos e os oponentes, o objetivo é destruir seus oponentes. Poderá ser escolhida a quantidade de personagens que aparecerão na tela que varia de 2 a 4 personagens. Poderá ser jogado no modo Singleplayer onde os outros personagens serão controlados por uma inteligência artificial ou no modo multiplayer onde os personagens serão controlados por humanos. Haverá seleção de fases, de personagens, e de algumas outras opções como tempo ou numero de vidas.<br /><b>Tecnologia:</b> JavaME<br /><br /><span style="font-size:130%;">Jogo Educativo de Matemática para Crianças</span><br /><b>Nome da Equipe:</b> Jogo Educativo de Matemática para Crianças<br /><b> Equipe: </b>Fernando Maia<br /><b>Representante:</b> Fernando Maia - <span><span><a href="mailto:fernandohenrimaia@gmail.com" target="_blank">fernandohenrimaia@gmail.com</a></span></span><span><span></span></span><br /><span><span> </span></span><b>Descrição do Projeto:</b> É um jogo educativo para crianças que vai ensinar matemática de uma forma mais criativa e divertida. O jogo é uma espécie de SpacInvaders, onde as ações (desviar, atirar) do personagem depende da resolução de um cálculo matemático. O jogo terá opção também de escolha de personagem, para que a criança utilize o personagem que mais lhe agrada e assim tornar o jogo muito mais atrativo e interessante. Jogo baseado no tuxmath (<a href="http://www.geekcomix.com/dm/tuxmath/" rel="nofollow" target="_blank">http://www.geekcomix.com/dm/<wbr>tuxmath/</a>).<br /><b>Tecnologia:</b> JavaME<br /><br /><span style="color: rgb(255, 0, 0);font-size:130%;" >Jogo de Equilibrio</span><br /> <b>Nome da Equipe:</b> Z-01<br /><b>Equipe:</b> Jônatas Isvi, Nilson Silva, André Portela<br /><b>Representante:</b> Jônatas Isvi - <a href="mailto:jonatas.nona@gmail.com" target="_blank">jonatas.nona@gmail.com</a><span><span></span></span><span><span></span></span><br /><span><span> </span></span><b>Descrição do Projeto:</b> Jogo que usa o acelerômetro para equilibrar o personagem em várias situações que precisam de total equlíbrio. Bêbado - o jogador deve guiar o personagem o qual se encontra bêbado e assim fazê-lo andar o mais longe possível sem fazê-lo cair. Garçon - o jogador deve guiar o personagem até a cozinha com várias taças e pratos em sua bandeja. Corda bamba - o jogador deve guiar o personagem até a outra ponta da corda sem deixá-lo cair e enfrantar vários desafios até o objetivo.<br /><b>Tecnologia:</b> PyS60<br /><br /><span style="color: rgb(255, 0, 0);font-size:130%;" >ZukeBox</span><br /><b>Nome da Equipe:</b> ZBox<br /><b>Equipe:</b> André L. V. Loureiro, Adriano da Silva Couto, Henry M. M. Bilby, Rodrigo A. M. Sales<br /><b>Representante:</b> Henry Miller - <span><span><a href="mailto:henrymiller.engenheiro@gmail.com" target="_blank">henrymiller.engenheiro@gmail.<wbr>com</a></span></span><span><span></span></span><br /><span><span> </span></span><b>Descrição do Projeto:</b> Jukebox é um aparelho eletrônico utilizado geralmente em bares e lanchonetes. Tem por função tocar músicas escolhidas pelo cliente que estejam em seu catálogo. Zukebox será uma virtualização de uma JukeBox, dando poder de escolha, a todos os usuários que estão no ambiente(bar, lanchonete, pub), das músicas que estão disponíveis para ser executadas no servidor.<br /><b>Tecnologia:</b> Maemo<br /><br /><span style="color: rgb(255, 0, 0);font-size:130%;" >GeekScape</span><br /><b>Nome da Equipe:</b> GeekScape<br /><b>Equipe:</b> Eisenhower Silva, Antonio Junior, José Maria, Samuel Oliveira<br /><b>Representante:</b> Eisenhower Silva - <span><span><a href="mailto:eisen.silva@gmail.com" target="_blank">eisen.silva@gmail.com</a></span></span><span><span></span></span><br /><span><span> </span></span><b>Descrição do Projeto:</b> O projeto trata do desenvolvimento de um jogo adventure single, player cujo personagem principal (um Geek) fazendo uso de seus conhecimentos geeks, tenta escapar de um laboratório a tempo de levar uma linda garota para o baile. A proposta também abranje a característica expansível do jogo, ou seja, permite a inclusão de novos enrredos e mapas sem a necessidade de nova codificação.<br /><b>Tecnologia:</b> Maemo<br /><br /><span style="font-size:130%;">Zenjo</span><br /><b>Nome da Equipe:</b> Zenjo<br /><b>Equipe:</b> Mateus Zenaide Henriques, Raniere Fernandes de Medeiros,<br /><b>Representante:</b> Raniere Fernandes de Medeiros - <a href="mailto:google@raninho.com.br" target="_blank">google@raninho.com.br</a><span><span></span></span><br /><span><span> </span></span><b>Descrição do Projeto:</b> O projeto consiste no desenvolvimento de um player de áudio com suporte ao envio (tweet) com informações da música para a rede social Twitter. Essas informações será referente a música ouvida pelo usuário, Exemplo: o artista, o título da música, o link de um website com a letra e/ou cifra.<br /><b>Tecnologia:</b> Qt<br /><br />Obs.: Os marcados com a cor vermelha são os nossos projetos!<br /></div>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0tag:blogger.com,1999:blog-2318934035096495020.post-6798672410490377872009-03-24T20:42:00.002-04:002009-03-24T20:50:36.165-04:002a Competição de Desenvolvimento de Aplicações Móveis - Efforts.EmbeddedAtualmente estamos decidindo os projetos para participar da 2a Competição de Desenvolvimento de Aplicações Móveis - Efforts.Embedded.<br />Após termos decidido o futuro do nosso projeto, postarei uma breve descrição sobre os mesmos.<br /><br /><span style="font-weight: bold;">O que é ?<br /></span><div id="d1"> <p style="text-align: justify;">Os projetos <i>Effort</i> são uma iniciativa do <a href="http://embedded.ufcg.edu.br/" target="_blank">Laboratório de Sistemas Embarcados e Computação Pervasiva - Embedded</a>, da <a href="http://www.ufcg.edu.br/" target="_blank">Universidade Federal de Campina Grande</a>, com o objetivo de desenvolver competências e difundir conhecimento relacionado a tecnologias interentes aos domínios de Sistemas Embarcados e Computação Pervasiva. Os projetos possuem formato de estudo dirigido com base em acompanhamento de projetos desenvolvidos pelos alunos. </p> <p style="text-align: justify;">Um projeto <i>Effort</i> possui uma tecnologia específica associada: PythonS60, JavaME, QT, maemo, OpenC/C++ Symbian, WRT, FlashLite ou Web. Para cada <i>Effort</i>, tem-se um conjunto de equipes desenvolvendo aplicações no contexto de competições, sendo desenvolvidas duas competições por ano. </p> <p>As aplicações avaliadas como inovadoras recebem prêmios e são publicadas nas páginas dos projetos <i>Effort</i>. Além disso, são consideradas para participação em competições mundiais da Nokia através do Laboratório Embedded.</p><p><br /></p> </div><span style="font-weight: bold;">Quando, Como, Quem?</span><br /><br />As inscrições para a <b>2a Competição de Desenvolvimento de Aplicações Móveis dos Projetos <i>Effort</i> </b> podem ser realizadas de <b>22 de março de 2009 a 05 de abril de 2009</b>. Participe da competição dos Projetos <i>Effort</i> e ganhe um Nokia 7310 Supernova.<br /><p style="text-align: justify;">Podem participar alunos de graduação e pós-graduação interessados em desenvolver aplicações móveis inovadoras, conhecer tecnologias de ponta no mundo da computação móvel e ainda concorrer a dispositivos móveis de última geração.</p><p> Todos os participantes receberão acompanhamento de desenvolvedores experientes, líderes e monitores dos Projetos <i>Effort</i> do <a href="http://embedded.ufcg.edu.br/" target="_blank">Laboratório Embedded</a> da <a href="http://www.ufcg.edu.br/" target="_blank">UFCG</a>. </p> <p style="text-align: justify;">Monte sua equipe, inscreva-se e participe! Confiamos no seu talento!</p><p style="text-align: justify; font-weight: bold;"><br /></p><p style="text-align: justify; font-weight: bold;">REFERÊNCIA:</p><p style="text-align: justify;">http://efforts.embedded.ufcg.edu.br/<br /></p>Anonymoushttp://www.blogger.com/profile/10412195975638482244noreply@blogger.com0