{"id":22002,"date":"2021-05-19T08:10:47","date_gmt":"2021-05-19T06:10:47","guid":{"rendered":"https:\/\/botland.com.pl\/blog\/?p=22002"},"modified":"2023-05-24T10:00:41","modified_gmt":"2023-05-24T08:00:41","slug":"budujemy-robota-mecanum-z-m5stack","status":"publish","type":"post","link":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/","title":{"rendered":"Budujemy robota Mecanum z M5Stack"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Czas czytania:<\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">min.<\/span><\/span>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"22002\" class=\"elementor elementor-22002\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e6905c1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e6905c1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6e1d529\" data-id=\"6e1d529\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-079c071 elementor-widget elementor-widget-text-editor\" data-id=\"079c071\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><b>Spo\u0142eczno\u015b\u0107 M5Stack to prawdziwa kopalnia makerskich wspania\u0142o\u015bci. Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack.<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-28c0125 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"28c0125\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-e42b11e\" data-id=\"e42b11e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c3ae70c elementor-widget elementor-widget-text-editor\" data-id=\"c3ae70c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"https:\/\/www.hackster.io\/hague\/bluetooth-programmable-mecanum-wheel-robot-c5bca7\" data-wpel-link=\"external\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\"><b>Oryginalny projekt<\/b><\/a> na portalu hackster.io w j\u0119zyku angielskim opublikowa\u0142 Hans-G\u00fcnther Nusseck.\u00a0<span style=\"font-size: 1rem;\">Kody i komendy w formie gotowej do skopiowania i wklejenia oraz w formie plik\u00f3w, a tak\u017ce repozytorium\u00a0<\/span>Bluetooth-RoverC,\u00a0<span style=\"font-size: 1rem;\">znajdziecie w sekcji\u00a0<\/span>dolnej\u00a0<span style=\"font-size: 1rem;\">na ko\u0144cu artyku\u0142u.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-9f06eaa\" data-id=\"9f06eaa\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-616a222 elementor-widget elementor-widget-image\" data-id=\"616a222\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/code-300x300.jpg\" class=\"attachment-medium size-medium wp-image-22039\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/code-300x300.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/code-150x150.jpg 150w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/code.jpg 628w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0d7cbf elementor-widget elementor-widget-image\" data-id=\"e0d7cbf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"768\" height=\"428\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack-768x428.jpg\" class=\"attachment-medium_large size-medium_large wp-image-22038\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack-768x428.jpg 768w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack-300x167.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack.jpg 970w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cfb3578 elementor-widget elementor-widget-heading\" data-id=\"cfb3578\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Roboty ko\u0142owe Mecanum. Za\u0142o\u017cenia projektowe<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-092ad6c elementor-widget elementor-widget-text-editor\" data-id=\"092ad6c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Fascynuj\u0105ce dzi\u0119ki niezwyk\u0142ej swobodzie ruchu ko\u0142o Mecanum, albo inaczej ko\u0142o szwedzkie, jest konstrukcj\u0105 ko\u0142a bez opony do poruszania si\u0119 pojazdu l\u0105dowego w dowolnym kierunku. Czasami nazywane jest ko\u0142em Ilon od nazwiska jego wynalazcy, Bengta Erlanda Ilona.\u00a0<\/p><p>Lista zakup\u00f3w:<\/p><ul><li><b><a href=\"https:\/\/botland.com.pl\/seria-stick\/18102-m5stack-roverc-pro-platforma-robota-z-kolami-i-chwytakiem-6972934172303.html\" data-wpel-link=\"internal\">M5Stack RoverC Pro &#8211; platforma robota z ko\u0142ami i chwytakiem<\/a><\/b><\/li><li><b><a href=\"https:\/\/botland.com.pl\/seria-stick\/17987-m5stickc-modul-deweloperski-iot-esp32-pico-6972934170125.html\" data-wpel-link=\"internal\">M5StickC &#8211; modu\u0142 deweloperski IoT &#8211; ESP32-PICO<\/a><\/b><\/li><\/ul><div><span style=\"font-family: Roboto;\">\u00a0<\/span><\/div><p><span style=\"font-size: 1rem;\">Do projektu wykorzystamy Rover C, kt\u00f3ry jest kontrolowany przez M5Stack M5StickC (ESP32) i czyni ca\u0142o\u015b\u0107 stosunkowo \u0142atw\u0105 w realizacji. Opiera si\u0119 na zaprogramowanym rozwi\u0105zaniu &#8211; b\u0119d\u0105 to sekwencje ruch\u00f3w z urz\u0105dzenia mobilnego lub komputera. Projekt powsta\u0142 jako pomys\u0142 gry, w kt\u00f3rej robot porusza si\u0119 wok\u00f3\u0142 przeszk\u00f3d. Jednak dzieje si\u0119 to nie za pomoc\u0105 pilota, ale po zaprogramowaniu komendy ruchu przez Bluetooth.\u00a0<\/span><span style=\"font-size: 1rem;\">Dzi\u0119ki ko\u0142om szwedzkim nasz RoverC mo\u017ce porusza\u0107 si\u0119 w ka\u017cdym kierunku bez obracania si\u0119. Sterowanie ko\u0142ami jeszcze szczeg\u00f3\u0142owo opiszemy.\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6cceaf elementor-widget elementor-widget-image\" data-id=\"b6cceaf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"223\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack1-1024x286.jpg\" class=\"attachment-large size-large wp-image-22004\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack1-1024x286.jpg 1024w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack1-300x84.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack1-768x215.jpg 768w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack1.jpg 1280w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Pe\u0142ny zakres ruchu bez skr\u0119cania.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-da77ac7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"da77ac7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-580363d\" data-id=\"580363d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6cfdf7d elementor-widget elementor-widget-text-editor\" data-id=\"6cfdf7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Warto\u015b\u0107 polecenia dla okre\u015blonego kierunku powoduje, \u017ce \u0142azik porusza si\u0119 w tym kierunku przez okre\u015blony czas. Pozwala to na zaprogramowanie sekwencji ruch\u00f3w za pomoc\u0105 sekwencji warto\u015bci kierunkowych. Brzmi skomplikowanie, ale jest to ca\u0142kiem proste. Modu\u0142 umie\u015bcimy bezpo\u015brednio na robocie niczym wie\u017cyczk\u0119 \u0142azika. Patrzcie.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77453e8 elementor-widget elementor-widget-video\" data-id=\"77453e8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=kqsJUOpCALo&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e156912 elementor-widget elementor-widget-heading\" data-id=\"e156912\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Przyk\u0142adowa arena robota z modu\u0142em M5Stack <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1d4be7 elementor-widget elementor-widget-text-editor\" data-id=\"e1d4be7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Aby bohater m\u00f3g\u0142 dotrze\u0107 do celu bez naje\u017cd\u017cania na przeszkody, zaprogramujemy dla niego sekwencj\u0119 ruch\u00f3w.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-9235f25 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9235f25\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-f1cc090\" data-id=\"f1cc090\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-df3e796 elementor-widget elementor-widget-image\" data-id=\"df3e796\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"455\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack2.jpg\" class=\"attachment-large size-large wp-image-22005\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack2.jpg 960w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack2-300x171.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack2-768x437.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1e69b8f\" data-id=\"1e69b8f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1b4b52f elementor-widget elementor-widget-image\" data-id=\"1b4b52f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"455\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack3.jpg\" class=\"attachment-large size-large wp-image-22006\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack3.jpg 960w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack3-300x171.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack3-768x437.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fe01a00 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fe01a00\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d7f227d\" data-id=\"d7f227d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0abae84 elementor-widget elementor-widget-text-editor\" data-id=\"0abae84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Sekwencja ruchu mo\u017ce by\u0107 zaprogramowana na Roverze za pomoc\u0105 terminala szeregowego Bluetooth, kt\u00f3ry jest dost\u0119pny dla smartfon\u00f3w lub komputer\u00f3w PC.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e6ca94 elementor-widget elementor-widget-image\" data-id=\"1e6ca94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"336\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/rover_zeitraffer_small_9Svczn5IQO.gif\" class=\"attachment-large size-large wp-image-22008\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-396ef3f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"396ef3f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-015fec3\" data-id=\"015fec3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2ab11be elementor-widget elementor-widget-heading\" data-id=\"2ab11be\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Komunikacja i komendy<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbef63c elementor-widget elementor-widget-text-editor\" data-id=\"dbef63c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Nawi\u0105zanie po\u0142\u0105czenia szeregowego Bluetooth z ESP32 to<span style=\"font-size: 1rem;\">\u00a0do\u0142\u0105czenie headera BluetoothSerial.h i zdefiniowanie obiektu BluetoothSerial:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc90724 elementor-widget elementor-widget-code-highlight\" data-id=\"bc90724\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>#include <BluetoothSerial.h>\r\n\/\/ Bluetooth serial object\r\nBluetoothSerial SerialBT;\r\nuint64_t chipid;\r\nchar chipname[256];<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5860e99 elementor-widget elementor-widget-text-editor\" data-id=\"5860e99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Potrzebujemy nazwy dla urz\u0105dzenia Bluetooth. Mo\u017ce zosta\u0107 pobrana z Chip ID urz\u0105dzenia ESP. Z tym ID BluetoothSerial mo\u017ce zosta\u0107 uruchomiony i natychmiast oczekiwa\u0107 na po\u0142\u0105czenie od klienta.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d5577fe elementor-widget elementor-widget-code-highlight\" data-id=\"d5577fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\/\/Stw\u00f3rz Bluetooth ID.\n\/\/Chip ID to adres MAC (d\u0142ugo\u015b\u0107: 6 bit\u00f3w)\nchipid = ESP.getEfuseMac();\nsprintf( chipname, \"M5StickC_%04X\", (uint16_t)(chipid >> 32));\n\/\/ uruchomienie Bluetooth\nif(SerialBT.begin(chipname))\n    tb_display_print_String(\"[OK] Bluetooth Init\\n\");\nelse\n    tb_display_print_String(\"[ERR] Unable to start Bluetooth!\\n\");<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb85ce2 elementor-widget elementor-widget-text-editor\" data-id=\"cb85ce2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Kod wykorzystuje bibliotek\u0119 <b><a href=\"https:\/\/www.hackster.io\/hague\/m5stickc-textbuffer-scrolling-display-fb6428\" data-wpel-link=\"external\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\">tb_display<\/a><\/b>\u00a0oryginalnego autora projektu do \u0142atwego tworzenia wyj\u015bcia tekstowego na M5StickC.Program oczekuje na przychodz\u0105ce znaki z interfejsu szeregowego Bluetooth. Znaki te s\u0105 zbierane i za ka\u017cdym razem, gdy odbierany jest znak spacji, warto\u015b\u0107, kt\u00f3ra zosta\u0142a wys\u0142ana, jest zapisywana jako komenda. Znak gwiazdki (lub timeout wynosz\u0105cy 5 sekund) ko\u0144czy tryb odbioru i rozpoczyna sekwencj\u0119 ruchu.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79d36c5 elementor-widget elementor-widget-code-highlight\" data-id=\"79d36c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>while(SerialBT.available()){\r\nint data = SerialBT.read();\r\n\/\/ tylko warto\u015bci liczbowe\r\nif(isDigit(data)){\r\nread_String += (char)data;\r\n}\r\n\/\/ spacja jest separatorem kod\u00f3w kierunku\r\nif(data == ' ' || (data == '*' && read_String != \"\")){\r\nint value = read_String.toInt();\r\nif(value >=0 && value <= 360){\r\ncode_queue_add(value);\r\n}\r\nread_String = \"\";\r\n}\r\n\/\/ symbol * rozpoczyna komend\u0119 w sekwencji ruch\u00f3w\r\nif(data == '*'){\r\ntb_display_print_String(\"\\n-START-\\n\");\r\nprocess_state = ps_run_program;\r\n}\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a412769 elementor-widget elementor-widget-text-editor\" data-id=\"a412769\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Do zapisywania komend u\u017cyto kolejki ze standardowej biblioteki C++. Znajduje si\u0119 ona w osobnych plikach .h i.cc, aby unikn\u0105\u0107 konflikt\u00f3w z przestrzeni\u0105 nazw.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-197a4ec elementor-widget elementor-widget-code-highlight\" data-id=\"197a4ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\r\n\/\/ definiujemy queue object\r\nstd::queue<int> Command_queue;<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-037ad47 elementor-widget elementor-widget-text-editor\" data-id=\"037ad47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Podczas sekwencji ruch\u00f3w g\u00f3rny element jest pobierany z kolejki jako nowe polecenie, a\u017c kolejka b\u0119dzie pusta:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-36d3f5b elementor-widget elementor-widget-code-highlight\" data-id=\"36d3f5b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\/\/ usu\u0144 wszystkie komendy z kolejki\r\n\/\/ code_queue_get() zwraca false, je\u015bli kolejka jest pusta\r\nwhile(code_queue_get(&value)){\r\n    snprintf(String_buffer, sizeof(String_buffer), \"--> %i\\n\", value);\r\n    tb_display_print_String(String_buffer);\r\n    \/\/ Funkcja move_rover() zawiera tak\u017ce przy\u015bpieszenie\r\n    \/\/ W zwi\u0105zku z tym wykonanie mo\u017ce zaj\u0105\u0107 wi\u0119cej czasu\r\n    move_rover(value, 50);\r\n    \/\/ Pozw\u00f3lmy \u0142azikowi porusza\u0107 si\u0119 przez  250ms  (z wy\u0142\u0105czeniem fazy przyspieszania)\r\n    delay(250);\r\n}\r\nrover_stop();\r\ntb_display_print_String(\"\\n-FINISH-\\n\");<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23a5a9d elementor-widget elementor-widget-heading\" data-id=\"23a5a9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Po\u0142\u0105czenie robota<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-118c56a elementor-widget elementor-widget-text-editor\" data-id=\"118c56a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Najpierw nale\u017cy pobra\u0107 i zainstalowa\u0107 aplikacj\u0119 <b><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=de.kai_morich.serial_bluetooth_terminal&amp;hl=pl&amp;gl=US\" data-wpel-link=\"external\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\">Bluetooth Serial Terminal<\/a><\/b> na komputerze lub smartfonie.\u00a0<span style=\"font-size: 1rem;\">Zr\u00f3bmy to i mo\u017cna wraca\u0107 do poradnika.\u00a0<\/span><span style=\"font-size: 1rem;\">Nast\u0119pnie parujemy nasze urz\u0105dzenie z M5StickC tak, jak robimy to z ka\u017cdym innym urz\u0105dzeniem Bluetooth.\u00a0Teraz uruchamiamy terminal szeregowy Bluetooth, \u0142\u0105czymy si\u0119 z robotem i wysy\u0142amy komendy ruchu oddzielone spacjami i gwiazdk\u0105 na ko\u0144cu listy.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4afb235 elementor-widget elementor-widget-image\" data-id=\"4afb235\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"450\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack4.jpg\" class=\"attachment-full size-full wp-image-22012\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack4.jpg 1280w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack4-300x105.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack4-1024x360.jpg 1024w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack4-768x270.jpg 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Przesy\u0142anie komend za pomoc\u0105 Bluetooth Serial Terminal<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a95eb64 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a95eb64\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1db5f4d\" data-id=\"1db5f4d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5d35bfd elementor-widget elementor-widget-heading\" data-id=\"5d35bfd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ruch robota<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-47c014f elementor-widget elementor-widget-text-editor\" data-id=\"47c014f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Podczas obracania si\u0119 do przodu, tradycyjne ko\u0142o znane wytwarza si\u0142\u0119, kt\u00f3ra jest skierowana dok\u0142adnie w kierunku jazdy. Ze wzgl\u0119du na rozmieszczenie poszczeg\u00f3lnych b\u0119bn\u00f3w szwedzkie ko\u0142o mecanum wytwarza za\u015b si\u0142\u0119, kt\u00f3ra jest skierowana uko\u015bnie pod k\u0105tem 45 stopni do przodu. To samo dotyczy obrot\u00f3w do ty\u0142u, jak mo\u017cna zobaczy\u0107 tutaj:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0bd2613 elementor-widget elementor-widget-image\" data-id=\"0bd2613\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"230\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack5-1024x295.jpg\" class=\"attachment-large size-large wp-image-22016\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack5-1024x295.jpg 1024w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack5-300x86.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack5-768x221.jpg 768w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack5.jpg 1246w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cbef3c1 elementor-widget elementor-widget-text-editor\" data-id=\"cbef3c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ca\u0142y rozk\u0142ad dla k\u00f3\u0142 prezentuje si\u0119 tak:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b79c6c0 elementor-widget elementor-widget-image\" data-id=\"b79c6c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"339\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6.jpg\" class=\"attachment-large size-large wp-image-22023\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6.jpg 822w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-300x127.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-768x325.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e75b5b1 elementor-widget elementor-widget-text-editor\" data-id=\"e75b5b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Potrzebujemy teraz funkcji, kt\u00f3ra obliczy warto\u015bci dla czterech pr\u0119dko\u015bci silnika na podstawie po\u017c\u0105danego kierunku ruchu i po\u017c\u0105danej pr\u0119dko\u015bci. Aby to zrobi\u0107, musimy rozbi\u0107 po\u017c\u0105dany kierunek ruchu na sk\u0142adowe vx i vy.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6759928 elementor-widget elementor-widget-image\" data-id=\"6759928\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"209\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/xvvy.jpg\" class=\"attachment-full size-full wp-image-22024\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/xvvy.jpg 685w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/xvvy-300x92.jpg 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85ba5c7 elementor-widget elementor-widget-text-editor\" data-id=\"85ba5c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Je\u015bli teraz spojrzymy ponownie na wynikowe kierunki si\u0142 w ko\u0142ach w odniesieniu do podstawowego uk\u0142adu wsp\u00f3\u0142rz\u0119dnych, mo\u017cemy obliczy\u0107 wymagan\u0105 pr\u0119dko\u015b\u0107 dla ka\u017cdego silnika.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de9d966 elementor-widget elementor-widget-image\" data-id=\"de9d966\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"269\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-1-1024x344.jpg\" class=\"attachment-large size-large wp-image-22031\" alt=\"\" srcset=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-1-1024x344.jpg 1024w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-1-300x101.jpg 300w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-1-768x258.jpg 768w, https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2021\/05\/m5stack6-1.jpg 1147w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2a4b52 elementor-widget elementor-widget-text-editor\" data-id=\"d2a4b52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>I to by by\u0142o na tyle! Jedyn\u0105 rzecz\u0105, kt\u00f3ra pozosta\u0142a do rozwa\u017cenia, jest krzywa przyspieszenia dla silnik\u00f3w &#8211; profiler pr\u0119dko\u015bci. Je\u015bli prze\u0142\u0105czymy silniki bezpo\u015brednio z 0 na 100, robot b\u0119dzie skaka\u0142 i na pewno zgubi za\u0142o\u017cony tor jazdy. W kodzie prosta funkcja takiej rampy b\u0119dzie przy\u015bpiesza\u0107 naszego robota powoli, dzi\u0119ki czemu b\u0119dzie lepiej trzyma\u0142 si\u0119 swoich ram ruchu.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.<\/p>\n","protected":false},"author":10,"featured_media":61871,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[305,23],"tags":[],"class_list":["post-22002","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diy","category-robotyka"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Budujemy robota Mecanum z M5Stack - Botland<\/title>\n<meta name=\"description\" content=\"Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Budujemy robota Mecanum z M5Stack - Botland\" \/>\n<meta property=\"og:description\" content=\"Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/\" \/>\n<meta property=\"og:site_name\" content=\"Botland\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/Botland\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-19T06:10:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-24T08:00:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2023\/05\/new2023-m5stack-mecanum.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1510\" \/>\n\t<meta property=\"og:image:height\" content=\"755\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Oskar Pacelt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oskar Pacelt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/\"},\"author\":{\"name\":\"Oskar Pacelt\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/person\\\/54e9a88fc0d20263f2d6e9b2f4eace11\"},\"headline\":\"Budujemy robota Mecanum z M5Stack\",\"datePublished\":\"2021-05-19T06:10:47+00:00\",\"dateModified\":\"2023-05-24T08:00:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/\"},\"wordCount\":823,\"publisher\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/new2023-m5stack-mecanum.jpg\",\"articleSection\":[\"DIY\",\"Robotyka\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/\",\"url\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/\",\"name\":\"Budujemy robota Mecanum z M5Stack - Botland\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/new2023-m5stack-mecanum.jpg\",\"datePublished\":\"2021-05-19T06:10:47+00:00\",\"dateModified\":\"2023-05-24T08:00:41+00:00\",\"description\":\"Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#primaryimage\",\"url\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/new2023-m5stack-mecanum.jpg\",\"contentUrl\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/new2023-m5stack-mecanum.jpg\",\"width\":1510,\"height\":755},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/budujemy-robota-mecanum-z-m5stack\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Budujemy robota Mecanum z&nbsp;M5Stack\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/\",\"name\":\"Botland\",\"description\":\"Blog Raspberry Pi, Arduino, elektronika i robotyka - Botland\",\"publisher\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/botland.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#organization\",\"name\":\"Botland\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/botland.store\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/04\\\/logo_kolor_WP_2-1.png\",\"contentUrl\":\"https:\\\/\\\/botland.store\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/04\\\/logo_kolor_WP_2-1.png\",\"width\":250,\"height\":57,\"caption\":\"Botland\"},\"image\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/Botland\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/person\\\/54e9a88fc0d20263f2d6e9b2f4eace11\",\"name\":\"Oskar Pacelt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Oskar-Pacelt-150x150.png\",\"url\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Oskar-Pacelt-150x150.png\",\"contentUrl\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/Oskar-Pacelt-150x150.png\",\"caption\":\"Oskar Pacelt\"},\"description\":\"Fan dobrej literatury i muzyki. Wierzy, \u017ce udany tekst jest jak list wys\u0142any w przysz\u0142o\u015b\u0107. W \u017cyciu najbardziej interesuje go prawda, pozosta\u0142ych zainteresowa\u0144 zliczy\u0107 nie spos\u00f3b. Kocha p\u0142ywa\u0107.\",\"url\":\"https:\\\/\\\/botland.com.pl\\\/blog\\\/author\\\/oskar\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Budujemy robota Mecanum z M5Stack - Botland","description":"Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/","og_locale":"pl_PL","og_type":"article","og_title":"Budujemy robota Mecanum z M5Stack - Botland","og_description":"Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.","og_url":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/","og_site_name":"Botland","article_publisher":"https:\/\/facebook.com\/Botland\/","article_published_time":"2021-05-19T06:10:47+00:00","article_modified_time":"2023-05-24T08:00:41+00:00","og_image":[{"width":1510,"height":755,"url":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2023\/05\/new2023-m5stack-mecanum.jpg","type":"image\/jpeg"}],"author":"Oskar Pacelt","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Oskar Pacelt","Szacowany czas czytania":"6 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#article","isPartOf":{"@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/"},"author":{"name":"Oskar Pacelt","@id":"https:\/\/botland.de\/blog\/#\/schema\/person\/54e9a88fc0d20263f2d6e9b2f4eace11"},"headline":"Budujemy robota Mecanum z M5Stack","datePublished":"2021-05-19T06:10:47+00:00","dateModified":"2023-05-24T08:00:41+00:00","mainEntityOfPage":{"@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/"},"wordCount":823,"publisher":{"@id":"https:\/\/botland.de\/blog\/#organization"},"image":{"@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#primaryimage"},"thumbnailUrl":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2023\/05\/new2023-m5stack-mecanum.jpg","articleSection":["DIY","Robotyka"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/","url":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/","name":"Budujemy robota Mecanum z M5Stack - Botland","isPartOf":{"@id":"https:\/\/botland.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#primaryimage"},"image":{"@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#primaryimage"},"thumbnailUrl":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2023\/05\/new2023-m5stack-mecanum.jpg","datePublished":"2021-05-19T06:10:47+00:00","dateModified":"2023-05-24T08:00:41+00:00","description":"Wykorzystamy komunikacj\u0119 Bluetooth do zaprogramowania wielokierunkowych sekwencji ruch\u00f3w dla malca z M5Stack. B\u0119d\u0105 ko\u0142a szwedzkie.","breadcrumb":{"@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#primaryimage","url":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2023\/05\/new2023-m5stack-mecanum.jpg","contentUrl":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2023\/05\/new2023-m5stack-mecanum.jpg","width":1510,"height":755},{"@type":"BreadcrumbList","@id":"https:\/\/botland.com.pl\/blog\/budujemy-robota-mecanum-z-m5stack\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/botland.com.pl\/blog\/"},{"@type":"ListItem","position":2,"name":"Budujemy robota Mecanum z&nbsp;M5Stack"}]},{"@type":"WebSite","@id":"https:\/\/botland.de\/blog\/#website","url":"https:\/\/botland.de\/blog\/","name":"Botland","description":"Blog Raspberry Pi, Arduino, elektronika i robotyka - Botland","publisher":{"@id":"https:\/\/botland.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/botland.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/botland.de\/blog\/#organization","name":"Botland","url":"https:\/\/botland.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/botland.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/botland.store\/blog\/wp-content\/uploads\/2018\/04\/logo_kolor_WP_2-1.png","contentUrl":"https:\/\/botland.store\/blog\/wp-content\/uploads\/2018\/04\/logo_kolor_WP_2-1.png","width":250,"height":57,"caption":"Botland"},"image":{"@id":"https:\/\/botland.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/Botland\/"]},{"@type":"Person","@id":"https:\/\/botland.de\/blog\/#\/schema\/person\/54e9a88fc0d20263f2d6e9b2f4eace11","name":"Oskar Pacelt","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2020\/09\/Oskar-Pacelt-150x150.png","url":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2020\/09\/Oskar-Pacelt-150x150.png","contentUrl":"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2020\/09\/Oskar-Pacelt-150x150.png","caption":"Oskar Pacelt"},"description":"Fan dobrej literatury i muzyki. Wierzy, \u017ce udany tekst jest jak list wys\u0142any w przysz\u0142o\u015b\u0107. W \u017cyciu najbardziej interesuje go prawda, pozosta\u0142ych zainteresowa\u0144 zliczy\u0107 nie spos\u00f3b. Kocha p\u0142ywa\u0107.","url":"https:\/\/botland.com.pl\/blog\/author\/oskar\/"}]}},"_links":{"self":[{"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/posts\/22002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/comments?post=22002"}],"version-history":[{"count":0,"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/posts\/22002\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/media\/61871"}],"wp:attachment":[{"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/media?parent=22002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/categories?post=22002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/botland.com.pl\/blog\/wp-json\/wp\/v2\/tags?post=22002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}