рдирдорд╕реНрдХрд╛рд░ 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 рдЕрдХрд╛рджрдореА рдореЗрдВ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛редрд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ
рджреЗрдЦрддреЗ рд╣реИ рдХреНрдпрд╛ рд╣реБрдЖ:- рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 10x11 рдкрд┐рдХреНрд╕реЗрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
- рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рд╣реИ
- рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреБрдХреВрд▓рд┐рдд API рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рд╣реИ
рдИрдВрдЯ рдХрд╛ рдЦреЗрд▓
рдпрд╛рдж рд╣реИ ?рдмреЙрд▓
рд╢рд╛рдпрдж рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЦреЗрд▓редрдШрдбрд╝реА рддрдХ рдкрд╣реБрдВрдЪ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЪрд┐рдк рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдЗрдЯ рд╕реЗ рдЙрджрд╛рд╣рд░рдг:int brewCoffee(String command);
void setup()
{
Particle.function("brew", brewCoffee);
}
void loop()
{
}
int brewCoffee(String command)
{
if(command == "coffee")
{
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>
рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрджреНрднреБрдд рд▓рдЧ рд░рд╣рд╛ рд╣реИ:
рдкреНрд░рджрд░реНрд╢рди
рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЖрдкрдХреЛ рд╢рд╛рдВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ!