{"id":1819,"date":"2020-02-25T13:59:27","date_gmt":"2020-02-25T12:59:27","guid":{"rendered":"http:\/\/tech4.pl\/SQ9MDD\/?p=1819"},"modified":"2020-02-25T13:59:27","modified_gmt":"2020-02-25T12:59:27","slug":"wirtualna-sciana-irobot-roomba","status":"publish","type":"post","link":"https:\/\/sq9mdd.hamspirit.pl\/?p=1819","title":{"rendered":"Wirtualna \u015bciana iRobot roomba"},"content":{"rendered":"<p>Od dawna sprz\u0105taniem w domu zajmuje si\u0119 &#8222;Marysia&#8221; sprytny robocik roomba. Ogranicza\u0142em jej obszar sprz\u0105tania ci\u0119\u017carkiem, kt\u00f3ry blokowa\u0142 przej\u015bcie pomi\u0119dzy pomieszczeniami. Jednak gdy\u00a0niechc\u0105cy w niego kopn\u0105\u0142em, pomy\u015bla\u0142em \u017ce musz\u0119 w ko\u0144cu zrobi\u0107 wirtualn\u0105 \u015bcian\u0119.<\/p>\n<p><!--more--><\/p>\n<p>Oczywi\u015bcie rozpocz\u0105\u0142em od przeszukania internetu, gdy\u017c tak trywialny problem pewnie ju\u017c kto\u015b przede mn\u0105 rozwi\u0105za\u0142. Po kilku minutach szukania znalaz\u0142em <a href=\"https:\/\/forbot.pl\/forum\/topic\/16494-tresowanie-odkurzacza-czyli-wirtualna-sciana-na-attiny13\/\">\u015bwietny artyku\u0142 na forbocie<\/a>, w kt\u00f3rym autor przeanalizowa\u0142 spos\u00f3b dzia\u0142ania takiej \u015bciany i korzystaj\u0105c z jego opisu z\u0142o\u017cy\u0142em szybko urz\u0105dzenie prototypowe na p\u0142ytce stykowej.<\/p>\n<div id=\"attachment_1822\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1822\" rel=\"attachment wp-att-1822\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1822\" class=\"wp-image-1822 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/02\/sciana-pajak-300x150.jpg\" alt=\"\" width=\"300\" height=\"150\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-pajak-300x150.jpg 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-pajak.jpg 560w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1822\" class=\"wp-caption-text\">Prototyp \u015bciany.<\/p><\/div>\n<p>Urz\u0105dzenie jest bardzo proste i sk\u0142ada sie z procesora Attiny13, diody nadawczej \u015bwiec\u0105cej w podczerwieni, diody sygnalizuj\u0105cej prac\u0119, dw\u00f3ch rezystor\u00f3w, koszyczka na baterie i kilku kabelk\u00f3w do po\u0142\u0105czenia tego razem.<\/p>\n<div id=\"attachment_1831\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1831\" rel=\"attachment wp-att-1831\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1831\" class=\"wp-image-1831 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/02\/sciana-schemat-300x198.png\" alt=\"\" width=\"300\" height=\"198\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-schemat-300x198.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-schemat-768x506.png 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-schemat.png 875w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1831\" class=\"wp-caption-text\">Schemat ideowy<\/p><\/div>\n<p>Programowanie ATtiny13 jest bardzo proste i z u\u017cyciem biblioteki <a href=\"https:\/\/github.com\/MCUdude\/MicroCore\">microCore<\/a> oraz programatora USBasp, mo\u017cna to robi\u0107 z poziomu \u015brodowiska arduino.<br \/>\n\u0179r\u00f3d\u0142o programu pobra\u0142em ze wspomnianej ju\u017c wcze\u015bniej <a href=\"https:\/\/forbot.pl\/forum\/topic\/16494-tresowanie-odkurzacza-czyli-wirtualna-sciana-na-attiny13\/\">strony<\/a>\u00a0 Autor wykona\u0142 w tym kodzie kilka poprawek optymalizuj\u0105cych zu\u017cycie pr\u0105du:<\/p>\n<pre>#ifndef F_CPU\n#define F_CPU 9600000UL\n#endif\n\n#include &lt;avr\/sleep.h&gt;\n#include &lt;avr\/wdt.h&gt;\n#include &lt;avr\/io.h&gt;\n#include &lt;util\/delay.h&gt;\n\nISR(WDT_vect)\n{}\n\n#define pon do { \\\n        TCCR0A |= (1&lt;&lt;WGM01) | (1&lt;&lt;COM0A0);\\\n        TCCR0B |= (1&lt;&lt;CS00); \\\n      } while(0)\n \n#define poff do { \\\n        TCCR0A &amp;= ~((1&lt;&lt;WGM01) | (1&lt;&lt;COM0A0)); \\\n        TCCR0B &amp;= ~(1&lt;&lt;CS00); \\\n        PORTB &amp;= ~(1 &lt;&lt; PB0);\\\n      } while (0)\n \nint main(void)\n{\n    char i, n;\n    DDRB |= (1 &lt;&lt; PB0) | (1 &lt;&lt; PB1);\n    PORTB |= (1 &lt;&lt; PB1);\n    OCR0A = 125;\n    \n    \/\/ watchdog\n    \n    MCUSR &amp;= ~(1&lt;&lt;WDRF);\n    WDTCR |= (1 &lt;&lt; WDCE) | (1 &lt;&lt; WDE);\n    WDTCR = 1 | (1 &lt;&lt; WDCE);\n    WDTCR |= (1 &lt;&lt; WDTIE);\n    \n    sei();\n\n    for (n=0;; n= (n + 1) &amp; 7) {\n        if (!n) PORTB |= (1 &lt;&lt; PB1);\n        for (i=0; i&lt;3; i++) {\n            pon;\n            _delay_us(500);\n            poff;\n            if (i&lt;2) _delay_us(7500);\n        }\n        if (!n) PORTB &amp;= ~(1 &lt;&lt; PB1);\n        for (i=0; i&lt;5; i++) {\n            set_sleep_mode(SLEEP_MODE_PWR_DOWN);\n            sleep_mode();\n        }\n    }  \n}\n<\/pre>\n<p>Kolejny etap w pracach nad tym projektem to przygotowanie obudowy, w tym celu wymodelowa\u0142em w programie 3D bry\u0142\u0119 \u015bciany z miejcem wewn\u0105trz na pomieszczenie koszyczka na bateri\u0119 oraz elektronik\u0119. N g\u00f3rze bry\u0142y umie\u015bci\u0142em dwa otwory jeden na diod\u0119 LED sygnalizuj\u0105c\u0105 prac\u0119 oraz drugi w kt\u00f3rym zamocowa\u0142em wy\u0142\u0105cznik.<\/p>\n<div id=\"attachment_1823\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1823\" rel=\"attachment wp-att-1823\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1823\" class=\"wp-image-1823 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/02\/projekt-sciana-300x162.jpeg\" alt=\"\" width=\"300\" height=\"162\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/projekt-sciana-300x162.jpeg 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/projekt-sciana-768x415.jpeg 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/projekt-sciana.jpeg 1011w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1823\" class=\"wp-caption-text\">Modelowanie 3D.<\/p><\/div>\n<p>Szczelina od frontu kryje diod\u0119 LED nadaj\u0105c\u0105 w podczerwieni odpowiednio zmodulowany sygna\u0142 kt\u00f3ry nie pozwala roombie przejecha\u0107 dalej. Kszta\u0142t tej szczeliny powoduje \u017ce wi\u0105zka w podczerwieni jest stosunkowo w\u0105ska i pozwala na \u0142atwe ustawienie obszaru chronionego przed robotem.<\/p>\n<div id=\"attachment_1825\" style=\"width: 290px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1825\" rel=\"attachment wp-att-1825\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1825\" class=\"wp-image-1825 size-full\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/02\/sciana-render.png\" alt=\"\" width=\"280\" height=\"293\" \/><\/a><p id=\"caption-attachment-1825\" class=\"wp-caption-text\">Render obudowy wirtualnej \u015bciany.<\/p><\/div>\n<p>Jako \u017ce schemat elektryczny po\u0142\u0105cze\u0144 jest bardzo prosty, nie robi\u0142em specjalnie p\u0142ytki do tej konstrukcji tylko zmontowa\u0142em uk\u0142ad na p\u0142ytce uniwersalnej.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1836\" rel=\"attachment wp-att-1836\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1836\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/02\/sciana-elektronika-300x150.jpg\" alt=\"\" width=\"300\" height=\"150\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-elektronika-300x150.jpg 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-elektronika-1024x512.jpg 1024w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-elektronika-768x384.jpg 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-elektronika-1536x768.jpg 1536w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-elektronika.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Po zamontowaniu elektroniki w wydrukowanej obudowie \u015bciana jest gotowa do pracy.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1837\" rel=\"attachment wp-att-1837\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1837\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/02\/sciana-gotowa-150x300.jpg\" alt=\"\" width=\"150\" height=\"300\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-gotowa-150x300.jpg 150w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-gotowa-512x1024.jpg 512w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-gotowa-768x1536.jpg 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/02\/sciana-gotowa.jpg 1024w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p>R.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Od dawna sprz\u0105taniem w domu zajmuje si\u0119 &#8222;Marysia&#8221; sprytny robocik roomba. Ogranicza\u0142em jej obszar sprz\u0105tania ci\u0119\u017carkiem, kt\u00f3ry blokowa\u0142 przej\u015bcie pomi\u0119dzy pomieszczeniami. Jednak gdy\u00a0niechc\u0105cy w niego kopn\u0105\u0142em, pomy\u015bla\u0142em \u017ce musz\u0119 w ko\u0144cu zrobi\u0107 wirtualn\u0105 \u015bcian\u0119.<\/p>\n","protected":false},"author":2,"featured_media":1837,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,15,22],"tags":[],"class_list":["post-1819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diy","category-hardware","category-software"],"_links":{"self":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/1819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1819"}],"version-history":[{"count":0,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/1819\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/media\/1837"}],"wp:attachment":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}