Coder Social home page Coder Social logo

iot_solutions_for_access_control's Introduction

IoT Solutions for Smart Access Control

"Wireless Made Easy!" - IoT Solutions for Smart Access Control

Devices: WBZ45x SoC | PolarFire SoC FPGA | dsPIC33CK LVMC
Features: BLE | ZIGBEE | CLOUD | VOICE ASSISTANT | AI/ML FACE RECOGNITION | MOTOR CONTROL

Disclaimer

THE SOFTWARE ARE PROVIDED "AS IS" AND GIVE A PATH FOR SELF-SUPPORT AND SELF-MAINTENANCE. This repository contains example code intended to help accelerate client product development.

For additional Microchip repos, see: https://github.com/Microchip-MPLAB-Harmony

Checkout the Technical support portal to access our knowledge base, community forums or submit support ticket requests.

A la carte

  1. Facts and challenge of Access Control
  2. Our solution: "IoT Solutions for Access Control
    1. System architecture
    2. Use cases
      1. Smart Home
      2. Smart Building
      3. Industry 4.0
    3. Technology Bricks
      1. AI/ML Face Recognition
      2. BLDC Motor Control
      3. Voice and remote Control
  3. Assemble the existing demo
  4. Do It Yourself
    1. Bill of materials
    2. Mechanical Setup
    3. Motor Setup
    4. Hardware Setup
    5. Software Setup for the WBZ45x
    6. Software Setup for the dsPIC33CK
    7. Software Setup for the PolarFire FPGA
    8. Cloud Setup
  5. Run the demo
  6. FAQ

Facts and challenges of Access Control

In the market, security and safety must be warranty with no compromise. Checking who is present in a particular location, at what time, are the childs are at home and back from school ? In the industrial area, protect people from critical devices is key. So to ensure security and safety, it is needed to perform sensing and report the information.

Sensing can be done through object detection or person detection with a powerful device and Microchip offers several solutions in that way.

For this demo, we have selected the PolarFire FPGA for sensing the persons and took benefit from the PolarFire FPGA Video and Imaging Kit with MPF300T Device with AI and ML capabilities.

Reporting the information can be done through different ways. And here we have selected to use wireless technology and the WBZ451 module for the capability to support Bluetooth Low Energy and Zigbee connectivity simultaneously.

Back to top

Our solution: "IoT Solutions for Access Control"

System architecture

Use cases

Smart Home

Typical use case for Smart Home is illustrated by this demo: face recognition is required to open the garage door, disarm the home alarm and turn ON the lights.

Smart Building

For Smart Building, access control with a granted access could be required to enter into a building.

That enable another use case: the energy management with a smart lighting system turning ON the lights if a person is authorized to enter into the building.

Industry 4.0

For Industrial plant, access control with recognition could be necessary to check if a person is authorized and if he has the requested equipment to operate on a machine. For example, the user must wear the helmet.

Technology Bricks

AI/ML Face Recognition

This Smart Access Control demonstrates the usage of VectorBlox software development kits and PolarFire FPGAs for artificial intelligence (AI) and machine learning (ML) in real world scenario.

The steps required to quickly get started with evaluating AI and ML algorithms using Microchip Technology's PolarFire Video Kit are detailled in the following links.

This kit includes the VectorBlox Accelerator SDK, designed to enable developers to code in C/C++ and program power-efficient neural networks without prior FPGA design experience. This highly flexible SDK can execute models in TensorFlow and the open neural network exchange (ONNX) format, which offers the widest framework interoperability.

The VectorBlox Accelerator SDK is supported on Linux and Windows and also includes a bit-accurate simulator which provides the opportunity to validate the accuracy of the hardware while in the software environment. The neural network IP also included with the PolarFire Video Kit also supports the ability to load different network models at runtime.

BLDC Motor Control

The dsPIC33CK Low Voltage Motor Control (LVMC) Development Board is a cost-effective rapid development platform for Brushless DC (BLDC), Permanent Magnet Synchronous Motor (PMSM) and Internal Permanent Magnet (IPM) motor control applications. The LVMC board features the high performance, single core dsPIC33CK256MP507 Digital Signal Controller (DSC).

IoT Control with both BLE and Zigbee

The PIC32CXBZ2 SoC and WBZ45x Module enable IoT (Internet of Things) wireless connectivity by providing low power devices with certified radio technologies such as BLE 5.2 along with IEEE 802.15.4 radio in a single chip solution. The WBZ45x module enables users to interact with Bluetooth and/or IEEE 802.15.4 networks.

Back to top

Assemble the existing demo

To assemble the demo from the suitcase, you should follow the steps below.

  • First, take the bottom plexiglass piece (the one with the motor) and the dsPIC33CK LVMC board. With a screw driver, plug the motor wires according the following table.

  • Then use 4x M3-nuts to fix it on the plexiglass, you could hide wires under the board.

  • Fix the WBZ451 Curiosity board to the bottom plexiglass piece with 3x M2-nuts.

  • Assemble the vertical plexiglass piece with 2 brackets, 4 M3-screws and 4 M3-nuts. Use M3-awl key (the larger one).

  • Assemble the door and fix it to the top plexiglass piece :
    • Take the top plegiglass piece, the smooth rod, the threaded rod, 4 long M3-screws and 4 M3-nuts.
    • Make sure to fix the rods correctly, the side with the large hole is for the smooth rod.
    • When it is assemble and if you have the threaded rod in front of you, you should have a larger amount of plexiglass on your left.

  • Then take the door and screw it into the threaded rod, then put the coupling beam and fix it to the threaded rod with the M2-awl key (the smaller one).

  • Now fix the door to the structure using 3 brackets, 6x M3-screws and 6x M3-nuts.
    • Do not forget to plug the smooth rod into the small hole into the bottom plexiglass piece (there is two hole close to each other, choose the bottom left one).

  • Then fix the coupling beam to the motor with the M2-awl key.

  • Finally, plug the cameras into the dual-MIPS connector on the MPF300 video kit, camera facing out of the board.

  • Then fix it to the top plexiglass piece using 4x M3-screws. Make sure that the camera is facing out of the demo.

The demo is not ready yet, you have to connect the boards through wires according to this tab :

Now, let's connect the detection switches to the LVMC board.

  • Connect the switches to the dsPIC33CK LVMC board, the top one to click-A pin SDA and to GND, and the bottom one to click-B pin TX and GND.

Now, let's add wires to connect the WBZ451 board to the LVMC board.

  • Plug the commands wires between the WBZ451 Curiosity board and the dsPIC33CK LVMC board. WBZ451 click pin SDA to dsPIC33CK click-A pin SCL and WBZ451 click pin SCL to dsPIC33CK click-A pin RX.

  • Connect 3V3 and GND pins from dsPIC33CK to WBZ451 in order to power the WBZ451 Curiosity from the LVMC board.

  • Plug the black wire and the white wire (that are attached to motor wires) to GND and PWM pins of the WBZ451 mikroBus connector from one side. In the next step, both wires will be connected to MPF300.

  • And connect the same wires (black and white) to the MPF300 MIPS connector
    • GND (black wire) to A9 of the MPF300 MIPS connector
    • PWM (white wire) to A1 of the MPF300 MIPS connector

The door is now ready.

  • Power up the MPF300 video kit with 12V power supply
  • Power up the dsPIC33CK LVMC with 9V power supply
  • Power the Amazon Echo
  • Make sure your Amazon Echo is connected to your Wi-Fi Home network.
    • Checkout here for guidance.
  • Go to Run the demo section.

Back to top

Do It Yourself

Bill of materials

Microchip Development Board

Purchase the following development boards:

Mechanical pieces

Remark: One of the garage door piece (black plastic piece) is not refered and should be reproduced with a 3D printer to replicate the demo

Structure

  • Plexiglass (PMMA)
  • 4x long M3-screws
  • 18x M3-screws
  • 4x M2-screws
  • 22x M3-nuts
  • 16x M2-nuts
  • 5x brackets

Connectors and power supply

  • HDMI cable
  • Wires (20 should be enough)
  • 9V power supply for dsPIC33CK LVMC Board
  • 12V power supply for PolarFire FPGA Video Kit
  • 18V power supply for the Amazon Echo

Others

  • Amazon Echo
  • Philips Hue bulb
  • A protected power strip with 4/5 plugs
  • A Wi-Fi network provided by an Access-Point or a Router
  • A Smartphone with Microchip Bluetooth Data App installed
  • A display with HDMI input
  • WD40 lubricant should be consider to smooth the mechanic of the demo

Mechanical Setup

Door structure

The structure of the door is composed of four plexiglass pieces. Brackets, screws and nuts are also required. You will also need a screw driver and a drill.

  • The bottom piece

  • The vertical piece

  • The top piece

  • The door itself

Prepare the plexiglass for assembly

  • On the bottom plexiaglass piece, you need to create spacer fixation for dsPIC33CK and WBZ451 boards. Moreover, you need to fix the vertical plexiglass piece through brackets.
    • For WBZ451, drill 4 M2-holes and use M2-screws and M2-nuts to create spacers.
    • For dsPIC33CK, drill 4 M3-holes and use M3-screws and M3-nuts to create spacers.
    • To fix the bracket, drill 2 M3-holes and use M3-screws and M3-nuts to fix the brackets.
  • The vertical plexiglass piece need to be fixed to the bottom plexiglass piece and to the top plexiglass piece through brackets.
    • On the top part, drill 3 M3-holes and use M3-screws and M3-nuts to fix the brackets.
    • On the bottom part, drill 2 M3-holes and use M3-screws and M3-nuts to fix the brackets.
  • On the top piece, you need to fix the FPGA board through spacers, and you also need to fix it tho the vertical plexiglass piece.
    • To fix the FPGA, drill 4 M3-holes and use M3-screws (nuts is not required here, you can screw in the FPGA fixations).
    • Finaly, to fix the top piece to the vertical piece, drill 3 M3-holes and use M3-screws and M3-nuts to fix the brackets.

Motor Setup

Plug the coupling beam, the threaded rod then the black piece and the flange bearing. Then plug the coupling beam into the motorand fix the motor to the bottom plexiglass piece. You can adjust the motor to the size of the vertical piece with the space you leave betwee the motor and the threaded rod inside the coupling beam.

On the other side of the door plug the ball bearing into the black piece, then the smooth rod into the ball bearing and finaly into the flange bearing.

Once the door set up, you should fix the two flange bearing to the top plexiglass piece through long M3-screws and nuts.

Hardware Setup

Software Setup for the WBZ45x

Software Content

Extract the file: firmware/WBZ45x_project/WBZ45x_project.zip to a hard drive root folder (i.e. C:\ac_demo\firmware).

Programming the precompiled hex file using MPLABX IPE

Plug the WBZ45x Curiosity board to your computer through a micro-USB cable.

Using MPLAB® IPE v6.0 :

  • Select WBZ451 as Device to flash and hit the 'Apply' button
  • Select the tool: Curiosity/Starter Kits (PKOB4)
  • Browse the following .hex file: firmware/WBZ45x_project/ble_zigbee_light_prov/precompiled_hex/ble_zigbee_light_prov.X.production.hex
  • Hit the 'Program' button

Starting from the Out of the box example

Here the code running on the WBZ45x Curiosity board, is based on the Out of the Box demo (OoB) example code named ble_zigbee_light_prov that you can find in:

Required software components

Please follow the SDK setup to get a workspace well configured and ready to modify the MCC Harmony project and the code, build and flash the WBZ451 target.

MCC Harmony Configuration

Open ble_zigbee_light_prov/firmware/ble_zigbee_light_prov.X from Harmony apps and start MCC Harmony.

The main MCC Harmony scheme will not be modified, we will just add 3 I/Os to manage communication between the WBZ45x board and the two daughter boards: FPGA and motor control boards:

  • Pin RA2 configured as EXTINT3 with a pullup: to interface with the FPGA board
  • Pin RA13 and RA14 configured as GPIO out: to interface with the motor control board

In project graph, click on EIC component and configure channel 3 as following:

Then generate the code and close MCC.

Code modification

For this section, you will find all code to copy paste in the following folder: firmware/WBZ45x_project/additional_sources

  • In app.c around line 250, add the code from app.txt.
    Do not forget to add the prototype in app.h.
  • In app_button_handler.c around line 92, replace APP_Button_Handler with the given function in app_button_handler.txt, and add function APP_FPGA_Callback and APP_FPGA_Handler. This code correspond to the trigger of the door and the wireless communications via the button and the face recognition.
  • In app_ble_sensor.c around line 115, replace APP_TRPS_Sensor_LED_Ctrl function with the given function in app_ble_sensor.txt. This code correspond to the trigger of the motor with BLE connectivity.
    Do not forget to add the prototype in app_button_handler.h
  • In app_zigbee_handler.c line 560, replace switch case CMD_ZCL_ON and CMD_ZCL_OFF with those in app_zigbee_handler.txt. This snippet of code correspond to the trigger of the motor with ZigBee connectivity.

Software Setup for the dsPIC33CK

State machine

Software Content

Extract the file: firmware/dsPIC33CK_project/dsPIC33CK_project.zip to a hard drive root folder (i.e. C:\ac_demo\firmware).

Programming the precompiled hex file using MPLABX IPE

Plug your PICkit3 or PICkit4 to your computer through a micro-USB cable and to the dsPIC33CK LVMC board through the 6-pins connector on the right side of the board.

Using MPLAB® IPE v6.0 :

  • Select dsPIC33CK256MP506 as Device to flash and hit 'Apply'
  • Select the Tool: PICkit3 or PICkit4
  • Browse the following .hex file: firmware/dsPIC33CK_project/precompiled_hex/bldc.X.production.hex
  • Hit 'Program' button

Start from AN957 Application note

Required software components
MCC Configuration

Open dsPIC33CK_project/bldc.X and start MCC. We will just add 4 I/Os to manage the limit switchs interrupts and the communication between the WBZ45x curiosity and motor control board:

  • RA5 - interrupt INPUT pin comming from the bottom switch
  • RA6 - command OUTPUT pin to open the door
  • RA7 - command OUTPUT pin to close the door
  • RA15 - interrupt INPUT pin comming from the upper switch

First, open the grid view and activate the 4 pins:

Then configure the pins as following:

Generate the code and close MCC.

Code modification

Open firmware/dsPIC33CK_project/additional_sources/main.txt and copy paste the code into the main.c file of your project.

This code correspond to :

  • The main state machine of the application.
  • The motor control state machine.
  • The handler for the switch interrupts.
  • Some other functions used in the motor control state machine.

Software Setup for the PolarFire FPGA

Software content

The GitHub repo does not contain the FPGA project but it contains all the steps to customize the original VectorBlox and face recognition demo.

To match with the Access Control demo, it is required to:

  • Get started with the default package by installing the required tools
  • Customize the default demo package
  • Set the image database for Face recognition
  • Flash the board with updated content

Getting started with the default package

To getting started with default package VectorBlox and face recognition, make sure to check the following items:

Demo customization

  1. Download the Libero® SoC 2021.3 Smart Camera Reference Design for the PolarFire FPGA Video and Imaging Kit

  2. We will have to set an open drain output that we will connect to the WBZ45x Curiosity board. If the PolarFire recognize a person, the WBZ45x device will ask the motor control board to open the garage door. The state of the I/O will change and go from 0 to 1 while there is a person recognized by the system.

    a. Unzip and open the vectorblox_videokit_v1.3.1 project from the original Reference Design

    b. Open the project using Libero® SoC Design Suite 2021.3

    c. Modify CoreGPIO_OUT in PROC_SUBSYSTEM

    • Add 2 OUTPUT - in our case GPIO_OUT[6:5] and leave the settings by default

    • Update PROC_SUBSYSTEM_0 and promote the new GPIO_OUTPUT to Top Level

    • As we want to have open drain outputs, please refer to cahpter 7.1.13 of the "PolarFire FPGA and PolarFire SoC FPGA User I/O User Guide"

    • You will then have to update the I/O Attributes. On the PolarFire Video Kit, we will use pins from the Display Connector J26.
      So, we will connect our outputs as below:

      • Connect OUT 1 to pin A2 of the PolarFire FPGA (Pin B1 of the Video Kit Display Port)
      • Connect OUT 2 to pin B4 of the PolarFire FPGA (Pin A1 of the Video Kit Display Port)
      • I/O Configuration:
        • Clamp = OFF
        • RES_PULL = NONE
        • Bank VDDI = 2.5V



    Your project is now ready, you should be able to RUN the project.

  3. We will now modify the Software in SoftConsole

    a. In main.c, you will need to define OUT1 & OUT2

    #define OUT1 GPIO_5
    #define OUT2 GPIO_6
    

    b. Then, setup the GPIOs as output

    GPIO_set_output(&g_gpio_out, OUT1, 1) ;
    GPIO_set_output(&g_gpio_out, OUT2, 1) ;
    

    c. In the file faceDetectDemo.c, set the custom GPIOs to 0 if there is a similarity and face recognized

    d. Then, in the file faceDetectDemo.c, set the output back to 1 when the program is starting to scale a new frame

    Your software is now modified.

Setting-up the image database for Face Recognition

  1. The project is already running the face recognition Demo using the existing Image Database as created by the VectorBlox-SDK at the following Link.
    https://github.com/Microchip-Vectorblox/VectorBlox-SDK/tree/master/example/python/faceDemo/dbImages

  2. To detect known faces in the surroundings through Videokit, the Image Database in the project must be updated with the new Images. To update the Image Database, one need to be able to execute examples and tutorials for VectorBlox-SDK Release 1.3.
    To setup the VectorBlox-SDK following steps must be followed.
    https://github.com/Microchip-Vectorblox/VectorBlox-SDK

  3. Download the VectorBlox-SDK release 1.3.0

  4. Change the permissions of the copied folder using:
    sudo chmod -R 777 VectorBlox-SDK-release-v1.3.0/

  5. Follow the below steps

cd VectorBlox-SDK-release-v1.3.0/
sudo bash

(Note: remember executing the scripts in the SDK requires switching to bash)

bash install_dependencies.sh
source setup_vars.sh
  1. Before updating the database, follow the below steps
    https://github.com/Microchip-Vectorblox/VectorBlox-SDK/blob/master/app_notes/updating_face_recognition_database.md#preparing-models
cd $VBX_SDK/tutorials/mxnet/mobilefacenet-arcface
bash mobilefacenet-arcface.sh

(Before creating the Database step, the known Images should be copied to the following folder of WSL ubuntu)

C:\Users\MXXXXX\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\rootfs\home\username\VectorBlox-SDK-release-v1.3.0\example\python\faceDemo\dbImages

(Note: only images in .png and .jpg format are accepted)

  1. Issue the following commands to update the Database
    https://github.com/Microchip-Vectorblox/VectorBlox-SDK/blob/master/app_notes/updating_face_recognition_database.md
cd example/python/faceDemo/
python createdDb.py
python exportDb.py

(Note: python processImage.py command throws errors, but it is not required as it is only a sanity check on the added Images which is not working in this release. In addition, the steps to update the Database are described on the following link as well.)

  1. Copy the code generated in C:\Users\MXXXXX\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\rootfs\home\username\VectorBlox-SDK-release-v1.3.0\example\python\faceDemo\faceDb.c to the following .c file of the SoftConsole Project: C:\Users\ MXXXXX\Downloads\vectorblox_videokit_v1.3\softconsole\Videokit\faceDetection\faceDetectDemo.c.
    Copy the entire code from the generated file faceDb.c and replace the corresponding code in faceDetectDemo.c from the SoftConsole Project starting at the line number 79
#define DB_LENGTH 79
#define EMBEDDING_LENGTH 128
  1. Build the SoftConsole Project and one should be able to run the Demo with updated Database through FlashPro Interface. The Project can be built in Release Mode. Debug Mode build shows error which must be fixed. Release Mode is good enough to run the Demo

  2. To run the Demo without Debug Interface, updated SoftConsole Project hex file should replace the existing FabricRAM hex file in the Libero SoC Project. For further details about how to program the FPGA and SPI Flash with the updated files, refer to the Section 5.2.2 in the below document.
    https://vector-blox-model-zoo.s3.us-west-2.amazonaws.com/Releases/VideoKit/vectorblox_videokit_v1.3.pdf

Flash the board

Follow the documentation below to flash the board with the new images:

Cloud Setup

Amazon Echo setup

  • Power on the amazon echo and download the Alexa app on your smartphone.
  • Then, open Alexa app and under add device section, select echo.
  • On your Echo, enter configuration mode by pressing the action switch during 10 seconds.
  • Then on the app, enter your access point SSID and password to configure your Echo.

WBZ451 provisionning

Once the Echo is configured, you can provision your WBZ451 device by asking Alexa, discover my devices or in the app by adding a device, selecting light.

In the same time, on Microchip Bluetooth Data app, enter BLE commissioning section, launch a scan to find your WBZ451.

Once the device selected, you can change the name and provision it.

Start the provisionning and wait for 30 to 45 seconds.

If the Echo found your WBZ451, it will automatically register it in the Alexa app as a light. Then you can go into Device select the new device and rename it Garage door.

Add a Philips Hue light

  • Plug the Philips Hue bulbe into the light.
  • Then discover the devices, the Philips light should slowly blink.
  • Once the provisionning finished, the light should stay on.
  • Then go into the Alexa app, into Devices section select Light and rename the new one Philips light.

Alexa routine

On the Alexa app go into Other tab and select Routines. Create 4 new routines :

  • The first one is to open the door:

    • Rename the routine Open garage door
    • As input select voice and write down Open garage door.
    • As action select Home, then Light, then Garage door and hit next. On the new section select On and validate.
    • Add another action, select Home, then Light, then Philips light and hit next. On the new section select Off and validate.
  • The second one is to close the door:

    • Rename the routine Close garage door
    • As input select voice and write down Close garage door.
    • Add another input, select voice and write down Turn on Garage light.
    • As action select Home, then Light, then Garage door and hit next. On the new section select Off and validate.
    • Add another action, select Home, then Light, then Philips light and hit next. On the new section select On and validate.
  • The third one is to turn on the light:

    • Rename the routine turn on garage light
    • As input select voice and write down turn on garage light.
    • As action select Home, then Light, then Garage door and hit next. On the new section select Off and validate.
    • Add another action, select Home, then Light, then Philips light and hit next. On the new section select On and validate.
  • The forth one is to turn off the light:

    • Rename the routine turn off garage light
    • As input select voice and write down turn off garage light.
    • Add another input, select voice and write down Turn on Garage light.
    • As action, select Home, then Light, then Philips light and hit next. On the new section select Off and validate.

Back to top

Run the demo

To lauch the demo, follow these steps :

  • Turn ON the FPGA board with the ON/OFF switch close to the power supply connector.
  • Go on Alexa app, make sure that the garage door is OFF (closed position).
  • Then, reset the WBZ451, application LED should be OFF.
  • And reset the dsPIC33CK LVMC, if the door was not close, it should automatically close it.

To trigger the door with face recognition feature, just pass in front of the camera.

The vocal commands to trigger the door through Alexa are:

  • Alexa, open garage door
  • Alexa, close garage door
  • Alexa, turn on garage light
  • Alexa, turn off garage light

To trigger the door via your smartphone:

  • Launch Microchip Bluetooth Data App
  • Go in the BLE sensor section, select PIC32CX-BZ2 then scan to find the WBZ451 device
  • Select the device that appear on the screen and now you can trigger it through BLE using the switch on the app.

Use the visual indicators to monitor the behavior of the demo:

  • On WBZ451 Curiosity Board:
    • Blue LED: indicate connection status ("Off" when connected).
    • RGB LED: application LED.
  • On dsPIC33CK LVMC:
    • 6 green LEDs in a row: indicate the motor status ("On" when motor is running).
    • LED 10: indicate that the dsPIC has receive a UP command. Turn off when the door reach the top position.
    • LED 11: indicate that the dsPIC has receive a DOWN command.Turn off when the door reach the bottom position.
  • On MPF300:
    • On the screen, there is green squares when a person is recognized and blue squares when a the person is not recognized.

HMI:

  • On WBZ451:
    • Reset switch: left one when looking at the back of the door.
    • Application switch: right one when looking at the back of the door.
  • On dsPIC33CK LVMC:
    • Reset switch : in the center of the board.
  • On MPF300:
    • On/Off switch: close to power supply connector.

Back to top

FAQ

Here is the list of known issues:

  • The motor can have difficulties to go up. If the motor stop between the up and down position, either LED10 or LED11 will remain on. In this case the motor can receive any other command, you should perform a reset.
  • WD40 lubricant should be consider to smooth the mechanic of the demo.
  • WBZ451 may lost ZigBee or BLE connection. In this case, you should perform a reset.
  • Sometime, after several usage of the door, the motor may fail (wrong direction or no start at all). It is recommended to perform a reset every 10 demo cycles.
  • After several Hours running, the FPGA may overheat, in this case the screen will freeze. The FPGA will need to be rebooted with the on/off switch next to the power supply connector.

Reset procedure:

  • On Alexa app, make sure that the garage door is Off (Closed position).
  • Reset the WBZ451, application LED should be Off.
  • Reset the dsPIC33CK LVMC, if the door was not close, it should automatically close it.

Possible improvement items:

  • Implement bidirectional communication (e.g. UART) between WBZ451 Curiosity board and the dsPIC33CK to improve reliability of the demo
  • Review the motor state machine and make it more robust to not miss direction changes after several cycles
  • Make the mechanical parts of the demo more robust to reduce vibration and improve the door alignment during the go up and go down phases

Back to top

iot_solutions_for_access_control's People

Contributors

gd91 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.