Skip to content

Commit fe76f7f

Browse files
authored
Add files via upload
1 parent 10d0f62 commit fe76f7f

File tree

4 files changed

+165
-0
lines changed

4 files changed

+165
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
//////
2+
// speed up sampling rate -- by [email]tsaiwn@cs.nctu.edu.tw[/email]
3+
const int pin = A0;
4+
const int n = 1000; // sample 採樣 1000 次
5+
void setup() {
6+
Serial.begin(230400);
7+
//setP32( ); // Prescaler = 32
8+
//setP8( ); // Prescaler = 8
9+
//setP16( ); // Prescaler = 16
10+
//setP128( ); // Prescaler = 128 = default
11+
setP4();
12+
for(int i=0; i< 543; i++) analogRead(A0);
13+
Serial.println(String("Sample ") + n + " times, pin=" + pin);
14+
Serial.flush( );
15+
delay(568);
16+
}
17+
void loop( ) { //
18+
long begt, runt, total;
19+
total = 0; // clear before sampling
20+
begt = micros();
21+
for(int i=0; i< n; i++) {
22+
total += analogRead(pin);
23+
}
24+
runt = micros() - begt; // elapsed time
25+
Serial.println(String("Average=") + total/n);
26+
Serial.print(String("Time per sample: ")+runt/1.0/n +"us");
27+
Serial.println(String(", Frequency: ")+1000000.0/runt*n +" Hz");
28+
delay(5566);
29+
}// loop(
30+
void setP32( ) {
31+
Serial.println("ADC Prescaler = 32"); // 101
32+
ADCSRA |= (1 << ADPS2); // 1
33+
ADCSRA &= ~(1 << ADPS1); // 0
34+
ADCSRA |= (1 << ADPS0); // 1
35+
}
36+
void setP16( ) {
37+
Serial.println("ADC Prescaler = 16"); // 100
38+
ADCSRA |= (1 << ADPS2); // 1
39+
ADCSRA &= ~(1 << ADPS1); // 0
40+
ADCSRA &= ~(1 << ADPS0); // 0
41+
}
42+
void setP8( ) { // prescaler = 8
43+
Serial.println("ADC Prescaler = 8"); // 011
44+
ADCSRA &= ~(1 << ADPS2); // 0
45+
ADCSRA |= (1 << ADPS1); // 1
46+
ADCSRA |= (1 << ADPS0); // 1
47+
}
48+
void setP4( ) { // prescaler = 4
49+
Serial.println("ADC Prescaler = 4"); // 010
50+
ADCSRA &= ~(1 << ADPS2); // 0
51+
ADCSRA |= (1 << ADPS1); // 1
52+
ADCSRA &= ~(1 << ADPS0); // 0
53+
}
54+
void setP128( ) { // default
55+
Serial.println("ADC Prescaler = 128"); // 111
56+
ADCSRA |= (1 << ADPS2); // 1
57+
ADCSRA |= (1 << ADPS1); // 1
58+
ADCSRA |= (1 << ADPS0); // 1
59+
} // setP128

trigger/remote_trigger.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env python3
2+
# -*- coding:utf-8 -*-
3+
4+
from datetime import datetime
5+
import subprocess
6+
7+
while True:
8+
# continually listen on port 5025, if connection is broken, reconnect immediately
9+
with subprocess.Popen(["nc", "-l", "5025"], stdout=subprocess.PIPE) as netcat:
10+
print("YUN: Waiting for trigger...")
11+
message = netcat.stdout.readline().strip().decode("utf-8")
12+
13+
if (message == "triggered"):
14+
print("YUN: Triggered! " + str(datetime.now()))
15+

trigger/trigger1.0/trigger1.0.ino

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#include <Bridge.h>
2+
#include <Process.h>
3+
4+
5+
void setup() {
6+
// Bridge startup
7+
pinMode(13, OUTPUT);
8+
digitalWrite(13, LOW);
9+
Bridge.begin();
10+
digitalWrite(13, HIGH);
11+
Serial.begin(9600);
12+
13+
delay(1000);
14+
digitalWrite(13, LOW);
15+
16+
setP2();
17+
}
18+
19+
20+
void loop() {
21+
int value = analogRead(A0);
22+
float voltage = value * 0.00568;
23+
24+
Serial.println(voltage);
25+
26+
if (voltage < 0.5) {
27+
Process p; // Create a process "p"
28+
p.runShellCommandAsynchronously("nc 10.10.91.91 5025"); //10.10.1.62
29+
p.println("triggered");
30+
31+
digitalWrite(13, HIGH);
32+
33+
delay(20); //ms
34+
p.close();
35+
digitalWrite(13, LOW);
36+
}
37+
}
38+
39+
40+
void setP2( ) {
41+
// ADC prescaler = 2
42+
ADCSRA &= ~(1 << ADPS2); // 0
43+
ADCSRA &= ~(1 << ADPS1); // 0
44+
ADCSRA |= (1 << ADPS0); // 1
45+
}

trigger/trigger2.0/trigger2.0.ino

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#include <Bridge.h>
2+
#include <Process.h>
3+
4+
volatile boolean triggered = false;
5+
6+
ISR(ANALOG_COMP_vect) {
7+
triggered = true;
8+
}
9+
10+
void setup() {
11+
// Bridge startup
12+
pinMode(13, OUTPUT);
13+
digitalWrite(13, LOW);
14+
Bridge.begin();
15+
digitalWrite(13, HIGH);
16+
17+
Serial.begin(115200);
18+
Serial.println("Started.");
19+
//ADCSRB = 0;
20+
//ACSR = bit (ACI) | bit (ACIE) | bit (ACIS1);
21+
ACSR |= ((1<<ACBG)| // AIN+ set to bandgap reference voltage 1.1(1)V
22+
(1<< ACI)|
23+
(1<<ACIE)| // Analog comparator interrupt is activated
24+
(1<<ACIS1)); // Comparator interrupt on falling output edge
25+
ADCSRB |= (1<<ACME); // AIN- set to ADC7
26+
ADCSRA &= ~(1<<ADEN);
27+
ADMUX |= ((1<<MUX2)|(1<<MUX1)|(1<<MUX0));
28+
29+
delay(1000);
30+
digitalWrite(13, LOW);
31+
}
32+
33+
void loop() {
34+
if(triggered) {
35+
Process p; // Create a process "p"
36+
p.runShellCommandAsynchronously("nc 10.10.91.91 5025"); //10.10.1.62
37+
p.println("triggered");
38+
Serial.println("Triggered!");
39+
triggered = false;
40+
41+
digitalWrite(13, HIGH);
42+
delay(20);
43+
p.close();
44+
digitalWrite(13, LOW);
45+
}
46+
}

0 commit comments

Comments
 (0)