It holds the main.py file which manages the AI classification logic of the device. It also holds the requirements.txt file, start.sh and test_display.py.
### Physical Folder ###
The Physical folder is the base for all sensing and actuating functions. It holds the two folders - Arduino and Node-Red, as well as the file lcd_display.py, which is used by the Node-Red for LCD outputs.
The Arduino folder holds the two Arduino sketches, one for each Arduino (Arduino 0 and Arduino 1). These Arduino numbers are to be assigned based on the ACM port each Arduino is connected to via USB (ACM0 and ACM1). The Node-Red folder holds the Node-Red flow .json which needs to be manually imported to Node-Red.
### Capture Folder ###
### Images Folder ###
### Inference Folder ###
### Parse Folder ###
### Roboflow Folder ###
### Visualization Folder ###
### Web Folder ###
## Web ##
This folder holds the logic for the website.
...
...
@@ -20,19 +36,22 @@ This folder holds the logic for the website.
# Setup Instructions #
#### Prerequisites ####
### Prerequisites ###
**Node-Red**
- Install Node-Red with `bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)`.
- On completion, run it with `node-red`. Open the given link for the browser interface.
- Navigate to Settings>Manage Palette.
- Navigate to *Settings>Manage Palette*.
- Ensure the following packages appear:
-`node-red`
-`node-red-node-serialport`
- If not, search for and install them.
**Arduino IDE**
- Install the IDE with `sudo apt-get install arduino`.
- With the IDE, go to *Tools>Manage Libraries...*.
- Install the `Servo` library.
#### Installation and Configuration ####
1.**Set Up Physical Components:**
### Installation and Configuration ###
1.***Set Up Physical Components:***
-**1x** Raspberry Pi
-**1x** Raspberry Pi GrovePi+ Board
-**2x** Arduino
...
...
@@ -44,8 +63,6 @@ This folder holds the logic for the website.
-**2x** USB-A to MicroUSB Cable
-**1x** V5.0 RGB LCD Screen
---
-**Raspberry Pi:**
- Install **GrovePi+ Board**
-**Pin I2C (any):** V5.0 RGB LCD Screen
...
...
@@ -64,8 +81,7 @@ This folder holds the logic for the website.
-**Pin D2:** Motion Sensor
- Connect to Raspberry Pi using MicroUSB cable (ACM Port 1)
---
2.**Upload Arduino Sketches with Arduino IDE**
2.***Upload Arduino Sketches with Arduino IDE***
# Running the Project #
...
...
@@ -73,11 +89,11 @@ This folder holds the logic for the website.
# Third-Party Software and Frameworks #
# Code Documentation #
# Troubleshooting #
### Pi ###
## Pi ##
#### Swapped Arduino Functions ####
It's important that the two Arduinos are correctly configured with the right components, sketch, and serial port. If, on monitoring in Node-Red, the Arduinos have swapped functions, it's most likely the serial ports are incorrect. It should be Arduino 0 = ACM0 and Arduino 1 = ACM1. The easiest way to correct this is by unplugging both Arduinos and replugging them, with Arduino 0 being plugged in first.
#### Stranded in Middle of Node-Red Flow ####
If a component is misconfigured and interferes at a point in time after passing the Lock node but not the Unlock node, the system will never reset and won't take accept new inputs. If this happens, stop Node-Red with ctrl+c and re-enter `~/cm2305/pi/start.sh`.