{"id":169,"date":"2019-05-08T11:59:09","date_gmt":"2019-05-08T11:59:09","guid":{"rendered":"http:\/\/visiorob.com.br\/?p=169"},"modified":"2019-05-24T19:12:36","modified_gmt":"2019-05-24T19:12:36","slug":"visao-inicial-de-drives-de-dispositivos-com-linux-embarcado","status":"publish","type":"post","link":"https:\/\/visiorob.com.br\/index.php\/2019\/05\/08\/visao-inicial-de-drives-de-dispositivos-com-linux-embarcado\/","title":{"rendered":"Vis\u00e3o Inicial de Drives de Dispositivos com Linux Embarcado"},"content":{"rendered":"\n<p>Muitos dos trabalhos realizados pelo grupo VisioRob envolvem o uso de placas que permitam rodar o sistema Linux nelas (<em>Embedded Linux<\/em>). A exemplo pode-se citar placas como as Raspberry Pi, Orange Pi, BeagleBone Black e outras placas equivalentes.<\/p>\n\n\n\n<p>De fato exitem v\u00e1rias vantagens de utilizarmos Linux Embarcado em nossos projetos. As que mais interessam ao grupo VisioRob \u00e9 a modularidade deste sistema operacional e a exist\u00eancia de c\u00f3digo fonte aberto.<\/p>\n\n\n\n<p>Porque o Linux \u00e9 um sistema de c\u00f3digo aberto isso nos permite encontrar c\u00f3digos que outros grupos, na maioria mais experientes que o nosso, j\u00e1 desenvolveram. Assim, podemos nos inspirar e utilizarmos esses c\u00f3digos como exemplo na cria\u00e7\u00e3o dos nossos drive.<\/p>\n\n\n\n<p>J\u00e1 a modularidade do sistema \u00e9 a capacidade que o Linux nos fornece de alterar ou adicionar novas fun\u00e7\u00f5es (m\u00f3dulos) ao sistema. No Linux a adi\u00e7\u00e3o de novos m\u00f3dulos pode ser realizar em tempo de execu\u00e7\u00e3o. Dada essa modularidade do Linux os drives de dispositivos tamb\u00e9m s\u00e3o chamados de m\u00f3dulos (<em>Kernel modules<\/em>).<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Altera\u00e7\u00f5es em tempo de execu\u00e7\u00e3o s\u00e3o altera\u00e7\u00f5es que podem ser realizadas sem a necessidade de reiniciar o sistema.<\/p><\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Mais o qu\u00ea s\u00e3o os drives de dispositivos? E o que eles fazem? <\/h3>\n\n\n\n<p>Os drives de dispositivos podem ser entendidos como:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p> <strong>Caixas pretas<\/strong> distintas que fazem com que uma determinada pe\u00e7a de um hardware responda seguindo uma programa\u00e7\u00e3o bem definida.<\/p><cite>CORBET, J. et al. <strong>Linux Device Drivers. <\/strong> 3. ed. Sebastopol: O&#8217;reilly, 2005. 616 p.<\/cite><\/blockquote>\n\n\n\n<p>O termo <strong>caixas pretas<\/strong> indicam que o usu\u00e1rio n\u00e3o precisa saber como \u00e9 o funcionamento interno do drive. Ele apenas precisa enviar a solicita\u00e7\u00e3o ao drive que ser\u00e1 executada a tarefa solicitada. Por fim, pode-se entender a fun\u00e7\u00e3o dos drives como sendo uma programa\u00e7\u00e3o que ir\u00e1 indicar para o sistema operacional de como ele deve interagir com o hardware.<\/p>\n\n\n\n<p>S\u00f3 para ilustrar, o grupo VisioRob est\u00e1 desenvolvendo um rob\u00f4 aut\u00f4nomo que ser\u00e1 utilizado em estudos futuros, <a href=\"https:\/\/visiorob.com.br\/index.php\/projeto-ciclopes\/\">projeto Ciclopes<\/a>. Uma vez que todo o hardware do rob\u00f4 est\u00e1 sendo desenvolvido por n\u00f3s n\u00e3o existe uma distribui\u00e7\u00e3o Linux que ir\u00e1 conseguir controlar o rob\u00f4 Ciclopes (acionar as rodas, luzes e dire\u00e7\u00e3o). Assim, o grupo VisioRob precisar\u00e1 desenvolver o drives que ser\u00e3o utilizados nesse projeto.<\/p>\n\n\n\n<p>Assim, para os Makers interessados em conhecer um pouco mais sobre drives de dispositivos para Linux embarcado, iremos lan\u00e7ar uma sequ\u00eancia de post de como program\u00e1-los e, para isso, iremos utilizar, como exemplos, os drives que est\u00e3o sendo desenvolvidos para o <a href=\"https:\/\/visiorob.com.br\/index.php\/projeto-ciclopes\/\">projeto Ciclopes<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Neste post \u00e9 apresentado o que s\u00e3o drives de dispositivos e a import\u00e2ncia deles para o grupo VisioRob.<\/p>\n<\/div>","protected":false},"author":6,"featured_media":466,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[13],"tags":[16,15,17,18],"class_list":["post-169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-embarcado","tag-drives","tag-linux","tag-modules","tag-sistema-embarcado"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/posts\/169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":15,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/posts\/169\/revisions"}],"predecessor-version":[{"id":339,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/posts\/169\/revisions\/339"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/media\/466"}],"wp:attachment":[{"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/visiorob.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}