SMARTPHONE-CONTROLLED TOY BOAT

Size: px
Start display at page:

Download "SMARTPHONE-CONTROLLED TOY BOAT"

Transcription

1 SMARTPHONE-CONTROLLED TOY BOAT By Jungho Yi Yunyoung Roh Final Report for ECE 445, Senior Design, Fall 2017 TA: Channing P. Philbrick 13 December 2017 Project No. 20

2 Abstract In this project, our team built a toy boat that can be controlled by any smartphones or tablets via Bluetooth communication technology, with an Android application of our design. The boat will receive commands from the application; moving forward, left, or right by two motors on the rear of the body. To prevent the boat from possible collisions that could lead to a permanent loss, the proximity sensor is attached on the head of the boat, making the motors stop running whenever an object exists within 15 cm. In addition, the GPS module allows the user to find the location of the boat when desired. As we endeavor to complete designing the toy boat, we had a few challenges throughout the project. However, we were able to overcome those problems and built it successfully except for the concurrent operation of the GPS and the Bluetooth modules. i

3 Contents 1. Introduction 1 2. Design Block Diagram Physical Design Block Design Component Overview Microcontroller Sensors Proximity Sensor GPS Module Bluetooth and Android Application Power Supply Circuit Schematics Microcontroller Sensors and Bluetooth Module Motor Control Prototype Printed Circuit Board Design Assembly 9 3 Design Details and Verification Voltage Regulator Proximity Sensor Power Consumption Flow Chart User Interface 13 4 Cost Labor Parts 15 5 Conclusion 17 6 Citation 18 Appendix A Requirements and Verification Table 19 Appendix B Arduino Code 23 Appendix C Android Application Code 2 ii

4 1. Introduction 1.1 Objective and Background The objective of this project is to build a toy boat controlled by a smartphone application using Bluetooth communication, which will minimize the risks of damage to the product. Conventional remote-controlled toy boats using RF signal require two main parts: the boat and the controller. By using a smartphone as a controller, we are able to eliminate the discomfort of carrying the controller when the toy is not in use and the inconvenience of having to replace the batteries in the controller. Because the average person carries around a smartphone, charging it everyday in most cases, a smartphone would be most appropriate as a controller. Moreover, through the functionalities of this boat, we seek to avoid potential damage. Toy boats are often sunk due to hitting a hard object, losing connection with the controller, or running out of battery. Now, with the smartphone application and the sensor on board, such risks will be reduced and protection will be ensured. The application used to control the boat will have indicators on User Interface, which will be described later more in depth. In short, the application will let the user know whether the boat is too far away so as to lose connection, whether the boat is about to hit an object, and whether the boat is running out of battery. It will also signal that the boat should return immediately. All of these functions will be on one screen, providing more stable and reliable operation of the toy boat than that of any other on the market. The basic idea of this project was pitched by Professor Michael Oezle during his lecture, and we believed it would be not only intriguing but beneficial to build a toy boat that has the functionalities listed above because toy boats are one of the most easily lost and damaged toys. With the smartphone application that notifies the user of risks in advance, not only children but also adults who sometimes want to play with remote-controlled toy boats will be able to play without the concern of damaging or losing the boat. This project is an homage to all the children who have lost their toy boat before. Other remote-controlled toys, besides toy boats, also have similar problems. Drones, for example, may hit a wall and fall, damaging the product permanently; toy cars are not immune to the issue as well. The technology that we are about to adapt to this toy boat can be applied to them, preventing unintended and unfavorable accidents. It is evident, though, that this boat would cost relatively more than the average children s toy, but it would definitely be worth the investment because the advanced features that conventional toys cannot provide would increase the reliability and the functionality of the boat, reducing the future cost for purchasing another toy to replace the broken one. 1

5 2. Design 2.1 Block Diagram Fig. 1. Block Diagram of the Overall System 2.2 Physical Design Fig. 2. Initial Design of the Boat (Left) Fig. 3. Completed Design of the Boat (Right) 2

6 The two motors on the rear end of the boat move the boat forward and backward with direction regulation. When the user touches the left arrow shown on the user interface of the smartphone application, the motor on the left will be activated, and the same works for the motor on the right hand side. If the user touches the upper arrow to move the boat forward, both motors will be turned on at the same time. The GPS and Bluetooth module are attached on the PCB board, located at the center of the boat with other components such as the microcontroller and ICs which will be used to control the overall functionality of the boat. We attached a proximity sensor to prevent the boat from crashing into a wall or any other obstacle. The proximity sensor detects any object ahead of it and the microcontroller reads the output voltage from it every 1.5 seconds, converting the output voltage value to the corresponding distance value. If the proximity sensor detects anything near the head of the boat within 15±1 cm, the microcontroller notifies the user of the obstacle and stops the motor so that the user does not have to take action beforehand. 2.3 Design Procedure Component Overview Microcontroller Fig. 4. 3D Image of ATMEGA328P [1] We will be using Atmega328p, which is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture[1]. This is the primary chip of our control board. It collects all data from sensors and Bluetooth, then executes the appropriate boat operation based on its software Sensors Proximity Sensor Fig. 5. Outline of GP2Y0A21YK0F [8] 3

7 Since it will be hard for users to approach the boat when the boat is on water and far away from shore, it must be ensured that the boat is under control. If the boat detects obstacles, such as a wall or plants, while moving forward, the user must stop the boat and move it backwards so the boat does not get stuck. We will use GP2Y0A21YK0F, a distance measuring unit, as the proximity sensor. This sensor is composed of an integrated combination of position sensitive detector, infrared emitting diode, and signal processing circuit so that it can output the voltage corresponding to the detected distance of an object GPS Module Fig. 6. Functional Direction of Proximity Sensor [8] Monitoring the direction of the boat is key to controlling its movements. Rather than using a gyroscope and accelerometer, we decided to use a GPS module, which allow us to calculate the distance between the user and the boat and also the speed of the boat more easily. Fig. 7. Outline of GPS Module [3] 4

8 Bluetooth and Android Application Figure. 8. Picture of HC-06 Bluetooth module [2] We came up with the idea of a smartphone application for remote control, particularly because having to remember and carry a separate controller is a hassle while playing with RC toys. Smartphone applications can also save the cost of manufacturing a separate controller. We will use HC-06, a serial Bluetooth product that consists of a Bluetooth serial interface module and a Bluetooth adaptor[2]. Our smartphone application will continuously communicate with the boat via Bluetooth. The communication between the smartphone and the Bluetooth module allow users to control the boat as they want and also obtain data of the boat s status Power Supply Fig. 9. 9V battery - Energizer522 [12] The battery is one of the essential parts of the boat. It should provide sufficient power so the boat can operate for as long as possible and communicate with the smartphone simultaneously. Therefore, we used two 9V batteries to supply enough voltage and current to run all the components on the board for at least 2 hours. The runtime of the boat may vary depending on the user s desired functionality and performance of the boat. This 9V Energizer battery has a capacity of mah; this amount of power enables our control board to function properly. Moreover, the voltage will be measured on the power supply system and then transferred to the microcontroller. If the voltage goes below a certain threshold (7V, in our case), the microcontroller will send a warning sign on the user interface via Bluetooth. 5

9 2.3.2 Circuit Schematics The control system consists of three parts: the microcontroller, sensor/bluetooth module, and motor control. The main part of the control system is the microcontroller--it receives all the data from the sensors, power supply, and smartphone application Microcontroller Fig.10. Main Control Board Schematics with USB Connection [1,9,11] The microcontroller will be sending and receiving all our data as seen in the figure above. The schematic above shows connections between the 5V voltage regulator (LM7805), microcontroller (atmega328p), UART interface (ft232r), AVR connector, and USB device path. Because atmega328p, ft232r, and usb port require 5V of power, we added a 5V voltage regulator (lp38690) onto the board design. The connection between the RX/TX of atmega328p and TX/RX of UART interface enables the microcontroller to import software programming from its USB port. Moreover, atmega328p accepts data from the sensors and Bluetooth module, and then sends data to motors and Bluetooth module so we can handle these data in the software. 6

10 Sensors and Bluetooth module Fig. 11. Sensor and Bluetooth connection Schematics [2,3,8,10] For our Smartphone-Controlled Toy Boat, we implemented two modules and one sensor: a GPS module, a Bluetooth module, and a Proximity Sensor. All analog signals will be sent to the microcontroller. Upon calibration of these sensors, each of them will provide the microcontroller with the boat s current position, direction, and situational influences. A Bluetooth module will be used to connect our boat and the smartphone application. We will arbitrarily make two pairs of RX/TX pin on the microcontroller to connect to the Bluetooth module and the GPS module. Signals will be sent back and forth via Bluetooth connection between the microcontroller and the smartphone application Motor Control Fig. 12. Motor Control Schematics [7,8] 7

11 We implemented two motors on our boat: two motors can move back and forth with commanded direction. All motors receive signals from the microcontroller regarding each of their direction and speed. Each motor will be connected to two output pins of motor control driver (l293d), and the output voltage from microcontroller will be connected to two input pins of the motor control driver. Each pin will regulate the motor s direction of operation Prototype Fig. 13. Prototype with an Arduino Uno Before we implement our circuit design into printed circuit board, we examined the functionality of our design as a whole on a breadboard. Instead of using Atmega328p chip alone, we used Arduino Uno as our microcontroller for simplification of the prototype Printed Circuit Board Design Fig. 14. Complete Printed Circuit Board using Eagle CAD 8

12 Upon confirmation of our design on the breadboard, we designed our printed circuit board(pcb) using Eagle CAD as shown in the figure above. The width of the traces were determined based on each component s current consumption. For example, the trace coming out of the 9V battery has width of 20 mils, traces for motor drive and motors have 15 mils of width, proximity sensor and other communication modules have 10 mils, and traces for digital or analog signal have only 5 mils of width.[13] Assembly Fig. 15. Complete Printed Circuit Board (Left) and Implementation on the boat As we progress soldering of components on the PCB, performance test against individual parts was done, to verify the completeness of the soldering. Subsequently, we programmed our microcontroller to upload our code through the USB port. 9

13 3. Design Details and Verification 3.1 Voltage Regulator Fig. 16. Actual Output Voltage from the Voltage Regulator Voltage regulator converts 9V voltage from the battery into 5V despite changes in input voltage from the battery. From this test, we verified the limit of the voltage regulator in order to decide the optimal voltage to notify the user for low battery. Starting from 9V to 2V of input voltage, we observed the output voltage from the voltage regulator and it lost its consistency at 6.6V of input voltage as shown in the graph. Based on this result, we decided to notify the user once the input voltage drops to 7V. 3.2 Proximity Sensor Fig. 17. Experimental Setup and test result of the Proximity Sensor To test and calibrate the proximity sensor, we fixed the sensor and a ruler as shown. By varying the distance of a white paper from the sensor, the output voltage from the sensor was measured. The graph shows the measured output voltage depending on the distance from the white paper. 10

14 The result showed very similar result with the graph in Figure 6. Since we wanted to stop the boat before it collides with an object and to convert the output voltage to distance easily, a linear fit on a stable region was done as shown in the graph. Based on the equation and the actual calibration, we decided to stop the motors no lower than 15 cm of detection distance. 3.3 Power consumption Fig. 18. Table of Milliamp-Hours Capacity of Energizer522 [12] Component Part Number Voltage Current Count Microcontroller atmega328p 5V 0.2mA 1 Bluetooth module hc-06 5V 30mA 1 GPS module adafruit-746 5V 20mA 1 Motor Drive l293d 5V 0.2uA 1 Motor ppn7pa12c1 3V 80mA 2 Proximity gp2y0a21yk0f 5V 30mA 1 Total mA Table : Total Power Consumption of the Boat Based on the provided datasheet of the electrical components and our intend of use, the power consumption of each component is calculated as shown above. According to the milliamp-hours capacity from Energizer, the estimated capacity of their 9V battery is about 400mAh, assuming that our system has about 240 ma of current discharge [11]. We can simply estimate the hours of operation of the boat with the following information: Hours of operation = Milliamps_hours_capcity Discharge 11 = 400mAh = hours (Eqn. 1) 240.2mA

15 The result suggests that the boat will last about 1.67 hours. However, considering that the boat will have varying velocity over time of use, it is expected to run about 2 hours from this calculation based on average usage. 3.4 Flow Chart Fig. 19. Software Flow Chart Our software revolves around the Bluetooth communication and processing the sensor data for motor control. The software will continuously check the state of the boat and incoming signals from the user interface. If there is a response from the user interface, the boat will change its movement based on the following commands from the application. If there is any response from the boat including distance or battery warnings, the caution will show up on the mobile application. The microcontroller should keep check on battery capacity. If there are irrelevant values, it should send warning signals to the application. If there is any signal from the smartphone application, we have to check if it is about the direction of the boat. If the data is in align with the direction of the boat, it should control the motor movement according to the data. The program also should keep check if there are any obstacles in front of the boat. If there is any obstacle detected from the proximity sensor, it should stop its movement on previous direction. The microcontroller should keep commanding change of direction until there are no obstacles detected in front of the boat. After ensuring that there is no any obstacle in front of the boat, the 12

16 boat will move as it once was commanded to do until a new command signal from the user interface is conveyed. 3.5 User Interface Fig. 20. Flow Chart for Android Application (Left) Fig. 21. User Interface Design for Android Application (Right) Instead of the conventional remote controller, we will be developing a smartphone application to operate the boat. Because smartphones are universally used in contemporary society, controlling the boat with it will be as convenient and entertaining as playing a game on the smartphone itself. Figure 21 above displays the user interface of our Android application. First four buttons showing up,down,left and right are directional commands for the boat. The four sequential textview provide information of Bluetooth communication and Proximity sensor and Battery status of the boat. The RX textview show every lines that microcontroller on the boat send through Bluetooth module. It indicates directional command and battery remaining and proximity sensor warning of the boat. Another four buttons below are for Bluetooth connection. BLUETOOTH ON and BLUETOOTH OFF buttons are to turn on and off the Bluetooth mode of smartphone. SHOW PAIRED DEVICES will appear previously paired devices via Bluetooth on the listview on the bottom of the application. Then DISCOVER NEW DEVICES button will appear currently available devices for Bluetooth connection. When the user touches directional buttons, the application will respond by sending a signal to move the boat in the corresponding direction via Bluetooth connection. For our application, we 13

17 send w for up, d for right, a for left and s for down. In the case that the boat is too close to an obstacle, PW (Proximity Warn) will appear on the textview below the directional buttons. When Proximity sensor doesn t detect any obstacle, the microcontroller will send PWE (Proximity Warn End) signal via Bluetooth to remove warning from Android application. Likewise, if the battery level of the boat is reaching low levels, BW (Battery Warn) will show up on the Android application so the possibility of losing connection with the boat is reduced significantly. 14

18 4. Cost 4.1 Labor Cost Engineer Hourly Rate Hours Invested per month Months Total in USD Yunyoung Roh $ $12000 Jungho Yi $ $ Parts Cost Item Part Number Cost(per Unit) Amount Total Cost Microcontroller atmega328p $ $ 1.39 GPS module adafruit-746 $ $39.95 Motor Controller l293d $ $ 3.46 UART interface ft232rl $ $ 4.5 Motor ppn7pa12c1 $ $ 3.9 5V regulator lp38690 $ $ 1.43 Bluetooth module hc-06 $ $ 4.99 Display driver lm3914 $ $ 1.95 USB path sua-140me $ $ 0.1 Diode $ $ 0.12 Green LED l1-0-g5th45-1 $ $ Ω Resistor cf1/2w-220k $ $ 0.02 Crystal cc5v-t1a $ $ uf Capacitor com $ $ nf Capacitor uvz1v100mdd1td $ $ nf Capacitor c805c104k5ractu $ $ kΩ Potentiometer com $ $

19 1kΩ Resistor 20J1K0 $ $ Ω Resistor 20J250E $ $ kΩ Resistor 20J2K5 $ $ kΩ Resistor cf1/4w103jrc $ $ V Battery Energizer522 $ $ 8.78 PCB N/A - 1 $9.2 Total $

20 5. Conclusion In a sentence, our project Smartphone-Controlled Toy Boat succeeded with a few flaws. The microcontroller successfully managed all the tasks that it was supposed to be handling, sensors and modules worked under microcontroller s commands. Android Application we made connected to the Bluetooth module, received and realized the commands the user wanted. The problems we have met were figured out except for the GPS and Bluetooth modules co-work. The GPS module and Bluetooth module work individually, but the GPS signal was not able to be transmitted through the Bluetooth module, which is still remaining as an uncertainty. An alternative way to solve this problem is using the Bluetooth signal strength to estimate the location of the boat, but this would not satisfy what we expect from the GPS module. However, since it is an issue of software, not hardware, we believe that we could have been able to solve this problem if we were given enough time to debug the issue. In the future, we expect to improve our boat with better User Interface for continuous and simultaneous movement of the boat, as we re sending one command of movement at a time for now. In addition, instead of having two motors, combination of a motor and direction lever would be more favorable in terms of the energy efficiency of the project. The IEEE Code of Ethics suggest several guidelines which must be applied to our project. Even though we think our project is deemed safe, it is worth keeping these rules in mind by going through all the clauses one by one. Clauses #1 and #9 state that decisions should be made consistently with the safety, health, and welfare of the public and to disclose hazardous factors promptly that might endanger the public or the environment[4]. Potential hazards in our project could be the case in which the boat becomes submerged, potentially contaminating the body of water with materials such as lead from the PCB or chemical compounds from batteries. In order to avoid such chances of contamination, the components of the boat should be properly sealed to prevent leakage. Clauses #2 and #3 state that we should be honest and realistic in stating claims based on existing data and to avoid conflicts of interests whenever possible [4], and we acknowledge that all the information and claims stated in this document must be made based on available data, and there will be no conflicts of interest, by assisting colleagues and co-workers as described in #10 of the Code. In addition, we must not engage in any acts of hate crime or discrimination based on race, religion, or gender [4]. The motive is our project is founded on the basis of cooperating with others, which satisfies #8. Moreover, being honest in stating claims of #3 can be related to the #4 as well because both accepting and suggesting bribery in all its forms [4] stated in #4 is deceit, which is against providing honest and realistic in stating claims. As mentioned in the Objective and Background, we are here to apply more advanced technology to the outdated technology, which applies to the #5 of the Code that states that we should improve the understanding of technology and apply it appropriately [4]. Our effort to accomplish this project, therefore, includes #6, and #7 of the IEEE Code of Ethics as well. As we will be working on this project by consistently contacting and obtaining advices from the ECE 445 course staff, seeking and accepting criticisms of our work [4] is an essential stepping stone of this project. 17

21 6. Citation [1] Arduino Microcontroller. Atmega328/p Data Sheet, [online]. Availabe: [2] Bluetooth Module. HC Serial Bluetooth Products User Instructional Manual. [online]. Available: [3] GPS. Adafruit-746, [online]. Availabe: [4] Ieee.org. (2017). IEEE Code of Ethics [online]. Availabe: [5] LM3914 LED Drivers. [online]. Available: [6] Motor Controller. L293D Quadruple Half-H Drivers,2016. [online]. Availabe: [7] Motor. m260. [online]. Available: [8] Proximity Sensor. GP2Y0A21YK0F, [online]. Available: [9] USB UART. FT232R USB UART IC Datasheet, [online]. Availabe: [10] Trace width Website Calculator [online]available: [11] Voltage Regulator(5V). LP38690,LP38692, [online]. Available: [12] 9V battery. Energizer 522. [online]. Available: 18

22 Appendix A Requirements and Verification Table Component Requirement(s) Verification Microcontroller (17 points) 1. Microcontroller must use V voltage supply and output 0-0.5V when 20mA is used (5 points) 2. Microcontroller reads data from sensor and modules. (5 points) 3. The software on our microcontroller controls the boat. (7 points) 1. Verification for Requirement 1 a. Connect microcontroller to a 4, 4.5, 5, and 5.5V source from voltage regulator. b. Measure and record microcontroller current drawn for variable voltages and decide which voltage would draw a current of 20mA. 2. Verification for Requirement 2 a. Connect microcontroller as shown above in main control board schematics, so the board can update software and read sensor. b. Connect a sensor or module to microcontroller pins and open Software IDE to check if microcontroller registers any data from it. 3. Verification for Requirement 3 a. Program software for specific movements such as moving right, back, or straight. b. Upload the program into micro controller. c. Use voltmeter to check if corresponding output voltage is on pins. d. Check if motors are moving as microcontroller is programmed and if the boat is correctly controlled by it. 19

23 GPS Module (5 points) Proximity Sensor (5 points) Bluetooth Module (11 points) 1. GPS module requires a 3.3-5V voltage supply and must draw 20mA during navigation. (2 point) 2. GPS module shall provide the boat s location to microcontroller. (3 points) 1. Proximity sensor requires V of supplied voltage.( 2 points) 2. The sensor should indicate obstacles within a 10cm in front of the boat and send the output voltage corresponding to distance to obstacles to microcontroller. (3 points) 1. The bluetooth module requires V as supply voltage and outputs V. (1 points) 2. The bluetooth module should accept data from microcontroller and send data to smartphone application in 20m. (10 points) 1. Verification for Requirement 1 a. Connect GPS module to 3.3, 4, and 4.5 voltage source and record current drawn. b. Indicate which voltage draws 20mA current. 2. Verification for Requirement 2 a. Connect GPS module to UNO board (a built-in Arduino board for testing purposes), which is connected to supply voltage and LCD. b. Upload software to UNO board so it displays data from GPS module to LCD. 1. Verification for Requirement 1 a. Use Voltmeter and check voltage between ground and input voltage pin of the sensor. 2. Verification for Requirement 2 a. Connect voltmeter to Vout pin of the sensor and check the output voltage corresponding to distance from obstacles. b. Check if there is any difference in output voltage as its distance from obstacles changes. c. If there is any change, report the tuple data of distance and output voltage. 1. Verification for Requirement 1 a. Use voltmeter to check input and output voltage on the module. 20

24 2. Verification for Requirement 2 a. Setup breadboard that connects microcontroller, bluetooth module and a led. b. Make temporary android application with one button with bluetooth connection. c. Upload software to microcontroller that can turn on and off the led based on bluetooth signal from the phone. d. If above functionality is available, check signal capacity depends on the distance between bluetooth module and smartphone. e. Check distance from 1m,2m...20m and record signal strength. Power Supply (7 points) 1. Battery shall provide 9V of DC voltage with at least 2 hours of uptime. 2. Display driver shall present the percentage of battery capacity as it dwindles. 1. Verification for Requirement 1 a. Measure the voltage of the battery with voltmeter and confirm that the value is 9V±0.1V. b. After connecting all the components, turn on the boat and run it for 2 hours. c. Measure the voltage of the battery again, ensuring that the value is greater than 5V±0.1V 2. Verification for Requirement 2. Connect display driver to 10 segment LED bar, potentiometer, resistor and supply voltage. a. Change supply voltage value from 9 to 0V using power supply. b. Check if corresponding LED is on while varying the supply voltage. 21

25 Android Application (5 points) 1. The Android application offers user-friendly interface to customers. (1 point) 2. The Android application shall send data to microcontroller for boat control. (2 points) 3. The Android application shall accept data of boat from microcontroller to notify users the status of the boat. (2 points) 1. Verification for Requirement 1 a. Open application in smartphone and check if the application functions as user toggles any changes on it. 2. Verification for Requirement 2 a. Use voltmeter to check output voltage from microcontroller to motor controller. b. Check if the output voltage of microcontroller increases as user toggles a direction button on application. 3. Verification for Requirement 3 a. Make a mock application that only presents raw data of sensor on the boat. b. Change the boat s position and place an object in front of the boat. c. Check if the application is showing corresponding data of the boat on the screen. 22

26 Appendix B Arduino Code #include <SoftwareSerial.h> #include <Adafruit_GPS.h> #define PROXIMITY A2 #define BATTERY A3 #define MOTORL_NEG 6 #define MOTORL_POS 9 #define MOTORR_NEG 3 #define MOTORR_POS 5 #define BLTH_TX 10 #define BLTH_RX 7 #define GPS_TX 2 #define GPS_RX 4 SoftwareSerial BT(BLTH_TX,BLTH_RX); //TX, RX respetively SoftwareSerial GPSSerial(GPS_RX, GPS_TX); unsigned int counter =0; Adafruit_GPS GPS(&GPSSerial); #define GPSECHO true boolean usinginterrupt = false; void useinterrupt(boolean); void setup() { Serial.begin(9600); BT.begin(9600); counter =0; Serial.println("Adafruit BLUETOOTH library basic test!"); BT.println("BT start"); GPS.begin(9600); Serial.println("Adafruit GPS library basic test!"); GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA); GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); GPS.sendCommand(PGCMD_ANTENNA); useinterrupt(true); delay(1000); GPSSerial.println(PMTK_Q_RELEASE); pinmode(motorl_neg, OUTPUT); pinmode(motorl_pos, OUTPUT); pinmode(motorr_neg, OUTPUT); pinmode(motorr_pos, OUTPUT); pinmode(proximity,input); pinmode(battery,input); delay(100); // // SIGNAL(TIMER0_COMPA_vect) { char c = GPS.read(); 23

27 #ifdef UDR0 if (GPSECHO) if (c) UDR0 = c; #endif void useinterrupt(boolean v) { if (v) { OCR0A = 0xAF; TIMSK0 = _BV(OCIE0A); usinginterrupt = true; else { TIMSK0 &= ~_BV(OCIE0A); usinginterrupt = false; char command ; uint32_t timer = millis(); void loop() { int sensorv= analogread(battery); float volt = sensorv * (5.0/1024); int irsensorv=analogread(proximity); float ir = irsensorv*(5.00/1024); float distance = -(ir-3)/2.6*79+1; if (timer > millis()) timer = millis(); if (millis() - timer > 1500) { timer = millis(); int sensorv= analogread(battery); float volt = sensorv * (5.0/1024); int irsensorv=analogread(proximity); float ir = irsensorv*(5.00/1024); float distance = -((ir-3)/5.2)*79+1; if(distance<20) { BT.println("PW"); analogwrite (MOTORL_NEG, 0); analogwrite (MOTORL_POS, 0); analogwrite (MOTORR_NEG, 0); analogwrite (MOTORR_POS, 0); if(distance>=20) { BT.println("PWE"); if(volt<3.5) { BT.println("BW"); 24

28 delay(100); delay(100); ////////////////////GPS if (! usinginterrupt) { char c = GPS.read(); if (GPSECHO) if (c) Serial.print(c); if (GPS.newNMEAreceived()) { if (!GPS.parse(GPS.lastNMEA())) return; if (millis() - timer > 2000) { timer = millis(); Serial.print("\nTime: "); Serial.print(GPS.hour, DEC); Serial.print(':'); Serial.print(GPS.minute, DEC); Serial.print(':'); Serial.print(GPS.seconds, DEC); Serial.print('.'); Serial.println(GPS.milliseconds); Serial.print("Date: "); Serial.print(GPS.day, DEC); Serial.print('/'); Serial.print(GPS.month, DEC); Serial.print("/20"); Serial.println(GPS.year, DEC); Serial.print("Fix: "); Serial.print((int)GPS.fix); Serial.print(" quality: "); Serial.println((int)GPS.fixquality); if (GPS.fix) { Serial.print("Location: "); Serial.print(GPS.latitude, 4); Serial.print(GPS.lat); Serial.print(", "); Serial.print(GPS.longitude, 4); Serial.println(GPS.lon); Serial.print("Location (in degrees, works with Google Maps): "); Serial.print(GPS.latitudeDegrees, 4); Serial.print(", "); Serial.println(GPS.longitudeDegrees, 4); Serial.print("Speed (knots): "); Serial.println(GPS.speed); Serial.print("Angle: "); Serial.println(GPS.angle); Serial.print("Altitude: "); Serial.println(GPS.altitude); Serial.print("Satellites: "); Serial.println((int)GPS.satellites); void forward() 25

29 { analogwrite (MOTORL_NEG, 0); analogwrite (MOTORL_POS, 100); analogwrite (MOTORR_NEG, 0); analogwrite (MOTORR_POS, 100); void right() { analogwrite (MOTORL_NEG, 0); analogwrite (MOTORL_POS, 100); analogwrite (MOTORR_NEG, 0); analogwrite (MOTORR_POS, 0); void left() { analogwrite (MOTORL_NEG, 0); analogwrite (MOTORL_POS, 0); analogwrite (MOTORR_NEG, 0); analogwrite (MOTORR_POS, 100); void mstop() { analogwrite (MOTORL_NEG, 0); analogwrite (MOTORL_POS, 0); analogwrite (MOTORR_NEG, 0); analogwrite (MOTORR_POS, 0); 26

30 Appendix C Android Application Code <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="uiuc.a445_final.mainactivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignparenttop="true" android:layout_alignparentstart="true"> <Button android:text="up" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/up" /> <Button android:text="down" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/down" /> <Button android:text="left" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/left" /> <Button android:text="right" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/right" /> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_margintop="10dp" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.1" android:text="rx:" android:ellipsize="end" android:maxlines="1" android:textstyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.9" android:ellipsize="end" android:maxlines="1" android:id="@+id/readbuffer" 27

31 android:layout_centerhorizontal="true" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.1" android:text="status:" android:ellipsize="end" android:maxlines="1" android:textstyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.9" android:ellipsize="end" android:maxlines="1" android:layout_centerhorizontal="true" /> </LinearLayout> <TextView android:text="battery Status:" android:layout_width="102dp" android:layout_height="wrap_content" android:autotext="false" android:textstyle="bold" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textcolor="#ff0000" /> <TextView android:text="proximity Status:" android:layout_width="match_parent" android:layout_height="wrap_content" android:textstyle="bold" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textcolor="#0000ff" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="bluetooth ON" android:layout_centervertical="true" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="bluetooth OFF" /> 28

32 <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="show paired Devices" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="discover New Devices" /> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:choicemode="singlechoice" /> </LinearLayout> <GridLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignparenttop="true" android:layout_alignparentstart="true"> </GridLayout> </RelativeLayout> package uiuc.a445_final; import android.bluetooth.bluetoothadapter; import android.bluetooth.bluetoothdevice; import android.bluetooth.bluetoothsocket; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.content.intentfilter; import android.content.pm.packagemanager; import android.os.bundle; import android.os.handler; import android.os.systemclock; import android.support.v4.app.activitycompat; import android.support.v4.content.contextcompat; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.util.log; import android.view.view; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.button; import android.widget.checkbox; import android.widget.listview; import android.widget.textview; import android.widget.toast; 29

33 import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.io.unsupportedencodingexception; import java.lang.reflect.method; import java.util.set; import java.util.uuid; public class MainActivity extends AppCompatActivity { private TextView mbluetoothstatus; private TextView mreadbuffer; private Button mscanbtn; private Button moffbtn; private Button mlistpaireddevicesbtn; private Button mdiscoverbtn; private BluetoothAdapter mbtadapter; private Set<BluetoothDevice> mpaireddevices; private ArrayAdapter<String> mbtarrayadapter; private ListView mdeviceslistview; private CheckBox mled1; private Button btnup; private Button btndown; private Button btnleft; private Button btnright; private TextView batterycheck; private TextView proximitycheck; String previousmessage = null; private final String TAG = MainActivity.class.getSimpleName(); private Handler mhandler; private ConnectedThread mconnectedthread; private BluetoothSocket mbtsocket = null; private static final UUID BTMODULEUUID = UUID.fromString(" F9B34FB"); private final static int REQUEST_ENABLE_BT = 1; private final static int MESSAGE_READ = 2; private final static int CONNECTING_STATUS = protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); mbluetoothstatus = (TextView)findViewById(R.id.bluetoothStatus); mreadbuffer = (TextView) findviewbyid(r.id.readbuffer); mscanbtn = (Button)findViewById(R.id.scan); moffbtn = (Button)findViewById(R.id.off); mdiscoverbtn = (Button)findViewById(R.id.discover); mlistpaireddevicesbtn = (Button)findViewById(R.id.PairedBtn); batterycheck = (TextView)findViewById(R.id.batteryCheck); proximitycheck = (TextView)findViewById(R.id.proximityCheck); btnup = (Button) findviewbyid(r.id.up); btndown = (Button) findviewbyid(r.id.down); btnleft = (Button) findviewbyid(r.id.left); btnright = (Button) findviewbyid(r.id.right); mbtarrayadapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1); mbtadapter = BluetoothAdapter.getDefaultAdapter(); mdeviceslistview = (ListView)findViewById(R.id.devicesListView); 30

34 mdeviceslistview.setadapter(mbtarrayadapter); mdeviceslistview.setonitemclicklistener(mdeviceclicklistener); if(contextcompat.checkselfpermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)!= PackageManager.PERMISSION_GRANTED) ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, 1); mhandler = new Handler(){ public void handlemessage(android.os.message msg){ if(msg.what == MESSAGE_READ){ String readmessage = null; try { readmessage = new String((byte[]) msg.obj, "UTF-8"); previousmessage = readmessage; if(readmessage.equals("bw")) { batterycheck.settext("battery is too low!!!"); if(readmessage.equals("pw")) { proximitycheck.settext("obstacle detected!!!"); if(readmessage.equals("pwe")) { proximitycheck.settext(""); catch (UnsupportedEncodingException e) { e.printstacktrace(); mreadbuffer.settext(readmessage); ; if(msg.what == CONNECTING_STATUS){ if(msg.arg1 == 1) mbluetoothstatus.settext("connected to Device: " + (String)(msg.obj)); else mbluetoothstatus.settext("connection Failed"); if (mbtarrayadapter == null) { mbluetoothstatus.settext("status: Bluetooth not found"); Toast.makeText(getApplicationContext(),"Bluetooth device not found!",toast.length_short).show(); else { btnup.setonclicklistener(new public void onclick(view v){ if(mconnectedthread!= null) mconnectedthread.write("w"); ); btndown.setonclicklistener(new 31

35 public void onclick(view v){ if(mconnectedthread!= null) mconnectedthread.write("s"); ); btnleft.setonclicklistener(new public void onclick(view v){ if(mconnectedthread!= null) mconnectedthread.write("a"); ); btnright.setonclicklistener(new public void onclick(view v){ if(mconnectedthread!= null) mconnectedthread.write("d"); ); if( mconnectedthread!= null && previousmessage.equals("bt Start")) { if(mconnectedthread!= null) mconnectedthread.write("s"); mscanbtn.setonclicklistener(new View.OnClickListener() public void onclick(view v) { bluetoothon(v); ); moffbtn.setonclicklistener(new public void onclick(view v){ bluetoothoff(v); ); mlistpaireddevicesbtn.setonclicklistener(new View.OnClickListener() public void onclick(view v){ listpaireddevices(v); ); mdiscoverbtn.setonclicklistener(new public void onclick(view v){ discover(v); ); private void bluetoothon(view view){ if (!mbtadapter.isenabled()) { Intent enablebtintent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startactivityforresult(enablebtintent, REQUEST_ENABLE_BT); 32

36 mbluetoothstatus.settext("bluetooth enabled"); Toast.makeText(getApplicationContext(),"Bluetooth turned on",toast.length_short).show(); else{ Toast.makeText(getApplicationContext(),"Bluetooth is already on", protected void onactivityresult(int requestcode, int resultcode, Intent Data){ if (requestcode == REQUEST_ENABLE_BT) { if (resultcode == RESULT_OK) { mbluetoothstatus.settext("enabled"); else mbluetoothstatus.settext("disabled"); private void bluetoothoff(view view){ mbtadapter.disable(); mbluetoothstatus.settext("bluetooth disabled"); Toast.makeText(getApplicationContext(),"Bluetooth turned Off", Toast.LENGTH_SHORT).show(); private void discover(view view){ if(mbtadapter.isdiscovering()){ mbtadapter.canceldiscovery(); Toast.makeText(getApplicationContext(),"Discovery stopped",toast.length_short).show(); else{ if(mbtadapter.isenabled()) { mbtarrayadapter.clear(); mbtadapter.startdiscovery(); Toast.makeText(getApplicationContext(), "Discovery started", Toast.LENGTH_SHORT).show(); registerreceiver(blreceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); else{ Toast.makeText(getApplicationContext(), "Bluetooth not on", Toast.LENGTH_SHORT).show(); final BroadcastReceiver blreceiver = new BroadcastReceiver() public void onreceive(context context, Intent intent) { String action = intent.getaction(); if(bluetoothdevice.action_found.equals(action)){ BluetoothDevice device = intent.getparcelableextra(bluetoothdevice.extra_device); mbtarrayadapter.add(device.getname() + "\n" + device.getaddress()); mbtarrayadapter.notifydatasetchanged(); ; private void listpaireddevices(view view){ mpaireddevices = mbtadapter.getbondeddevices(); 33

37 if(mbtadapter.isenabled()) { for (BluetoothDevice device : mpaireddevices) mbtarrayadapter.add(device.getname() + "\n" + device.getaddress()); Toast.makeText(getApplicationContext(), "Show Paired Devices", Toast.LENGTH_SHORT).show(); else Toast.makeText(getApplicationContext(), "Bluetooth not on", Toast.LENGTH_SHORT).show(); private AdapterView.OnItemClickListener mdeviceclicklistener = new AdapterView.OnItemClickListener() { public void onitemclick(adapterview<?> av, View v, int arg2, long arg3) { if(!mbtadapter.isenabled()) { Toast.makeText(getBaseContext(), "Bluetooth not on", Toast.LENGTH_SHORT).show(); return; mbluetoothstatus.settext("connecting..."); String info = ((TextView) v).gettext().tostring(); final String address = info.substring(info.length() - 17); final String name = info.substring(0,info.length() - 17); new Thread() { public void run() { boolean fail = false; BluetoothDevice device = mbtadapter.getremotedevice(address); try { mbtsocket = createbluetoothsocket(device); catch (IOException e) { fail = true; Toast.makeText(getBaseContext(), "Socket creation failed", Toast.LENGTH_SHORT).show(); try { mbtsocket.connect(); catch (IOException e) { try { fail = true; mbtsocket.close(); mhandler.obtainmessage(connecting_status, -1, -1).sendToTarget(); catch (IOException e2) { Toast.makeText(getBaseContext(), "Socket creation failed", Toast.LENGTH_SHORT).show(); if(fail == false) { mconnectedthread = new ConnectedThread(mBTSocket); mconnectedthread.start(); ; mhandler.obtainmessage(connecting_status, 1, -1, name).sendtotarget();.start(); 34

38 private BluetoothSocket createbluetoothsocket(bluetoothdevice device) throws IOException { try { final Method m = device.getclass().getmethod("createinsecurerfcommsockettoservicerecord", UUID.class); return (BluetoothSocket) m.invoke(device, BTMODULEUUID); catch (Exception e) { Log.e(TAG, "Could not create Insecure RFComm Connection",e); return device.createrfcommsockettoservicerecord(btmoduleuuid); private class ConnectedThread extends Thread { private final BluetoothSocket mmsocket; private final InputStream mminstream; private final OutputStream mmoutstream; public ConnectedThread(BluetoothSocket socket) { mmsocket = socket; InputStream tmpin = null; OutputStream tmpout = null; try { tmpin = socket.getinputstream(); tmpout = socket.getoutputstream(); catch (IOException e) { mminstream = tmpin; mmoutstream = tmpout; public void run() { byte[] buffer = new byte[1024]; int bytes; while (true) { try { bytes = mminstream.available(); if(bytes!= 0) { buffer = new byte[1024]; SystemClock.sleep(100); bytes = mminstream.available(); bytes = mminstream.read(buffer, 0, bytes); mhandler.obtainmessage(message_read, bytes, -1, buffer).sendtotarget(); catch (IOException e) { e.printstacktrace(); break; public void write(string input) { byte[] bytes = input.getbytes(); try { mmoutstream.write(bytes); catch (IOException e) { 35

39 public void cancel() { try { mmsocket.close(); catch (IOException e) { 36

40 1

// MainActivity.java ; Noah Spenser; Senior Design; Diabetic Breathalyzer

// MainActivity.java ; Noah Spenser; Senior Design; Diabetic Breathalyzer // MainActivity.java ; Noah Spenser; Senior Design; Diabetic Breathalyzer package com.noahspenser.seniordesign; import android.os.parcel; import android.os.parcelable; import android.support.v7.app.appcompatactivity;

More information

MAD ASSIGNMENT NO 3. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.

MAD ASSIGNMENT NO 3. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MAD ASSIGNMENT NO 3 Submitted by: Rehan Asghar BSSE 7 15126 AUGUST 25, 2017 SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MainActivity.java File package com.example.tutorialspoint; import android.manifest;

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Tip: Switching UIs THE PROBLEM How to switch from one UI to another Each UI is associated with a distinct class that controls it Solution shown: two UIs,

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Managing Screen Orientation ORIENTATIONS Portrait Landscape Reverse portrait Reverse landscape ON REVERSE PORTRAIT Android: all four orientations are

More information

API Guide for Gesture Recognition Engine. Version 2.0

API Guide for Gesture Recognition Engine. Version 2.0 API Guide for Gesture Recognition Engine Version 2.0 Table of Contents Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket Library... 4 Project

More information

Lampiran Program : Res - Layout Activity_main.xml

More information

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 2

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 2 Workshop 1. Compare different layout by using Change Layout button (Page 1 5) Relative Layout Linear Layout (Horizontal) Linear Layout (Vertical) Frame Layout 2. Revision on basic programming skill - control

More information

M.A.D ASSIGNMENT # 2 REHAN ASGHAR BSSE 15126

M.A.D ASSIGNMENT # 2 REHAN ASGHAR BSSE 15126 M.A.D ASSIGNMENT # 2 REHAN ASGHAR BSSE 15126 Submitted to: Sir Waqas Asghar MAY 23, 2017 SUBMITTED BY: REHAN ASGHAR Intent in Android What are Intent? An Intent is a messaging object you can use to request

More information

private static String TAG = BluetoothUtils.class.getSimpleName();

private static String TAG = BluetoothUtils.class.getSimpleName(); import android.bluetooth.bluetoothadapter; import android.bluetooth.bluetoothdevice; import android.bluetooth.bluetoothsocket; import android.content.context; import android.content.intent; import android.util.log;

More information

API Guide for Gesture Recognition Engine. Version 1.1

API Guide for Gesture Recognition Engine. Version 1.1 API Guide for Gesture Recognition Engine Version 1.1 Table of Contents Table of Contents... 2 Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket

More information

Arrays of Buttons. Inside Android

Arrays of Buttons. Inside Android Arrays of Buttons Inside Android The Complete Code Listing. Be careful about cutting and pasting.

More information

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE)

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) Network Connection Web Service K Candra Brata andra.course@gmail.com Mobille App Lab 2015-2016 Network Connection http://developer.android.com/training/basics/network-ops/connecting.html

More information

... 1... 2... 2... 3... 3... 4... 4... 5... 5... 6... 6... 7... 8... 9... 10... 13... 14... 17 1 2 3 4 file.txt.exe file.txt file.jpg.exe file.mp3.exe 5 6 0x00 0xFF try { in.skip(9058); catch (IOException

More information

Fragment Example Create the following files and test the application on emulator or device.

Fragment Example Create the following files and test the application on emulator or device. Fragment Example Create the following files and test the application on emulator or device. File: AndroidManifest.xml

More information

Statistics http://www.statista.com/topics/840/smartphones/ http://www.statista.com/topics/876/android/ http://www.statista.com/statistics/271774/share-of-android-platforms-on-mobile-devices-with-android-os/

More information

EXPERIMENT 7 Please visit https://www.arduino.cc/en/reference/homepage to learn all features of arduino before you start the experiments

EXPERIMENT 7 Please visit https://www.arduino.cc/en/reference/homepage to learn all features of arduino before you start the experiments EXPERIMENT 7 Please visit https://www.arduino.cc/en/reference/homepage to learn all features of arduino before you start the experiments TEMPERATURE MEASUREMENT AND CONTROL USING LM35 Purpose: To measure

More information

Android Programs Day 5

Android Programs Day 5 Android Programs Day 5 //Android Program to demonstrate the working of Options Menu. 1. Create a New Project. 2. Write the necessary codes in the MainActivity.java to create OptionMenu. 3. Add the oncreateoptionsmenu()

More information

Basic GUI elements - exercises

Basic GUI elements - exercises Basic GUI elements - exercises https://developer.android.com/studio/index.html LIVE DEMO Please create a simple application, which will be used to calculate the area of basic geometric figures. To add

More information

Arduino ADK Rev.3 Board A000069

Arduino ADK Rev.3 Board A000069 Arduino ADK Rev.3 Board A000069 Overview The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface to connect with Android based phones, based on the MAX3421e

More information

Arduino Uno. Arduino Uno R3 Front. Arduino Uno R2 Front

Arduino Uno. Arduino Uno R3 Front. Arduino Uno R2 Front Arduino Uno Arduino Uno R3 Front Arduino Uno R2 Front Arduino Uno SMD Arduino Uno R3 Back Arduino Uno Front Arduino Uno Back Overview The Arduino Uno is a microcontroller board based on the ATmega328 (datasheet).

More information

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) In this exercise, we will create a simple Android application that uses IBM Bluemix Cloudant NoSQL DB. The application

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should

More information

Intents. Your first app assignment

Intents. Your first app assignment Intents Your first app assignment We will make this. Decidedly lackluster. Java Code Java Code XML XML Preview XML Java Code Java Code XML Buttons that work

More information

EMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches

EMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches EMBEDDED SYSTEMS PROGRAMMING 2016-17 UI Specification: Approaches UIS: APPROACHES Programmatic approach: UI elements are created inside the application code Declarative approach: UI elements are listed

More information

ARDUINO UNO REV3 Code: A000066

ARDUINO UNO REV3 Code: A000066 ARDUINO UNO REV3 Code: A000066 The UNO is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can

More information

Rear Distance Detection with Ultrasonic Sensors Project Report

Rear Distance Detection with Ultrasonic Sensors Project Report Rear Distance Detection with Ultrasonic Sensors Project Report 11.29.2017 Group #6 Farnaz Behnia Kimia Zamiri Azar Osaze Shears ECE 511: Microprocessors Fall 2017 1 Table of Contents 1. Abstract 3 2. Motivation

More information

Android Networking and Connec1vity

Android Networking and Connec1vity Android Networking and Connec1vity Android and Networking Smartphones in general and Android in par1cular provide several means of being connected Telephony connec1ons for voice communica1on, the primary

More information

ANDROID PROGRAMS DAY 3

ANDROID PROGRAMS DAY 3 ANDROID PROGRAMS DAY 3 //Android project to navigate from first page to second page using Intent Step 1: Create a new project Step 2: Enter necessary details while creating project. Step 3: Drag and drop

More information

MAD ASSIGNMENT NO 2. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.

MAD ASSIGNMENT NO 2. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MAD ASSIGNMENT NO 2 Submitted by: Rehan Asghar BSSE 7 15126 AUGUST 25, 2017 SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. Android Widgets There are given a lot of android widgets with simplified

More information

ARDUINO UNO REV3 SMD Code: A The board everybody gets started with, based on the ATmega328 (SMD).

ARDUINO UNO REV3 SMD Code: A The board everybody gets started with, based on the ATmega328 (SMD). ARDUINO UNO REV3 SMD Code: A000073 The board everybody gets started with, based on the ATmega328 (SMD). The Arduino Uno SMD R3 is a microcontroller board based on the ATmega328. It has 14 digital input/output

More information

ARDUINO MEGA ADK REV3 Code: A000069

ARDUINO MEGA ADK REV3 Code: A000069 ARDUINO MEGA ADK REV3 Code: A000069 OVERVIEW The Arduino MEGA ADK is a microcontroller board based on the ATmega2560. It has a USB host interface to connect with Android based phones, based on the MAX3421e

More information

ARDUINO MICRO WITHOUT HEADERS Code: A000093

ARDUINO MICRO WITHOUT HEADERS Code: A000093 ARDUINO MICRO WITHOUT HEADERS Code: A000093 Arduino Micro is the smallest board of the family, easy to integrate it in everyday objects to make them interactive. The Micro is based on the ATmega32U4 microcontroller

More information

ARDUINO MEGA 2560 REV3 Code: A000067

ARDUINO MEGA 2560 REV3 Code: A000067 ARDUINO MEGA 2560 REV3 Code: A000067 The MEGA 2560 is designed for more complex projects. With 54 digital I/O pins, 16 analog inputs and a larger space for your sketch it is the recommended board for 3D

More information

Bluetooth. Mobila applikationer och trådlösa nät HI /3/2013. Lecturer: Anders Lindström,

Bluetooth. Mobila applikationer och trådlösa nät HI /3/2013. Lecturer: Anders Lindström, Mobila applikationer och trådlösa nät HI1033 Lecturer: Anders Lindström, anders.lindstrom@sth.kth.se Lecture 7 Today s topics Bluetooth NFC Bluetooth 1 Bluetooth Wireless technology standard for exchanging

More information

Android Workshop: Model View Controller ( MVC):

Android Workshop: Model View Controller ( MVC): Android Workshop: Android Details: Android is framework that provides java programmers the ability to control different aspects of smart devices. This interaction happens through the Android SDK (Software

More information

IME-100 ECE. Lab 3. Electrical and Computer Engineering Department Kettering University. G. Tewolde, IME100-ECE,

IME-100 ECE. Lab 3. Electrical and Computer Engineering Department Kettering University. G. Tewolde, IME100-ECE, IME-100 ECE Lab 3 Electrical and Computer Engineering Department Kettering University 3-1 1. Laboratory Computers Getting Started i. Log-in with User Name: Kettering Student (no password required) ii.

More information

EMBEDDED SYSTEMS PROGRAMMING Android Services

EMBEDDED SYSTEMS PROGRAMMING Android Services EMBEDDED SYSTEMS PROGRAMMING 2016-17 Android Services APP COMPONENTS Activity: a single screen with a user interface Broadcast receiver: responds to system-wide broadcast events. No user interface Service:

More information

AlphaBot2 robot building kit for Arduino

AlphaBot2 robot building kit for Arduino AlphaBot2 robot building kit for Arduino SKU 110060864 Description This AlphaBot2 robot kit is designed to use with an Arduino compatible board UNO PLUS. It features rich common robot functions including

More information

THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT

THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT LINE FOLLOWER FIVE LINE SENSORS FOR SCANNING WHITE OR BLACK LINE OBSTACLE AVOIDER TWO OBSTACLE SENSORS CAN DETECT OBSTACLES AND MEASURE DISTANCE BLUETOOTH CONTROL

More information

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S Overview Motivation Circuit Design and Arduino Architecture Projects Blink the LED Switch Night Lamp

More information

NAND/NOR Logic Gate Equivalent Training Tool Design Document. Team 34 TA: Xinrui Zhu ECE Fall Jeremy Diamond and Matthew LaGreca

NAND/NOR Logic Gate Equivalent Training Tool Design Document. Team 34 TA: Xinrui Zhu ECE Fall Jeremy Diamond and Matthew LaGreca NAND/NOR Logic Gate Equivalent Training Tool Design Document Team 34 TA: Xinrui Zhu ECE 445 - Fall 2017 Jeremy Diamond and Matthew LaGreca Table of Contents 1.0 INTRODUCTION 1.1 Objective 1.2 Background

More information

Homework 11: Reliability and Safety Analysis

Homework 11: Reliability and Safety Analysis ECE 477 Digital Systems Senior Design Project Rev 8/09 Homework 11: Reliability and Safety Analysis Team Code Name: ATV Group No. _3 Team Member Completing This Homework: Sebastian Hening E-mail Address

More information

Create Parent Activity and pass its information to Child Activity using Intents.

Create Parent Activity and pass its information to Child Activity using Intents. Create Parent Activity and pass its information to Child Activity using Intents. /* MainActivity.java */ package com.example.first; import android.os.bundle; import android.app.activity; import android.view.menu;

More information

MyDatabaseHelper. public static final String TABLE_NAME = "tbl_bio";

MyDatabaseHelper. public static final String TABLE_NAME = tbl_bio; Page 1 of 5 MyDatabaseHelper import android.content.context; import android.database.sqlite.sqliteopenhelper; class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DB_NAME = "friend_db";

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

ARDUINO LEONARDO ETH Code: A000022

ARDUINO LEONARDO ETH Code: A000022 ARDUINO LEONARDO ETH Code: A000022 All the fun of a Leonardo, plus an Ethernet port to extend your project to the IoT world. You can control sensors and actuators via the internet as a client or server.

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

Note. The above image and many others are courtesy of - this is a wonderful resource for designing circuits.

Note. The above image and many others are courtesy of   - this is a wonderful resource for designing circuits. Robotics and Electronics Unit 2. Arduino Objectives. Students will understand the basic characteristics of an Arduino Uno microcontroller. understand the basic structure of an Arduino program. know how

More information

User Guide v1.0. v1.0 Oct 1, This guide is only available in English Ce manuel est seulement disponible en Anglais

User Guide v1.0. v1.0 Oct 1, This guide is only available in English Ce manuel est seulement disponible en Anglais ROVER ShiELD User Guide v1.0 v1.0 Oct 1, 2014 This guide is only available in English Ce manuel est seulement disponible en Anglais Description The DFRobotShop Rover Shield is the ideal all in one shield

More information

Android - JSON Parser Tutorial

Android - JSON Parser Tutorial Android - JSON Parser Tutorial JSON stands for JavaScript Object Notation.It is an independent data exchange format and is the best alternative for XML. This chapter explains how to parse the JSON file

More information

E3B USER'S GUIDE. for QT310 / QT320 QProx IC evaluation and development Overview. Fast Start

E3B USER'S GUIDE. for QT310 / QT320 QProx IC evaluation and development Overview. Fast Start E3B USER'S GUIDE for QT310 / QT320 QProx IC evaluation and development Overview The E3B board works with Quantum s QT310 and QT320 QProx ICs. Either device can be inserted into the 8-pin DIP socket. QT310

More information

ARDUINO LEONARDO WITH HEADERS Code: A000057

ARDUINO LEONARDO WITH HEADERS Code: A000057 ARDUINO LEONARDO WITH HEADERS Code: A000057 Similar to an Arduino UNO, can be recognized by computer as a mouse or keyboard. The Arduino Leonardo is a microcontroller board based on the ATmega32u4 (datasheet).

More information

Data Persistence. Chapter 10

Data Persistence. Chapter 10 Chapter 10 Data Persistence When applications create or capture data from user inputs, those data will only be available during the lifetime of the application. You only have access to that data as long

More information

Goal: We want to build an autonomous vehicle (robot)

Goal: We want to build an autonomous vehicle (robot) Goal: We want to build an autonomous vehicle (robot) This means it will have to think for itself, its going to need a brain Our robot s brain will be a tiny computer called a microcontroller Specifically

More information

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator.

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator. Simple Android Application for Native Calculator Aim: To develop a Simple Android Application for Native Calculator. Procedure: Creating a New project: Open Android Stdio and then click on File -> New

More information

keyestudio Keyestudio MEGA 2560 R3 Board

keyestudio Keyestudio MEGA 2560 R3 Board Keyestudio MEGA 2560 R3 Board Introduction: Keyestudio Mega 2560 R3 is a microcontroller board based on the ATMEGA2560-16AU, fully compatible with ARDUINO MEGA 2560 REV3. It has 54 digital input/output

More information

Academic Year Annexure I. 1. Project Title: Color sensor based multiple line follower robot with obstacle detection

Academic Year Annexure I. 1. Project Title: Color sensor based multiple line follower robot with obstacle detection Academic Year 2015-16 Annexure I 1. Project Title: Color sensor based multiple line follower robot with obstacle detection TABLE OF CONTENTS 1.1 Abstract 2-2 1.2 Motivation 3-3 1.3 Objective 3-3 2.1 Block

More information

DIY Line Tracking Smart Car with AT89C2051

DIY Line Tracking Smart Car with AT89C2051 DIY Line Tracking Smart Car with AT89C2051 1. Introduction: A DIY Smart Car design involves mechanical structure, electronic based sensor principle, automatic control, and even knowledge of microcontroller

More information

Sanguino TSB. Introduction: Features:

Sanguino TSB. Introduction: Features: Sanguino TSB Introduction: Atmega644 is being used as CNC machine driver for a while. In 2012, Kristian Sloth Lauszus from Denmark developed a hardware add-on of Atmega644 for the popular Arduino IDE and

More information

IME-100 Interdisciplinary Design and Manufacturing

IME-100 Interdisciplinary Design and Manufacturing IME-100 Interdisciplinary Design and Manufacturing Introduction Arduino and Programming Topics: 1. Introduction to Microprocessors/Microcontrollers 2. Introduction to Arduino 3. Arduino Programming Basics

More information

Practical 1.ListView example

Practical 1.ListView example Practical 1.ListView example In this example, we show you how to display a list of fruit name via ListView. Android Layout file File : res/layout/list_fruit.xml

More information

ELET4133: Embedded Systems. Topic 15 Sensors

ELET4133: Embedded Systems. Topic 15 Sensors ELET4133: Embedded Systems Topic 15 Sensors Agenda What is a sensor? Different types of sensors Detecting sensors Example application of the accelerometer 2 What is a sensor? Piece of hardware that collects

More information

AUDIO AMPLIFIER PROJECT

AUDIO AMPLIFIER PROJECT Intro to Electronics 110 - Audio Amplifier Project AUDIO AMPLIFIER PROJECT In this project, you will learn how to master a device by studying all the parts and building it with a partner. Our test subject:

More information

Vienos veiklos būsena. Theory

Vienos veiklos būsena. Theory Vienos veiklos būsena Theory While application is running, we create new Activities and close old ones, hide the application and open it again and so on, and Activity can process all these events. It is

More information

Dynamically Create Admob Banner and Interstitial Ads

Dynamically Create Admob Banner and Interstitial Ads Dynamically Create Admob Banner and Interstitial Ads activity_main.xml file 0 0 0

More information

Arduino Based Speech Controlled Robot for Human Interactions

Arduino Based Speech Controlled Robot for Human Interactions Arduino Based Speech Controlled Robot for Human Interactions B. Sathish kumar 1, Dr. Radhika Baskar 2 1BE Scholar, Electronics and Communication Engineering, Saveetha School of Engineering, Kuthamakkam,

More information

Topics of Discussion

Topics of Discussion Reference CPET 565 Mobile Computing Systems CPET/ITC 499 Mobile Computing Fragments, ActionBar and Menus Part 3 of 5 Android Programming Concepts, by Trish Cornez and Richard Cornez, pubslihed by Jones

More information

ARDUINO MINI 05 Code: A000087

ARDUINO MINI 05 Code: A000087 ARDUINO MINI 05 Code: A000087 The Arduino Mini is a very compact version of the Arduino Nano without an on board USB to Serial connection The Arduino Mini 05 is a small microcontroller board originally

More information

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface.

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface. Introductory Medical Device Prototyping Arduino Part 1, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota Arduino Uno Power & Interface Reset Button USB Interface

More information

Button Code Kit. Assembly Instructions and User Guide. Single Button Code Entry System

Button Code Kit. Assembly Instructions and User Guide. Single Button Code Entry System Button Code Kit Single Button Code Entry System Assembly Instructions and User Guide Rev 1.0 December 2009 www.alan-parekh.com Copyright 2009 Alan Electronic Projects Inc. 1. Introduction... 4 1.1 Concept

More information

Thursday, September 15, electronic components

Thursday, September 15, electronic components electronic components a desktop computer relatively complex inside: screen (CRT) disk drive backup battery power supply connectors for: keyboard printer n more! Thursday, September 15, 2011 integrated

More information

Arduino Prof. Dr. Magdy M. Abdelhameed

Arduino Prof. Dr. Magdy M. Abdelhameed Course Code: MDP 454, Course Name:, Second Semester 2014 Arduino What is Arduino? Microcontroller Platform Okay but what s a Microcontroller? Tiny, self-contained computers in an IC Often contain peripherals

More information

RFID: Read and Display V2010. Version 1.1. Sept Cytron Technologies Sdn. Bhd.

RFID: Read and Display V2010. Version 1.1. Sept Cytron Technologies Sdn. Bhd. PR8-B RFID: Read and Display V2010 Version 1.1 Sept 2010 Cytron Technologies Sdn. Bhd. Information contained in this publication regarding device applications and the like is intended through suggestion

More information

TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT

TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT I Contents Overview TA0139... 1 Getting started: Arduino 2 Wheel Drive Wireless Bluetooth Robot Kit using Arduino UNO... 1 2.1. What

More information

MigaOne-Arduino Tutorial: Position/Limit Sensing and Cycling with the Arduino Platform

MigaOne-Arduino Tutorial: Position/Limit Sensing and Cycling with the Arduino Platform Miga Motor Company 1250 Addison Street #208 Berkeley, CA 94702 www.migamotors.com MigaOne-Arduino Tutorial: Position/Limit Sensing and Cycling with the Arduino Platform 1.0 Introduction The purpose of

More information

I/O System for the PSYONIC Advanced Bionic Hand. Team 28 Byron Hopps and Steven Sun ECE 445 Senior Design Fall 2017

I/O System for the PSYONIC Advanced Bionic Hand. Team 28 Byron Hopps and Steven Sun ECE 445 Senior Design Fall 2017 I/O System for the PSYONIC Advanced Bionic Hand Team 28 Byron Hopps and Steven Sun ECE 445 Senior Design Fall 2017 Background PSYONIC is a startup at the University of Illinois working on bringing low-cost

More information

Lab 01 Arduino 程式設計實驗. Essential Arduino Programming and Digital Signal Process

Lab 01 Arduino 程式設計實驗. Essential Arduino Programming and Digital Signal Process Lab 01 Arduino 程式設計實驗 Essential Arduino Programming and Digital Signal Process Arduino Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's

More information

Fragments. Lecture 11

Fragments. Lecture 11 Fragments Lecture 11 Situational layouts Your app can use different layouts in different situations Different device type (tablet vs. phone vs. watch) Different screen size Different orientation (portrait

More information

Create a local SQL database hosting a CUSTOMER table. Each customer includes [id, name, phone]. Do the work inside Threads and Asynctasks.

Create a local SQL database hosting a CUSTOMER table. Each customer includes [id, name, phone]. Do the work inside Threads and Asynctasks. CIS 470 Lesson 13 Databases - Quick Notes Create a local SQL database hosting a CUSTOMER table. Each customer includes [id, name, phone]. Do the work inside Threads and Asynctasks. package csu.matos; import

More information

Automatic Ball Borrowing System Project #38

Automatic Ball Borrowing System Project #38 Automatic Ball Borrowing System Project #38 Design Document Jingyang Liu, Qihao Wang, Yang Xiao TA: Mickey Zhang 02/22/2018 1. Introduction 1.1 Objective At the ARC of our university, sometimes we have

More information

Dept. of Computer Science and Engineering

Dept. of Computer Science and Engineering Dept. of Computer Science and Engineering EECS 2210 Electronic Circuits and Devices Project Report Power Supply for a Mobile Charger Submitted by : Linda Chigbo Ariel Laboriante Ege Arslan Date 4/17/2015

More information

Freeduino USB 1.0. Arduino Compatible Development Board Starter Guide. 1. Overview

Freeduino USB 1.0. Arduino Compatible Development Board Starter Guide. 1. Overview Freeduino USB 1.0 Arduino Compatible Development Board Starter Guide 1. Overview 1 Arduino is an open source embedded development platform consisting of a simple development board based on Atmel s AVR

More information

Adafruit Metro Mini. Created by lady ada. Last updated on :12:28 PM UTC

Adafruit Metro Mini. Created by lady ada. Last updated on :12:28 PM UTC Adafruit Metro Mini Created by lady ada Last updated on 2018-01-24 08:12:28 PM UTC Guide Contents Guide Contents Overview Pinouts USB & Serial converter Microcontroller & Crystal LEDs Power Pins & Regulators

More information

ITU- FAO- DOA- TRCSL. Training on. Innovation & Application Development for E- Agriculture. Shared Preferences

ITU- FAO- DOA- TRCSL. Training on. Innovation & Application Development for E- Agriculture. Shared Preferences ITU- FAO- DOA- TRCSL Training on Innovation & Application Development for E- Agriculture Shared Preferences 11 th - 15 th December 2017 Peradeniya, Sri Lanka Shahryar Khan & Imran Tanveer, ITU Experts

More information

ROBOTLINKING THE POWER SUPPLY LEARNING KIT TUTORIAL

ROBOTLINKING THE POWER SUPPLY LEARNING KIT TUTORIAL ROBOTLINKING THE POWER SUPPLY LEARNING KIT TUTORIAL 1 Preface About RobotLinking RobotLinking is a technology company focused on 3D Printer, Raspberry Pi and Arduino open source community development.

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

BMS: Installation Manual v2.x - Documentation

BMS: Installation Manual v2.x - Documentation Page 1 of 7 BMS: Installation Manual v2.x From Documentation This section describes how external peripheral devices are connected and additional functions of the BMS are used. I you have not done so already,

More information

Android CardView Tutorial

Android CardView Tutorial Android CardView Tutorial by Kapil - Wednesday, April 13, 2016 http://www.androidtutorialpoint.com/material-design/android-cardview-tutorial/ YouTube Video We have already discussed about RecyclerView

More information

International Journal of Artificial Intelligence and Applications (IJAIA), Vol.9, No.3, May Bashir Ahmad

International Journal of Artificial Intelligence and Applications (IJAIA), Vol.9, No.3, May Bashir Ahmad OUTDOOR MOBILE ROBOTIC ASSISTANT MICRO-CONTROLLER MODULE (ARDUINO), FIRMWARE AND INFRARED SENSOR CIRCUIT DESIGN AND IMPLEMENTATION, OPERATING PRINCIPLE AND USAGE OF PIRMOTION SENSOR Bashir Ahmad Faculty

More information

Lesson 5 Arduino Prototype Development Platforms. Chapter-8 L05: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Lesson 5 Arduino Prototype Development Platforms. Chapter-8 L05: Internet of Things , Raj Kamal, Publs.: McGraw-Hill Education Lesson 5 Arduino Prototype Development Platforms 1 Arduino Boards, Modules And Shields Popular AVR MCU based products Each board has clear markings on the connection pins, sockets and in-circuit connections

More information

SECOND EDITION. Arduino Cookbook. Michael Margolis O'REILLY- Tokyo. Farnham Koln Sebastopol. Cambridge. Beijing

SECOND EDITION. Arduino Cookbook. Michael Margolis O'REILLY- Tokyo. Farnham Koln Sebastopol. Cambridge. Beijing SECOND EDITION Arduino Cookbook Michael Margolis Beijing Cambridge Farnham Koln Sebastopol O'REILLY- Tokyo Table of Contents Preface xi 1. Getting Started 1 1.1 Installing the Integrated Development Environment

More information

ListView Containers. Resources. Creating a ListView

ListView Containers. Resources. Creating a ListView ListView Containers Resources https://developer.android.com/guide/topics/ui/layout/listview.html https://developer.android.com/reference/android/widget/listview.html Creating a ListView A ListView is a

More information

Appendix A Requirement and Verification Table

Appendix A Requirement and Verification Table Appendix A Requirement and Table Table X System Requirements and s Buttons and LED Requirements 1. Buttons must be easily press able and accessible by the user. 2. LED must be visible from up to 15 ft

More information

<uses-permission android:name="android.permission.internet"/>

<uses-permission android:name=android.permission.internet/> Chapter 11 Playing Video 11.1 Introduction We have discussed how to play audio in Chapter 9 using the class MediaPlayer. This class can also play video clips. In fact, the Android multimedia framework

More information

Lab 2.2 Ohm s Law and Introduction to Arduinos

Lab 2.2 Ohm s Law and Introduction to Arduinos Lab 2.2 Ohm s Law and Introduction to Arduinos Objectives: Get experience using an Arduino Learn to use a multimeter to measure Potential units of volts (V) Current units of amps (A) Resistance units of

More information

Mobile Software Development for Android - I397

Mobile Software Development for Android - I397 1 Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 EMAIL: AKAVER@ITCOLLEGE.EE WEB: HTTP://ENOS.ITCOLLEGE.EE/~AKAVER/2015-2016/DISTANCE/ANDROID SKYPE: AKAVER Timetable

More information

Chapter 5 Flashing Neon FrameLayout

Chapter 5 Flashing Neon FrameLayout 5.1 Case Overview This case mainly introduced the usages of FrameLayout; we can use FrameLayout to realize the effect, the superposition of multiple widgets. This example is combined with Timer and Handler

More information