{"id":362,"date":"2021-12-22T05:34:00","date_gmt":"2021-12-22T02:34:00","guid":{"rendered":"https:\/\/sandrobenigno.com.br\/blog\/?p=362"},"modified":"2025-04-09T17:55:24","modified_gmt":"2025-04-09T14:55:24","slug":"projeto-windrose","status":"publish","type":"post","link":"https:\/\/sandrobenigno.com.br\/blog\/2021\/12\/22\/projeto-windrose\/","title":{"rendered":"Projeto WindRose"},"content":{"rendered":"\n<p>Este projeto foi apresentado no Congresso Artificial Life (ALIFE 2023), realizado na Universidade de Hokkaido, Sapporo (Jap\u00e3o). O evento foi promovido pelo MIT Press. O texto introdut\u00f3rio est\u00e1 dispon\u00edvel nos anexos das atas do evento, podendo ser acessado atrav\u00e9s deste link:\u00a0<a href=\"https:\/\/direct.mit.edu\/isal\/proceedings\/isal2023\/35\/3\/116848\" target=\"_blank\" rel=\"noreferrer noopener\">MIT Press &#8211; ALIFE 2023<\/a>.<\/p>\n\n\n\n<p>Estamos acostumados a ouvir falar sobre a evolu\u00e7\u00e3o por meio da competi\u00e7\u00e3o, mas e se come\u00e7armos a pensar sobre coisas que evoluem por meio da coopera\u00e7\u00e3o?<\/p>\n\n\n\n<p>Podemos aprender muito sobre n\u00f3s mesmos ao simular seres rob\u00f3ticos se comunicando, compartilhando informa\u00e7\u00f5es, ferramentas e interagindo como uma comunidade de seres vivos. Nessas simula\u00e7\u00f5es, surgem quest\u00f5es como a import\u00e2ncia da sincronia entre os seres, a necessidade de uma linguagem compartilhada para a compreens\u00e3o m\u00fatua, entre muitas outras quest\u00f5es. \u00c9 sobre isso que trata este projeto e pesquisa.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"658\" src=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_board.jpg\" alt=\"Circuitaria da placa WindRose.\" class=\"wp-image-364\" srcset=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_board.jpg 896w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_board-300x220.jpg 300w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_board-768x564.jpg 768w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\" \/><\/figure>\n\n\n\n<p>O hardware que chamamos de WindRose (rosa dos ventos) tem esse nome por tratar-se de uma placa com orienta\u00e7\u00e3o de interconex\u00e3o por bordas mapeadas. Foram projetadas para simula\u00e7\u00f5es em modelo f\u00edsico de aut\u00f4matos celulares.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"735\" src=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_scenarios.jpg\" alt=\"\" class=\"wp-image-367\" srcset=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_scenarios.jpg 900w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_scenarios-300x245.jpg 300w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_scenarios-768x627.jpg 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p>A WindRose  foi desenvolvida inicialmente como uma demanda da professora Marilia Lyra Bergamo, minha parceira neste projeto. Sou imensamente grato a ela, pelo investimento de recursos, pela inspira\u00e7\u00e3o e orienta\u00e7\u00e3o inestim\u00e1veis ao longo de todo o processo de desenvolvimento, bem como pela aplica\u00e7\u00e3o do hardware em sua pesquisa sobre Plantas Rob\u00f3ticas e Teorias da Complexidade.<\/p>\n\n\n\n<p>A placa base tem 46mm de largura, 46mm de comprimento e 14mm de altura (com os terminais de parafuso). Pode-se pensar nela como um tipo espec\u00edfico de placa baseada em Arduino.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"810\" src=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_pinout.jpg\" alt=\"\" class=\"wp-image-365\" srcset=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_pinout.jpg 900w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_pinout-300x270.jpg 300w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2023\/05\/wr_pinout-768x691.jpg 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p>Nas coordenadas cardinais (N, E, S, W), existem conectores parafus\u00e1veis de quatro pinos, para comunica\u00e7\u00e3o em malha, assim como para compartilhar a fonte de energia com todas as c\u00e9lulas conectadas em um cen\u00e1rio de aut\u00f4mato celular. Nas coordenadas relativas (NE, SE, SW, NW), est\u00e3o todas as portas de sensoriamento (nas bordas diagonais). Tamb\u00e9m existem as portas internas: ICSP (debug e grava\u00e7\u00e3o do bootloader), FTDI (debug serial e programa\u00e7\u00e3o do firmware) e uma porta PWM (para servos).<\/p>\n\n\n\n<p>No c\u00f3digo do firmware de base, cada c\u00e9lula possui duas classes <em>WRBoard <\/em>(o corpo f\u00edsico) e a classe <em>Being <\/em>(ser ou alma). A primeira classe se refere a portas, controles e dispositivos internos. A segunda classe possui o estado atual e os dados de sensoriamento local da c\u00e9lula. Essa classe consegue, tamb\u00e9m, detectar a presen\u00e7a e coleta dados de seus vizinhos diretos. C\u00e9lulas conectadas diretamente s\u00e3o identificadas de forma imediata, enquanto os vizinhos das diagonais s\u00e3o inferidos algoritmicamente, pelos dados recebidos dos vizinhos diretos.<\/p>\n\n\n\n<p>H\u00e1 um exemplo de interface gr\u00e1fica de monitonamento serial, que pode ser conectado a uma c\u00e9lula individual a ser verificada. A interface foi programada em <em>Processing<\/em>, que \u00e9 um ambiente de programa\u00e7\u00e3o bastante acess\u00edvel, para facilitar a c\u00f3pia e\/ou edi\u00e7\u00e3o do c\u00f3digo, para a cria\u00e7\u00e3o de algum sistema customizado. Na figura abaixo, no canto inferior \u00e0 direita, vemos um monitoramento de c\u00e9lulas ativas (acesas), assim como a infer\u00eancia de um vizinho diagonal (a nordeste) da c\u00e9lula monitorada.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" src=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2021\/12\/wr_monitor-1024x583.jpg\" alt=\"Interface gr\u00e1fica de exemplo.\" class=\"wp-image-372\" srcset=\"https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2021\/12\/wr_monitor-1024x583.jpg 1024w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2021\/12\/wr_monitor-300x171.jpg 300w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2021\/12\/wr_monitor-768x437.jpg 768w, https:\/\/sandrobenigno.com.br\/blog\/wp-content\/uploads\/2021\/12\/wr_monitor.jpg 1296w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Para saber mais sobre o projeto visite a documenta\u00e7\u00e3o na wiki: <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/sandrobenigno\/WindRose\/wiki\" target=\"_blank\">https:\/\/github.com\/sandrobenigno\/WindRose\/wiki<\/a><\/p>\n\n\n\n<p>A documenta\u00e7\u00e3o do c\u00f3digo base do firmware pode ser consultado em: <a href=\"https:\/\/sandrobenigno.github.io\/WindRose\/html\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/sandrobenigno.github.io\/WindRose\/html\/index.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este projeto foi apresentado no Congresso Artificial Life (ALIFE 2023), realizado na Universidade de Hokkaido, Sapporo (Jap\u00e3o). O evento foi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":366,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nao-especificada"],"_links":{"self":[{"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/posts\/362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/comments?post=362"}],"version-history":[{"count":17,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions"}],"predecessor-version":[{"id":431,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions\/431"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/media\/366"}],"wp:attachment":[{"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/media?parent=362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/categories?post=362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sandrobenigno.com.br\/blog\/wp-json\/wp\/v2\/tags?post=362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}