summaryrefslogtreecommitdiff
path: root/comm
diff options
context:
space:
mode:
Diffstat (limited to 'comm')
-rw-r--r--comm/arduino_binairy_decoder/arduino_binairy_decoder.ino28
-rw-r--r--comm/arduino_comm/arduino_comm.ino37
-rw-r--r--comm/deg_to_byte.py5
-rw-r--r--comm/i2c/arduino_i2c_slave_1.py98
-rw-r--r--comm/i2c/i2c_arduino_master/i2c_arduino_master.ino36
-rw-r--r--comm/openmv_com.py13
-rw-r--r--comm/spi/arduino_spi_master/arduino_spi_master.ino34
-rw-r--r--comm/spi/arduino_spi_slave_1.py102
-rw-r--r--comm/uart/arduino_uart/arduino_uart.ino17
-rw-r--r--comm/uart/arduino_uart_1.py42
10 files changed, 0 insertions, 412 deletions
diff --git a/comm/arduino_binairy_decoder/arduino_binairy_decoder.ino b/comm/arduino_binairy_decoder/arduino_binairy_decoder.ino
deleted file mode 100644
index eb257e5..0000000
--- a/comm/arduino_binairy_decoder/arduino_binairy_decoder.ino
+++ /dev/null
@@ -1,28 +0,0 @@
-String inp = "01101000";
-int decimalValue = 0;
-
-void setup() {
- Serial.begin(115200);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for native USB
- }
- Serial.println("");
-
- Serial.println(inp);
- String binary = inp.substring(2);
- Serial.println(binary);
- for (int i = 0; i < binary.length(); i++) {
- // Calculate the value of the current bit
- int bitValue = binary.charAt(i) - '0';
- // Update the decimal value by shifting the bit to its correct position
- decimalValue = (decimalValue << 1) | bitValue;
- }
- Serial.println(decimalValue);
- Serial.println("");
-}
-
-void loop() {
- // put your main code here, to run repeatedly:
- delay(1000);
-
-}
diff --git a/comm/arduino_comm/arduino_comm.ino b/comm/arduino_comm/arduino_comm.ino
deleted file mode 100644
index 4a2b205..0000000
--- a/comm/arduino_comm/arduino_comm.ino
+++ /dev/null
@@ -1,37 +0,0 @@
-String tlocd = "";
-String locd = "";
-bool readloc = false;
-unsigned long datatime = 0;
-
-void setup() {
- Serial1.begin(19200);
- Serial.begin(19200);
-}
-
-void loop() {
- if(Serial1.available()){
- datatime = millis();
-
- byte byteRead = Serial1.read();
-
- if(byteRead == 's'){
- tlocd = "";
- readloc = true;
- }
- else if(byteRead == 'e'){
- readloc = false;
- locd = tlocd;
- }
- else if(readloc == true){
- tlocd += (char)byteRead;
- }
- }
- else{
- if(millis() - datatime > 5000){
- Serial.println("Err no data recieved for 5 sec");
- locd = "999";
- }
- }
- Serial.println(locd);
- delay(134);
-}
diff --git a/comm/deg_to_byte.py b/comm/deg_to_byte.py
deleted file mode 100644
index 196d4a5..0000000
--- a/comm/deg_to_byte.py
+++ /dev/null
@@ -1,5 +0,0 @@
-deg = 40
-sbinary = format(deg, 'b')
-print(sbinary)
-binary = "".join(("01", sbinary))
-print(binary) \ No newline at end of file
diff --git a/comm/i2c/arduino_i2c_slave_1.py b/comm/i2c/arduino_i2c_slave_1.py
deleted file mode 100644
index 5957c5b..0000000
--- a/comm/i2c/arduino_i2c_slave_1.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# This work is licensed under the MIT license.
-# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
-# https://github.com/openmv/openmv/blob/master/LICENSE
-#
-# I2C with the Arduino as the master device and the OpenMV Cam as the slave.
-#
-# Please wire up your OpenMV Cam to your Arduino like this:
-#
-# OpenMV Cam Master I2C Data (P5) - Arduino Uno Data (A4)
-# OpenMV Cam Master I2C Clock (P4) - Arduino Uno Clock (A5)
-# OpenMV Cam Ground - Arduino Ground
-
-import pyb
-import ustruct
-
-text = "Hello World!\n"
-data = ustruct.pack("<%ds" % len(text), text)
-# Use "ustruct" to build data packets to send.
-# "<" puts the data in the struct in little endian order.
-# "%ds" puts a string in the data stream. E.g. "13s" for "Hello World!\n" (13 chars).
-# See https://docs.python.org/3/library/struct.html
-
-# READ ME!!!
-#
-# Please understand that when your OpenMV Cam is not the I2C master it may miss responding to
-# sending data as a I2C slave no matter if you call "i2c.send()" in an interrupt callback or in the
-# main loop below. When this happens the Arduino will get a NAK and have to try reading from the
-# OpenMV Cam again. Note that both the Arduino and OpenMV Cam I2C drivers are not good at getting
-# unstuck after encountering any I2C errors. On the OpenMV Cam and Arduino you can recover by
-# de-initing and then re-initing the I2C peripherals.
-
-# The hardware I2C bus for your OpenMV Cam is always I2C bus 2.
-bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=0x12)
-bus.deinit() # Fully reset I2C device...
-bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=0x12)
-print("Waiting for Arduino...")
-
-# Note that for sync up to work correctly the OpenMV Cam must be running this script before the
-# Arduino starts to poll the OpenMV Cam for data. Otherwise the I2C byte framing gets messed up,
-# and etc. So, keep the Arduino in reset until the OpenMV Cam is "Waiting for Arduino...".
-
-while True:
- try:
- bus.send(
- ustruct.pack("<h", len(data)), timeout=10000
- ) # Send the len first (16-bits).
- try:
- bus.send(data, timeout=10000) # Send the data second.
- print("Sent Data!") # Only reached on no error.
- except OSError as err:
- pass # Don't care about errors - so pass.
- # Note that there are 3 possible errors. A timeout error, a general purpose error, or
- # a busy error. The error codes are 116, 5, 16 respectively for "err.arg[0]".
- except OSError as err:
- pass # Don't care about errors - so pass.
- # Note that there are 3 possible errors. A timeout error, a general purpose error, or
- # a busy error. The error codes are 116, 5, 16 respectively for "err.arg[0]".
-
-###################################################################################################
-# Arduino Code
-###################################################################################################
-#
-# #include <Wire.h>
-# #define BAUD_RATE 19200
-# #define CHAR_BUF 128
-#
-# void setup() {
-# Serial.begin(BAUD_RATE);
-# Wire.begin();
-# delay(1000); // Give the OpenMV Cam time to bootup.
-# }
-#
-# void loop() {
-# int32_t temp = 0;
-# char buff[CHAR_BUF] = {0};
-#
-# Wire.requestFrom(0x12, 2);
-# if(Wire.available() == 2) { // got length?
-#
-# temp = Wire.read() | (Wire.read() << 8);
-# delay(1); // Give some setup time...
-#
-# Wire.requestFrom(0x12, temp);
-# if(Wire.available() == temp) { // got full message?
-#
-# temp = 0;
-# while(Wire.available()) buff[temp++] = Wire.read();
-#
-# } else {
-# while(Wire.available()) Wire.read(); // Toss garbage bytes.
-# }
-# } else {
-# while(Wire.available()) Wire.read(); // Toss garbage bytes.
-# }
-#
-# Serial.print(buff);
-# delay(1); // Don't loop to quickly.
-# }
diff --git a/comm/i2c/i2c_arduino_master/i2c_arduino_master.ino b/comm/i2c/i2c_arduino_master/i2c_arduino_master.ino
deleted file mode 100644
index ff960ed..0000000
--- a/comm/i2c/i2c_arduino_master/i2c_arduino_master.ino
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <Wire.h>
-#define BAUD_RATE 19200
-#define CHAR_BUF 128
-
-void setup() {
- Serial.begin(BAUD_RATE);
- Wire.begin();
- delay(1000); // Give the OpenMV Cam time to bootup.
-}
-
-void loop() {
- int32_t temp = 0;
- char buff[CHAR_BUF] = {0};
-
- Wire.requestFrom(0x12, 2);
- if(Wire.available() == 2) { // got length?
-
- temp = Wire.read() | (Wire.read() << 8);
- delay(1); // Give some setup time...
-
- Wire.requestFrom(0x12, temp);
- if(Wire.available() == temp) { // got full message?
-
- temp = 0;
- while(Wire.available()) buff[temp++] = Wire.read();
-
- } else {
- while(Wire.available()) Wire.read(); // Toss garbage bytes.
- }
- } else {
- while(Wire.available()) Wire.read(); // Toss garbage bytes.
- }
-
- Serial.print(buff);
- delay(1); // Don't loop to quickly.
-}
diff --git a/comm/openmv_com.py b/comm/openmv_com.py
deleted file mode 100644
index d5a3faf..0000000
--- a/comm/openmv_com.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import time
-from pyb import UART
-
-# UART 3, and baudrate.
-uart = UART(3, 19200, timeout_char=200)
-location = "40" #place to put the goal location
-while True:
- uart.write("s")
- uart.write(location)
- uart.write("e")
- if uart.any():
- print(uart.read())
- time.sleep_ms(1000)
diff --git a/comm/spi/arduino_spi_master/arduino_spi_master.ino b/comm/spi/arduino_spi_master/arduino_spi_master.ino
deleted file mode 100644
index 248ef0f..0000000
--- a/comm/spi/arduino_spi_master/arduino_spi_master.ino
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <SPI.h>
-#define SS_PIN 10
-#define BAUD_RATE 19200
-#define CHAR_BUF 128
-
-void setup() {
- pinMode(SS_PIN, OUTPUT);
- Serial.begin(BAUD_RATE);
- SPI.begin();
- SPI.setBitOrder(MSBFIRST);
- SPI.setClockDivider(SPI_CLOCK_DIV16);
- SPI.setDataMode(SPI_MODE0);
- delay(1000); // Give the OpenMV Cam time to bootup.
-}
-
-void loop() {
- int32_t len = 0;
- char buff[CHAR_BUF] = {0};
- digitalWrite(SS_PIN, LOW);
- delay(1); // Give the OpenMV Cam some time to setup to send data.
-
- if(SPI.transfer(1) == 85) { // saw sync char?
- SPI.transfer(&len, 4); // get length
- if (len) {
- SPI.transfer(&buff, min(len, CHAR_BUF));
- len -= min(len, CHAR_BUF);
- }
- while (len--) SPI.transfer(0); // eat any remaining bytes
- }
-
- digitalWrite(SS_PIN, HIGH);
- Serial.print(buff);
- delay(1); // Don't loop to quickly.
-} \ No newline at end of file
diff --git a/comm/spi/arduino_spi_slave_1.py b/comm/spi/arduino_spi_slave_1.py
deleted file mode 100644
index e05c2f0..0000000
--- a/comm/spi/arduino_spi_slave_1.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# This work is licensed under the MIT license.
-# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
-# https://github.com/openmv/openmv/blob/master/LICENSE
-#
-# SPI with the Arduino as the master device and the OpenMV Cam as the slave.
-#
-# Please wire up your OpenMV Cam to your Arduino like this:
-#
-# OpenMV Cam Master Out Slave In (P0) - Arduino Uno MOSI (11)
-# OpenMV Cam Master In Slave Out (P1) - Arduino Uno MISO (12)
-# OpenMV Cam Serial Clock (P2) - Arduino Uno SCK (13)
-# OpenMV Cam Slave Select (P3) - Arduino Uno SS (10)
-# OpenMV Cam Ground - Arduino Ground
-
-import pyb
-import ustruct
-import time
-
-text = "Hello World!\n"
-data = ustruct.pack("<bi%ds" % len(text), 85, len(text), text) # 85 is a sync char.
-# Use "ustruct" to build data packets to send.
-# "<" puts the data in the struct in little endian order.
-# "b" puts a signed char in the data stream.
-# "i" puts a signed integer in the data stream.
-# "%ds" puts a string in the data stream. E.g. "13s" for "Hello World!\n" (13 chars).
-# See https://docs.python.org/3/library/struct.html
-
-# READ ME!!!
-#
-# Please understand that when your OpenMV Cam is not the SPI master it may miss responding to
-# sending data as a SPI slave no matter if you call "spi.send()" in an interrupt callback or in the
-# main loop below. Because of this you must absolutely design your communications protocol such
-# that if the slave device (the OpenMV Cam) doesn't call "spi.send()" in time that garbage data
-# read from the SPI peripheral by the master (the Arduino) is tossed. To accomplish this we use a
-# sync character of 85 (binary 01010101) which the Arduino will look for as the first byte read.
-# If it doesn't see this then it aborts the SPI transaction and will try again. Second, in order to
-# clear out the SPI peripheral state we always send a multiple of four bytes and an extra four zero
-# bytes to make sure that the SPI peripheral doesn't hold any stale data which could be 85. Note
-# that the OpenMV Cam will miss the "spi.send()" window randomly because it has to service
-# interrupts. Interrupts will happen a lot more while connected to your PC.
-
-# The hardware SPI bus for your OpenMV Cam is always SPI bus 2.
-# polarity = 0 -> clock is idle low.
-# phase = 0 -> sample data on rising clock edge, output data on falling clock edge.
-spi = pyb.SPI(2, pyb.SPI.SLAVE, polarity=0, phase=0)
-
-
-# NSS callback.
-def nss_callback(line):
- global spi, data
- try:
- spi.send(data, timeout=1000)
- except OSError as err:
- pass # Don't care about errors - so pass.
- # Note that there are 3 possible errors. A timeout error, a general purpose error, or
- # a busy error. The error codes are 116, 5, 16 respectively for "err.arg[0]".
-
-
-# Configure NSS/CS in IRQ mode to send data when requested by the master.
-pyb.ExtInt(pyb.Pin("P3"), pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, nss_callback)
-
-while True:
- time.sleep_ms(1000)
-
-###################################################################################################
-# Arduino Code
-###################################################################################################
-#
-# #include <SPI.h>
-# #define SS_PIN 10
-# #define BAUD_RATE 19200
-# #define CHAR_BUF 128
-#
-# void setup() {
-# pinMode(SS_PIN, OUTPUT);
-# Serial.begin(BAUD_RATE);
-# SPI.begin();
-# SPI.setBitOrder(MSBFIRST);
-# SPI.setClockDivider(SPI_CLOCK_DIV16);
-# SPI.setDataMode(SPI_MODE0);
-# delay(1000); // Give the OpenMV Cam time to bootup.
-# }
-#
-# void loop() {
-# int32_t len = 0;
-# char buff[CHAR_BUF] = {0};
-# digitalWrite(SS_PIN, LOW);
-# delay(1); // Give the OpenMV Cam some time to setup to send data.
-#
-# if(SPI.transfer(1) == 85) { // saw sync char?
-# SPI.transfer(&len, 4); // get length
-# if (len) {
-# SPI.transfer(&buff, min(len, CHAR_BUF));
-# len -= min(len, CHAR_BUF);
-# }
-# while (len--) SPI.transfer(0); // eat any remaining bytes
-# }
-#
-# digitalWrite(SS_PIN, HIGH);
-# Serial.print(buff);
-# delay(1); // Don't loop to quickly.
-# }
diff --git a/comm/uart/arduino_uart/arduino_uart.ino b/comm/uart/arduino_uart/arduino_uart.ino
deleted file mode 100644
index 6385695..0000000
--- a/comm/uart/arduino_uart/arduino_uart.ino
+++ /dev/null
@@ -1,17 +0,0 @@
-void setup() {
- // Initialize Serial1 with a baud rate of 19200
- Serial1.begin(19200);
- Serial.begin(19200); // Initialize Serial for debugging
-}
-
-void loop() {
- // Check if there is any data available to read from Serial1
- if (Serial1.available()) {
- // Read the most recent byte
- byte byteRead = Serial1.read();
- // Echo the value that was read
- Serial1.write(byteRead);
- // Print the received byte for debugging
- Serial.print((char)byteRead);
- }
-}
diff --git a/comm/uart/arduino_uart_1.py b/comm/uart/arduino_uart_1.py
deleted file mode 100644
index 3996cf7..0000000
--- a/comm/uart/arduino_uart_1.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# This work is licensed under the MIT license.
-# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
-# https://github.com/openmv/openmv/blob/master/LICENSE
-#
-# Basic UART communications between OpenMV and Arduino Uno.
-
-# 1) Wire up your OpenMV Cam to your Arduino Uno like this:
-#
-# OpenMV Cam Ground Pin ----> Arduino Ground
-# OpenMV Cam UART3_TX(P4) ----> Arduino Uno UART_RX(0)
-# OpenMV Cam UART3_RX(P5) ----> Arduino Uno UART_TX(1)
-
-# 2) Uncomment and upload the following sketch to Arduino:
-#
-# void setup() {
-# // put your setup code here, to run once:
-# Serial.begin(19200);
-# }
-#
-# void loop() {
-# // put your main code here, to run repeatedly:
-# if (Serial.available()) {
-# // Read the most recent byte
-# byte byteRead = Serial.read();
-# // ECHO the value that was read
-# Serial.write(byteRead);
-# }
-# }
-
-# 3) Run the following script in OpenMV IDE:
-
-import time
-from pyb import UART
-
-# UART 3, and baudrate.
-uart = UART(3, 19200, timeout_char=200)
-
-while True:
- uart.write("Hello World!\n")
- if uart.any():
- print(uart.read())
- time.sleep_ms(1000)