This Article is yet to be approved by a Coordinator.
Common Task Report - Part 1\n## 1. 3D printing\n In this task we were asked to understand the basics of 3D printer, about the STL file and learning them to slice and many more things.\n\nThe resource article had all the resources required to understand the basics of 3D printing technology.\n3D printing model templates were available from thingiverse.com\n\n\n\n### Main Parts\n\n#### Extruder\n\n\n\nExtruders are a crucial component in 3D printers. In simple terms, the extruder is the tool that holds the filament in place and controls the amount that is fed into a Hot-end. One key point is to highlight that hot-ends are not the same as an extruder, but rather they are attached to it and they are the main location that is tasked with the melting process.\n\n#### Print bed\n\n\nA print bed is the part that the 3d printed object rests on during the printing process. As each layer is extruded, the print bed moves down to allow for the next layering step. Although being simple, a print bed is an important part of a 3D printer. Although a relatively easy process, 3d printing does require some careful calibration to ensure that you get a perfect print without deformities. Therefore, the most important step is to ensure that you print the first layer accurately.\n\n### STL FILE\nSTL is a file format commonly used for 3d printing and computer aided design(CAD). It stand for \stereolithography". Each file is made up of series of linked triangles that describe the surface geometry of a 3D model or object.\n\n\n\nUsing this resource I printed a Bird but I forgot to add support so it printed a bird without head. But I thought this was fine and something unique so I did not make a new one. The image below shows my work- A bird without head\n\n\nDifficulties faced- I found it hard understading about slicing the file.\n\n## 2. Getting familiar with Ubuntu and completing the following subtasks\nThis was a new experience because I have never used any OS apart from Windows on PCs. At first I found it very hard to understand the basics of Ubuntu commands. \nBut later on following the resources and few Youtube videos I got some idea regarding ubuntu commands. \n\n- Creating a folder :\n\nCommand: mkdir testR\n\n- Cd-Change directory:\n\nCommand: cd test\n\n- Creating 2600 folders\n\nCommand: mkdir M{1..2600}\n\n\n- Concatinating 2 file contents and then displaying contents of file raviteja and testR and printing them in a file named output\n\nCommand: cat raviteja.txt testR.txt>output.txt\n\n- Displaying the concatenated contents\nCommand: cat output.txt\n\n\n\n\n\n\n\n## 3. Working with GitHub\nIn this task we were asked to understand the basics of GitHub workflows and understand some basic commands.\nFor cloning the repository: *git clone https://github.com/UVCE-Marvel/git-task*\n\n \n\n\n\n\n\n\n\n\n\n## 4.SOLDERING\nSoldering is a joining process used to join different types of metals together by melting solder. Solder is a metal alloy usually made of tin and lead which is melted using a hot iron. The iron is heated to temperatures above 600 degrees Fahrenheit which then cools to create a strong electrical bond. \n\n### Soldering Iron\nA soldering iron is a hand tool used to heat solder, usually from an electrical supply at high temperatures above the melting point of the metal alloy. This allows for the solder to flow between the workpieces needing to be joined.\n\nThis soldering tool is made up of an insulated handle and a heated pointed metal iron tip. Good soldering is influenced by how clean the tip of your soldering iron is. To maintain cleanliness, a user will hold the soldering iron and use a wet sponge to clean the soldering iron tip prior to soldering components or making soldered connections.\n\nIn addition to the soldering iron, solder suckers are an important part of the soldering setup. If excessive solder is applied, these small tools are used to remove the solder, leaving only that desired.\n\n\n\n### Soldering lead\n\nThese solders are made of an alloy of lead and other metals. The most common mixture is 60% tin, 40% lead (or 63/37). Leaded solder has a low melting point (around 180° C). This makes it especially easy to work with. Lead alloy solders flow well and form strong bonds with other metals. Because of their properties, they are also known as soft solders. The presence of lead in the alloy inhibits the formation of tin whiskers.\n\n\n\n### Copper Solder wick\n\nDesoldering braid or “wick” is a pre-fluxed copper braid that is used to remove solder, which allows components to be replaced and excess solder (e.g. bridging) to be removed. The soldering iron is applied to the wick as it sits on the solder joint, and when both are brought up to the solder's melting point, the flux is activated and, through capillary action from the braided design, solder is drawn up the wick.\n\n\nA desoldering wick’s ability to absorb solder is enhanced by infusing the copper strands with a generous helping of flux. It is used in conjunction with a soldering iron, where the heat from the tip allows solder to be wicked off component leads and PCB pads by the means of capillary action. Once a section of the desoldering wick gets saturated with solder, it can be quickly snipped off to reveal fresh copper further along the spool.\n\n\n\n### Flux in Soldering\nSolder is a metal alloy often made of tin and lead. To melt solder, a soldering iron is a must. The soldering process does the job of joining different types of metals together. However, there are times when a solder tends to be not solid enough to bond components. This is where flux in soldering comes into play\n\n\n\n\n\n\n\n## 5. LED toggle using ESP32\n\n### Equipments required\n\n- ESP32 Micro controller\n- Bread board\n- 2 LEDs\n- 2 Resistors\n- Jumper Wires\n- USB cable\n\n### Circuit design\n\n\n\n### ESP32 Web Server Code\n\n// Load Wi-Fi library\n#include \n\n// Replace with your network credentials\nconst char* ssid = \"vvvvvvxxxxxx\";\nconst char* password = vvvvvvxxxxxx\";\n\n// Set web server port number to 80\nWiFiServer server(80);\n\n// Variable to store the HTTP request\nString header;\n\n// Auxiliar variables to store the current output state\nString output26State = \"off\";\nString output27State = \"off\";\n\n// Assign output variables to GPIO pins\nconst int output26 = 26;\nconst int output27 = 27;\n\n// Current time\nunsigned long currentTime = millis();\n// Previous time\nunsigned long previousTime = 0; \n// Define timeout time in milliseconds (example: 2000ms = 2s)\nconst long timeoutTime = 2000;\n\nvoid setup() {\n Serial.begin(115200);\n // Initialize the output variables as outputs\n pinMode(output26, OUTPUT);\n pinMode(output27, OUTPUT);\n // Set outputs to LOW\n digitalWrite(output26, LOW);\n digitalWrite(output27, LOW);\n\n // Connect to Wi-Fi network with SSID and password\n Serial.print(\"Connecting to \");\n Serial.println(ssid);\n WiFi.begin(ssid, password);\n while (WiFi.status() != WL_CONNECTED) {\n delay(500);\n Serial.print(\".\");\n }\n // Print local IP address and start web server\n Serial.println(\"\");\n Serial.println(\"WiFi connected.\");\n Serial.println(\"IP address: \");\n Serial.println(WiFi.localIP());\n server.begin();\n}\n\nvoid loop(){\n WiFiClient client = server.available(); // Listen for incoming clients\n\n if (client) { // If a new client connect \n currentTime = millis();\n previousTime = currentTime;\n Serial.println(\"New Client.\"); // print a message out in the serial port\n String currentLine = \"\"; // make a String to hold incoming data from the client\n while (client.connected() && currentTime - previousTime <= timeoutTime) { // loop while the client\'s connected\n currentTime = millis();\n if (client.available()) { // if there\'s bytes to read from the clien \n char c = client.read(); // read a byte, then\n Serial.write(c); // print it out the serial monitor\n header += c;\n if (c == \'\\n\') { // if the byte is a newline character\n // if the current line is blank, you got two newline characters in a row.\n // that\'s the end of the client HTTP request, so send a response:\n if (currentLine.length() == 0) {\n // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)\n // and a content-type so the client knows what\'s coming, then a blank line:\n client.println(\"HTTP/1.1 200 OK\");\n client.println(\"Content-type:text/html\");\n client.println(\"Connection: close\");\n client.println();\n \n // turns the GPIOs on and off\n if (header.indexOf(\"GET /26/on\") >= 0) {\n Serial.println(\"GPIO 26 on\");\n output26State = \"on\";\n digitalWrite(output26, HIGH);\n } else if (header.indexOf(\"GET /26/off\") >= 0) {\n Serial.println(\"GPIO 26 off\");\n output26State = \"off\";\n digitalWrite(output26, LOW);\n } else if (header.indexOf(\"GET /27/on\") >= 0) {\n Serial.println(\"GPIO 27 on\");\n output27State = \"on\";\n digitalWrite(output27, HIGH);\n } else if (header.indexOf(\"GET /27/off\") >= 0) {\n Serial.println(\"GPIO 27 off\");\n output27State = \"off\";\n digitalWrite(output27, LOW);\n }\n \n // Display the HTML web page\n client.println(\"\");\n client.println(\"\");\n client.println(\"\");\n // CSS to style the on/off buttons \n // Feel free to change the background-color and font-size attributes to fit your preferences\n client.println(\"\");\n \n // Web Page Heading\n client.println(\"ESP32 Web Server\");\n \n // Display current state, and ON/OFF buttons for GPIO 26 \n client.println(\"GPIO 26 - State \" + output26State + \"\");\n // If the output26State is off, it displays the ON button \n if (output26State==\"off\") {\n client.println(\"ON\");\n } else {\n client.println(\"OFF\");\n } \n \n // Display current state, and ON/OFF buttons for GPIO 27 \n client.println(\"GPIO 27 - State \" + output27State + \"\");\n // If the output27State is off, it displays the ON button \n if (output27State==\"off\") {\n client.println(\"ON\");\n } else {\n client.println(\"OFF\");\n }\n client.println(\"\");\n \n // The HTTP response ends with another blank line\n client.println();\n // Break out of the while loop\n break;\n } else { // if you got a newline, then clear currentLine\n currentLine = \"\";\n }\n } else if (c != \'\\r\') { // if you got anything else but a carriage return characte \n currentLine += c; // add it to the end of the currentLine\n }\n }\n }\n // Clear the header variable\n header = \"\";\n // Close the connection\n client.stop();\n Serial.println(\"Client disconnected.\");\n Serial.println(\"\");\n }\n}\n
\n- Initially we make the circuit set up as shown. Then plug your ESP32 to your computer.\n- Go to Arduino IDE and select your board in Tools>Board and then select COM port in Tools>Port\n- Press the Upload button in the Arduino IDE and wait a few seconds while the code compiles and uploads to your board.\nWait for the Done Uploading message\n\nAfter few steps, you will get an IP address, paste that IP address in your web browser you will see the following page. \n\n\n\n\n<iframe height=""315"">\n\n## 6. Tinkercad\nTinkercad is an online platform for building digital circuits, 3D designs, etc. \nIn the task, we were asked to understand the basics of Tinkercad and then build ultrasonic sensors and estimate the distance between an obstacle and the sensor. \n\nAn ultrasonic Sensor is a device used to measure the distance between the sensor and an object without physical contact. This device works based on time-to-distance conversion.\n\n### Components Required\n\n- Arduino Uno R3 board\n- Ultrasonic sensor (HC-SR04)\n- 16×2 LCD I2C Display\n- Jumper Wires\n\n### Circuit Diagram\n\n\n\n\n\n"