{"id":2416,"date":"2018-01-30T10:27:37","date_gmt":"2018-01-30T12:27:37","guid":{"rendered":"https:\/\/arduxop.com.br\/loja\/?p=2416"},"modified":"2020-12-30T12:52:45","modified_gmt":"2020-12-30T14:52:45","slug":"raqueando-o-carrinho-de-controle-remoto","status":"publish","type":"post","link":"https:\/\/arduxop.com.br\/loja\/raqueando-o-carrinho-de-controle-remoto\/","title":{"rendered":"\u201cRaqueando\u201d o carrinho de controle remoto"},"content":{"rendered":"<div id=\"post-3913\" class=\"post format-standard clearfix post-3913 type-post status-publish has-post-thumbnail hentry category-tecnologia tag-android tag-arduino tag-bluetooth tag-educacao tag-robo tag-robot\">\n<div class=\"post-header clearfix\">\n<div class=\"thumbnail alignleft\"><a class=\"thumbnail-link fademe\" title=\"\u201cRaqueando\u201d o carrinho de controle\u00a0remoto\" href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/\"> <img decoding=\"async\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24731.jpg?w=150\" sizes=\"(max-width: 150px) 100vw, 150px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24731.jpg?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24731.jpg?w=300 300w\" alt=\"\" width=\"150\" height=\"75\" data-attachment-id=\"3916\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/version-2\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24731.jpg\" data-orig-size=\"3264,1623\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1450011370&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;32&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;Version 2&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"Version 2\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24731.jpg?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24731.jpg?w=580\" \/> <\/a><\/div>\n<div class=\"title-wrap clearfix\">\n<h1 class=\"post-title entry-title\">\u201cRaqueando\u201d o carrinho de controle\u00a0remoto<\/h1>\n<\/div>\n<\/div>\n<div id=\"content-3913\" class=\"entry-content clearfix\">\n<p>&nbsp;<\/p>\n<p>Sempre que passo em uma loja de brinquedos e vejo carrinhos de\u00a0controle remoto na vitrine, fico doido para levar-los para casa, deve ser porque tinha adora\u00e7\u00e3o por este tipo de brinquedo, mas por falta de op\u00e7\u00f5es e grana, n\u00e3o cheguei a ter um quando crian\u00e7a.\u00a0Para compensar e ter uma desculpa para comprar um ? vamos desmontar um desses, \u201craqueando\u201d suas principais partes e substituindo a eletr\u00f4nica embarcada original por um microcontrolador tipo Arduino facilmente comandado a dist\u00e2ncia por um dispositivo Android. Com isso, ficar\u00e1 muito f\u00e1cil adicionar ao carrinho novas funcionalidades, sensores, etc. \u00c9 uma forma muito barata de se construir um rob\u00f4 para uso did\u00e1tico.<\/p>\n<p>O v\u00eddeo abaixo, mostra como ficar\u00e1 o projeto final:<\/p>\n<p><span class=\"embed-youtube\"><iframe class=\"youtube-player\" src=\"https:\/\/www.youtube.com\/embed\/kUoYfEG1aN4?version=3&amp;rel=1&amp;fs=1&amp;autohide=2&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent\" width=\"580\" height=\"357\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"><\/iframe><\/span><\/p>\n<h4><\/h4>\n<h4>Conhecendo o carrinho<\/h4>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-3961\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=1160 1160w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=768 768w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=1024 1024w\" alt=\"IMG_2430\" data-attachment-id=\"3961\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2430-2\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=580\" data-orig-size=\"2794,2090\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1449510098&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;160&quot;,&quot;shutter_speed&quot;:&quot;0.125&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2430\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24301.jpg?w=580?w=580\" \/><\/p>\n<p>O primeiro passo ser\u00e1\u00a0desarmar o carrinho para se ter uma id\u00e9ia de como ele funciona, o que se aproveitar\u00e1 e o que se deve ser adicionado:<\/p>\n<div class=\"tiled-gallery type-rectangular\" data-original-width=\"580\" data-carousel-extra=\"{&quot;blog_id&quot;:105149292,&quot;permalink&quot;:&quot;https:\\\/\\\/mjrobot.org\\\/2016\\\/05\\\/07\\\/raqueando-o-carrinho-de-controle-remoto\\\/&quot;,&quot;likes_blog_id&quot;:105149292}\">\n<div class=\"gallery-row\" data-original-width=\"580\" data-original-height=\"385\">\n<div class=\"gallery-group images-1\" data-original-width=\"290\" data-original-height=\"385\">\n<div class=\"tiled-gallery-item tiled-gallery-item-large\"><a href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2446\/\"> <img fetchpriority=\"high\" decoding=\"async\" title=\"IMG_2446\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2446.jpg?w=286&amp;h=381\" alt=\"IMG_2446\" width=\"286\" height=\"381\" data-attachment-id=\"3945\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2446.jpg\" data-orig-size=\"2448,3264\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1449600928&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;125&quot;,&quot;shutter_speed&quot;:&quot;0.125&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2446\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2446.jpg?w=225\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2446.jpg?w=580\" data-original-width=\"286\" data-original-height=\"381\" \/> <\/a><\/div>\n<\/div>\n<div class=\"gallery-group images-1\" data-original-width=\"290\" data-original-height=\"385\">\n<div class=\"tiled-gallery-item tiled-gallery-item-large\"><a href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2450\/\"> <img decoding=\"async\" title=\"IMG_2450\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2450.jpg?w=286&amp;h=381\" alt=\"IMG_2450\" width=\"286\" height=\"381\" data-attachment-id=\"3948\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2450.jpg\" data-orig-size=\"2448,3264\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1449600968&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.125&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2450\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2450.jpg?w=225\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2450.jpg?w=580\" data-original-width=\"286\" data-original-height=\"381\" \/> <\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Na parte inferior da carca\u00e7a, est\u00e3o os os dois motores (frontal e traseiro), o compartimento da bateria (recarreg\u00e1vel, 5V) e o modulo eletr\u00f4nico. \u00a0Na parte superior da carca\u00e7a, est\u00e1 a antena (placa de cobre conectada a um cabo negro) e os\u00a04 LEDs que funcionam como os far\u00f3is dianteiros e traseiros. Cada LED est\u00e1 conectado separadamente por um par de fios. Com esse arranjo, se pode:<\/p>\n<ul>\n<li>Acender os far\u00f3is (acender os dois LEDs frontais)<\/li>\n<li>Dar pisca (acender os LEDs esquerdos ou direitos)<\/li>\n<li>Sinalizar uma frenagem \u00a0(acender os dois LEDs traseiros)<\/li>\n<\/ul>\n<p>O diagrama em blocos da eletr\u00f4nica original \u00e9:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-4076\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png 700w\" alt=\"Original Block Diagram\" data-attachment-id=\"4076\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/original-block-diagram-3\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=580\" data-orig-size=\"700,508\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Original Block Diagram\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/original-block-diagram2.png?w=580?w=580\" \/><\/p>\n<p>Em rela\u00e7\u00e3o a mobilidade, nos projetos anteriores de rob\u00f4s utilizamos a t\u00e9cnica de \u201cDifferential Steering\u201d onde variando-se o sentido de giro das rodas, varia-se a dire\u00e7\u00e3o do rob0, mas aqui se pode ver que o\u00a0carrinho, apesar de tamb\u00e9m possuir dois motores DC , possui uma confirma\u00e7\u00e3o diferente de motores:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4026 alignleft\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=234&amp;h=230\" sizes=\"(max-width: 234px) 100vw, 234px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=234&amp;h=230 234w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=468&amp;h=460 468w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=150&amp;h=147 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=300&amp;h=295 300w\" alt=\"FullSizeRender 15.jpg\" width=\"234\" height=\"230\" data-attachment-id=\"4026\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/fullsizerender-15\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=234&amp;h=230\" data-orig-size=\"2423,2382\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1462542792&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;40&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"FullSizeRender 15\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=234&amp;h=230?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fullsizerender-15.jpg?w=234&amp;h=230?w=580\" \/>O motor frontal, n\u00e3o possui nenhum controle de velocidade ou posi\u00e7\u00e3o, sendo utilizado apenas\u00a0para virar\u00a0o carrinho\u00a0\u201c\u00e0 direita\u201dou \u201c\u00e0 esquerda\u201d, movendo-se simultaneamente todo o conjunto rodas\/eixo frontal (mais ou menos como em um autom\u00f3vel). Em geral o carrinho sempre se move para a frente em linha reta e o motor est\u00e1 desligado, deixando assim as rodas livres. Um comando para \u201cvirar \u00e0 esquerda\u201d\u00a0p<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4019 alignright\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=307&amp;h=168\" sizes=\"(max-width: 307px) 100vw, 307px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=307&amp;h=168 307w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=614&amp;h=336 614w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=150&amp;h=82 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=300&amp;h=164 300w\" alt=\"Version 2\" width=\"307\" height=\"168\" data-attachment-id=\"4019\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/version-2-2\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=307&amp;h=168\" data-orig-size=\"811,442\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1450011370&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;32&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;Version 2&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"Version 2\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=307&amp;h=168?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_24732.jpg?w=307&amp;h=168?w=580\" \/>or exemplo,\u00a0far\u00e1 o motor girar,\u00a0fazendo o mecanismo de engrenagens\u00a0como um todo se mover\u00a0para a esquerda.\u00a0Enquanto o motor estiver alimentado o mecanismo ficar\u00e1 nessa posi\u00e7\u00e3o limite e o carrinho continuar\u00e1 \u201cvirando\u00a0\u00e0 esquerda\u201d).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4064 aligncenter\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png?w=562&amp;h=325\" sizes=\"(max-width: 562px) 100vw, 562px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png 459w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png?w=150&amp;h=87 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png?w=300&amp;h=174 300w\" alt=\"Turn_Left\" width=\"562\" height=\"325\" data-attachment-id=\"4064\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/turn_left-3\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png?w=562&amp;h=325\" data-orig-size=\"459,266\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Turn_Left\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png?w=562&amp;h=325?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/turn_left2.png?w=562&amp;h=325?w=459\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4031 alignleft\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=153&amp;h=204\" sizes=\"(max-width: 153px) 100vw, 153px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=153&amp;h=204 153w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=306&amp;h=408 306w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=113&amp;h=150 113w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=225&amp;h=300 225w\" alt=\"IMG_3511\" width=\"153\" height=\"204\" data-attachment-id=\"4031\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_3511\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=153&amp;h=204\" data-orig-size=\"2448,3264\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1462543126&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;50&quot;,&quot;shutter_speed&quot;:&quot;0.03030303030303&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_3511\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=153&amp;h=204?w=225\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_3511.jpg?w=153&amp;h=204?w=580\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>O motor traseiro est\u00e1 acoplado a um sistema redutor de velocidade por engrenagens e fornece torque vari\u00e1vel as rodas traseiras (conjunto fixo). Pode-se assim variar a velocidade, mas n\u00e3o a dire\u00e7\u00e3o (as duas rodas sempre girar\u00e3o em um mesmo sentido).<\/p>\n<h4><\/h4>\n<h4>Raqueando a eletr\u00f4nica embarcada<\/h4>\n<p>Uma vez que tudo foi identificado, \u00e9 a hora de remover a eletr\u00f4nica\u00a0original, deixando somente os cabos dos motores e bateria. Como n\u00e3o vou voltar a usar a carca\u00e7a superior por enquanto, n\u00e3o me preocuparei com os LEDs originais.<\/p>\n<div class=\"tiled-gallery type-rectangular\" data-original-width=\"580\" data-carousel-extra=\"{&quot;blog_id&quot;:105149292,&quot;permalink&quot;:&quot;https:\\\/\\\/mjrobot.org\\\/2016\\\/05\\\/07\\\/raqueando-o-carrinho-de-controle-remoto\\\/&quot;,&quot;likes_blog_id&quot;:105149292}\">\n<div class=\"gallery-row\" data-original-width=\"580\" data-original-height=\"385\">\n<div class=\"gallery-group images-1\" data-original-width=\"290\" data-original-height=\"385\">\n<div class=\"tiled-gallery-item tiled-gallery-item-large\"><a href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2451\/\"> <img loading=\"lazy\" decoding=\"async\" title=\"IMG_2451\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2451.jpg?w=286&amp;h=381\" alt=\"IMG_2451\" width=\"286\" height=\"381\" data-attachment-id=\"3949\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2451.jpg\" data-orig-size=\"2448,3264\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1449601154&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.125&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2451\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2451.jpg?w=225\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2451.jpg?w=580\" data-original-width=\"286\" data-original-height=\"381\" \/> <\/a><\/div>\n<\/div>\n<div class=\"gallery-group images-1\" data-original-width=\"290\" data-original-height=\"385\">\n<div class=\"tiled-gallery-item tiled-gallery-item-large\"><a href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2475\/\"> <img loading=\"lazy\" decoding=\"async\" title=\"IMG_2475\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2475.jpg?w=286&amp;h=381\" alt=\"IMG_2475\" width=\"286\" height=\"381\" data-attachment-id=\"3953\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2475.jpg\" data-orig-size=\"2448,3264\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1450017510&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;40&quot;,&quot;shutter_speed&quot;:&quot;0.058823529411765&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2475\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2475.jpg?w=225\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2475.jpg?w=580\" data-original-width=\"286\" data-original-height=\"381\" \/> <\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>No lugar do m\u00f3dulo eletr\u00f4nico, usaremos um Arduino Uno, que ser\u00e1 o respons\u00e1vel pela l\u00f3gica do processamento, acionando os motores, LEDs e um Buzzer. O controle remoto que antes era conseguido por um sistema receptor de RF de 27MHz ser\u00e1 agora substitu\u00eddo pelo modulo HC-06, o qual se comunicar\u00e1 com um dispositivo Android. A bateria original do carrinho ser\u00e1 mantida exclusivamente para a alimenta\u00e7\u00e3o dos motores via a H-Bridge L293D, pois os motores DC al\u00e9m de consumirem bastante\u00a0corrente geram ru\u00eddo devido a suas escovas. Pela maneira que o carrinho foi constru\u00eddo, o motor frontal consome bastante energia no momento em que recebe um comando de virar para um dos lados, pois seu eixo ser\u00e1 travado e o consumo de corrente ser\u00e1 alto. Para o Arduino usaremos uma bateria de 9V (Vin), sendo que o modulo HC-06 ser\u00e1 alimentado pela sa\u00edda de 5V do Arduino).<\/p>\n<p>O novo diagrama de blocos para implementa\u00e7\u00e3o do circuito \u00e9:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-4092\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png 667w\" alt=\"Block Diagram\" data-attachment-id=\"4092\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/block-diagram-2\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=580\" data-orig-size=\"667,594\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Block Diagram\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/block-diagram1.png?w=580?w=580\" \/><\/p>\n<p>Neste ponto \u00e9 importante testar os motores individualmente. Usando uma bateria, alimente o motor e observe para que lado lado ele gira. Inverta a bateria e repita o teste\u00a0anotando as cores dos fios:<\/p>\n<p>No caso de meu carrinho, temos:<\/p>\n<p>Front Motor:<\/p>\n<ul>\n<li>Yellow: LEFT<\/li>\n<li>White: RIGH<\/li>\n<\/ul>\n<p>Rear Motor:<\/p>\n<ul>\n<li>Green:\u00a0Backward<\/li>\n<li>Blue: Forward<\/li>\n<\/ul>\n<h4>Montagem Final<\/h4>\n<p>O circuito (as cores dos fios do motor n\u00e3o s\u00e3o as corretas):<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-4114\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png 676w\" alt=\"circuit\" data-attachment-id=\"4114\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/circuit-2\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=580\" data-orig-size=\"676,654\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"circuit\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/circuit.png?w=580?w=580\" \/><\/p>\n<p>O HW do novo carrinho \u00e0 controle remoto est\u00e1 pronto para seus primeiros testes. Agora, falta implementar o SW e o aplicativo Android.<\/p>\n<div class=\"tiled-gallery type-rectangular\" data-original-width=\"580\" data-carousel-extra=\"{&quot;blog_id&quot;:105149292,&quot;permalink&quot;:&quot;https:\\\/\\\/mjrobot.org\\\/2016\\\/05\\\/07\\\/raqueando-o-carrinho-de-controle-remoto\\\/&quot;,&quot;likes_blog_id&quot;:105149292}\">\n<div class=\"gallery-row\" data-original-width=\"580\" data-original-height=\"279\">\n<div class=\"gallery-group images-1\" data-original-width=\"370\" data-original-height=\"279\">\n<div class=\"tiled-gallery-item tiled-gallery-item-large\"><a href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2490\/\"> <img loading=\"lazy\" decoding=\"async\" title=\"IMG_2490\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2490.jpg?w=366&amp;h=275\" alt=\"IMG_2490\" width=\"366\" height=\"275\" data-attachment-id=\"3957\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2490.jpg\" data-orig-size=\"3264,2448\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1450209466&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.058823529411765&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2490\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2490.jpg?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2490.jpg?w=580\" data-original-width=\"366\" data-original-height=\"275\" \/> <\/a><\/div>\n<\/div>\n<div class=\"gallery-group images-1\" data-original-width=\"210\" data-original-height=\"279\">\n<div class=\"tiled-gallery-item tiled-gallery-item-small\"><a href=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2489\/\"> <img loading=\"lazy\" decoding=\"async\" title=\"IMG_2489\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2489.jpg?w=206&amp;h=275\" alt=\"IMG_2489\" width=\"206\" height=\"275\" data-attachment-id=\"3956\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2489.jpg\" data-orig-size=\"2448,3264\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1450209442&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;64&quot;,&quot;shutter_speed&quot;:&quot;0.058823529411765&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"IMG_2489\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2489.jpg?w=225\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2489.jpg?w=580\" data-original-width=\"206\" data-original-height=\"275\" \/> <\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<h4>O Aplicativo Android<\/h4>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1329 alignleft\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=113&amp;h=113\" sizes=\"(max-width: 113px) 100vw, 113px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=113&amp;h=113 113w, https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=226&amp;h=226 226w, https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=150&amp;h=150 150w\" alt=\"MJRoBot BT Icon\" width=\"113\" height=\"113\" data-attachment-id=\"1329\" data-permalink=\"https:\/\/mjrobot.org\/2016\/01\/30\/conectando-coisas-atraves-do-bluetooth\/mjrobot-bt-icon\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=113&amp;h=113\" data-orig-size=\"512,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"MJRoBot BT Icon\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=113&amp;h=113?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/01\/mjrobot-bt-icon.jpg?w=113&amp;h=113?w=512\" \/><\/p>\n<p>Para controlar o carrinho, usaremos uma App que desenvolvi utilizando o MIT AppInventor 2: \u201cMJRoBot BT Remote Control\u201d. A app pode ser baixada gratuitamente da loja da Google atrav\u00e9s do link:\u00a0<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=appinventor.ai_mjrovai.MJRoBot_II_BT_Command_V2&amp;hl=en\" target=\"_blank\" rel=\"noopener\">MJRoBot BT Remote Control<\/a><\/p>\n<p>A app possui uma interface simples, permitindo o envio de comandos ao modulo de BT tanto em modo TEXT, como diretamente via bot\u00f5es pre-programados (cada vez que um bot\u00e3o \u00e9 pressionado, um caracter \u00e9 enviado):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3952 alignleft\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=351&amp;h=562\" sizes=\"(max-width: 351px) 100vw, 351px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=351&amp;h=562 351w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=702&amp;h=1124 702w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=94&amp;h=150 94w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=188&amp;h=300 188w\" alt=\"Screenshot_2015-12-11-20-24-01\" width=\"351\" height=\"562\" data-attachment-id=\"3952\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/screenshot_2015-12-11-20-24-01\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=351&amp;h=562\" data-orig-size=\"800,1280\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1449915753&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"Screenshot_2015-12-11-20-24-01\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=351&amp;h=562?w=188\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/screenshot_2015-12-11-20-24-01.jpg?w=351&amp;h=562?w=580\" \/>w: Forward<\/p>\n<p>s: Backward<\/p>\n<p>d: Right<\/p>\n<p>a: Left<\/p>\n<p>f: Stop<\/p>\n<p>p: ON\/OFF<\/p>\n<p>m: Manual \/ Automatic<\/p>\n<p>+: Speed+<\/p>\n<p>-: Speed-<\/p>\n<p>&nbsp;<\/p>\n<p>Tamb\u00e9m existe uma janela de texto para mensagens recebidas do modulo BT. Esta caracter\u00edstica \u00e9 bem importante durante a fase de testes, pois pode ser usada da mesma maneira que o \u201cSerial monitor\u201d.<\/p>\n<p>O Diagrama de blocos para o projeto no MIT appInventor2:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-4238\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=1160 1160w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=768 768w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=1024 1024w\" alt=\"app_Blocks\" data-attachment-id=\"4238\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/app_blocks\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=580\" data-orig-size=\"1356,1125\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"app_Blocks\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/app_blocks.png?w=580?w=580\" \/><\/p>\n<h4>O C\u00f3digo Arduino<\/h4>\n<p>O bloco principal do c\u00f3digo \u00e9 bem simples:<\/p>\n<pre>void loop() \r\n{\r\n   checkBTcmd(); \/\/ verify if a command is received from BT remote control\r\n   receiveCmd ();\r\n \r\n   if (turnOn) manualCmd ();\r\n   else stopRobot ();\r\n}<\/pre>\n<p>A primeira coisa a se fazer \u00e9 verificar se existe algum novo comando BT\u00a0chegando. Quem checar\u00e1 isso \u00e9 a fun\u00e7\u00e3o \u201ccheckBTcmd()\u201d:<\/p>\n<pre>void checkBTcmd() \/\/ verify if a command is received from BT remote control\r\n{ \r\n   if (BT1.available()) \r\n   { \r\n      command = BT1.read();\r\n      BT1.flush();\r\n   }\r\n}<\/pre>\n<p>A\u00a0vari\u00e1vel \u201cturnOn\u201d \u00e9 utilizada para ligar ou desligar o carrinho. A fun\u00e7\u00e3o \u201creceiveCmd()\u201d ser\u00e1 a encarregada de definir o status dessa vari\u00e1vel em fun\u00e7\u00e3o do comando recebido do modulo BT. Observe que pela l\u00f3gica usada, cada vez que o bot\u00e3o\u00a0vermelho com o s\u00edmbolo de\u00a0\u201cPOWER\u201d \u00e9 pressionado, o caracter \u201cp\u201d ser\u00e1 enviado pelo app e a a vari\u00e1vel \u201cturnOn\u201d, mudar\u00e1 se valor (de 1 para 0 e vice e versa):<\/p>\n<pre>void receiveCmd ()\r\n{\r\n   switch (command)\r\n   {\r\n     case 'p':  \r\n        turnOn = !turnOn;\r\n        command = 0;\r\n        analogWrite(ledStatus, turnOn*128); \/\/ Robot ON - Led ON\r\n        beep(outBuz, 1000, 100);\r\n        BT1.print(\" COMMAND ON\/OFF\");\r\n        BT1.println('\\n');\r\n        delay(200); \/\/Delay to call attention to mode change\r\n        break;\r\n \r\n     case 'm': \/\/not used here\r\n        break;\r\n    } \r\n}<\/pre>\n<p>Voltando ao loop principal,\u00a0enquanto a\u00a0vari\u00e1vel \u201cturnOn\u201d \u00e9 HIGH (1), a fun\u00e7\u00e3o \u201cmanualCmd()\u201d\u00a0executar\u00e1 um comando, dependendo do caracter recebido:<\/p>\n<pre>void manualCmd()\r\n{\r\n   switch (command)\r\n   {\r\n     case 'f': \r\n        moveStop(); \/\/turn off both motors\r\n        state = command;\r\n        break;\r\n\r\n     case 'w': \r\n        moveForward(); \r\n        state = command; \r\n        break;\r\n\r\n     case 'd': \r\n        moveRight();\r\n        break;\r\n\r\n     case 'a': \r\n        moveLeft();\r\n        break;\r\n \r\n     case 's': \r\n        moveBackward();\r\n        state = command;\r\n        break;\r\n\r\n     case '+': \r\n        if (state == 'w')\r\n         {\r\n           motorSpeed = motorSpeed + 10;\r\n           if (motorSpeed &gt; MAX_SPEED) motorSpeed = MAX_SPEED;\r\n           command = 'w';\r\n         } else command = state;\r\n         break;\r\n\r\n     case '-': \r\n        if (state == 'w') motorSpeed = motorSpeed - 10; \r\n        if (motorSpeed &lt; MIN_SPEED ) motorSpeed = MIN_SPEED;\r\n        command = state;\r\n        break;\r\n    }\r\n}<\/pre>\n<p>Por exemplo, se o comando \u201cw\u201d \u00e9 recebido a fun\u00e7\u00e3o\u00a0espec\u00edfica para mover o carrinho para a frente\u00a0\u201cmoveForward()\u201d \u00e9 executada.<\/p>\n<p>Em caso \u201cpowerOn\u201d esteja em HIGH e a tecla \u201cPOWER\u201d seja pressionada, a vari\u00e1vel \u201cpowerOn\u201d, passar\u00e1 a LOW e a fun\u00e7\u00e3o \u201cstopRobot()\u201d ser\u00e1 a executada ao inv\u00e9s de \u201cmanualCmd()\u201d. Esta fun\u00e7\u00e3o garante que o motor traseiro esteja parado, os LEDs apagados e vari\u00e1veis zeradas.<\/p>\n<pre>void stopRobot ()\r\n{\r\n   digitalWrite(ledBlue, LOW);\r\n   digitalWrite(ledRed, LOW);\r\n \r\n   state = 0;\r\n   moveStop(); \/\/turn off both motors\r\n}<\/pre>\n<h4>Acionando os motores DC via H-Bridge<\/h4>\n<p>Os motores frontal e traseiro est\u00e3o ligados a ponte-H como mostrado abaixo:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-4304\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=1160 1160w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=768 768w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=1024 1024w\" alt=\"H-Bridge\" data-attachment-id=\"4304\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/h-bridge\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=580\" data-orig-size=\"1306,777\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"H-Bridge\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/h-bridge.png?w=580?w=580\" \/><\/p>\n<p>e a cada um dos pinos do Arduino, os quais dever\u00e3o ser definidos como OUTPUT, ser\u00e1 atribu\u00eddo uma vari\u00e1vel:<\/p>\n<pre>const int rearMtFw = 4;     \/\/ Rear Motor - FW\r\nconst int rearMtBw = 7;     \/\/ Rear Motor - BW\r\nconst int rearMtEne = 6;    \/\/ Rear Motor - enable\r\nconst int frontMtLeft = 2;  \/\/ Front Motor - turn Left\r\nconst int frontMtRight = 3; \/\/ Front Motor - turn right \r\nconst int frontMtEne = 5;   \/\/ Front Motor enable<\/pre>\n<p>Por exemplo, se desejamos mover o carrinho para a frente, a fun\u00e7\u00e3o \u201cmoveForward()\u201d dever\u00e1 colocar o pino 4 en HIGH e o pino 7 em LOW, isso far\u00e1 com que a corrente flua \u201cno sentido hor\u00e1rio\u201d, como mostrado no diagrama abaixo:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-4345\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=1160 1160w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=768 768w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=1024 1024w\" alt=\"FW example H-Bridge\" data-attachment-id=\"4345\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/fw-example-h-bridge-3\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=580\" data-orig-size=\"1901,818\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"FW example H-Bridge\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/fw-example-h-bridge2.png?w=580?w=580\" \/><\/p>\n<p>O pino 6 \u00e9 o \u201cenable\u201d, somente quando ele estiver em \u201cHIGH\u201d, a ponte permitir\u00e1 o fluxo de corrente pelo motor. Como este pino possui caracter\u00edstica PWM, a velocidade com que o motor girar\u00e1, depender\u00e1 do valor da vari\u00e1vel \u201cmotorSpeed\u201d, no pino 6 (valor de 0 255).<\/p>\n<p>A fun\u00e7\u00e3o tamb\u00e9m dever\u00e1 garantir que o motor frontal \u201cgire livremente\u201d, e para isso o pino 5, que \u00e9 o pino de \u201cenable\u201d\u00a0dever\u00e1 estar em LOW (o status dos pinos 2\u00a0e 3 n\u00e3o importam, uma vez que o enable est\u00e1 el LOW). O LED vermelho, que funciona como \u201cluz de r\u00e9\u201d, dever\u00e1 sempre estar apagado quando o carrinho se move para a frente:<\/p>\n<pre>void moveForward() \/\/ rear motor FW\r\n{ \r\n   analogWrite(rearMtEne, motorSpeed);\r\n   digitalWrite(rearMtFw, HIGH);\r\n   digitalWrite(rearMtBw, LOW);\r\n \r\n   digitalWrite(frontMtEne, LOW);\r\n   digitalWrite(ledRed, LOW);\r\n   delay(5);\r\n}<\/pre>\n<p>por analogia, \u00e9 obvio que para o carrinho \u201cmover para tr\u00e1s\u201d, basta que o motor gire na dire\u00e7\u00e3o contr\u00e1ria. Para isto, o pino 4 dever\u00e1 estar em LOW e o pino 7 em HIGH. Note que nesse caso a \u201cluz de r\u00e9\u201d, dever\u00e1 estar acesa. A fun\u00e7\u00e3o neste caso ser\u00e1:<\/p>\n<pre>void moveBackward() \/\/ rear motor BW\r\n{ \r\n   analogWrite(rearMtEne, motorSpeed);\r\n   digitalWrite(rearMtFw, LOW);\r\n   digitalWrite(rearMtBw, HIGH);\r\n \r\n   digitalWrite(frontMtEne, LOW);\r\n   digitalWrite(ledRed, HIGH);\r\n   delay(5);\r\n}<\/pre>\n<p>O mesmo racioc\u00ednio pode ser utilizado para o motor frontal, somente que nesse caso, n\u00e3o existe controle de velocidade. Colocando o pino\u00a02 (enable) em HIGH habilita o motor a \u201ctentar girar\u201d, para um lado ou para outro dependendo do status dos pinos 2 e 3:<\/p>\n<pre>void moveLeft() \/\/ front motor left\r\n{ \r\n   digitalWrite(frontMtEne, HIGH);\r\n   digitalWrite(frontMtLeft, HIGH);\r\n   digitalWrite(frontMtRight, LOW);\r\n   digitalWrite(ledRed, LOW);\r\n   delay(10);\r\n}\r\n\r\n\/\/************************************\/\/\r\n\r\nvoid moveRight() \/\/ front motor right\r\n{ \r\n   digitalWrite(frontMtEne, HIGH);\r\n   digitalWrite(frontMtLeft, LOW);\r\n   digitalWrite(frontMtRight, HIGH);\r\n   digitalWrite(ledRed, LOW);\r\n   delay(10);\r\n}<\/pre>\n<p>Para parar o carrinho, basta colocar todas as sa\u00eddas da ponte relativas ao motor traseiro em LOW, o que \u201ctravar\u00e1\u201d o eixo do motor (o motor frontal basta o enable estar em LOW):<\/p>\n<pre>void moveStop() \/\/turn off rear motor\r\n{ \r\n   analogWrite(rearMtEne, LOW);\r\n   digitalWrite(rearMtFw, LOW);\r\n   digitalWrite(rearMtBw, LOW);\r\n \r\n   digitalWrite(frontMtEne, LOW);\r\n   digitalWrite(ledRed, LOW);\r\n   delay(5);\r\n}<\/pre>\n<p>No link abaixo, voc\u00ea poder\u00e1 encontrar o c\u00f3digo completo para o Arduino:<\/p>\n<p><a href=\"https:\/\/www.dropbox.com\/sh\/3lne12ut6cy929v\/AAAe4rItRHw7su6iLLB9TIZ3a?dl=0\" target=\"_blank\" rel=\"noopener\">Codigos para o Arduino<\/a><\/p>\n<h4>Conclus\u00e3o<\/h4>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-3954\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=580\" sizes=\"(max-width: 580px) 100vw, 580px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=580 580w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=1160 1160w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=150 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=300 300w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=768 768w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=1024 1024w\" alt=\"IMG_2488\" data-attachment-id=\"3954\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/img_2488\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=580\" data-orig-size=\"3264,2448\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1450209429&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;32&quot;,&quot;shutter_speed&quot;:&quot;0.03030303030303&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"IMG_2488\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=580?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/img_2488.jpg?w=580?w=580\" \/><\/p>\n<p>O carrinho est\u00e1 devidamente raqueado e pronto para ganhar o mundo! Agora o c\u00e9u \u00e9 o limite! Comece, por exemplo instando sensores para evitar obst\u00e1culos, um HC-04 (ultra-som) \u00a0funcionar\u00e1 bem, como vimos no caso do <a href=\"https:\/\/mjrobot.org\/2016\/03\/22\/o-mars-rover-tupiniquim-prototipo-de-uma-estacao-movel-para-captura-de-dados-ambientais\/\"> \u201cMars Rover\u201d tupiniquim<\/a>. Crie um novo comando e envie o \u201ccaracter\u201d via texto (ou use o bot\u00e3o Man\/Auto: caracter \u201cm\u201d, para o rob\u00f4 executar outras finc\u00f5es (buzina, por exemplo).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4377 alignright\" src=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=341&amp;h=286\" sizes=\"(max-width: 341px) 100vw, 341px\" srcset=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=341&amp;h=286 341w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=682&amp;h=572 682w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=150&amp;h=126 150w, https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=300&amp;h=251 300w\" alt=\"servo frontal\" width=\"341\" height=\"286\" data-attachment-id=\"4377\" data-permalink=\"https:\/\/mjrobot.org\/2016\/05\/07\/raqueando-o-carrinho-de-controle-remoto\/servo-frontal\/\" data-orig-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=341&amp;h=286\" data-orig-size=\"1342,1125\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"servo frontal\" data-image-description=\"\" data-medium-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=341&amp;h=286?w=300\" data-large-file=\"https:\/\/mjrobot.files.wordpress.com\/2016\/05\/servo-frontal.png?w=341&amp;h=286?w=580\" \/>Outra id\u00e9ia interessante \u00e9 melhorar a \u201cdirigibilidade\u201d do carrinho. O motor DC frontal poderia ser substitu\u00eddo por um servo de 180o que movimentaria o conjunto frontal de maneira linear, obtendo-se assim \u00e2ngulos de virada vari\u00e1veis. A foto ao lado \u00e9 de um exemplo que encontrei a web. N\u00e3o \u00e9 exatamente o mecanismo de meu carrinho, mas mas mostra como poderia ficar.<\/p>\n<p>&nbsp;<\/p>\n<p>That\u2019s all folks!<\/p>\n<p>Como sempre, espero que este\u00a0projeto ajude outras pessoas a encontrar seu caminho no apaixonante mundo da eletr\u00f4nica e dos rob\u00f4s!<\/p>\n<p>N\u00e3o deixe de visitar e seguir minha p\u00e1gina:\u00a0<a href=\"https:\/\/www.facebook.com\/mjrobot.org\/\" target=\"_blank\" rel=\"noopener\">MJRoBot.org no Facebook<\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u201cRaqueando\u201d o carrinho de controle\u00a0remoto &nbsp; Sempre que passo em uma loja de brinquedos e vejo carrinhos de\u00a0controle remoto na vitrine, fico doido para levar-los para casa, deve ser porque tinha adora\u00e7\u00e3o por este tipo de brinquedo, mas por falta de op\u00e7\u00f5es e grana, n\u00e3o cheguei a ter um quando crian\u00e7a.\u00a0Para compensar e ter uma [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2418,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[569,207],"tags":[],"class_list":["post-2416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artigos","category-blog","entry","has-media","owp-thumbs-layout-horizontal","owp-btn-normal","owp-tabs-layout-horizontal","has-no-thumbnails","has-product-nav"],"_links":{"self":[{"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/posts\/2416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/comments?post=2416"}],"version-history":[{"count":0,"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/posts\/2416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/media\/2418"}],"wp:attachment":[{"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/media?parent=2416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/categories?post=2416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduxop.com.br\/loja\/wp-json\/wp\/v2\/tags?post=2416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}