top of page

PROGRESS LOG

11/19/20

Week 12

(2)

(8)

(3)

(4)

(5)

(6)

(7)

9/23/20

Week 4

11/11/20

Week 11

Heading 2

11/04/20

Week 10

The team removed the LAC Module from Actuonix after working with the company for months even stretching to the point of their electronics engineering sending a custom configuration. Instead, the team went with their backup plan which involved using an h-bridge L293d which are commonly used to control bidirectional motors.
Evan tested the IC when it arrived and was successfully able to control the linear actuator in both directions. Controlling the actuator via the Arduino Due should have been possible using pins 2-13 with digitalWrite(pin, input/output).

When the team met at Evan's residence they used a different pin set and the system worked as intended. The team then worked on restructuring the code to have each piece function and then to continue adding until they hit a stalling point. That stalling point was the electromagnetic lock. Deniz believes it is simply a pin that has been moved to an incorrect location and has the programmed layout on his PC at home. The team will be meeting again tomorrow (Friday 11/05/2020) to hopefully finalize the system and prepare for mounting to the structural door.

Figure 1: Testing Linear Actuator w/ Speech Command "Close Door" via Arduino Due

Figure 2: Testing Linear Actuator w/ Speech Command "Close Door" via Arduino Due

Capture.PNG

Figure 3: Test Code for Linear Actuator Expansion and Retraction via Voice Command

On Friday November 6th, the team met up at Evan’s house to work on the project. Deniz updated the speech recognition module to have more variation in the speech commands. The team tested the RFID to control the actuator and lock as shown in the YouTube video below. 

Figure 4: RFID Input to extend actuator and then lock door lock. Then to unlock door lock, to then retract actuator. 

For the current system, having a valid RFID card within proximity of the reader will unlock and open the door and close the door then lock the door. The team is deciding that if multiple configurations are allowed, that this feature will vary among configurations. 

Figure 5: PIR sensor detecting incoming person allowing for door actuation. From a distance of 5 to 2 meters. 

The PIR sensor works as planned with the added components as if the user comes within range of the sensor range, the door will automatically open. This is a feature that will not be the default feature but can be included in a certain user configuration. 

10/22/20

Week 9

Deniz began testing and troubleshooting the Linear Actuator Controller with the current system but after hours the issue was not fixed. Evan brought up the idea of using Pulse Width Modulation as a method of opening and closing the door. The Arduino IDE is capable of PWM by using analogWrite() on a PWM digital pin. This emulated a pulse signal where the duty cycle can be adjusted by the user. Setting the analogWrite() value to 255 is equal to a 100% duty cycle which for the linear actuator means that it will full extend while a value of 0 means it will fully retract. Using analogWrite() on multiple PWM pins on the Arduino Due did not provide any success as when doing a serial read on the pins, the analog output was unchanging regardless of the analogWrite() value. Another problem with using the PWM method is that a 0% duty cycle means that the linear actuator will have to be powered all the time which drastically increases power consumption. The use of the DPDT switch is still in consideration if the issues regarding it can be solved. 

10/15/20

Week 8

The team began working on the PowerPoint presentation for the expected progress report presentation this week. The team showcased their efforts, progress, and trials thus far. Initial testing for components were displayed but further in depth testing will be done from now till the end of the semester. The testing done thus far was on basic efficiency, accuracy, and temperatures. 

​

In the testing done for the speech recognition module, the "Open" and "Unlock & Open" speech commands had a much lower success rate compared to the other commands, both being in the 50% range. The day of the presentation Deniz found that this might have been due to the set up of making a pin an INPUT vs INPUT_PULLUP. With research, Deniz found that setting an input has 3 states, HIGH, LOW, and floating. The floating value was confirmed when the speech recognition was entirely disconnected from the system and some speech inputs would get random HIGH values. Once the pins were set up to INPUT_PULLUP testing was done and the accuracy of all the pins increased substantially when in an ideal environment. 

​

The team met up to set up the linear actuator on the door frame with the mounting bracket. Evan had to fabricate the bolts in order to fit with the actuator and mounting bracket. He drilled and set up the system as shown below. 

​

​

​

Figure 1: Test Linear Actuator Mounting Set-Up

Figure 2: Testing Linear Actuator Mounting Set-Up - OPEN

Figure 3: Testing Linear Actuator Mounting Set-Up - CLOSE

10/08/20

Week 7

The team met up to do tests with the linear actuator on the finished structured door. As shown in the video below, with the initial test, the linear actuator opened the door with ease as the door almost swung open. The team bought a Linear Actuator Controller prior to use the on-board potentiometers to that allow the team to adjust actuation speed, extend limit, and retraction limit.

Figure 1: Linear Actuator Door Opening Test

In the meeting, the team discussed the potential set up of the Touchless Door with a first revision being displayed below. 

(1)

Figure 2: Touchless Door Set-Up 1.0

(1) PIR Proximity Sensor - Detects movement that can be configured as an input.

​

(2) Arduino Due - Microcontroller 

​

(3) Speech Recognition Module - Detects speech signals that match commands configured. Can be configured as an input.

​

(4) WiFi Module - Acts as a WiFi socket which enables control of door operation via network application. Can be configured as an input.

​

(5) RFID module - Detects RFID card if within proximity that matches embedded passwords  in the code. Can be configured as an input.

​

(6) Electromagnetic Lock - Acts as the door lock. Locks when power is given.

​

(7) Metal Bracket - Allows for maximum surface area for the linear actuator operation while minimizing risk of damaging door when opening and closing.

​

(8) Linear Actuator - Allows for door operation. Closes when given a positive 12V and opens when given a reversed polarity 12 V. 

The team wants the speech recognition module as near to the user's mouth as possible and want the RFID card to be as low as possible but near where the door handle would be. The WiFi module might be placed higher to allow for more range. The team decided to have the linear actuator near the middle of the door to allow to easily detach it in case of power outage or emergency. 

Requiring approximately 10cm of movement to fully close or open the door. 

 

T = Tension , F = Force, = Angle

T= F cos()

Tinitial = 90N *cos(70) = 30.78N

 

It is important to note that due to the through point O the system will have a changing angle and changing lever arm throughout the movement.

10/01/20

Week 6

Deniz & Evan met at Deniz's residence to finish the structural frame and work on software integration for the LAC module. The Actuonix software is now functional with driver updates and additional files from the company. Functionality is not 100% and the team is currently diagnosing the issues at hand. We hope to have a solution so all the peripherals operate flawlessly so we can begin integration.

Figure 1: Free Standing Door Operation

Door.jpg

Figure 2: Free Standing Door

9/30/20

Week 5

Deniz & Evan met up this week to increase the strength of the door. The vertical support, base, and structure was built.4 2x4 plywoods were used as shown below.

Figure 1: Door with vertical support

Figure 2: Door Base

Next, the Linear Actuator Controller's software was attempted but the unit was not able to be detected. After attempting driver updates, Evan decided to email the company for any insight. The company responded with a specific set of instructions, in which the team will test.

Deniz picked up the Door that will be used from Evan's house. The door is in good condition but some 4x4 plywood was bought in order to keep it stable as if it was a door connected to a wall. The DPDT Relay arrived which is a Double Pole Double Throw relay that would allow us to have the linear actuator extend and retract when trying to open and close the door. 

61zQfPKmpEL_edited.png

Figure 1: DPDT Relays

(7)

(8)

(2)

(1)

(3)

(4)

(6)

(5)

Figure 2: DPDT Relay Schematic Wiring

Figure 3: DPDT Relay Schematic

The DPDT Relay in figure 1, is the one that will used in this senior project. If you click the image it will send you to the Amazon link where the basic specifications are stated. It has a 3V DC coil voltage to activate the relay with a 2A / 30VDC contact ratings.  Figure 3 displays the terminal sheet while figure 2 displays where each terminal is going to be assigned. 

(1) Linear Actuator + terminal          (4) Linear Actuator - terminal

(2) Linear Actuator + Power Supply (5) Linear Actuator - Power Supply

(3) Attached to   pin 4                      (6) Attached to   pin 1

​

(7) 3.3V input                                    (8) GND

Issues that arose with the inclusion of the DPDT relay is that it seems like the assigned digital output pin on the Arduino Due does not actually output 3.3V since regardless of if that pin is turned HIGH or LOW. When a Serial.println() was run on the digitalRead of that pin, it was always 0 regardless of if it was activated as HIGH or not. Due to this, the linear actuator so far only extends still and more will be investigated on the matter. 

9/16/20

Week 3

Deniz & Evan met up for the first time to combine our efforts individually to be implemented together. We tested the linear actuator with a bench supply to determine it's speed and stroke length in person as shown in figure 1. The Linear actuator pushes forward when given a positive voltage polarity and then it retracts when given a negative voltage polarity. In order to incorporate such circumstances with the Arduino Due, a DPDT switch relay needs to be implemented. 

Figure 1: Testing the Linear Actuator with Bench Supply.

In Figure 2, we implement the linear actuator with the current system design for the Touchless Door. Since the DPDT switch was not delivered at the time of the recording, only the positive voltage polarity was tested. A kitchen cabinet was used as test to show proof of basic concept. The linear actuator was able to close the cabinet with ease but there was some issues that arose when implemented with the Touchless Door circuit set up. The first one is that when asked to close the door, the linear actuator pulled the cabinet door for a couple seconds and then started to close the door. Second, it seemed that the positive and negative voltage terminals are reversed but that can be investigated some more. 

Figure 2: Testing the Linear Actuator with (CURRENT) Touchless Door circuit. 

In Figure 3, the linear actuator was tested while working along side with the electromagnetic lock. This was done with inputting an RFID signal to the RFID reader which would then close the cabinet door and then turn on the electromagnetic lock as if giving a "Close & Lock Door" speech  input. Even though in the code it is set up to digitalWrite(linear_actuator, HIGH) then delay(5000) and then digitalWrite(lock,HIGH), so far it seems that the linear actuator for some reason retracts for a couple seconds and then when it finally extends, then the electromagnetic lock is activated. In Figure 3, it is demonstrated that the electromagnetic lock is unlocked and then finally when given the RFID signal, it locks as shown in the video. 

Figure 3: Testing the Linear Actuator & Electromagnetic Lock with (CURRENT) Touchless Door circuit. 

9/9/20

Week 2

For the month of September, the team plans to have all peripherals responding to commands from the main microcontroller (Arduino Due). To this point, only two items have not been incorporated; the IR sensor and the linear actuator.
 Deniz began integrating the electromagnetic lock by connecting the lock to a relay that was connected to a digital pin on the Arduino Due. When the digital pin receives a 'digitalWrite(HIGH)', it sends 3.3V to the relay which then makes a complete circuit between the power supply, lock, and relay. As shown in figure 1, this connection is displayed. 

Figure 1: Electromagnetic lock complete circuit.

Then Deniz connected all the inputs(Speech recognition, RFID Reader, and WiFi module to the Arduino Due and test if they can lock and unlock the electromagnetic lock. In figure 2, the 'Unlock' and 'Lock' door speech inputs were tested. After developing the script some more, all the speech inputs began to work to unlock and lock the door. Then the RFID Reader and WiFi inputs were tested with the electromagnetic lock as shown in figure 3. 

Figure 2: Testing the 'Unlock' and 'Lock' Speech Recognition module with the electromagnetic lock.

The 'Unlock', 'Lock', 'Open', 'Close', and  'Close & Lock' speech commands worked with success but the 'Unlock & Open' was operating on and off so more work has to be done on that. Mic sensitivity has to be tested further as well.

Figure 3: Testing the RFID Reader module with the electromagnetic lock.

The RFID Reader was tested and initially it was only turning ON or OFF the lock separately. Then a workaround done inside the Arduino IDE where a Toggle mode could be enabled by using '!=' operatives during an if statement. In the video, the toggle state is expressed and displayed on the Serial Monitor. 

Figure 4: Testing the 'Unlock' and 'Lock' from the WiFi module with the electromagnetic lock.

The WiFi module was tested with the electromagnet with as of right now, only an 'UNLOCK' and 'LOCK' features. The 'LOCK' feature works but there is trouble with unlocking the electromagnet. More work needs to be done on fixing that before implementing more WiFi inputs.

LAC control module.jpg

Figure 5: LAC Control Module

LAC Control Module will allow the user to make analog adjustments to the speed and length of extension as well as retraction of the linear actuator.

T16 Linear Actuator.jpg

Figure 6: T16 Linear Actuator

The linear actuator that will control door position

8/24/20

Week 1

Deniz began working on making the Speech Recognition, RFID reader, and the WiFi Module to work together to turn on an LED when given a specific command. For the Speech Recognition module, Deniz got the "Lock", "Unlock", "Open", " Close", " Unlock & Open", and "Close & Lock" speech commands to operate to turn on an LED. Then regarding the RFID reader, Deniz managed for the Arduino to constantly scan for an RFID card or tag  that matches the key within the Arduino code through the code below. If it matches, it turns on the LED light as well as displaying on the computer that the RFID was read and matches. Next the WiFi Module was connected to the WLAN as there on within the WiFi module's microcontroller was embedded a script that enables it to act as a server where the user can go to the I.P. address on a web browser and operate the door via web browser. Then all three inputs where hooked up together and then after trouble shooting was able to make all three work in unison. 

#include <MFRC522.h>
#include <SPI.h>

#define SAD 10
#define RST 5

​

MFRC522 nfc(SAD, RST);  // RFID function activated

byte key[4] = {57, 106, 118, 178};  // the RFID card Serial Key. If you want to change the accepted card, change this

​

void setup() {
  // put your setup code here, to run once:
  
SPI.begin();
  // Read a fast as possible. There is a limit for how long we are
  // allowed to read from the tags.
  Serial.begin(115200);

   Serial.println("Looking for MFRC522."); //  searches for the MFRC522 card reader
  nfc.begin();

  // Get the firmware version of the RFID chip
  byte version = nfc.getFirmwareVersion();
  if (! version) {
    Serial.print("Didn't find MFRC522 board."); //  MFRC522 card reader was not found
    while(1); //halt
  }
  Serial.print("Found chip MFRC522 ");  //  MFRC522 card reader was found
  Serial.print("Firmware ver. 0x");     // shows the latest version of the MFRC522 card reader
  Serial.print(version, HEX);
  Serial.println(".");

}

​

void loop() {
  // put your main code here, to run repeatedly:

  byte status;
  byte data[MAX_LEN];
  byte serial[5];
  int i, j, pos;

  // Send a general request out into the aether. If there is a tag in
  // the area it will respond and the status will be MI_OK.
  status = nfc.requestTag(MF1_REQIDL, data);

  if (status == MI_OK) {
    Serial.println("Tag detected.");
    Serial.print("Type: ");
    Serial.print(data[0], HEX);
    Serial.print(", ");
    Serial.println(data[1], HEX);

    // calculate the anti-collision value for the currently detected
    // tag and write the serial into the data array.
    status = nfc.antiCollision(data);
    memcpy(serial, data, 5);

    Serial.println("The serial nb of the tag is:");
    for (i = 0; i < 3; i++) {
      Serial.print(serial[i], DEC);
      Serial.print(", ");
    }
    Serial.println(serial[3], DEC);
    if(serial[0]==key[0] && serial[1]==key[1] && serial[2]==key[2] && serial[3]==key[3]){
      Serial.println("Keycard detected!");  //key card matched and was detected.
      digitalWrite(LED_BUILTIN, HIGH);
      delay(500);
      digitalWrite(LED_BUILTIN,LOW);
      delay(500);
      digitalWrite(lock_supply, !digitalRead(lock_supply)); // toggles state of the lock supply pin
      if (digitalRead(lock_supply) == HIGH){  
        Serial.println("Door Locked!"); //  if the door was unlocked, it is now LOCKED.
      }
      else if (digitalRead(lock_supply) == LOW){
        Serial.println("Door Unlocked!"); //  if the door was locked, it is now UNLOCKED.
      }
    }
}
}

11/20/20

bottom of page