{"id":347,"date":"2013-08-22T12:43:02","date_gmt":"2013-08-22T11:43:02","guid":{"rendered":"http:\/\/ofalcao.pt\/blog\/?p=347"},"modified":"2013-08-22T12:43:02","modified_gmt":"2013-08-22T11:43:02","slug":"primeiras-linhas-de-codigo","status":"publish","type":"post","link":"https:\/\/ofalcao.pt\/blog\/2013\/primeiras-linhas-de-codigo","title":{"rendered":"Primeiras linhas de c\u00f3digo"},"content":{"rendered":"<div class=\"seriesmeta\">This post is part 5 of 5 of \u00a0<a href=\"https:\/\/ofalcao.pt\/blog\/series\/cronicas-do-engenheiro-maluco\" class=\"series-124\" title=\"Cr\u00f3nicas do Engenheiro Maluco por Tartes de Framboesa e Lego\">Cr\u00f3nicas do Engenheiro Maluco por Tartes de Framboesa e Lego<\/a><\/div><p>Com um Rover j\u00e1 em condi\u00e7\u00f5es de andar, faltava o video de demonstra\u00e7\u00e3o da praxe (o que est\u00e1 no <a title=\"Cr\u00f3nicas do Engenheiro Maluco por Tartes de Framboesa e Lego: Introdu\u00e7\u00e3o\" href=\"http:\/\/ofalcao.pt\/blog\/2013\/cronicas-do-engenheiro-maluco-por-tartes-de-framboesa-e-lego-introducao\">artigo de abertura<\/a> desta s\u00e9rie).<\/p>\n<p>Antes de me meter \u00e0 aventura com o Snap! limitei-me a transferir para o Raspberry Pi um script muito b\u00e1sico em python que faz o Rover por 4 vezes andar um tro\u00e7o a direito seguido de uma curva \u00e0 esquerda (idealmente voltando ao ponto de partida mas como n\u00e3o usei nenhum tipo de sensores a \u00fanica forma de o conseguir foi afinando os tempos \u00e0 m\u00e3o) e no final uma rota\u00e7\u00e3o em torno de si mesmo v\u00e1rias vezes para a direita:<\/p>\n<pre>import nxt\nimport nxt\nimport nxt.locator\nfrom nxt.sensor import *\nfrom nxt.motor import *\nfrom time import sleep\n\nbrick = nxt.locator.find_one_brick()\nleft = Motor(brick, PORT_B)\nright = Motor(brick, PORT_C)\nboth = nxt.SynchronizedMotors(left, right, 0)\nleftboth = nxt.SynchronizedMotors(left, right, 100)\nrightboth = nxt.SynchronizedMotors(right, left, 100)\n\nfor n in range(0,4):\n\u00a0both.run(100)\n\u00a0sleep(1.25)\n\u00a0both.idle()\n\u00a0sleep(0.25)\n\u00a0leftboth.run(100)\n\u00a0sleep(0.48)\n\u00a0leftboth.idle()\n\u00a0sleep(0.25)\n\nrightboth.run(100)\nsleep(4)\nrightboth.idle()<\/pre>\n<p>A execu\u00e7\u00e3o do script foi comandada manualmente (essencialmente acedi de modo wireless a partir do meu port\u00e1til por SSH e invoquei o script a partir da shell).<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"seriesmeta\">This post is part 5  of 5 of \u00a0<a href=\"https:\/\/ofalcao.pt\/blog\/series\/cronicas-do-engenheiro-maluco\" class=\"series-124\" title=\"Cr\u00f3nicas do Engenheiro Maluco por Tartes de Framboesa e Lego\">Cr\u00f3nicas do Engenheiro Maluco por Tartes de Framboesa e Lego<\/a><\/div><p>Com um Rover j\u00e1 em condi\u00e7\u00f5es de andar, faltava o video de demonstra\u00e7\u00e3o da praxe (o que est\u00e1 no artigo de abertura desta s\u00e9rie). Antes de me meter \u00e0 aventura com o Snap! limitei-me a transferir para o Raspberry Pi um script muito b\u00e1sico em python que faz o Rover por 4 vezes andar um &hellip; <a href=\"https:\/\/ofalcao.pt\/blog\/2013\/primeiras-linhas-de-codigo\" class=\"more-link\">Continuar a ler<span class=\"screen-reader-text\"> &#8220;Primeiras linhas de c\u00f3digo&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[1],"tags":[],"series":[124],"class_list":["post-347","post","type-post","status-publish","format-standard","hentry","category-sem-categoria","series-cronicas-do-engenheiro-maluco"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2Mhyv-5B","_links":{"self":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/posts\/347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/comments?post=347"}],"version-history":[{"count":0,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/posts\/347\/revisions"}],"wp:attachment":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/media?parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/categories?post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/tags?post=347"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/series?post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}