A Scratch 2.0 and Snap! 4.0 Hardware Extension for
Arduino Micro-Controers Cop!ri"ht # 20$%-$4 Aan &orin's. A ri"hts reser(ed. )his manua is distri*uted +,)H-.) A/& +A00A/)&1 without e(en the impied warrant! of ME0CHA/)A2,3,)& or 4,)/ESS 4-0 A 5A0),C.3A0 5.05-SE. Apri $21 20$4 6ersion $.7 Chan"es 5ortu"uese and 8erman )ransations for Snap! And Scratch ha(e *een pro(ided courtes! of Ado (on +an"enheim1 from www.computacaonaescoa.ufsc.*r March 2$1 20$4 6ersion $.4 Chan"es Chinese )ransations for Snap! and Scratch ha(e *een pro(ided courtes! of 5rofessor &uf 4an"9un 4rench )ransations for Snap! and Scratch ha(e *een pro(ided courtes! of Se*astien Canet 2u" fix for duration fied of Sound *oc'. :uration now wor's proper!. 6ersion $.% Chan"es $. Support for the Snap!Mo*ie pro9ect has *een added. 2. Spanish )ransations for Snap! And Scratch ha(e *een pro(ided courtes! of 5rofessor ;os< Manue 0ui= 6ersion $.2 Chan"es $. Support for Snap! 4.0 has *een added. 2. Support for HC-S004 t!pe 5in" de(ices has *een added. %. )ransation of Scratch 2oc' )ext into :utch has *een pro(ided. 4. 4aciit! to transate Scratch>Snap 2oc' )ext to an! an"ua"e is incuded. 6ersion $.$ Chan"es $. +hen ena*in" a di"ita pin1 the pin is (erified to support the re?uested mode. 2. Added de*u""in" feature Table of Contents Table of Contents 1. Introduction...........................................................................................................................................5 2. What is s2a_fm?....................................................................................................................................5 3. Installing s2a_fm...................................................................................................................................6 3.1. Python and Python Files...........................................................................................................6 3.2. Arduino !etch.........................................................................................................................6 ". #unning s2a_fm....................................................................................................................................6 ".1. tarting a cratch Pro$ect..........................................................................................................% ".2. tarting a na&' Pro$ect............................................................................................................( 5. )he *+tension ,loc!s...........................................................................................................................( 5.1. et -igital Pin .ode................................................................................................................/ 5.1.1. *na0le.........................................................................................................................../ 5.1.2. -isa0le........................................................................................................................../ 5.1.3. Pin 1um0er................................................................................................................../ 5.1.". -igital .ode..............................................................................................................12 5.2. et Analog Pin In&ut .ode....................................................................................................12 5.2.1. *na0le.........................................................................................................................12 5.2.2. -isa0le........................................................................................................................12 5.2.3. Pin 1um0er.................................................................................................................11 5.3. -igital Write...........................................................................................................................11 5.3.1. Pin 1um0er.................................................................................................................11 5.3.2. Pin 3ut&ut 4alue.........................................................................................................11 5.". Analog 5PW.6 Write..............................................................................................................11 5.".1. Pin 1um0er.................................................................................................................11 5.".2. PW. 4alue................................................................................................................12 5.5. Play )one................................................................................................................................12 5.5.1. Pin 1um0er................................................................................................................12 5.5.2. Fre7uency 5896..........................................................................................................12 5.5.3. -uration 5ms6.............................................................................................................12 5.6. )urn )one 3ff.........................................................................................................................12 5.6.1. Pin 1um0er................................................................................................................12 5.%. .o:e er:o.............................................................................................................................13 5.%.1. Pin 1um0er................................................................................................................13 5.%.2. Position 5-eg6............................................................................................................13 5.(. #ead -igital Pin......................................................................................................................13 5./. #ead Analog Pin.....................................................................................................................13 5.12. onar.....................................................................................................................................13 5.11. -e0ugger...............................................................................................................................1" 5.12. )he #ed to& ,utton............................................................................................................15 6. ;og File...............................................................................................................................................15 %. *+am&le Programs..............................................................................................................................15 %.1. A cratch<na&' Program to )urn 3n an ;*- using -igital Pin 6........................................15 3 %.2. cratch<na& Program to #ead A Potentiometer on Pin A2 and &in the cratch =at...........16 (. cratch<na&' ,loc! )ranslations for =hinese> -utch> French> ?erman> Portuguese and &anish....1% (.1. )ranslating to 3ther ;anguages..............................................................................................1% /. Windo@s .0at and ;inu+ .sh Files for *asier Program tartu&...........................................................1( 12. Pro$ect -irectory )ree.......................................................................................................................1( 11. #eferences.........................................................................................................................................22 12. Auestions> =omments> ,ug #e&orts.................................................................................................22 " 1. Introduction Arduino users' Would you li!e to configure and control your Arduino microBcontroller @ithout ha:ing to @rite a single line of Arduino s!etch code and at the same time ha:e access to a gra&hical user interface? cratch and na&' &rogrammers' Would you li!e to control and communicate @ith an Arduino 0oard? Imagine> using cratch or na&' to control &hysical de:ices such as ;*-s> motors> and relays @hile monitoring de:ices> such as tem&erature sensors> &otentiometers> and light sensors. What @ould you create? ;oo! no further> s2a_fm is here' 2. What is s2a_fm? s2a_fm is a cratch<na&' hard@are e+tension @ritten in Python allo@ing cratch and an Arduino microBcontroller to communicate seamlessly. 4i"ure $ @ s2a_fm Architecture s2a_fm is com&rised of three main soft@are com&onentsC 1. An 8))P ser:er that communicates @ith cratch. )he standard Python ,ase8))Per:er is used for sim&licity and com&ati0ility. 2. )he &rotocol translator translates data 0et@een the 8))P and Firmata &rotocols. )his is all done seamlessly and it allo@s your cratch<na&'<Arduino &ro$ects to loo! and @or! $ust li!e any other cratch or na&' &ro$ect. 3. Py.ata1 a Python li0rary that communicates @ith the Arduino using the Arduino tandard Firmata &rotocol. )his ma!es for fast> efficient and consistent communications. Py.ata handles all of the Firmata &rotocol details. )o start a ne@ cratch &ro$ect> $ust u&load the s2a_fm_base.sb2 scri&t file su&&lied @ith this release. )o start a ne@ na&' &ro$ect> im&ort s2a_fm_na&_0ase.+ml. )hese files contain all of the e+tension 0loc!s ready to go. After loading the &ro$ect for your &latform> you @ill find the cratch e+tension 0loc!s in the .ore ,loc!s ta0 of the cratch Pro$ect editor ready for use. For na&' )he 0loc!s may 0e found in the .otion> ound and ensor ta0s of the 0loc!s &alette. 5 8))P er:er Protocol )ranslator Py.ata 8))P 3:er )=P<IP Firmata Protocol s2a_fm Firmata erial Protocol 3. Installing s2a_fm 3.1. Python and Python Files ,efore installing s2a_fm> you must ha:e the follo@ing Python com&onents installed on your com&uterC Python :ersion 2.% or greater. Dou can do@nload Python fromC 5htt&C<<&ython.org<6 Pyerial 5htt&C<<&yserial.sourceforge.net<6 Py.ata 5htt&sC<<githu0.com<.rDs;a0<Py.ata6 )o install Pyerial and Py.ata> you may use the E&i&F installation &rogram 5htt&C<<@@@.&i&Binstaller.org<en<latest<6 if you ha:e it installed on your com&uter. )o use it> o&en a command @indo@ and ty&eC &i& install package_name. Alternati:ely> you can do@nload the &ac!ages using the lin!s a0o:e> and for 0oth the Pyerial and Py.ata &ac!ages ty&eC python setup.py install. /oteA you may need administrati:e &ri:ileges to &erform the install. 3.2. Arduino Sketch ;oad tandard Firmata into the Arduino from the e+am&les directory of the Firmata li0rary included @ith the Arduino I-*. If you @ish to use the )one and<or 31A# 5&ing6 functionality &ro:ided in 2a_fm> you should load the FirmataPlus s!etch included in the Py.ata distri0ution. .a!e sure that you are using Py.ata 1.55 or later @ith this s!etch. Dou @ill need to add the 1e@Ping li0rary to Arduino to successfully com&ile this s!etch. It may 0e do@nloaded atC htt&sC<<code.google.com<&<arduinoBne@B&ing<do@nloads<detail? nameG1e@Ping_:1.5.Hi& /-)EC After installing 1e@Ping> you @ill need to modify one of its files. Follo@ the directions &ro:ided in this lin!C htt&sC<<code.google.com<&<arduinoBne@B&ing<@i!i<8*;P_*rror_4ector_%_When_=om&iling It is recommended that you use Arduino I-* :ersion 1.5.5 or greater. Ising an earlier :ersion my result in com&ile errors. 4. Running s2a_fm Plug your Arduino into a I, &ort on your com&uter. 6 ?o to the directory @here you installed the s2a_fm &ac!age and ty&eC python s2a_fm.py COM_PORT_ID @here COM_PORT_ID is the name of the serial &ort that is used to communicate @ith the Arduino. It @ill ha:e the same name as the one used @hen you use the Arduino I-*. For e+am&le> for Windo@s> it might 0e =3.3> for linu+> it might 0e <de:<ttyA=.2. After e+ecuting the command> you should see something li!e the follo@ing a&&ear in the terminal @indo@C s2a_fm version 1.5 Copyright(C) 21!"21# $%an &orin's $%% Rights Reserve( Opening $r()ino *eria% port +(ev+tty$CM P%ease ,ait ,hi%e $r()ino is -eing (ete.te(. This .an ta'e )p to ! se.on(s ... /oar( initia%i0e( in 1 se.on(s Tota% 1)m-er of Pins Dete.te( 2 2 Tota% 1)m-er of $na%og Pins Dete.te( 2 3 P%ease ,ait for Tota% $r()ino Pin Dis.overy to .omp%ete. This .an ta'e )p to ! a((itiona% se.on(s. $r()ino Tota% Pin Dis.overy .omp%ete( in 1 se.on(s *tarting 4TTP *erver5 6se 7Ctr%"C8 to e9it the e9tension P%ease start *.rat.h or *nap5 4.1. Starting a Scratch Project 1o@ start cratch 2.2. =reate a ne@ &ro$ect and select File<I&load from your com&uter and select s2a_fm_0ase.s02 from the cratchFiles<cratchPro$ects directory included @ith this distri0ution. When cratch is detected the follo@ing line is &rinted to the consoleC *.rat.h (ete.te(5 Rea(y to ro.' an( ro%%... And if you go to the .ore ,loc!s ta0 in cratch you should seeC % )he circular indicator ne+t to E s2a_fm J cratch to ArduinoK should 0e green> indicating that the connection has 0een successfully esta0lished. 4.2. Starting a Snap! Project After na&' is started> go to the File menu and select Im&ort. ?o to the na&'Files directory and select the Es2a_fm_na&_0ase.+mlK file. )his is a 0lan! &ro$ect that @ill load all the s2a_fm 0loc!s. 5. The !tension "loc#s )he 0loc!s in 0lac! and @hite are the cratch command and re&orter 0loc!s. )he 0loc!s in color are the na&' ,loc!s. In na&'> all of the Es2a_fmK 0loc!s start @ith s2a_fm as &art of the identifier string. ( 5.1. Set Digital Pin ode For na&' this 0loc! is located on the ensing ta0 of the 0loc! &alette. )his 0loc! ena0les or disa0les an Arduino digital &in as an In&ut> 3ut&ut> PW.> er:o or )one or 31A#. 5.1.1. nable ,efore accessing a &in for in&ut or out&ut it must 0e ena0led. )o ena0le> select *na0le from the first dro& do@n menu. If ,nput mode is chosen 5see 0elo@6> ena0ling the &in @ill automatically instruct the Arduino 0oard to re&ort :alue changes for the &in. 5.1.2. $isable If a &in has 0een &re:iously 0een ena0led> selecting disa0le @ill inacti:ate the &in from its &re:iously ena0led mode and re&orting @ill cease for an Input mode &in. 1ormally this choice is not used> 0ut is &ro:ided to gi:e full fle+i0ility in @riting cratch scri&ts. 5.1.3. %in &umber )he :alue entered must 0e @ithin the range of &in num0ers for the 0oard. )he num0er of &ins detected for the Arduino is sho@n in the console @indo@ @hen the &rogram first starts u& and this information is also &laced in the log file 5see section 66. If the &in num0er is outside of the range for the 0oard> an error message is sent to the console and an error is logged. )he command is ignored if an error is / detected. 5.1.4. $igital 'ode )here are 6 digital modes su&&orted. ,nput for connection to an in&ut de:ice such as a s@itch. -utput for connection to a de:ice such as an ;*-. 5+M is an out&ut mode used to control a &in @ith an AnalogWrite. )his can 0e used to fade the light le:el on an ;*-. Ser(o configures the &in to o&erate a ser:o motor. )one configures the &in to call on the )one li0rary through Firmata. S-/A0 configures the &in to @or! @ith the 1e@Ping li0rary. I& to a ma+imum of 6 de:ices can 0e monitored simultaneously. /-)EC )he 8=B#2" ty&e de:ice is configured to @or! in single &in mode 5trigger and echo connected together6. ee the 1e@Ping documentation for detailsC htt&sC<<code.google.com<&<arduinoBne@B&ing<@i!i<1e@Ping_ingle_Pin_!etch. SPECIAL NOTE: ome Arduino 0oards &ro:ide internal &ullBu& resistors )o ena0le &ullBu& mode for a &in> refer to the Arduino documentation for instruction. 5.2. Set Analog Pin !nput ode Analog &ins are al@ays in&ut &ins and can only 0e ena0led or disa0led. )hey are fi+ed as in&uts. For na&' this 0loc! is located on the ensing ta0 of the 0loc! &alette. 5.2.1. nable ,efore accessing an analog &in for in&ut it must 0e ena0led. )o ena0le> select *na0le from the first dro& do@n menu. *na0ling the &in @ill automatically instruct the Arduino 0oard to re&ort changes in :alues for the &in. 5.2.2. $isable If a &in has 0een &re:iously ena0led> selecting disa0le @ill inacti:ate the &in from its &re:iously 12 ena0led mode. -ata @ill no longer 0e re&orted for the &in @hile it is disa0led. 5.2.3. %in &umber )he :alue entered must 0e @ithin the range of analog &in num0ers for the 0oard. )he num0er of &ins detected for the 0oard is sho@n in the console @indo@ @hen the &rogram first starts u&. If the &in num0er entered is outside of the range of the 0oard> an error message is sent to the console and the error is logged. If an error is detected> the command is ignored. )he &in num0er usse the Arduino analog &in num0er scheme. For e+am&le to ena0le analog &in A3> set the &in num0er in the 0loc! to 3. 5.3. Digital "rite For na&' this 0loc! is located on the ensing ta0 of the 0loc! &alette. 5.3.1. %in &umber )he &in num0er must 0e set to a &in that @as &re:iously ena0led as 3ut&ut and is in the range of digital &in :alues. If the &in is not ena0led as an 3ut&ut &in or if it is out of range> the re7uest is ignored and an error message is @ritten to the console and the log file. 5.3.2. %in (ut)ut *alue If a digital &in has 0een ena0led for out&ut> you can set its out&ut le:el to either a one or a Hero. elect the :alue from the dro& do@n list in the 0loc!. 5.4. Analog #P"$ "rite For na&' this 0loc! is located on the ensing ta0 of the 0loc! &allet. 5.4.1. %in &umber )he &in num0er must 0e set to a &in that @as &re:iously ena0led as PW. and is a PW. digital &in. If the &in is not ena0led as a PW. &in or if it is out of range> the re7uest is ignored and an error message is @ritten to the console and the log file. 11 5.4.2. %W' *alue et the &in out&ut :alue to 0e 0et@een 2B255. If the :alue is out of range an error message is @ritten to the console and the log file. )he re7uest @ill 0e ignored. 5.5. Play %one )his 0loc! instructs the Arduino to &lay a tone on the designated &in. For na&' this 0loc! is located on the 0loc! &alette ound ta0. 5.5.1. %in &umber )he &in num0er must 0e for a &in that @as &re:iously ena0led for )one and is in the range of digital &in num0ers. If the &in is not ena0led as a )one &in or if it is out of range> the re7uest is ignored and an error message is @ritten to the console and the log file. 5.5.2. +re,uenc- ./01 )he tone @ill 0e &layed at the s&ecified fre7uency. )here is no data :alidation for this entry. 5.5.3. $uration .ms1 )he num0er of milliseconds to sustain the tone. If this :alue set to Hero> the tone @ill 0e &layed indefinitely. It may 0e turned of my using the )urn )one 3ff 0loc!. 5.&. %urn %one '(( )his 0loc! @ill turn the tone off. It is used &rimarily if the duration for Play )one @as set to Hero 5a continuous tone6. For na&' this 0loc! is located on the 0loc! &alette ound ta0. 5.2.1. %in &umber )he &in num0er must 0e for a &in that @as &re:iously ena0led for )one. If the &in is not ena0led as a )one &in or if it is out of range> the re7uest is ignored and an error message is @ritten to the console and the log file. 12 5.). o*e Ser*o )his 0loc! @ill set a ser:o &osition to the desired :alue. For na&' this 0loc! is located on the 0loc! &alette .otion ta0. 5.3.1. %in &umber )he &in num0er must 0e for a &in that @as &re:iously ena0led for er:o and is in the range of digital &in :alues. If the &in is not ena0led as a er:o &in or if it is out of range> the re7uest is ignored and an error message is @ritten to the console and the log file. 5.3.2. %osition .$eg1 )his sets the motor &osition e+&ressed in degrees. )he range is 2 to 1(2. A :alue outside of this @ill 0e ignored and an error message is @ritten to the console and the log file. 5.+. ,ead Digital Pin )his 0loc! is a Ere&orterK 0loc! for a &in that is ena0led as a digital in&ut. It is used to gain access to the current :alue for the &in num0er s&ecified. It returns either a Hero or a one. For na&' this 0loc! is located on the 0loc! &alette ensing ta0. 5.-. ,ead Analog Pin )his 0loc! is a Ere&orterK 0loc! for a &in that is ena0led as an analog in&ut. It @ill contain the current :alue for the &in num0er s&ecified in the range of 2B1223. *nter the Arduino analog &in num0er in the PI1 field. For e+am&le to read analog &in A3> set the &in num0er in the 0loc! to 3. For na&' this 0loc! is located on the 0loc! &alette ensing ta0. 5.1..Sonar onar 58=B#2" Iltrasonic #anging ensor6 @ill monitor the distance to an o0$ect in centimeters. )he de:ice is configured using a single &in configuration sho@n 0elo@. )he &in is ena0led using the et 13 -igital Pin Mode block and is monitored using a Read Digital Pin 0loc!. For information a0out the 1e@Ping Arduino li0rary> see section E3.2 Arduino SketchK. After ena0ling a digital in&ut &in for onar> you may monitor the sensor 0y using a #ead -igital Pin 0loc! for that &in. A ty&ical @iring configuration for single &in o&eration is sho@n 0elo@. 5.11. De/ugger )urn de0ugging 3n or 3ff 5the default is 3ff6 from the dro& do@n list. If de0ugging is ena0led all cratch commands are logged to 0oth the log and console. *ach command is time stam&ed @ith the local time. #e&orter 0loc!s 5sensor information6 do not a&&ear as &art of the de0ug re&ort 0ecause cratch &olls for data a&&ro+imately 32 times &er second and this @ould flood the log. For na&' this 0loc! is located on the 0loc! &alette ensing ta0. 8ere is a sam&le of the de0ug logC 1" D:/6;< 21!"12"1= 1#<1=<3.>!!?!!< (e-)gger On D:/6;< 21!"12"1= 1#<1=<3.>3?2!2< (igita%_pin_mo(e :na-%e #? O)tp)t D:/6;< 21!"12"1= 1#<1=<3.?##=< (igita%_pin_mo(e :na-%e 51 O)tp)t D:/6;< 21!"12"1= 1#<1=<3.?#==55< (igita%_,rite #? 1 D:/6;< 21!"12"1= 1#<1=<3.?>221>< (igita%_,rite 51 1 D:/6;< 21!"12"1= 1#<1=<3.=332< (igita%_,rite #? 5.12.%he ,ed Stop 0utton Pressing the red sto& 0utton on the cratch &layer @ill send a reset command to the Arduino and @ill reset all internal data structures to their initial :alues. 2. 4og +ile A ne@ log file is created each time s2a_fm is started> and the &re:ious log file is discarded. )he name of the log file isEs2a_fm_de0ugging.logK and is located in a directory called ElogK 5see the Pro$ect -irectory )ree in section 126. )he log file contains EinfoK records @hich are considered &art of normal o&eration and it may contain de0ug records @hich @ill hel& in de0ugging a cratch &rogram accessing an Ardunio 0oard. 8ere is &art of a ty&ical logC I1@O<root<s2a_fm version 1.5 Copyright(C) 21!"21# $%an &orin's $%% Rights Reserve( I1@O<root<.om port 2 +(ev+tty$CM I1@O<root<2 Tota% Pins an( 3 $na%og Pins @o)n( I1@O<root<*.rat.h (ete.te(5 Rea(y to ro.' an( ro%%... D:/6;<root<(igita%_pin_mo(e< The pin n)m-er m)st -e set to a n)meri.a% va%)e D:/6;<root<ana%og_,rite< The va%)e fie%( m)st -e set to a n)meri.a% va%)e In this e+am&le> the I1F3 records indicate normal 0eha:ior and &ro:ide informational data> and the -*,I? records indicate a &ro0lem. In the first -*,I? line> the &in num0er @as not entered &ro&erly @hen setting a digital &in mode> and the second -*,I? indicates that the 4A; field needs to 0e &ro&erly entered @hen e+ecuting an analog @rite 0loc!. 3. !am)le %rograms )hese cratch .s02 &rogram files for these e+am&les can 0e found in cratchFiles<cratchPro$ects directory and the na&'Files<na&'Pro$ects directory 5see the Pro$ect -irectory )ree in section 126. 1oteC the screenshots 0elo@ sho@ the cratch 0loc!s. ).1. A Scratch1Snap! Progra2 to %urn 'n an 34D using Digital Pin & 15 ).2. Scratch1Snap Progra2 to ,ead A Potentio2eter on Pin A2 and Spin the Scratch 5at 16 5. 6cratch76na)8 "loc# Translations for Chinese9 $utch9 +rench9 :erman9 %ortuguese and 6)anish )han!s to the generosity of our users> 0loc! translations ha:e 0een &ro:ided for the =hinese> -utch> French> ?erman> Portugues and &anish. )han!s to S9oerd :ir' Mei9er> a generaliHed translation mechanism has 0een &ro:ided. 8e also &ro:ided translation to -utch. A 0lan! cratch &ro$ect> called s2a_fm_0ase_nl.s02 is contained in the cratchFiles<cratchPro$ects directory. In addition> $oerd -ir! has !indly &ro:ided a L31 e+tension s&ecification for cratch also translated to -utch. )his file is called s2a_fm_1;.s2e and can 0e found in the cratchFiles<*+tension-escri&tors directory. For na&'> $ust load the Es2a_fm_na&_0ase_dutch.+mlK file as descri0ed in section ".2. And than!s to 5rofessor ;os< Manue 0ui=> @ho has graciously &ro:ided translations for the 0loc!s and e+am&les in the &anish language for 0oth na&' and cratch. )he 0loc! translations for na&' may 0e found in s2a_fm_na&_0ase_*s.+ml and for cratch in s2a_fm_*s.s2e. )ranslated &ro$ects may 0e found in in the e+tensions directories na&Files<*s&aMol. In addition he created a &anish language tutorial> Es2a_fm_*s&anish_tutorial.&dfK> that can 0e found in the documentation<*s&aMol directory. Professor &u 4an"9un has generously &ro:ided 0loc! translations for the =hinese language. )he 0loc! translations for na&' may 0e found in s2a_fm_na&_0ase_Hh_cn.+ml and for cratch in s2a_fm_Hh_cn.s2e. )han! you Professor Du Fang$un' )he French translation has 0een graciously &ro:ided 0y Se*astien Canet. )he Portugues and ?erman translations ha:e 0een &ro:ided through the generosity of Ado (on +an"enheim1 from www.computacaonaescoa.ufsc.*r +.1. %ranslating to 'ther 3anguages. If you @ish to translate the s2a_fm 0loc! te+t to an additional language> create a ne@ e+tensions descri&tor file 5.s2e file6 for your language and send it to .isterDs;a0Ngmail.com. )he e+tensions files are located in the cratchFiles<*+tension-escri&tors directory of this distri0ution. )o understand @hat needs to change in the e+tension descri&tor file> com&are the *nglish and one of other :ersions &ro:ided in this distri0ution to identify the strings that need to 0e changed. )o test your e+tension descri&tor> load it into cratch 0y holding the hift Oey and selecting File from the cratch .enu 5currently this is for the offBline cratch editor only6 and then select EIm&ort *+&erimental *+tensionK and if the file @as modified a&&ro&riately> the translated 0loc!s should a&&ear in the .ore ,loc!s ection. If nothing a&&ears> chec! your modifications in the a L31 lint chec!er 5 htt&C<<$sonlint.com<6 and ma!e any corrections that are necessary. 1% ;. Windo<s .bat and 4inu! .sh +iles for asier %rogram 6tartu) )he Ee+tra goodiesK directory contains a sam&le Windo@s .0at file 5s2a_fm.0at6 and a linu+ .sh 5s2a_fm.sh6 file to ma!e starting s2a_fm easier. *ach file contains directions for their use. 1=. %ro>ect $irector- Tree s2a_fm PQQ ArduinoFiles R PQQ #*A-.*.)S) PQQ documentation R PQQ *s&aMol R R TQQ s2a_fm_*s&anish_tutorial.&df R PQQ ;*-_*SA.P;*.&ng R PQQ &ot1.&ng R PQQ s2a_fm_reference.&df R PQQ scratch_0loc!s.&ng R PQQ scratch_langs.&ng R TQQ sna&_0loc!s.&ng PQQ e+tra_goodies R PQQ linu+ R R TQQ s2a_fm.sh R TQQ @indo@s R TQQ s2a_fm.0at PQQ log PQQ cratchFiles R PQQ *+tension-escri&tors R R PQQ s2a_fm_-*.s2e R R PQQ s2a_fm_*s.s2e R R PQQ s2a_fm_Fr.s2e R R PQQ s2a_fm_1;.s2e R R PQQ s2a_fm_Pt.s2e R R PQQ s2a_fm.s2e R R TQQ s2a_fm_Hh_cn.s2e R TQQ cratchPro$ects R PQQ s2a_fm_0ase_-*.s02 R PQQ s2a_fm_0ase_*s.s02 R PQQ s2a_fm_0ase_Fr.s02 R PQQ s2a_fm_0ase_nl.s02 R PQQ s2a_fm_0ase_Pt.s02 R PQQ s2a_fm_0ase.s02 R PQQ s2a_fm_0ase_Hh_cn.s02 R PQQ sonar)est.s02 R PQQ s&inning_cat.s02 R TQQ )urn 3n ;*- 3n Pin 6.s02 1( PQQ na&'Files R PQQ *s&aMol R R PQQ 0lin!_tiem&o_:aria0le.+ml R R PQQ 0lin!.+ml R R PQQ 0oton_con_imagen.+ml R R PQQ 0oton.+ml R R PQQ contador1.+ml R R PQQ contador2.+ml R R PQQ s2a_fm_na&_0ase_*s.+ml R R PQQ semaforo_tiem&o_:aria0le.+ml R R PQQ ser:o1.+ml R R TQQ ser:o2.+ml R PQQ na&'.o0ile R R PQQ arduino R R R PQQ log R R R R TQQ s2a_fm_de0ugging.log R R R PQQ Py.ata R R R R PQQ __init__.&y R R R R PQQ &ymata_command_handler.&y R R R R PQQ &ymata.&y R R R R TQQ &ymata_serial.&y R R R PQQ serial R R R R PQQ tools R R R R R PQQ __init__.&y R R R R R PQQ list_&orts_linu+.&y R R R R R PQQ list_&orts_os+.&y R R R R R PQQ list_&orts_&osi+.&y R R R R R PQQ list_&orts.&y R R R R R PQQ list_&orts_@indo@s.&y R R R R R TQQ miniterm.&y R R R R PQQ urlhandler R R R R R PQQ __init__.&y R R R R R PQQ &rotocol_h@gre&.&y R R R R R PQQ &rotocol_loo&.&y R R R R R PQQ &rotocol_rfc221%.&y R R R R R TQQ &rotocol_soc!et.&y R R R R PQQ __init__.&y R R R R PQQ rfc221%.&y R R R R PQQ serialcli.&y R R R R PQQ serial$a:a.&y R R R R PQQ serial&osi+.&y R R R R PQQ serialutil.&y R R R R PQQ serial@in32.&y R R R R PQQ sermsdos.&y R R R R TQQ @in32.&y R R R PQQ s2a_fm.&y R R R PQQ scratch_command_handlers.&y 1/ R R R PQQ scratch_htt&_ser:er.&y R R R TQQ +late.cfg R R PQQ tandardFirmataDun R R R TQQ tandardFirmataDun R R R TQQ tandardFirmataDun.ino R R PQQ @ired.otor)est.+ml R R PQQ yun_0lin!.+ml R R PQQ yun_motor_control.+ml R R TQQ yun_motor_control.+mlU R PQQ 0lin!.+ml R PQQ s2a_fm_na&_0ase_dutch.+ml R PQQ s2a_fm_na&_0ase_*s.+ml R PQQ s2a_fm_na&_0ase_F#.+ml R PQQ s2a_fm_na&_0ase.+ml R PQQ s2a_fm_na&_0ase_Hh_cn.+ml R PQQ s&inning_s&rite.+ml R TQQ )urn 3n ;*- 3n Pin 6.+ml PQQ license.t+t PQQ #*A-.*.md PQQ s2a_fm.&y PQQ scratch_command_handlers.&y PQQ scratch_command_handlers.&yc PQQ scratch_htt&_ser:er.&y PQQ scratch_htt&_ser:er.&yc TQQ +late.cfg 21 directories> (/ files 11. References Arduino htt&C<<arduino.cc< na&' htt&C<<sna&.0er!eley.edu< cratch htt&C<<scratch.mit.edu< Arduino tandard Firmata htt&C<<&layground.arduino.cc<Interfacing<Firmata Py.ata htt&sC<<githu0.com<.rDs;a0<Py.ata 1e@Ping Arduino ;i0rary htt&sC<<code.google.com<&<arduinoBne@B&ing< 12. ?uestions9 Comments9 "ug Re)orts Please contact us at .isterDs;a0Ngmail.com 22