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

рд╡рд┐рдЪрд╛рд░
рдореИрдВ рдПрдХ рдРрд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рдХрд┐рд╕реА рднреА рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЛ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯрдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рдЕрдкрдирд╛ рдЕрдиреЛрдЦрд╛ рдореЗрд▓реЛрдбреА рд╣реЛ, рдФрд░ рд╣рд░ рдХреЛрдИ рд╕реБрдиреЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕рдиреЗ рд╕рд┐рд░реНрдл рдЕрдЧрд▓реА рдХрдорд┐рдЯрдореЗрдВрдЯ рдХреА рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛
рдПрдХ рд╡реЗрдм рдлреНрд░рдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, WebSVN SVN рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реИ, рдмреЗрд╕рд┐рдХ рдСрдерд░рд╛рдЗрдЬреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдирдХреЗ рд╕рдВрд╢реЛрдзрди рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдмрджрд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдПрдХ рдЕрдиреБрд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ PHP рд╣рд╛рдереЛрдВ рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рдереА, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдкрд░ рд▓рд┐рдЦрдирд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА Apache 2.1 + PHP 5.3.6 рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 7 рд╣реИред
рдЬрдм рдПрдХ рдирдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ COM рдкреЛрд░реНрдЯ рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдПрдХ рдХрдВрдЯреНрд░реЛрд▓ рдХрдорд╛рдВрдб рднреЗрдЬрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдХреА рдзреБрди рдмрдЬрд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ WebSVN рд╣реИ:

PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:
рдмреЗрд╕рд┐рдХ рдСрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо CURL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
HTML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо DOMDocument рдФрд░ DOM рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдХреНрдпреЛрдВрдХрд┐ PHP рд╕реЗ DOM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рдердХрд╛рдК рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдмрд╕ рд╕рднреА рд▓рд┐рдВрдХ рд▓реЗрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд╣рдо dom2array () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
functions.php dom2array () function dom2array($node) { $res = array(); if($node->nodeType == XML_TEXT_NODE){ $res = $node->nodeValue; } else{ if($node->hasAttributes()){ $attributes = $node->attributes; if(!is_null($attributes)){ $res['@attributes'] = array(); foreach ($attributes as $index=>$attr) { $res['@attributes'][$attr->name] = $attr->value; } } } if($node->hasChildNodes()){ $children = $node->childNodes; for($i=0;$i<$children->length;$i++){ $child = $children->item($i); $res[$child->nodeName] = dom2array($child); } } } return $res; }
рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрдкрдирд╛ рдкреЗрдЬ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдирд╡реАрдирддрдо рд╕рдВрд╢реЛрдзрди рдФрд░ рдЙрд╕рдХреЗ рд▓реЗрдЦрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рднреА рд╕рдорд╛рди CURL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рд▓реЗрдЦрдХ рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред рд╡рд┐рд╕реНрдлреЛрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ () рдФрд░ рд╕реНрдЯреНрд░реИрдкреНрд╕ () рднрдпрд╛рдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдбрд╝рд╛ рдорд╛рд░ рджреЗрдЧрд╛ред
functions.php checkSVNCommit () function checkSVNCommit($projectName) { require 'config.php';
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рдФрд░ рдЕрдирд╛рдбрд╝реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдо рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╢реЛрдзрди рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗ рднрд┐рдиреНрди рд╣реИрдВ, рддреЛ рд▓рд┐рдЦреЗрдВ рдФрд░ рдмреАрдк рдХрд░реЗрдВред
рдкрд╣рд▓рд╛ рдиреБрдХрд╕рд╛рди
рдореБрдЭреЗ 146% рдпрдХреАрди рдерд╛ рдХрд┐ COM рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡рд┐рдВрдбреЛрдЬ 7 рдкрд░ рдкреБрд░рд╛рдиреА рдлреЛрдкреЗрди рд╡рд┐рдзрд┐ ("COM6:", "w +") рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдкрд░реНрдпрд╛рдкреНрдд рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд▓реЗ рд╣реА рдХрдВрд╕реЛрд▓ рдкреЛрд░реНрдЯ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдПрдХ рдПрдХреНрд╕реЗрд╕ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП cmd (рдмрд▓реНрд▓реЗ) рд╕реЗ - рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдпрд╛ рддреЛ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдП, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдордЬрдмреВрдд Google рдиреЗ рдореБрдЭреЗ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдЯреЗрдВрд╢рди - PHP рд╕реАрд░рд┐рдпрд▓ рдореЗрдВ рд▓рд╛рдпрд╛ред
рдпрд╣ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХреА рддрд░рд╣ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХрд╛рдлреА рд╕рд░рд▓рддрд╛ рд╕реЗ рдФрд░ рджреЛ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
functions.php рдмреАрдк () function beep($com = 6, $melody = 1) { ser_open("COM".$com, 9600, 8, "None", "1", "None"); ser_write("$melody"); ser_close(); }
рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде Bibikalo
рдпрд╣ рд▓реЙрдиреНрдЪрдкреИрдб рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рд░реА рд╣реИред рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирд░реНрдЬрд┐рдпрд╛ рд▓реЗрдВред
Arduino рдХреЗ рд╡рд┐рдкрд░реАрдд, MSP430 рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЯрд┐рдорд░рд╕реЗрд░рд┐рдпрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдПрдХреНрд╕рд┐рд╕реНрдЯреНрд╕, рдЬреЛ рдХрд┐ рдЕрд░реБрдбрд┐рдиреЛ-рдЖрдзрд╛рд░рд┐рдд рд╕реАрд░рд┐рдпрд▓ рдмреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрди рд╣реИред
рдереЛрдбрд╝рд╛ рдкреНрд░рдпрд╛рд╕, рдФрд░ рдЖрдк рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд▓рд┐рдЦ рдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг #include <TimerSerial.h> TimerSerial mySerial; // void setup() { mySerial.begin(); mySerial.println("Welcome to CommitBeep 1.0"); } // void loop() { while (mySerial.available()) { char inChar = (char)mySerial.read(); mySerial.write(inChar); delay(100); } }
рдпрд╣ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдЪрд░рд┐рддреНрд░ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рддреБрд░рдВрдд рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрддрд╛ рд╣реИред рдПрдХ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рдХреА рддрд░рд╣ред
рдиреБрдХрд╕рд╛рдиред рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдПред
рдЗрд╕рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреЗ рд░рд┐рд╕реЗрдкреНрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд╕рд╛рдеред рдЕрдм рдмреАрдкред
рдорд╛рдирдХ рдЯреЛрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рдХрд┐рд╕реА рддрд░рд╣ рдПрдирд░реНрдЬрд┐рдпрд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рдЕрдкреНрд░рд┐рдп, рд╡реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЯрд┐рдорд░рд╕реЗрд░рд┐рдпрд▓ рдХреЗ рджреЛрд╕реНрдд рдирд╣реАрдВ рд╣реИрдВред рд╕рдВрднрд╡рдд: рдЖрдо рдЯрд╛рдЗрдорд░ рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рд▓рд┐рдЦрдиреА рдереАред
рддреИрд╕рд╛ рдмрд┐рдмрд┐рдХрд▓реЛ #define NOTE_G3 196 #define NOTE_A3 220 #define NOTE_C4 262 int speakerPin; // void setup() { speakerPin = 14; // 1.6 ( 14) pinMode(speakerPin, OUTPUT); beep(); } void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); } digitalWrite(speakerPin, LOW); } // void beep() { int melody[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3}; int noteDurations[] = {4,8,8,4,4}; for (int thisNote = 0; thisNote < 4; thisNote++) { int noteDuration = 1000/noteDurations[thisNote]; playTone(melody[thisNote], noteDuration); } }
рд╕рднреА рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд░рд╣рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╛рдХреА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
рдЧрдардмрдВрдзрди рдХрд░реЗрдВ рдФрд░ рд╣рдорд╛рд░рд╛ рд╕реНрдХреЗрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
commit_beep.ino #include <TimerSerial.h> #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 TimerSerial mySerial; int speakerPin; // void setup() { speakerPin = 14; // 1.6 ( 14) mySerial.begin(); mySerial.println(); pinMode(speakerPin, OUTPUT); } void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); } digitalWrite(speakerPin, LOW); } // void beep(int melody) { switch ((int)melody) { case '2': { int mel[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3}; int noteDurations[] = {4,8,8,4,4}; for (int thisNote = 0; thisNote < 4; thisNote++) { int noteDuration = 1000/noteDurations[thisNote]; playTone(mel[thisNote], noteDuration); } break; } case '3': { int mel[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3}; int noteDurations[] = {4,8,8,4,4}; for (int thisNote = 0; thisNote < 4; thisNote++) { int noteDuration = 1000/noteDurations[thisNote]; playTone(mel[thisNote], noteDuration); } break; } default: { int mel[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3}; int noteDurations[] = {4,8,8,4,4}; for (int thisNote = 0; thisNote < 4; thisNote++) { int noteDuration = 1000/noteDurations[thisNote]; playTone(mel[thisNote], noteDuration); } } } } // void loop() { while (mySerial.available()) { char inChar = (char)mySerial.read(); beep(inChar); delay(100); } }
рд╣рдо рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдХреЛ рдХрдиреЗрдХреНрдЯ, рднрд░рддреЗ рд╣реИрдВ, рдЦреЛрд▓рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ 1 рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╛рдЧ рд╕реБрдирддреЗ рд╣реИрдВред

рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪрдХ
рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЖрдЗрдП рдПрдХ рд╕реАрдПрдордбреА рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдкреАрдПрдЪрдкреА рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рдХрд╣рддрд╛ рд╣реИ:
D:\denwer\usr\bin\php5.exe D:\denwer\home\test\www\commit_beep\index.php
рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЗрд╕ рдЦреЗрдд рдореЗрдВ рдПрдХ рдХрд╛рд▓реА рдХрдВрд╕реЛрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдБрдЦ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЖрдВрджреНрд░реЗрдИ
рдЧреНрд░реЗрдЪрд┐рди рд╕реЗ рдПрдХ рд╕рд░рд▓
рд╣рд┐рдбрдХреЛрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╢реЗрдбреНрдпреВрд▓рд░ рдХрдиреЗрдХреНрд╢рди: рдЫреВ рдордВрддрд░
рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреЛрд╢ рдХреЗ рд╕рд╛рде рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рддрд╛рд▓рд┐рдХрд╛ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓реЛрд╣реЗ рдХреЗ рдирдП рдЯреБрдХрдбрд╝реЗ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ, рдПрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рдЪрд╛рдХреВ рдФрд░ рдмрд┐рдЬрд▓реА рдХреЗ рдЯреЗрдк рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ:


рдкрд░рд┐рдгрд╛рдо
рдПрдХ рджрд┐рди рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рддрдХред рдиреБрдХрд╕рд╛рди рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рд░реЛрдорд╛рдВрдЪрдХ рд▓рдбрд╝рд╛рдИ рдФрд░ рдПрдирд░реНрдЬрд┐рдпрд╛ рдФрд░ MSP430 рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрдпред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдмрдЬрдЯ ~ 200-300 рд░реВрдмрд▓ред
рдЧреАрдереВрдм рдкрд░ рд╕реВрддреНрд░ ред
рдЕрджреНрдпрддрди: RTTTL рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╕рдорд░реНрдерди - рд╣рд╛рд░реНрдб рдореЛрдб UART рдореЗрдВ рдзреБрдиред
рд╣рд╛рд░реНрдб рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ RT / TX рдЬрдВрдкрд░реНрд╕ (рдзрдиреНрдпрд╡рд╛рдж
BoxaShu ) рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрджреНрдпрддрди рд╕реНрд░реЛрдд рдХреЛрдбред