mirror of
https://github.com/KevinMidboe/Arduino.git
synced 2025-10-29 17:40:11 +00:00
Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* SyncArduinoClock.
|
||||
*
|
||||
* portIndex must be set to the port connected to the Arduino
|
||||
*
|
||||
* The current time is sent in response to request message from Arduino
|
||||
* or by clicking the display window
|
||||
*
|
||||
* The time message is 11 ASCII text characters; a header (the letter 'T')
|
||||
* followed by the ten digit system time (unix time)
|
||||
*/
|
||||
|
||||
|
||||
import processing.serial.*;
|
||||
|
||||
public static final short portIndex = 1; // select the com port, 0 is the first port
|
||||
public static final char TIME_HEADER = 'T'; //header byte for arduino serial time message
|
||||
public static final char TIME_REQUEST = 7; // ASCII bell character
|
||||
public static final char LF = 10; // ASCII linefeed
|
||||
public static final char CR = 13; // ASCII linefeed
|
||||
Serial myPort; // Create object from Serial class
|
||||
|
||||
void setup() {
|
||||
size(200, 200);
|
||||
println(Serial.list());
|
||||
println(" Connecting to -> " + Serial.list()[portIndex]);
|
||||
myPort = new Serial(this,Serial.list()[portIndex], 9600);
|
||||
}
|
||||
|
||||
void draw()
|
||||
{
|
||||
if ( myPort.available() > 0) { // If data is available,
|
||||
char val = char(myPort.read()); // read it and store it in val
|
||||
if(val == TIME_REQUEST){
|
||||
long t = getTimeNow();
|
||||
sendTimeMessage(TIME_HEADER, t);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(val == LF)
|
||||
; //igonore
|
||||
else if(val == CR)
|
||||
println();
|
||||
else
|
||||
print(val); // echo everying but time request
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void mousePressed() {
|
||||
sendTimeMessage( TIME_HEADER, getTimeNow());
|
||||
}
|
||||
|
||||
|
||||
void sendTimeMessage(char header, long time) {
|
||||
String timeStr = String.valueOf(time);
|
||||
myPort.write(header); // send header and time to arduino
|
||||
myPort.write(timeStr);
|
||||
}
|
||||
|
||||
long getTimeNow(){
|
||||
// java time is in ms, we want secs
|
||||
GregorianCalendar cal = new GregorianCalendar();
|
||||
cal.setTime(new Date());
|
||||
int tzo = cal.get(Calendar.ZONE_OFFSET);
|
||||
int dst = cal.get(Calendar.DST_OFFSET);
|
||||
long now = (cal.getTimeInMillis() / 1000) ;
|
||||
now = now + (tzo/1000) + (dst/1000);
|
||||
return now;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
SyncArduinoClock is a Processing sketch that responds to Arduino requests for
|
||||
time synchronization messages.
|
||||
|
||||
The portIndex must be set the Serial port connected to Arduino.
|
||||
|
||||
Download TimeSerial.pde onto Arduino and you should see the time
|
||||
message displayed when you run SyncArduinoClock in Processing.
|
||||
The Arduino time is set from the time on your computer through the
|
||||
Processing sketch.
|
||||
Reference in New Issue
Block a user