Stap 1: Voorbereiding
Na enige tijd lezing vonden we dat de Sensor Board-communicatie via RS-232 vindt plaats bij een snelheid van 38400 baud. Het is goed, omdat Arduino al een seriële poort waardoor minder schakelingen uit te voeren.
Het protocol tussen nul en Sensor Board vormt van een ping pong mechanisme. Eerste Scratch toepassing verzenden een een gegevensbyte aan de Raad vervolgens de Raad antwoordt met de sensorgegevens. Leuk.
Het aanvraagpakket is gewoon een byte met de waarde 0x01, terwijl de sensorgegevens uit 9 hoge byte bestaat / lage byte paren (dat wil zeggen 18 bytes) verdeeld in tijd door een 400us-interval.
De hoge byte / lage byte paren bevat een 4 bits kanaal-ID en een 10 bit waarde. Dit is goed, want als past goed met Arduino ADCs resolutie.
Voor de Board Scratch Release 1 firmware en kras versie 1.1 en hoger, is de toewijzing van ID en sensor kanaaltype hieronder:
Kanaal / Sensor
0 / weerstand D
1 / weerstand C
2 / weerstand B
3 / knop
4 / weerstand A
5 / licht
6 / geluid
7 / slider
8-14 / niet gebruikt
15 / firmware-ID (0x04)
Uit de 16 mogelijke kanalen hebben we 7 analoog, 1 discrete (on/off), 1 dummy (firmware-id) en 7 reserve (niet gebruikt nu, misschien in een toekomstige versie).