arduino-mk 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +60 -0
- data/lib/arduino-mk.rb +10 -0
- data/lib/arduino-mk/base.rb +61 -0
- data/lib/arduino-mk/error_improver.rb +42 -0
- data/lib/arduino-mk/makefile/runner.rb +23 -0
- data/lib/arduino-mk/makefile/template.rb +27 -0
- data/lib/arduino-mk/null_project.rb +5 -0
- data/lib/arduino-mk/null_project/null.c +1 -0
- data/lib/arduino-mk/option_parser.rb +35 -0
- data/lib/arduino-mk/project_copier.rb +9 -0
- data/vendor/Arduino-Makefile/Arduino.mk +1306 -0
- data/vendor/Arduino-Makefile/CONTRIBUTING.md +35 -0
- data/vendor/Arduino-Makefile/Common.mk +46 -0
- data/vendor/Arduino-Makefile/HISTORY.md +225 -0
- data/vendor/Arduino-Makefile/README.md +189 -0
- data/vendor/Arduino-Makefile/ard-reset-arduino.1 +48 -0
- data/vendor/Arduino-Makefile/arduino-mk-vars.md +1101 -0
- data/vendor/Arduino-Makefile/bin/ard-reset-arduino +38 -0
- data/vendor/Arduino-Makefile/chipKIT.mk +109 -0
- data/vendor/Arduino-Makefile/examples/ATtinyBlink/ATtinyBlink.ino +23 -0
- data/vendor/Arduino-Makefile/examples/ATtinyBlink/Makefile +13 -0
- data/vendor/Arduino-Makefile/examples/AnalogInOutSerial/AnalogInOutSerial.ino +53 -0
- data/vendor/Arduino-Makefile/examples/AnalogInOutSerial/Makefile +4 -0
- data/vendor/Arduino-Makefile/examples/Blink/Blink.ino +19 -0
- data/vendor/Arduino-Makefile/examples/Blink/Makefile +5 -0
- data/vendor/Arduino-Makefile/examples/BlinkChipKIT/BlinkChipKIT.pde +19 -0
- data/vendor/Arduino-Makefile/examples/BlinkChipKIT/Makefile +5 -0
- data/vendor/Arduino-Makefile/examples/BlinkInAVRC/Makefile +16 -0
- data/vendor/Arduino-Makefile/examples/BlinkInAVRC/blink.c +38 -0
- data/vendor/Arduino-Makefile/examples/BlinkWithoutDelay/BlinkWithoutDelay.ino +65 -0
- data/vendor/Arduino-Makefile/examples/BlinkWithoutDelay/Makefile +4 -0
- data/vendor/Arduino-Makefile/examples/Fade/Fade.ino +31 -0
- data/vendor/Arduino-Makefile/examples/Fade/Makefile +4 -0
- data/vendor/Arduino-Makefile/examples/HelloWorld/HelloWorld.ino +58 -0
- data/vendor/Arduino-Makefile/examples/HelloWorld/Makefile +4 -0
- data/vendor/Arduino-Makefile/examples/MakefileExample/Makefile-example.mk +55 -0
- data/vendor/Arduino-Makefile/examples/README.md +7 -0
- data/vendor/Arduino-Makefile/examples/TinySoftWareSerial/Makefile +14 -0
- data/vendor/Arduino-Makefile/examples/TinySoftWareSerial/TinySoftwareSerial.ino +12 -0
- data/vendor/Arduino-Makefile/examples/WebServer/Makefile +6 -0
- data/vendor/Arduino-Makefile/examples/WebServer/WebServer.ino +82 -0
- data/vendor/Arduino-Makefile/examples/master_reader/Makefile +6 -0
- data/vendor/Arduino-Makefile/examples/master_reader/master_reader.ino +32 -0
- data/vendor/Arduino-Makefile/examples/toneMelody/Makefile +4 -0
- data/vendor/Arduino-Makefile/examples/toneMelody/pitches.h +95 -0
- data/vendor/Arduino-Makefile/examples/toneMelody/toneMelody.ino +49 -0
- data/vendor/Arduino-Makefile/licence.txt +502 -0
- data/vendor/Arduino-Makefile/packaging/debian/README.md +23 -0
- data/vendor/Arduino-Makefile/packaging/fedora/README.md +39 -0
- data/vendor/Arduino-Makefile/packaging/fedora/arduino-mk.spec +70 -0
- metadata +110 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
/*
|
2
|
+
LiquidCrystal Library - Hello World
|
3
|
+
|
4
|
+
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
|
5
|
+
library works with all LCD displays that are compatible with the
|
6
|
+
Hitachi HD44780 driver. There are many of them out there, and you
|
7
|
+
can usually tell them by the 16-pin interface.
|
8
|
+
|
9
|
+
This sketch prints "Hello World!" to the LCD
|
10
|
+
and shows the time.
|
11
|
+
|
12
|
+
The circuit:
|
13
|
+
* LCD RS pin to digital pin 12
|
14
|
+
* LCD Enable pin to digital pin 11
|
15
|
+
* LCD D4 pin to digital pin 5
|
16
|
+
* LCD D5 pin to digital pin 4
|
17
|
+
* LCD D6 pin to digital pin 3
|
18
|
+
* LCD D7 pin to digital pin 2
|
19
|
+
* LCD R/W pin to ground
|
20
|
+
* 10K resistor:
|
21
|
+
* ends to +5V and ground
|
22
|
+
* wiper to LCD VO pin (pin 3)
|
23
|
+
|
24
|
+
Library originally added 18 Apr 2008
|
25
|
+
by David A. Mellis
|
26
|
+
library modified 5 Jul 2009
|
27
|
+
by Limor Fried (http://www.ladyada.net)
|
28
|
+
example added 9 Jul 2009
|
29
|
+
by Tom Igoe
|
30
|
+
modified 22 Nov 2010
|
31
|
+
by Tom Igoe
|
32
|
+
|
33
|
+
This example code is in the public domain.
|
34
|
+
|
35
|
+
http://www.arduino.cc/en/Tutorial/LiquidCrystal
|
36
|
+
*/
|
37
|
+
|
38
|
+
// include the library code:
|
39
|
+
#include <LiquidCrystal.h>
|
40
|
+
|
41
|
+
// initialize the library with the numbers of the interface pins
|
42
|
+
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
|
43
|
+
|
44
|
+
void setup() {
|
45
|
+
// set up the LCD's number of columns and rows:
|
46
|
+
lcd.begin(16, 2);
|
47
|
+
// Print a message to the LCD.
|
48
|
+
lcd.print("hello, world!");
|
49
|
+
}
|
50
|
+
|
51
|
+
void loop() {
|
52
|
+
// set the cursor to column 0, line 1
|
53
|
+
// (note: line 1 is the second row, since counting begins with 0):
|
54
|
+
lcd.setCursor(0, 1);
|
55
|
+
// print the number of seconds since reset:
|
56
|
+
lcd.print(millis()/1000);
|
57
|
+
}
|
58
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
### DISCLAIMER
|
2
|
+
### This is an example Makefile and it MUST be configured to suit your needs.
|
3
|
+
### For detailled explanations about all the avalaible options,
|
4
|
+
### please refer to https://github.com/sudar/Arduino-Makefile/blob/master/arduino-mk-vars.md
|
5
|
+
|
6
|
+
### PROJECT_DIR
|
7
|
+
### This is the path to where you have created/cloned your project
|
8
|
+
PROJECT_DIR = /Users/Ladislas/dev/leka/moti
|
9
|
+
|
10
|
+
### ARDMK_DIR
|
11
|
+
### Path to the Arduino-Makefile directory.
|
12
|
+
ARDMK_DIR = $(PROJECT_DIR)/arduino-mk
|
13
|
+
|
14
|
+
### ARDUINO_DIR
|
15
|
+
### Path to the Arduino application and ressources directory.
|
16
|
+
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
|
17
|
+
|
18
|
+
### USER_LIB_PATH
|
19
|
+
### Path to where the your project's libraries are stored.
|
20
|
+
USER_LIB_PATH := $(PROJECT_DIR)/lib
|
21
|
+
|
22
|
+
### BOARD_TAG
|
23
|
+
### It must be set to the board you are currently using. (i.e uno, mega2560, etc.)
|
24
|
+
BOARD_TAG = mega2560
|
25
|
+
|
26
|
+
### MONITOR_BAUDRATE
|
27
|
+
### It must be set to Serial baudrate value you are using.
|
28
|
+
MONITOR_BAUDRATE = 115200
|
29
|
+
|
30
|
+
### AVR_TOOLS_DIR
|
31
|
+
### Path to the AVR tools directory such as avr-gcc, avr-g++, etc.
|
32
|
+
AVR_TOOLS_DIR = /usr/local
|
33
|
+
|
34
|
+
### AVRDDUDE
|
35
|
+
### Path to avrdude directory.
|
36
|
+
AVRDDUDE = /usr/local/bin/avrdude
|
37
|
+
|
38
|
+
### CPPFLAGS
|
39
|
+
### Flags you might want to set for debugging purpose. Comment to stop.
|
40
|
+
CPPFLAGS = -pedantic -Wall -Wextra
|
41
|
+
|
42
|
+
### MONITOR_PORT
|
43
|
+
### The port your board is connected to. Using an '*' tries all the ports and finds the right one.
|
44
|
+
MONITOR_PORT = /dev/tty.usbmodem*
|
45
|
+
|
46
|
+
### don't touch this
|
47
|
+
CURRENT_DIR = $(shell basename $(CURDIR))
|
48
|
+
|
49
|
+
### OBJDIR
|
50
|
+
### This is were you put the binaries you just compile using 'make'
|
51
|
+
OBJDIR = $(PROJECT_DIR)/bin/$(BOARD_TAG)/$(CURRENT_DIR)
|
52
|
+
|
53
|
+
### path to Arduino.mk, inside the ARDMK_DIR, don't touch.
|
54
|
+
include $(ARDMK_DIR)/Arduino.mk
|
55
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
This folder contains the list of example Arduino sketches and makefile showing the different usage patterns
|
2
|
+
|
3
|
+
- Blink - Shows normal usage
|
4
|
+
- HelloWorld - Shows how to include Arduino libraries
|
5
|
+
- BlinkInAVRC - Shows how to use plain AVR C code
|
6
|
+
- BlinkChipKIT - Shows how to use ChipKIT
|
7
|
+
- ATtinyBlink - Shows how to use different cores like ATtiny
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Arduino Make file. Refer to https://github.com/sudar/Arduino-Makefile
|
2
|
+
|
3
|
+
# if you have placed the alternate core in your sketchbook directory, then you can just mention the core name alone.
|
4
|
+
ALTERNATE_CORE = attiny
|
5
|
+
# If not, you might have to include the full path.
|
6
|
+
#ALTERNATE_CORE_PATH = /home/sudar/Dropbox/code/arduino-sketches/hardware/attiny/
|
7
|
+
|
8
|
+
BOARD_TAG = attiny85-8
|
9
|
+
|
10
|
+
ARDUINO_LIBS = SoftwareSerial
|
11
|
+
|
12
|
+
include $(ARDMK_DIR)/Arduino.mk
|
13
|
+
|
14
|
+
# !!! Important. You have to use make ispload to upload when using ISP programmer
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/*
|
2
|
+
Web Server
|
3
|
+
|
4
|
+
A simple web server that shows the value of the analog input pins.
|
5
|
+
using an Arduino Wiznet Ethernet shield.
|
6
|
+
|
7
|
+
Circuit:
|
8
|
+
* Ethernet shield attached to pins 10, 11, 12, 13
|
9
|
+
* Analog inputs attached to pins A0 through A5 (optional)
|
10
|
+
|
11
|
+
created 18 Dec 2009
|
12
|
+
by David A. Mellis
|
13
|
+
modified 4 Sep 2010
|
14
|
+
by Tom Igoe
|
15
|
+
|
16
|
+
*/
|
17
|
+
|
18
|
+
#include <SPI.h>
|
19
|
+
#include <Ethernet.h>
|
20
|
+
|
21
|
+
// Enter a MAC address and IP address for your controller below.
|
22
|
+
// The IP address will be dependent on your local network:
|
23
|
+
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
|
24
|
+
IPAddress ip(192,168,1, 178);
|
25
|
+
|
26
|
+
// Initialize the Ethernet server library
|
27
|
+
// with the IP address and port you want to use
|
28
|
+
// (port 80 is default for HTTP):
|
29
|
+
EthernetServer server(80);
|
30
|
+
|
31
|
+
void setup()
|
32
|
+
{
|
33
|
+
// start the Ethernet connection and the server:
|
34
|
+
Ethernet.begin(mac, ip);
|
35
|
+
server.begin();
|
36
|
+
}
|
37
|
+
|
38
|
+
void loop()
|
39
|
+
{
|
40
|
+
// listen for incoming clients
|
41
|
+
EthernetClient client = server.available();
|
42
|
+
if (client) {
|
43
|
+
// an http request ends with a blank line
|
44
|
+
boolean currentLineIsBlank = true;
|
45
|
+
while (client.connected()) {
|
46
|
+
if (client.available()) {
|
47
|
+
char c = client.read();
|
48
|
+
// if you've gotten to the end of the line (received a newline
|
49
|
+
// character) and the line is blank, the http request has ended,
|
50
|
+
// so you can send a reply
|
51
|
+
if (c == '\n' && currentLineIsBlank) {
|
52
|
+
// send a standard http response header
|
53
|
+
client.println("HTTP/1.1 200 OK");
|
54
|
+
client.println("Content-Type: text/html");
|
55
|
+
client.println();
|
56
|
+
|
57
|
+
// output the value of each analog input pin
|
58
|
+
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
|
59
|
+
client.print("analog input ");
|
60
|
+
client.print(analogChannel);
|
61
|
+
client.print(" is ");
|
62
|
+
client.print(analogRead(analogChannel));
|
63
|
+
client.println("<br />");
|
64
|
+
}
|
65
|
+
break;
|
66
|
+
}
|
67
|
+
if (c == '\n') {
|
68
|
+
// you're starting a new line
|
69
|
+
currentLineIsBlank = true;
|
70
|
+
}
|
71
|
+
else if (c != '\r') {
|
72
|
+
// you've gotten a character on the current line
|
73
|
+
currentLineIsBlank = false;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
// give the web browser time to receive the data
|
78
|
+
delay(1);
|
79
|
+
// close the connection:
|
80
|
+
client.stop();
|
81
|
+
}
|
82
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
// Wire Master Reader
|
2
|
+
// by Nicholas Zambetti <http://www.zambetti.com>
|
3
|
+
|
4
|
+
// Demonstrates use of the Wire library
|
5
|
+
// Reads data from an I2C/TWI slave device
|
6
|
+
// Refer to the "Wire Slave Sender" example for use with this
|
7
|
+
|
8
|
+
// Created 29 March 2006
|
9
|
+
|
10
|
+
// This example code is in the public domain.
|
11
|
+
|
12
|
+
|
13
|
+
#include <Wire.h>
|
14
|
+
|
15
|
+
void setup()
|
16
|
+
{
|
17
|
+
Wire.begin(); // join i2c bus (address optional for master)
|
18
|
+
Serial.begin(9600); // start serial for output
|
19
|
+
}
|
20
|
+
|
21
|
+
void loop()
|
22
|
+
{
|
23
|
+
Wire.requestFrom(2, 6); // request 6 bytes from slave device #2
|
24
|
+
|
25
|
+
while(Wire.available()) // slave may send less than requested
|
26
|
+
{
|
27
|
+
char c = Wire.read(); // receive a byte as character
|
28
|
+
Serial.print(c); // print the character
|
29
|
+
}
|
30
|
+
|
31
|
+
delay(500);
|
32
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
/*************************************************
|
2
|
+
* Public Constants
|
3
|
+
*************************************************/
|
4
|
+
|
5
|
+
#define NOTE_B0 31
|
6
|
+
#define NOTE_C1 33
|
7
|
+
#define NOTE_CS1 35
|
8
|
+
#define NOTE_D1 37
|
9
|
+
#define NOTE_DS1 39
|
10
|
+
#define NOTE_E1 41
|
11
|
+
#define NOTE_F1 44
|
12
|
+
#define NOTE_FS1 46
|
13
|
+
#define NOTE_G1 49
|
14
|
+
#define NOTE_GS1 52
|
15
|
+
#define NOTE_A1 55
|
16
|
+
#define NOTE_AS1 58
|
17
|
+
#define NOTE_B1 62
|
18
|
+
#define NOTE_C2 65
|
19
|
+
#define NOTE_CS2 69
|
20
|
+
#define NOTE_D2 73
|
21
|
+
#define NOTE_DS2 78
|
22
|
+
#define NOTE_E2 82
|
23
|
+
#define NOTE_F2 87
|
24
|
+
#define NOTE_FS2 93
|
25
|
+
#define NOTE_G2 98
|
26
|
+
#define NOTE_GS2 104
|
27
|
+
#define NOTE_A2 110
|
28
|
+
#define NOTE_AS2 117
|
29
|
+
#define NOTE_B2 123
|
30
|
+
#define NOTE_C3 131
|
31
|
+
#define NOTE_CS3 139
|
32
|
+
#define NOTE_D3 147
|
33
|
+
#define NOTE_DS3 156
|
34
|
+
#define NOTE_E3 165
|
35
|
+
#define NOTE_F3 175
|
36
|
+
#define NOTE_FS3 185
|
37
|
+
#define NOTE_G3 196
|
38
|
+
#define NOTE_GS3 208
|
39
|
+
#define NOTE_A3 220
|
40
|
+
#define NOTE_AS3 233
|
41
|
+
#define NOTE_B3 247
|
42
|
+
#define NOTE_C4 262
|
43
|
+
#define NOTE_CS4 277
|
44
|
+
#define NOTE_D4 294
|
45
|
+
#define NOTE_DS4 311
|
46
|
+
#define NOTE_E4 330
|
47
|
+
#define NOTE_F4 349
|
48
|
+
#define NOTE_FS4 370
|
49
|
+
#define NOTE_G4 392
|
50
|
+
#define NOTE_GS4 415
|
51
|
+
#define NOTE_A4 440
|
52
|
+
#define NOTE_AS4 466
|
53
|
+
#define NOTE_B4 494
|
54
|
+
#define NOTE_C5 523
|
55
|
+
#define NOTE_CS5 554
|
56
|
+
#define NOTE_D5 587
|
57
|
+
#define NOTE_DS5 622
|
58
|
+
#define NOTE_E5 659
|
59
|
+
#define NOTE_F5 698
|
60
|
+
#define NOTE_FS5 740
|
61
|
+
#define NOTE_G5 784
|
62
|
+
#define NOTE_GS5 831
|
63
|
+
#define NOTE_A5 880
|
64
|
+
#define NOTE_AS5 932
|
65
|
+
#define NOTE_B5 988
|
66
|
+
#define NOTE_C6 1047
|
67
|
+
#define NOTE_CS6 1109
|
68
|
+
#define NOTE_D6 1175
|
69
|
+
#define NOTE_DS6 1245
|
70
|
+
#define NOTE_E6 1319
|
71
|
+
#define NOTE_F6 1397
|
72
|
+
#define NOTE_FS6 1480
|
73
|
+
#define NOTE_G6 1568
|
74
|
+
#define NOTE_GS6 1661
|
75
|
+
#define NOTE_A6 1760
|
76
|
+
#define NOTE_AS6 1865
|
77
|
+
#define NOTE_B6 1976
|
78
|
+
#define NOTE_C7 2093
|
79
|
+
#define NOTE_CS7 2217
|
80
|
+
#define NOTE_D7 2349
|
81
|
+
#define NOTE_DS7 2489
|
82
|
+
#define NOTE_E7 2637
|
83
|
+
#define NOTE_F7 2794
|
84
|
+
#define NOTE_FS7 2960
|
85
|
+
#define NOTE_G7 3136
|
86
|
+
#define NOTE_GS7 3322
|
87
|
+
#define NOTE_A7 3520
|
88
|
+
#define NOTE_AS7 3729
|
89
|
+
#define NOTE_B7 3951
|
90
|
+
#define NOTE_C8 4186
|
91
|
+
#define NOTE_CS8 4435
|
92
|
+
#define NOTE_D8 4699
|
93
|
+
#define NOTE_DS8 4978
|
94
|
+
|
95
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/*
|
2
|
+
Melody
|
3
|
+
|
4
|
+
Plays a melody
|
5
|
+
|
6
|
+
circuit:
|
7
|
+
* 8-ohm speaker on digital pin 8
|
8
|
+
|
9
|
+
created 21 Jan 2010
|
10
|
+
modified 30 Aug 2011
|
11
|
+
by Tom Igoe
|
12
|
+
|
13
|
+
This example code is in the public domain.
|
14
|
+
|
15
|
+
http://arduino.cc/en/Tutorial/Tone
|
16
|
+
|
17
|
+
*/
|
18
|
+
#include "pitches.h"
|
19
|
+
|
20
|
+
// notes in the melody:
|
21
|
+
int melody[] = {
|
22
|
+
NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};
|
23
|
+
|
24
|
+
// note durations: 4 = quarter note, 8 = eighth note, etc.:
|
25
|
+
int noteDurations[] = {
|
26
|
+
4, 8, 8, 4,4,4,4,4 };
|
27
|
+
|
28
|
+
void setup() {
|
29
|
+
// iterate over the notes of the melody:
|
30
|
+
for (int thisNote = 0; thisNote < 8; thisNote++) {
|
31
|
+
|
32
|
+
// to calculate the note duration, take one second
|
33
|
+
// divided by the note type.
|
34
|
+
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
|
35
|
+
int noteDuration = 1000/noteDurations[thisNote];
|
36
|
+
tone(8, melody[thisNote],noteDuration);
|
37
|
+
|
38
|
+
// to distinguish the notes, set a minimum time between them.
|
39
|
+
// the note's duration + 30% seems to work well:
|
40
|
+
int pauseBetweenNotes = noteDuration * 1.30;
|
41
|
+
delay(pauseBetweenNotes);
|
42
|
+
// stop the tone playing:
|
43
|
+
noTone(8);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
void loop() {
|
48
|
+
// no need to repeat the melody.
|
49
|
+
}
|