FOSSEE Fellowship 2020 Arduino on Cloud

From Fundamental Research Group
Jump to: navigation, search

General Information

  • Given below are the list of screening tasks for the FOSSEE Felllowship 2020 under the project of Arduino on Cloud
  • At any given time participants are allowed to work on two screening tasks. But we recommend you to focus on one screening tasks and complete it successfully.
  • See the Submission procedure section for more details
  • The selection will be purely based on the evaluation criteria.
  • Also note, you can use any of the open source libraries/technologies and attribute them appropriately based on the licence.
  • Join our chat room on Chat gitter.png to chat with us regarding any clarification or issues.
  • You can also email us at frg@cse.iitb.ac.in

FOSSEE Fellowship
Fossee.png
Indian Institute of
Technology Bombay

www.iitb.ac.in


Registrationlink
Important Dateslink
Submissions onMoodle



Contents

Screening Task 1: Arduino Circuit Builder/Editor

Description

Design and implement a drag-and-drop facility to build circuits using Arduino boards, breadboard, and other components like capacitor, resistor, potentiometer, and wires, etc. You may choose any 3 circuits to demonstrate the working of the front-end. This application should allow the user to choose from the list of components and drag-and-drop on the main workspace for building circuitry. It should allow the user to connect components using virtual wires which will stick to the pins of the component legs, ports on the arduino board, etc. The breadboard interface should allow component legs to get connected based on the breadboard standard specification (connected rows and columns of the breadboard). Websites like www.circuito.io and www.tinkercad.com allow such a facility for building circuitry. The application should allow the user to annotate all such components dropped on the workspace with names and values. The application must be able to store the whole circuit in a file format at the backend (it could be just a button for uploading).

The web-based system should contain the following subsystems:

1) Back-end: Implement components in Django to accept the schematic circuit file and store it in a files directory with a link to that file in the database.

2) Front-end: Implement the drag-and-drop facility using Raphaeljs and use Angular for communicating with Django at the backend. (see the main description above).

Technical Skills

Submission Procedure

  • Record a demo by creating either a video, screencast, or animated gif of your working project.
  • Create a private repository on GitHub (https://github.com/) and upload your project along with the demo video/animation.
  • Add 'fresearchgroup' as a collaborator in your repository.
  • We recommend that you regularly push your code to git. If you are new to git, please refer to the tutorial link given below: (https://spoken-tutorial.org/tutorial-search/?search_foss=Git&search_language=English)
  • Once you are done with the project and you intend submitting, tag a release. Note down the release URL and submit the release URL on moodle. The release URL would be similar to: https://github.com/<your username>/<your project name>/releases/tag/v1.3
  • Please note that submissions of public repositories will not be considered.

Evaluation criteria

  • Modular design
  • Clear separation of backend (python and Django for running simavr processes) and frontend.
  • API-based design
  • Coding style
  • Inclusion of Unit test cases
  • Reusable code
  • Clear documentation


Screening Task 2: Arduino Circuit Simulation

Description

Sketches for Arduino IDE (have a look at range of sketches/projects available at https://www.arduino.cc/en/Tutorial/BuiltInExamples) are a great source to learn Arduino programming. Your task is to simulate any 3 of such circuits by designing a web-based application. Sketches in the form of .ino files can be compiled using Adruino-cli (https://github.com/arduino/arduino-cli) into a hex code and then converting them to Value Change Dump (VCD) file using simavr (https://github.com/buserror/simavr).


To look at what is expected, have a look at some proprietary tools like tinkercad (a ping pong game as an example at https://www.tinkercad.com/things/8B5LpJXjQRa-ping-pong-game). Also, have a look at this link https://preview.redd.it/3qoep35tj7g21.gif?format=mp4&s=87b566693a21b4c7db816bb24761c62196b7e1d2 which simulates a basic arduino circuit project.

Technical Skills

  • Knowledge of Arduino functioning
  • Django
  • Angular JS framework
  • Javascript library like Three.js (https://threejs.org/)

Submission Procedure

  • Record a demo by creating either a video, screencast, or animated gif of your working project.
  • Create a private repository on GitHub (https://github.com/) and upload your project along with the demo video/animation.
  • Add 'fresearchgroup' as a collaborator in your repository.
  • We recommend that you regularly push your code to git. If you are new to git, please refer to the tutorial link given below: (https://spoken-tutorial.org/tutorial-search/?search_foss=Git&search_language=English)
  • Once you are done with the project and you intend submitting, tag a release. Note down the release URL and submit the release URL on moodle. The release URL would be similar to: https://github.com/<your username>/<your project name>/releases/tag/v1.3
  • Please note that submissions of public repositories will not be considered.

Evaluation criteria

  • Modular design
  • Clear separation of backend (python and Django for running simavr processes) and frontend.
  • API-based design
  • Coding style
  • Inclusion of Unit test cases
  • Reusable code
  • Clear documentation


Personal tools
Namespaces

Variants
Actions
Forum Menu
Navigation
Toolbox