рдХрд▓реНрдХреНрдЯреЛрд╡реЛ рд╢реИрд▓реА рдХреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдШрдбрд╝реА

рдирдорд╕реНрдХрд╛рд░ uMove рдЯреАрдо рдХреА рдУрд░ рд╕реЗ ! рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдРрд╕реА рдШрдбрд╝реА рдХреА рдЫрд╡рд┐ рджреЗрдЦреАред рдЙрди рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╢рдмреНрджреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкрд╛рдВрдЪ рдорд┐рдирдЯ рддреАрди, рдПрдХ рдЪреМрдерд╛рдИ рд╕реЗ рдПрдХ рдШрдВрдЯрд╛, рд╕рд╛рдврд╝реЗ рдЪрд╛рд░ рдФрд░ рдкрд┐рдЫрд▓реЗ 5 рдорд┐рдирдЯ рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ред



рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдордиреЗ рдРрд╕рд╛ рдмрдирд╛рдпрд╛ рд╣реИ!

рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдПрдХ 3D рдореЙрдбрд▓ рдмрдирд╛рдпрд╛ред 4 рдорд┐рдореА рдореЛрдЯреА рдкреНрд▓рд╛рдИрд╡реБрдб, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдерд╛, рдХреЛ рд╡рд╛рд╣рдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕ рдкрд░ рддреАрди-рд░рдВрдЧ рдХрд╛ рдбрд╛рдпреЛрдб рдЯреЗрдк рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдкреНрд░рддреНрдпреЗрдХ рдбрд╛рдпреЛрдб рдХреЛ рдПрд╕рдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10 рд╡реЗрдВ рдбрд╛рдпреЛрдб рдХрд╛ рд░рдВрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: "рдкрд╣рд▓реЗ рдирдорд╕реНрдХрд╛рд░, рджрд╕рд╡реЗрдВ рдХреЛ рдмрддрд╛рдПрдВ рддрд╛рдХрд┐ рдпрд╣ рдЕрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рдВрдЧ рдореЗрдВ рд░реЛрд╢рдиреА рдХрд░реЗред" рдкрд╣рд▓рд╛ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рддреАрд╕рд░реЗ рдФрд░ рдЗрддрдиреЗ рдкрд░ред

рдбрд╛рдпреЛрдб рдХреЗ рдореМрдЬреВрджрд╛ рдЪрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреЗрдк рдореЗрдВ 60 рдЪрд┐рдкреНрд╕ рдкреНрд░рддрд┐ рдореАрдЯрд░ рд▓рдВрдмрд╛рдИ рд╣реИред рд╡рд░реНрдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкрдХреНрд╖ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдордЧреНрд░ рдЖрдпрд╛рдо 264.4 рдорд┐рдореА рдерд╛ред



рджреВрд╕рд░реА рдкрд░рдд, рд╣рдордиреЗ рдкрддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ред рд╕рдХреНрд░рд┐рдп рдкрддреНрд░реЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рджреВрд╕рд░реА рдкрд░рдд рдореЗрдВ, рдкрд╛рд╡рд░ рдХреЙрд░реНрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЗрдж рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред



рдбрд╛рдпреЛрдб рдХрд╛ рдкреВрд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ рдПрдХ рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ рдЬреЛ рдПрдХ рд╕рдмреНрд╕рдЯреНрд░реЗрдЯ рдкрд░ рдПрдХ рд╕рд╛рдВрдк рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд┐рдд рд╣реИред
рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрди рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рд╕реЗ "рд╕рд╛рдВрдк" рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рд╕рдорд╛рд░реЛрд╣:

int getStripPosition(int row, int col)
{
    if(col % 2 == 1)
    {
        return col * ROWS + row;
    }else{
        return (1 + col) * ROWS - (1 + row);
    }
}

рдЯреЗрдк рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ 3 рддрд╛рд░реЛрдВ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ: рдмрд┐рдЬрд▓реА, рдкреГрдереНрд╡реА рдФрд░ рд╕рд┐рдЧреНрдирд▓ред рджрд┐рдирдЪрд░реНрдпрд╛ рд╢реБрд░реВ рд╣реБрдИред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:



рд╕реЛрд▓реНрдбрд░ рдЬреЛрдбрд╝реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдиреЗ рдореБрдЭреЗ рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд╛рдо рдХрд┐рдпрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗред

рджрд┐рдЦрд╛рд╡рдЯ


рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рддрд┐рд░рдЫрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреЗрд▓рд╛, рд▓реЗрдЬрд░ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рддреИрдпрд╛рд░ рдХреА рдФрд░ рд╕рд╛рдордЧреНрд░реА рдФрд░ рд░рдВрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЪреБрдирд╛рд╡ рдХрд╛рд▓реЗ рдЪрдордХрджрд╛рд░ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реНрдЯрд╛рдЗрд▓рд┐рд╢ рдорд╛рдорд▓рд╛ рд╣реИред рдЪреБрдиреА рдЧрдИ рднрд╛рд╖рд╛ рдЬрд░реНрдорди рдереА ... рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпреЛрдВред



рдЬрд░реНрдорди рдорд┐рдирдЯ:


рдЗрд▓реЗрдХреНрдЯреНрд░рд╛рдирд┐рдХреНрд╕


рдШрдбрд╝реА рдХрд╛ рдЖрдзрд╛рд░ рд╣рдорд╛рд░рд╛ рдкрд╕рдВрджреАрджрд╛ рд╕реНрдкрд╛рд░реНрдХ рд╣реИ ред рдпрд╣ рд╡рд╛рдИ-рдлрд╛рдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдЪрд┐рдд STM32 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИред рдпрд╣ рдмрд╛рдд рдЦреБрдж рдореМрдЬреВрджрд╛ рд╕рдордп рдХреЛ рдкрддрд╛ рдЪрд▓реЗрдЧреА, рдШрдбрд╝реА рдореЗрдВ рдПрдХ рднреА рдмрдЯрди рдирд╣реАрдВ рд╣реИ! рдирдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлреЛрди рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рд╣рдордиреЗ CMIT рдЕрдХрд╛рджрдореА рдореЗрдВ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ред

рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ


рджреЗрдЦрддреЗ рд╣реИ рдХреНрдпрд╛ рд╣реБрдЖ:
  1. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 10x11 рдкрд┐рдХреНрд╕реЗрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
  2. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рд╣реИ
  3. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреБрдХреВрд▓рд┐рдд API рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рд╣реИ

рдИрдВрдЯ рдХрд╛ рдЦреЗрд▓ рдпрд╛рдж рд╣реИ ?

рдмреЙрд▓


рд╢рд╛рдпрдж рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЦреЗрд▓ред
рдШрдбрд╝реА рддрдХ рдкрд╣реБрдВрдЪ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЪрд┐рдк рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдЗрдЯ рд╕реЗ рдЙрджрд╛рд╣рд░рдг:

int brewCoffee(String command);
void setup()
{
  Particle.function("brew", brewCoffee);
}
void loop()
{
  // this loops forever
}
// this function automagically gets called upon a matching POST request
int brewCoffee(String command)
{
  if(command == "coffee")
  {
    // some example functions you might have
    return 1;
  }
  else return -1;
}

рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЙрдб рдкрд░ POST рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ:
curl https://api.particle.io/v1/devices/{DEVICE_ID}/{FUNCTION_NAME} -d access_token={TOKEN} -d "args={ARGUMENTS}"

рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рдЗрд╕реЗ Apache Cordova рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTML + JS рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ
<body style="margin: 0; padding: 0;">
<script language="javascript">
  function go(action) {
    var xhr = new XMLHttpRequest();
    var body = 'access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&args='+action;
    xhr.open("POST", 'https://api.particle.io/v1/devices/53ff6e12345678900987654321/shift', true)
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    xhr.send(body);
  };
    </script>
    <button class="button" style="width: 40%;" onclick="go('left')"><</button>
    <button class="button" style="width: 20%; left: 40%" onclick="go('play')">!</button>
    <button class="button" style="width: 40%; left: 60%" onclick="go('right')">></button>
</body>

рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрджреНрднреБрдд рд▓рдЧ рд░рд╣рд╛ рд╣реИ:



рдкреНрд░рджрд░реНрд╢рди




рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЖрдкрдХреЛ рд╢рд╛рдВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ!

Source: https://habr.com/ru/post/hi384493/


All Articles