View allAll Photos Tagged Arduino

Distance Traveled, Average and Maximum Speed

 

No configuration options.

 

More information and source code available at: www.seancarney.ca/projects/arduino-gps-receiver/arduino-g...

Elaborado sobre plástico flexible, este Arduino es un ejemplo de lo que se puede hacer siguiendo la técnica de David, autor del blog sewboard.cancamusa.net/

This is the arduino ethernet shield from tinker.it. It's based on the Wiznet chipset which frees up the arduino to do more interesting things.

 

Alex was good enough to get me one to play with. I'll be sure to blog the results. I have a long list of things to do with this. That SD card slot is going to be particularly interesting.

 

Got my very first demo Arduino sketch running successfully.

I got my Adafruit VC0706 serial camera working, and hacked the SD example to produce base64 HTML compatible output instead. This way you can use your camera with an Ethernet shield or even use a computer to link the serial port to an http port on the network and use the camera as a netcam.

 

The camera doesn't see our world the way we do. It can see color, but it has no IR filter, so the near IR light skews the colors it tries to represent. This is great for night vision, but dreadful for color fidelity.

 

Note the terrycloth bathrobe to the left, to human eyes it is very black. But in near IR apparently it is a very bright shade of infrared. The camera doesn't separate out the IR, so it gets counted as R G and B and that's why the black robe seems grey instead of some one color or another.

 

Here's the hacked example. I release my content as public domain. I believe the adafruit code is also public domain.

 

Be warned, Flickr isn't exactly C/C++ friendly. so some of the symbols may be mangled (especially if they remotely resemble HTML tags, like <= 100

 #include

#else

 #include

#endif

 

// This is the SD card chip select line, 10 is common

//#define chipSelect 10

// This is the camera pin connection. Connect the camera TX

// to pin 2, camera RX to pin 3

#if ARDUINO >= 100

SoftwareSerial cameraconnection = SoftwareSerial(2, 3);

#else

NewSoftSerial cameraconnection = NewSoftSerial(2, 3);

#endif

// pass the serial connection to the camera object

VC0706 cam = VC0706(&cameraconnection);

 

void binToAscii(char * outstring, uint8_t byte0, uint8_t byte1, uint8_t

byte2, uint16_t count)

{

  //outstring points to 4char string

  // byteX are the three possible input bytes

  // count marks the number of input bytes, this should

  // always be 0 unless it is

  // the last one or two input bytes

 

  uint8_t temp1=0, temp2=0, temp0=0;

  char outA=0, outB=0, outC=0, outD=0;

  char base64chars[]=

"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

 

  // pad properly to account for the number of input pieces

  if (count == 0){

  temp0 = byte0;

  temp1 = byte1;

  temp2 = byte2;

  }

  if (count == 1){

  temp0 = byte2;

  temp1 = 0;

  temp2 = 0;

  }

   if (count == 2){

  temp0 = byte1;

  temp1 = byte2;

  temp2 = 0;

  }

 

  // For some reason, you can't combine these next two blocks

 

  // bit math to break out 4 separate 6 bit pieces from the 3 8 bit inputs

  // and use them to index the base64 character set array

  outA=base64chars[temp0 >> 2];

  outB=base64chars[((temp0 & 0x03) 4)];

  outC=base64chars[((temp1 & 0x0f) 6)];

  outD=base64chars[(temp2 & 0x3f)];

 

  //load the chars into the output string

  outstring[0]=outA;

  outstring[1]=outB;

  outstring[2]=outC;

  outstring[3]=outD;

 

  // add padding

  if (count == 1){

    outstring[2]='=';

    outstring[3]='=';

  }

  if (count == 2){

    outstring[3]='=';

  }

}

  

void setup() {

  Serial.begin(115200);

  Serial.println("VC0706 Camera snapshot test");

 

  // see if the card is present and can be initialized:

//  if (!SD.begin(chipSelect)) {

    Serial.println("Card failed, or not present");

    // don't do anything more:

//    return;

//  }  

 

  // Try to locate the camera

  if (cam.begin()) {

    Serial.println("Camera Found:");

  } else {

    Serial.println("No camera found?");

    return;

  }

  // Print out the camera version information (optional)

  char *reply = cam.getVersion();

  if (reply == 0) {

    Serial.print("Failed to get version");

  } else {

    Serial.println("-----------------");

    Serial.print(reply);

    Serial.println("-----------------");

  }

 

  // Set the picture size - you can choose one of 640x480, 320x240

or 160x120

  // Remember that bigger pictures take longer to transmit!

 

 

cam.setImageSize(VC0706_640x480);       

// biggest

 

//cam.setImageSize(VC0706_320x240);       

// medium

 

//cam.setImageSize(VC0706_160x120);         

// small

 

  // You can read the size back from the camera (optional, but

maybe useful?)

  uint8_t imgsize = cam.getImageSize();

  Serial.print("Image size: ");

  if (imgsize == VC0706_640x480) Serial.println("640x480");

  if (imgsize == VC0706_320x240) Serial.println("320x240");

  if (imgsize == VC0706_160x120) Serial.println("160x120");

 

  Serial.println("Snap in 3 secs...");

  delay(3000);

 

  if (! cam.takePicture())

    Serial.println("Failed to snap!");

  else

    Serial.println("Picture taken!");

 

  // Create an image with the name IMAGExx.JPG

  char filename[13];

  strcpy(filename, "IMAGE00.JPG");

  for (int i = 0; i < 100; i++) {

    filename[5] = '0' + i/10;

    filename[6] = '0' + i%10;

    // create if does not exist, do not open existing,

write, sync after write

//    if (! SD.exists(filename)) {

//      break;

//    }

  }

 

  // Open the file for writing

//  File imgFile = SD.open(filename, FILE_WRITE);

 

  // Get the size of the image (frame) taken  

  uint16_t jpglen = cam.frameLength();

  Serial.print(jpglen, DEC);

  Serial.println(" byte image");

 

  int32_t time = millis();

  pinMode(8, OUTPUT);

  // Read all the data up to # bytes!

  uint16_t imageByteCount=0;

  uint8_t old, older, oldest, oldcount;

  char base64Text[]="****";

  int j;

  Serial.println("<img

src=\"data:image/jpeg;base64,");    

 

  while (jpglen != 0) {

    // read 64 bytes at a time;

    uint8_t *buffer;

    uint8_t bytesToRead = min(32, jpglen);  

// change 32 to 64 for a speedup but may not work with all setups!

    buffer = cam.readPicture(bytesToRead);

    

    for(j=0; j ");

 

  time = millis() - time;

  Serial.println("Done!");

  Serial.print("Took "); Serial.print(time); Serial.println(" ms");

}

    

void loop() {

}

 

This is the new Arduino Uno R3. In addition to all the features of the previous board, the Uno now uses an ATmega16U2 instead of the 8U2 found on the Uno (or the FTDI found on previous generations). This allows for faster transfer rates and more memory. No drivers needed for Linux or Mac (inf file for Windows is needed and included in the Arduino IDE), and the ability to have the Uno show up as a keyboard, mouse, joystick, etc.

hl1606 rgb-led light strip controlled by an arduino

We taught a workshop on how to create interactive art with the Arduino platform at the Mill Valley Library on October 24, 2015.

 

We showed 9 students how to make lights blink, sounds play, motors move, and how to add more color with neopixel LEDs, as described in this online guide we created for the workshop:

bit.ly/arduino-101-guide

 

At the end of the workshop, we asked participants if they would like to this again, and the answer was a resounding yes! Participants told us they learned a lot from this workshop and would not only come back for future workshops, but also recommend this program to their friends.

 

Instructors for this workshop were Donald Day and Fabrice Florin, with support from Jean Bolte and her daughter Natalie. We are all members of Pataphysical Studios, the art collective behind the ‘Pataphysical Slot Machine’, our poetic oracle.

 

Come visit the exhibit this month! We’re open every Saturday and Sunday in October, from 1 to 5pm, in the downstairs conference room of the Mill Valley Library.

 

Special thanks to the Mill Valley Library and the Friends of the Library for making these workshops possible — especially Kristen Clarke, who helped us get the Arduino parts and set up for the workshop.

 

View more photos of the exhibit: www.flickr.com/photos/fabola/albums/72157659147117739

 

Arduino Space Invaders

ATmega328P

4.3" LCD (16:9) composite video monitor

4 x NiMH AA batteries

 

The line-following robot I built in the Arduino Robots Workshop at Metrix Create: Space

The laptop is running the Arduino programming environment on Slackware 12.1, and the Arduino is running the "Sweep" example program.

Accelerometer logger with neopixel display indicating G's of acceleration along an axis. Parts from Sparkfun and Adafruit. Case bits from Pokono.

Arduino with rangefinder for keeping cats off the kitchen counter.

Roboter mit DC-Motoren und Motor Shield

arduino - signed by all 5 core team members

 

massimo banzi

david cuartielles

tom igoe

gianluca martino

david mellis

  

Close-up of the Arduino Duemilanove and the radio-control servo.

ArduinoにLCDと温度センサーを付けた。LCDは表示がきれいで気に入っている。温度センサーは1秒間に100回計測をしてから平均値を出力しているので、そこそこの精度だと思う。

This is something I had been meaning to complete for quite a while. I needed something that was portable, clean and easy to store random things in to prototype stuff on the fly.

 

The Proto Desk allows me to sit on the couch with my laptop and arduino and mess around.

 

Arduino KeyRing Cam Shield

mounted a cheap keyring cam on the arduino to be able to make automaticly pictures for timelapses

only needed 5v, ground and one pin for the trigger

1 2 ••• 9 10 12 14 15 ••• 79 80