Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
ebaera
Published © GPL3+

Arduino Nano 33 BLE OV7670 Camera Shield

Embedded machine vision board, make your robotics ML enable.

IntermediateFull instructions provided5,811
Arduino Nano 33 BLE OV7670 Camera Shield

Things used in this project

Hardware components

OV7670 VGA Camera
×1
Nano 33 BLE Sense
Arduino Nano 33 BLE Sense
×1
NXP PCA9685
×1
Vishay TSOP38238
×1
TDK Corporation PS1240
×1
onsemi MC33269D-5.0G
×1
WS2812B
×1
15pin femaile pinheader
×2
Slide Switch, SPDT-CO
Slide Switch, SPDT-CO
×1

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Reflo Air

Story

Read more

Custom parts and enclosures

MEDAM gerber data

Schematics

MEDAMA schematic

Code

OV767X

Arduino
This one is minimal code from library example
/*
  OV767X - Camera Capture Raw Bytes

  This sketch reads a frame from the OmniVision OV7670 camera
  and writes the bytes to the Serial port. Use the Procesing
  sketch in the extras folder to visualize the camera output.

  Circuit:
    - Arduino Nano 33 BLE board
    - OV7670 camera module:
      - 3.3 connected to 3.3
      - GND connected GND
      - SIOC connected to A5
      - SIOD connected to A4
      - VSYNC connected to 8
      - HREF connected to A1
      - PCLK connected to A0
      - XCLK connected to 9
      - D7 connected to 4
      - D6 connected to 6
      - D5 connected to 5
      - D4 connected to 3
      - D3 connected to 2
      - D2 connected to 0 / RX
      - D1 connected to 1 / TX
      - D0 connected to 10

  This example code is in the public domain.
*/

#include <Arduino_OV767X.h>

int bytesPerFrame;

byte data[320 * 240 * 2]; // QVGA: 320x240 X 2 bytes per pixel (RGB565)

void setup() {
  Serial.begin(9600);
  while (!Serial);

  if (!Camera.begin(QVGA, RGB565, 1)) {
    Serial.println("Failed to initialize camera!");
    while (1);
  }

  bytesPerFrame = Camera.width() * Camera.height() * Camera.bytesPerPixel();

  // Optionally, enable the test pattern for testing
  // Camera.testPattern();
}

void loop() {
  Camera.readFrame(data);

  Serial.write(data, bytesPerFrame);
}

Credits

ebaera

ebaera

0 projects • 11 followers

Comments