рдореНрдпреВрдЬрд┐рдХ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП 4x4x4 рдПрд▓рдИрдбреА рдЖрд░рдЬреАрдмреА рдХреНрдпреВрдм

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рдкрд░ 4x4x4 рдХреНрдпреВрдм рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдзреНрд╡рдирд┐ рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ Arduino Uno рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЫрд╡рд┐


рдЯреНрд░реЗрдирд┐рдВрдЧ


рдШрдирдХреНрд╖реЗрддреНрд░

рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд╢реЛрдз рдХрд░рддреЗ рд╕рдордп, "рдЪрд╛рд░реНрд▓реАрдХреНрдпреВрдм" рдирд╛рдордХ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рдереА, рдЬрд┐рд╕реЗ рдЕрд╢рд░ рдЧреНрд▓рд┐рдХ рдФрд░ рдХреЗрд╡рд┐рди рдмреЗрдХрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ ред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЗрд╕рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдЕрдкрдиреЗ рдмрд╛рдж рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдХреНрдпреВрдм рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░, рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдХреЗрд╡рд▓ 16 рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (64 рдПрд▓ рдИ рдбреА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╕рдордп)ред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЪрд╛рд░реНрд▓реАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдирд╛рдордХ рдПрд▓рдИрдбреА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред

Charlipleksing

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

рдЫрд╡рд┐

рдПрд▓рдИрдбреА рдХреЙрд▓рдо рд▓реЗрдЖрдЙрдЯ

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо LED1 рдХреЛ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдЪрдордХрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдиреАрд▓реА рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП "+" рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓рд╛рд▓ рд░реЗрдЦрд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП "-" рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ 3. рдЕрдиреНрдп рдЗрдирдкреБрдЯреЛрдВ рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рджреГрд╢реНрдп

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

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

рд╕рднрд╛


рдХреЙрд▓рдо рд▓реАрдЬрд┐рдП

рдЫрд╡рд┐


рдПрд▓ рдИ рдбреА рдХреЛ рдХреЙрд▓рдо рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЪрд╛рд░ рдПрд▓ рдИ рдбреА рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдкреИрд░реЛрдВ рдХреЛ рдореЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░ 90 ┬░ рдХреЗ рд╕рд╛рде рд╕рдЯреЗ рд╣реЛред

рдЫрд╡рд┐рдЫрд╡рд┐

рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдПрд▓ рдИ рдбреА рдХреЛ 90 ┬░ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдШреБрдорд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ 90 ┬░ рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрдд рдкрд┐рдЫрд▓реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдШреБрдорд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдкрд╣рд▓реЗ, рдкреИрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдордиреЗ рдЗрд╕реЗ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рд╡рд╛рд░реНрдирд┐рд╢ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ) рддрд╛рдХрд┐ рднреНрд░рдорд┐рдд рди рд╣реЛрдВред

рдЫрд╡рд┐рдЫрд╡рд┐

рд╣рдо рдЕрдкрдиреЗ рдПрд▓ рдИ рдбреА рдХреЛ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдПрд▓рдИрдбреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкреИрд░реЛрдВ рдХреЗ рдЙрднрд░реЗ рд╣реБрдП рд╕рд┐рд░реЛрдВ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рддреЗ рд╣реИрдВред

рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐

рдЫрд╡рд┐ рдЫрд╡рд┐

рд╣рдо рдХреЙрд▓рдо рд░рдЦрддреЗ рд╣реИрдВ

рд╢реЗрд╖ 15 рдХреЙрд▓рдо рдЙрд╕реА рддрд░рд╣ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЫрд╡рд┐


рд╕реНрддрдВрднреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕рдорд╛рди рджреВрд░реА рдкрд░ рдмреЛрд░реНрдб рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ 4 рдПрд▓ рдИ рдбреА рдХреЗ рдмрд░рд╛рдмрд░ рдПрдХ рд╕рд╛рдЗрдб рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрдпреВрдм рдмрдирддрд╛ рд╣реИред рд╕рднреА рдкрджреЛрдВ рдХреЛ рдПрдХ рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ("рд╕рдорд░реНрдерди" рдкреИрд░ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдВрдХрди рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ)ред

рдЫрд╡рд┐ рдЫрд╡рд┐

рдЫрд╡рд┐ рдЫрд╡рд┐

рд╣рдо рдХреЙрд▓рдо рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ

рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рддрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдХреБрд▓ 16 рддрд╛рд░ рд╣реИрдВ, рдХрдиреЗрдХреНрд╢рди 4 рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЫрд╡рд┐рдЫрд╡рд┐

рдЫрд╡рд┐рдЫрд╡рд┐

рдЫрд╡рд┐рдЫрд╡рд┐

рдЫрд╡рд┐рдЫрд╡рд┐

рдЫрд╡рд┐


рдпрд╣ Arduino рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ - рдФрд░ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Arduino рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рдЪрд╛рд░реНрд▓рд┐рдХреВрдм рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЕрд░реБрдбрд┐рдиреЛ рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреНрдпреВрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдмреЗрдкреНрд▓реЗрдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рджрд╛рди рдХреА рд╣реИред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рддрд╛рд░реЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдХреНрд░рдорд╛рдВрдХрди рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рддрд╛рд░реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ):

рдЫрд╡рд┐ рдЫрд╡рд┐

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ Arduino


рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЪрд╛рд░реНрд▓реАрдкреНрд▓реЗрдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдПрдХ рдЖрдХрд░реНрд╖рд┐рдд () рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ XYZ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдПрд▓рдИрдбреА рдХреЗ рд░рдВрдЧ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдкреВрд░реЗ рдШрди рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ
#include "cubeplex.h"

const int cubeSides = 4;

void setup() {
  initCube();
}

void loop() { 
  for (int xpos = 0; xpos < cubeSides; xpos++) {
    for (int ypos = 0; ypos < cubeSides; ypos++) {
      for (int zpos = 0; zpos < cubeSides; zpos++) {
          drawLed(red, xpos, ypos, zpos);
      }
    }
  }
}


рдкреАрд╕реА рд╕рдВрджреЗрд╢

рд╕рдВрджреЗрд╢ рдХреЛ рд╕реАрд░рд┐рдпрд▓ I / O рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ рдкреЛрд░реНрдЯ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдорд╢реАрди рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред рдРрд╕реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ Arduino рдореЗрдВ SerialEvent рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рдХреНрдпреВрдм рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ
#include "cubeplex.h"

String inputString = "";         
boolean stringComplete = false;

//        SerialEvent,       inputString.
//     Enter,    inputComplete      loop().

int color = red;

void setup() {
  Serial.begin(9600);
  inputString.reserve(200);
  initCube();
}

void loop() {
  if (stringComplete) {
      Serial.println(inputString);
      drawString(inputString);
      resetBuffer();
      inputString = "";
      stringComplete = false;
    }
  }
}

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

//   ;       .
void resetBuffer() {
  flushBuffer();
  clearBuffer();
}

//      .
//   -     ,    .
//    "000001002003"     { x: 0, y: 0 }.

void drawString(String inputString) {
  int xpos = -1;
  int ypos = -1;
  int zpos = -1;

  for (int i = 0; inputString[i + 3]; i += 3) {
    xpos = charToInt(inputString[i]);
    ypos = charToInt(inputString[i + 1]);
    zpos = charToInt(inputString[i + 2]);

    drawLed(color, xpos, ypos, zpos);
  }
}

void charToInt(char value) {
  return (value - '0');
}


рд╣рд▓реНрдХреЗ рд╕рдВрдЧреАрдд рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ

рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреАрдд рдХреА рддрд╛рд▓ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдм рдЭрдкрдХреЗрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдПрдХ рдЕрдВрдХ рдореЗрдВ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдпрд╣ рд╣реИ: рдЬреИрд╕реЗ рд╣реА рд╕рдВрдЧреАрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмреАрдЯ рдХреЛ "рдХреИрдЪ" рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреВрдм рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрд╛рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, рдШрди рдзреАрд░реЗ-рдзреАрд░реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ (рдкрд░рдд рджрд░ рдкрд░рдд)ред рдЬреИрд╕реЗ рд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдЧрд▓реЗ рдЙрдкрд╛рдп рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рдШрди рдлрд┐рд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реЛрд╢рдиреА рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рдПрдХ рдЖрдВрдХрдбрд╝реЗ рдХреЛ рдШрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ: рдЗрд╕ рд╕рдордп рдХрд┐рддрдиреА рдкрд░рддреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рд╣рдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдирдпрд╛ рд░рдВрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред
рджреА рдЧрдИ рдкрд░рддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ
void drawBeat(String inputString) {
  int height = charToInt(inputString[0]);
  int color = random(red, white);

  for (int xpos = 0; xpos < cubeSides; xpos++) {
    for (int ypos = 0; ypos < cubeSides; ypos++) {
      for (int zpos = 0; zpos < height; zpos++) {
          drawLed(color, xpos, ypos, zpos);
      }
    }
  }
}


JRuby рдкрд░ рдзреНрд╡рдирд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдорд┐рдирд┐рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗрдЯ рдореЗрдВ рдмреАрдЯрдбрд┐рдЯреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ , рдЬреЛ рд╕рдВрдЧреАрдд рдХреА рд▓рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзреНрд╡рдирд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪреИрдирд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреА рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рддрд╛рд▓ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рдзрд┐ рд╕рд╛рдордиреЗ рдЖрдИред
рдХреЛрдб 15.10 Ubuntu рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛; рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП JRuby рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг jruby 9.0.5.0 рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдорд┐рдирд┐рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред
рддрд╛рд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
require 'ruby-processing'

require_relative 'translator'
require_relative 'serial_writer'

class SoundProcessor < Processing::App
  load_library "minim"
  import "ddf.minim"
  import "ddf.minim.analysis"

  def setup
    @minim = Minim.new self
    @input = @minim.get_line_in
    @beat = BeatDetect.new @input.mix.size, 44100
    @beat_value = 0.001
    @beat.set_sensitivity 300
  end

  def draw
    process_beat
    SerialWriter.instance.write(Translator.instance.translate(@beat_value))
  end

  private

  def process_beat
    @beat.detect @input.mix
    @beat_value = @beat.is_kick ? 1 : @beat_value * 0.95
  end
end

SoundProcessor.new



рдХрд╛рд░реНрдп рдкреНрд░рджрд░реНрд╢рди




PulseAudio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдСрдбрд┐рдпреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддред рд╣рдо рд╕рднреА рдзреНрд╡рдирд┐ рдХрд╛ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рдХреНрддрд╛рдУрдВ рд╕реЗ рдЖрддрд╛ рд╣реИред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдзреНрд╡рдирд┐ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдкрд░ рд╕реБрдкрд░рдЗрдореНрдкреЛрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЙрд╕ рд╕рдордп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдлрд┐рд▓реНрдо рдмрдирд╛рдИ рдЧрдИ рдереАред

Poseslovie


рд╣рдо рдПрдХ рдкреАрд╕реА рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдПрдХ рдзреНрд╡рдирд┐ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдк рд▓рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдорд┐рдиреАрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд▓рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдЖрджрд░реНрд╢ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ), рдФрд░ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рднреА рдХреНрдпреВрдм рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдШрди рдирд┐рд░реНрдорд╛рдг рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн:


рд▓реЗрдЦрдХ
Makeded Victor рдФрд░ Eugene Kunitsa, BSUiR рдиреМрд╕реЗрдирд╛ рдмрд▓реЛрдВ рдХреЗ рддреАрд╕рд░реЗ рд╡рд░реНрд╖ рдХреЗ рдЫрд╛рддреНрд░ рд╣реИрдВ

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


All Articles