diff options
author | manasdas17 | 2019-08-26 09:26:16 +0530 |
---|---|---|
committer | manasdas17 | 2019-08-26 09:26:16 +0530 |
commit | 1e332fcc6045dea9247bcaf73eff3ffd283df6fa (patch) | |
tree | 0862da025c2b1299918df8246152c1894dd2f2e3 | |
parent | a7942b595aecad5445b34b46470b6d480707ce1d (diff) | |
download | OpenModelica_Arduino_With_MDD-1-1e332fcc6045dea9247bcaf73eff3ffd283df6fa.tar.gz OpenModelica_Arduino_With_MDD-1-1e332fcc6045dea9247bcaf73eff3ffd283df6fa.tar.bz2 OpenModelica_Arduino_With_MDD-1-1e332fcc6045dea9247bcaf73eff3ffd283df6fa.zip |
first commit
-rw-r--r-- | Final.pdf | bin | 23863705 -> 0 bytes | |||
-rw-r--r-- | FosseeInternReport.doc | bin | 36131840 -> 0 bytes | |||
-rw-r--r-- | FosseeInternReport.pdf | bin | 23681854 -> 0 bytes | |||
-rw-r--r-- | Report.tar.gz | bin | 8626711 -> 0 bytes | |||
-rw-r--r-- | Report/1.PNG | bin | 48198 -> 0 bytes | |||
-rw-r--r-- | Report/2.PNG | bin | 50970 -> 0 bytes | |||
-rw-r--r-- | Report/3.PNG | bin | 48971 -> 0 bytes | |||
-rw-r--r-- | Report/4.PNG | bin | 304529 -> 0 bytes | |||
-rw-r--r-- | Report/5.PNG | bin | 67905 -> 0 bytes | |||
-rw-r--r-- | Report/6.PNG | bin | 76349 -> 0 bytes | |||
-rw-r--r-- | Report/7.PNG | bin | 225266 -> 0 bytes | |||
-rw-r--r-- | Report/Final.aux | 131 | ||||
-rw-r--r-- | Report/Final.lof | 36 | ||||
-rw-r--r-- | Report/Final.log | 1254 | ||||
-rw-r--r-- | Report/Final.out | 40 | ||||
-rw-r--r-- | Report/Final.pdf | bin | 4536910 -> 0 bytes | |||
-rw-r--r-- | Report/Final.tex | 578 | ||||
-rw-r--r-- | Report/Final.tex~ | 591 | ||||
-rw-r--r-- | Report/Final.toc | 40 | ||||
-rw-r--r-- | Report/arduino_uno_pinout.png | bin | 723867 -> 0 bytes | |||
-rw-r--r-- | Report/board1.PNG | bin | 24319 -> 0 bytes | |||
-rw-r--r-- | Report/board2.PNG | bin | 24670 -> 0 bytes | |||
-rw-r--r-- | Report/board3.PNG | bin | 25657 -> 0 bytes | |||
-rw-r--r-- | Report/board4.PNG | bin | 24917 -> 0 bytes | |||
-rw-r--r-- | Report/board5.PNG | bin | 18822 -> 0 bytes | |||
-rw-r--r-- | Report/dc_ex2.PNG | bin | 34462 -> 0 bytes | |||
-rw-r--r-- | Report/dc_ex2_2.PNG | bin | 21809 -> 0 bytes | |||
-rw-r--r-- | Report/dc_ex2_3.PNG | bin | 21180 -> 0 bytes | |||
-rw-r--r-- | Report/fossee-logo.png | bin | 79661 -> 0 bytes | |||
-rw-r--r-- | Report/iit.png | bin | 72042 -> 0 bytes | |||
-rw-r--r-- | Report/ldr_ex1.PNG | bin | 48469 -> 0 bytes | |||
-rw-r--r-- | Report/ldr_ex2.PNG | bin | 28982 -> 0 bytes | |||
-rw-r--r-- | Report/led_ex1.PNG | bin | 42576 -> 0 bytes | |||
-rw-r--r-- | Report/package_str.PNG | bin | 8469 -> 0 bytes | |||
-rw-r--r-- | Report/pb_ex1.PNG | bin | 44697 -> 0 bytes | |||
-rw-r--r-- | Report/pb_ex1_print.PNG | bin | 36968 -> 0 bytes | |||
-rw-r--r-- | Report/pid.png | bin | 76415 -> 0 bytes | |||
-rw-r--r-- | Report/pid_ex.PNG | bin | 45574 -> 0 bytes | |||
-rw-r--r-- | Report/pid_graph.PNG | bin | 84273 -> 0 bytes | |||
-rw-r--r-- | Report/pin11.PNG | bin | 30230 -> 0 bytes | |||
-rw-r--r-- | Report/pin12.PNG | bin | 28457 -> 0 bytes | |||
-rw-r--r-- | Report/pin21.PNG | bin | 31422 -> 0 bytes | |||
-rw-r--r-- | Report/pin22.PNG | bin | 24665 -> 0 bytes | |||
-rw-r--r-- | Report/pin31.PNG | bin | 28402 -> 0 bytes | |||
-rw-r--r-- | Report/pin32.PNG | bin | 21071 -> 0 bytes | |||
-rw-r--r-- | Report/pin41.PNG | bin | 29351 -> 0 bytes | |||
-rw-r--r-- | Report/pin42.PNG | bin | 17530 -> 0 bytes | |||
-rw-r--r-- | Report/pin51.PNG | bin | 26091 -> 0 bytes | |||
-rw-r--r-- | Report/pin52.PNG | bin | 37967 -> 0 bytes | |||
-rw-r--r-- | Report/potentio_ex1.PNG | bin | 31175 -> 0 bytes | |||
-rw-r--r-- | Report/realtime.PNG | bin | 30538 -> 0 bytes | |||
-rw-r--r-- | Report/realtimepara.PNG | bin | 26386 -> 0 bytes | |||
-rw-r--r-- | Report/servo_datasheet.PNG | bin | 130965 -> 0 bytes | |||
-rw-r--r-- | Report/servo_ex3.PNG | bin | 31298 -> 0 bytes | |||
-rw-r--r-- | Report/thermistor_ex1.PNG | bin | 18557 -> 0 bytes | |||
-rw-r--r-- | Report/tiva_c_launchpad_pinout.png | bin | 1041999 -> 0 bytes | |||
-rw-r--r-- | Report/tiva_c_launchpad_pinout_001b.jpg | bin | 413054 -> 0 bytes | |||
-rw-r--r-- | Report/tiva_led.PNG | bin | 24226 -> 0 bytes |
58 files changed, 0 insertions, 2670 deletions
diff --git a/Final.pdf b/Final.pdf Binary files differdeleted file mode 100644 index 56a7d3b..0000000 --- a/Final.pdf +++ /dev/null diff --git a/FosseeInternReport.doc b/FosseeInternReport.doc Binary files differdeleted file mode 100644 index 114cd93..0000000 --- a/FosseeInternReport.doc +++ /dev/null diff --git a/FosseeInternReport.pdf b/FosseeInternReport.pdf Binary files differdeleted file mode 100644 index 1739666..0000000 --- a/FosseeInternReport.pdf +++ /dev/null diff --git a/Report.tar.gz b/Report.tar.gz Binary files differdeleted file mode 100644 index cb1615f..0000000 --- a/Report.tar.gz +++ /dev/null diff --git a/Report/1.PNG b/Report/1.PNG Binary files differdeleted file mode 100644 index 4c9406f..0000000 --- a/Report/1.PNG +++ /dev/null diff --git a/Report/2.PNG b/Report/2.PNG Binary files differdeleted file mode 100644 index c0bdc01..0000000 --- a/Report/2.PNG +++ /dev/null diff --git a/Report/3.PNG b/Report/3.PNG Binary files differdeleted file mode 100644 index af6f7ce..0000000 --- a/Report/3.PNG +++ /dev/null diff --git a/Report/4.PNG b/Report/4.PNG Binary files differdeleted file mode 100644 index 5c91fc5..0000000 --- a/Report/4.PNG +++ /dev/null diff --git a/Report/5.PNG b/Report/5.PNG Binary files differdeleted file mode 100644 index 0b7b45f..0000000 --- a/Report/5.PNG +++ /dev/null diff --git a/Report/6.PNG b/Report/6.PNG Binary files differdeleted file mode 100644 index 9840019..0000000 --- a/Report/6.PNG +++ /dev/null diff --git a/Report/7.PNG b/Report/7.PNG Binary files differdeleted file mode 100644 index 9e5c8eb..0000000 --- a/Report/7.PNG +++ /dev/null diff --git a/Report/Final.aux b/Report/Final.aux deleted file mode 100644 index 99a75c7..0000000 --- a/Report/Final.aux +++ /dev/null @@ -1,131 +0,0 @@ -\relax -\providecommand\hyper@newdestlabel[2]{} -\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} -\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined -\global\let\oldcontentsline\contentsline -\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} -\global\let\oldnewlabel\newlabel -\gdef\newlabel#1#2{\newlabelxx{#1}#2} -\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} -\AtEndDocument{\ifx\hyper@anchor\@undefined -\let\contentsline\oldcontentsline -\let\newlabel\oldnewlabel -\fi} -\fi} -\global\let\hyper@last\relax -\gdef\HyperFirstAtBeginDocument#1{#1} -\providecommand\HyField@AuxAddToFields[1]{} -\providecommand\HyField@AuxAddToCoFields[2]{} -\@writefile{toc}{\contentsline {chapter}{\numberline {1}\textbf {Introduction}}{4}{chapter.1}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {chapter}{\numberline {2}\textbf {Implementation}}{5}{chapter.2}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}Algorithm}{5}{section.2.1}} -\@writefile{toc}{\contentsline {section}{\numberline {2.2}Making changes in source code}{6}{section.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}How to make changes to source code and make libraries}{6}{subsection.2.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Working with Arduino UNO [Atmega328p]}{6}{subsection.2.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}Working with Tiva C [TM4C123G]}{7}{subsection.2.2.3}} -\@writefile{toc}{\contentsline {chapter}{\numberline {3}\textbf {Download and Installation}}{8}{chapter.3}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}OpenModelica}{8}{section.3.1}} -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Arduino IDE}{8}{section.3.2}} -\@writefile{toc}{\contentsline {section}{\numberline {3.3}Energia IDE}{8}{section.3.3}} -\@writefile{toc}{\contentsline {chapter}{\numberline {4}\textbf {About OpenModelicaEmbedded package}}{9}{chapter.4}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Structure of OpenModelicaEmbedded package\relax }}{9}{figure.caption.4}} -\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} -\newlabel{figure:1}{{4.1}{9}{Structure of OpenModelicaEmbedded package\relax }{figure.caption.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}SynchronizeRealTime Block}{9}{section.4.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces SymchronizeRealTime block\relax }}{10}{figure.caption.5}} -\newlabel{figure:2}{{4.2}{10}{SymchronizeRealTime block\relax }{figure.caption.5}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}Pins}{10}{section.4.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces AnalogInput block\relax }}{11}{figure.caption.6}} -\newlabel{figure:3}{{4.3}{11}{AnalogInput block\relax }{figure.caption.6}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces AnalogOutput block\relax }}{11}{figure.caption.7}} -\newlabel{figure:4}{{4.4}{11}{AnalogOutput block\relax }{figure.caption.7}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces DigitalInput block\relax }}{12}{figure.caption.8}} -\newlabel{figure:5}{{4.5}{12}{DigitalInput block\relax }{figure.caption.8}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces DigitalOutput block\relax }}{12}{figure.caption.9}} -\newlabel{figure:6}{{4.6}{12}{DigitalOutput block\relax }{figure.caption.9}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces Servo block\relax }}{13}{figure.caption.10}} -\newlabel{figure:7}{{4.7}{13}{Servo block\relax }{figure.caption.10}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.3}Boards}{13}{section.4.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.8}{\ignorespaces Arduino block\relax }}{13}{figure.caption.11}} -\newlabel{figure:8}{{4.8}{13}{Arduino block\relax }{figure.caption.11}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.9}{\ignorespaces ArduinoLeonardo block\relax }}{13}{figure.caption.12}} -\newlabel{figure:9}{{4.9}{13}{ArduinoLeonardo block\relax }{figure.caption.12}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.10}{\ignorespaces StandardFirmata block\relax }}{14}{figure.caption.13}} -\newlabel{figure:10}{{4.10}{14}{StandardFirmata block\relax }{figure.caption.13}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.11}{\ignorespaces CustomFirmata block\relax }}{14}{figure.caption.14}} -\newlabel{figure:11}{{4.11}{14}{CustomFirmata block\relax }{figure.caption.14}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.12}{\ignorespaces customBoard block\relax }}{14}{figure.caption.15}} -\newlabel{figure:12}{{4.12}{14}{customBoard block\relax }{figure.caption.15}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.4}Examples}{14}{section.4.4}} -\@writefile{toc}{\contentsline {section}{\numberline {4.5}ArduinoExamples}{14}{section.4.5}} -\@writefile{toc}{\contentsline {section}{\numberline {4.6}TivaC\_Examples}{15}{section.4.6}} -\@writefile{toc}{\contentsline {section}{\numberline {4.7}Internal}{15}{section.4.7}} -\@writefile{toc}{\contentsline {chapter}{\numberline {5}\textbf {Hardware In Loop Simulation}}{16}{chapter.5}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}Implementation}{16}{section.5.1}} -\@writefile{toc}{\contentsline {chapter}{\numberline {6}\textbf {PID Controller}}{17}{chapter.6}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {6.1}Implementation}{17}{section.6.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces Firmata to work with PID Controller\relax }}{17}{figure.caption.16}} -\newlabel{figure:24}{{6.1}{17}{Firmata to work with PID Controller\relax }{figure.caption.16}{}} -\@writefile{toc}{\contentsline {section}{\numberline {6.2}Example for PID}{18}{section.6.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces Model for PID Controller with DC Motor\relax }}{18}{figure.caption.17}} -\newlabel{figure:25}{{6.2}{18}{Model for PID Controller with DC Motor\relax }{figure.caption.17}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Plot for PID Controller with DC Motor\relax }}{18}{figure.caption.18}} -\newlabel{figure:26}{{6.3}{18}{Plot for PID Controller with DC Motor\relax }{figure.caption.18}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {7}\textbf {Working with Arduino UNO}}{19}{chapter.7}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces Pin Diagram of Arduino UNO\relax }}{19}{figure.caption.19}} -\newlabel{figure:13}{{7.1}{19}{Pin Diagram of Arduino UNO\relax }{figure.caption.19}{}} -\@writefile{toc}{\contentsline {section}{\numberline {7.1}Connecting and Configuring the Board}{20}{section.7.1}} -\@writefile{toc}{\contentsline {section}{\numberline {7.2}Interfacing with OpenModelica}{20}{section.7.2}} -\@writefile{toc}{\contentsline {section}{\numberline {7.3}Examples for Arduino}{20}{section.7.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.1}LED Examples}{21}{subsection.7.3.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.2}{\ignorespaces Arduino Led Example\relax }}{21}{figure.caption.20}} -\newlabel{figure:14}{{7.2}{21}{Arduino Led Example\relax }{figure.caption.20}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.2}Push Button Examples}{21}{subsection.7.3.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.3}{\ignorespaces Arduino Push Button Example\relax }}{22}{figure.caption.21}} -\newlabel{figure:15}{{7.3}{22}{Arduino Push Button Example\relax }{figure.caption.21}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.4}{\ignorespaces Print Statement\relax }}{22}{figure.caption.22}} -\newlabel{figure:23}{{7.4}{22}{Print Statement\relax }{figure.caption.22}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.3}LDR Examples}{22}{subsection.7.3.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.5}{\ignorespaces Arduino LDR Example\relax }}{23}{figure.caption.23}} -\newlabel{figure:16}{{7.5}{23}{Arduino LDR Example\relax }{figure.caption.23}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.4}DC Motor Examples}{23}{subsection.7.3.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.6}{\ignorespaces Arduino DC Motor Example\relax }}{24}{figure.caption.24}} -\newlabel{figure:17}{{7.6}{24}{Arduino DC Motor Example\relax }{figure.caption.24}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.5}Potentiometer Examples}{24}{subsection.7.3.5}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.7}{\ignorespaces Arduino Potentiometer Example\relax }}{25}{figure.caption.25}} -\newlabel{figure:18}{{7.7}{25}{Arduino Potentiometer Example\relax }{figure.caption.25}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.6}Thermistor Examples}{25}{subsection.7.3.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.8}{\ignorespaces Arduino Thermistor Example\relax }}{26}{figure.caption.26}} -\newlabel{figure:19}{{7.8}{26}{Arduino Thermistor Example\relax }{figure.caption.26}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.7}Servo Motor Examples}{26}{subsection.7.3.7}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.9}{\ignorespaces Data Sheet for Servo Motor SG90\relax }}{27}{figure.caption.27}} -\newlabel{figure:27}{{7.9}{27}{Data Sheet for Servo Motor SG90\relax }{figure.caption.27}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.10}{\ignorespaces Arduino Servo Motor Example\relax }}{27}{figure.caption.28}} -\newlabel{figure:20}{{7.10}{27}{Arduino Servo Motor Example\relax }{figure.caption.28}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {8}\textbf {Working with Tiva C Launchpad}}{28}{chapter.8}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{lof}{\contentsline {figure}{\numberline {8.1}{\ignorespaces Pin Diagram of Tiva C Launchpad\relax }}{28}{figure.caption.29}} -\newlabel{figure:21}{{8.1}{28}{Pin Diagram of Tiva C Launchpad\relax }{figure.caption.29}{}} -\@writefile{toc}{\contentsline {section}{\numberline {8.1}Connecting and Configuring the Board}{28}{section.8.1}} -\@writefile{toc}{\contentsline {section}{\numberline {8.2}Interfacing with OpenModelica}{29}{section.8.2}} -\@writefile{toc}{\contentsline {section}{\numberline {8.3}Examples for Tiva C}{29}{section.8.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {8.2}{\ignorespaces Tiva C Led Example\relax }}{30}{figure.caption.30}} -\newlabel{figure:22}{{8.2}{30}{Tiva C Led Example\relax }{figure.caption.30}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {9}\textbf {Conclusion}}{31}{chapter.9}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} diff --git a/Report/Final.lof b/Report/Final.lof deleted file mode 100644 index 751e94b..0000000 --- a/Report/Final.lof +++ /dev/null @@ -1,36 +0,0 @@ -\addvspace {10\p@ } -\addvspace {10\p@ } -\addvspace {10\p@ } -\addvspace {10\p@ } -\contentsline {figure}{\numberline {4.1}{\ignorespaces Structure of OpenModelicaEmbedded package\relax }}{9}{figure.caption.4} -\contentsline {figure}{\numberline {4.2}{\ignorespaces SymchronizeRealTime block\relax }}{10}{figure.caption.5} -\contentsline {figure}{\numberline {4.3}{\ignorespaces AnalogInput block\relax }}{11}{figure.caption.6} -\contentsline {figure}{\numberline {4.4}{\ignorespaces AnalogOutput block\relax }}{11}{figure.caption.7} -\contentsline {figure}{\numberline {4.5}{\ignorespaces DigitalInput block\relax }}{12}{figure.caption.8} -\contentsline {figure}{\numberline {4.6}{\ignorespaces DigitalOutput block\relax }}{12}{figure.caption.9} -\contentsline {figure}{\numberline {4.7}{\ignorespaces Servo block\relax }}{13}{figure.caption.10} -\contentsline {figure}{\numberline {4.8}{\ignorespaces Arduino block\relax }}{13}{figure.caption.11} -\contentsline {figure}{\numberline {4.9}{\ignorespaces ArduinoLeonardo block\relax }}{13}{figure.caption.12} -\contentsline {figure}{\numberline {4.10}{\ignorespaces StandardFirmata block\relax }}{14}{figure.caption.13} -\contentsline {figure}{\numberline {4.11}{\ignorespaces CustomFirmata block\relax }}{14}{figure.caption.14} -\contentsline {figure}{\numberline {4.12}{\ignorespaces customBoard block\relax }}{14}{figure.caption.15} -\addvspace {10\p@ } -\addvspace {10\p@ } -\contentsline {figure}{\numberline {6.1}{\ignorespaces Firmata to work with PID Controller\relax }}{17}{figure.caption.16} -\contentsline {figure}{\numberline {6.2}{\ignorespaces Model for PID Controller with DC Motor\relax }}{18}{figure.caption.17} -\contentsline {figure}{\numberline {6.3}{\ignorespaces Plot for PID Controller with DC Motor\relax }}{18}{figure.caption.18} -\addvspace {10\p@ } -\contentsline {figure}{\numberline {7.1}{\ignorespaces Pin Diagram of Arduino UNO\relax }}{19}{figure.caption.19} -\contentsline {figure}{\numberline {7.2}{\ignorespaces Arduino Led Example\relax }}{21}{figure.caption.20} -\contentsline {figure}{\numberline {7.3}{\ignorespaces Arduino Push Button Example\relax }}{22}{figure.caption.21} -\contentsline {figure}{\numberline {7.4}{\ignorespaces Print Statement\relax }}{22}{figure.caption.22} -\contentsline {figure}{\numberline {7.5}{\ignorespaces Arduino LDR Example\relax }}{23}{figure.caption.23} -\contentsline {figure}{\numberline {7.6}{\ignorespaces Arduino DC Motor Example\relax }}{24}{figure.caption.24} -\contentsline {figure}{\numberline {7.7}{\ignorespaces Arduino Potentiometer Example\relax }}{25}{figure.caption.25} -\contentsline {figure}{\numberline {7.8}{\ignorespaces Arduino Thermistor Example\relax }}{26}{figure.caption.26} -\contentsline {figure}{\numberline {7.9}{\ignorespaces Data Sheet for Servo Motor SG90\relax }}{27}{figure.caption.27} -\contentsline {figure}{\numberline {7.10}{\ignorespaces Arduino Servo Motor Example\relax }}{27}{figure.caption.28} -\addvspace {10\p@ } -\contentsline {figure}{\numberline {8.1}{\ignorespaces Pin Diagram of Tiva C Launchpad\relax }}{28}{figure.caption.29} -\contentsline {figure}{\numberline {8.2}{\ignorespaces Tiva C Led Example\relax }}{30}{figure.caption.30} -\addvspace {10\p@ } diff --git a/Report/Final.log b/Report/Final.log deleted file mode 100644 index a01d45b..0000000 --- a/Report/Final.log +++ /dev/null @@ -1,1254 +0,0 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2019.1.21) 21 AUG 2019 17:05 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**Final.tex -(./Final.tex -LaTeX2e <2016/02/01> -Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. -(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls -Document Class: report 2014/09/29 v1.4h Standard LaTeX document class -(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo -File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option) -) -\c@part=\count79 -\c@chapter=\count80 -\c@section=\count81 -\c@subsection=\count82 -\c@subsubsection=\count83 -\c@paragraph=\count84 -\c@subparagraph=\count85 -\c@figure=\count86 -\c@table=\count87 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -) -(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2010/09/12 v5.6 Page Geometry - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 2014/10/28 v1.15 key=value parser (DPC) -\KV@toks@=\toks14 -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty -Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) -Package ifpdf Info: pdfTeX in PDF mode is detected. -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty -Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) -Package ifvtex Info: VTeX not detected. -) -(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty -Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional -) -\Gm@cnth=\count88 -\Gm@cntv=\count89 -\c@Gm@tempcnt=\count90 -\Gm@bindingoffset=\dimen103 -\Gm@wd@mp=\dimen104 -\Gm@odd@mp=\dimen105 -\Gm@even@mp=\dimen106 -\Gm@layoutwidth=\dimen107 -\Gm@layoutheight=\dimen108 -\Gm@layouthoffset=\dimen109 -\Gm@layoutvoffset=\dimen110 -\Gm@dimlist=\toks15 -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2016/01/03 v1.0q Standard LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 2016/01/03 v1.10 sin cos tan (DPC) -) -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg -File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live -) -Package graphics Info: Driver file: pdftex.def on input line 95. - -(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def -File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty -Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) -) -\Gread@gobject=\count91 -)) -\Gin@req@height=\dimen111 -\Gin@req@width=\dimen112 -) -(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty -Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) - -(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty -Package: caption3 2016/02/04 v1.7-139 caption3 kernel (AR) -Package caption3 Info: TeX engine: e-TeX on input line 67. -\captionmargin=\dimen113 -\captionmargin@=\dimen114 -\captionwidth=\dimen115 -\caption@tempdima=\dimen116 -\caption@indent=\dimen117 -\caption@parindent=\dimen118 -\caption@hangindent=\dimen119 -) -\c@ContinuedFloat=\count92 -) -(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty -Package: array 2014/10/28 v2.4c Tabular extension package (FMi) -\col@sep=\dimen120 -\extrarowheight=\dimen121 -\NC@list=\toks16 -\extratabsurround=\skip43 -\backup@length=\skip44 -) -(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty -\lst@mode=\count93 -\lst@gtempboxa=\box26 -\lst@token=\toks17 -\lst@length=\count94 -\lst@currlwidth=\dimen122 -\lst@column=\count95 -\lst@pos=\count96 -\lst@lostspace=\dimen123 -\lst@width=\dimen124 -\lst@newlines=\count97 -\lst@lineno=\count98 -\lst@maxwidth=\dimen125 - -(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty -File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz) -\c@lstnumber=\count99 -\lst@skipnumbers=\count100 -\lst@framebox=\box27 -) -(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg -File: listings.cfg 2015/06/04 1.6 listings configuration -)) -Package: listings 2015/06/04 1.6 (Carsten Heinz) - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty -Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) - - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty -Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) -Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) -Package hobsub Info: Skipping package `infwarerr' (already loaded). -Package hobsub Info: Skipping package `ltxcmds' (already loaded). -Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -Package hobsub Info: Skipping package `ifvtex' (already loaded). -Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) -Package hobsub Info: Skipping package `ifpdf' (already loaded). -Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) -Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) -Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO -) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) -Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO -) -Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) -Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) -) -Package hobsub Info: Skipping package `hobsub' (already loaded). -Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) -Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) -Package: xcolor-patch 2011/01/30 xcolor patch -Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) -Package atveryend Info: \enddocument detected (standard20110627). -Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) -Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) -Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty -Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) -) -\@linkdim=\dimen126 -\Hy@linkcounter=\count101 -\Hy@pagecounter=\count102 - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) -) -\Hy@SavedSpaceFactor=\count103 - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg -File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive -) -Package hyperref Info: Hyper figures OFF on input line 4443. -Package hyperref Info: Link nesting OFF on input line 4448. -Package hyperref Info: Hyper index ON on input line 4451. -Package hyperref Info: Plain pages OFF on input line 4458. -Package hyperref Info: Backreferencing OFF on input line 4463. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4688. -\c@Hy@tempcnt=\count104 - -(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip10 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 5041. -\XeTeXLinkMargin=\dimen127 -\Fld@menulength=\count105 -\Field@Width=\dimen128 -\Fld@charsize=\dimen129 -Package hyperref Info: Hyper figures OFF on input line 6295. -Package hyperref Info: Link nesting OFF on input line 6300. -Package hyperref Info: Hyper index ON on input line 6303. -Package hyperref Info: backreferencing OFF on input line 6310. -Package hyperref Info: Link coloring OFF on input line 6315. -Package hyperref Info: Link coloring with OCG OFF on input line 6320. -Package hyperref Info: PDF/A mode OFF on input line 6325. -LaTeX Info: Redefining \ref on input line 6365. -LaTeX Info: Redefining \pageref on input line 6369. -\Hy@abspage=\count106 -\c@Item=\count107 -\c@Hfootnote=\count108 -) - -Package hyperref Message: Driver (autodetected): hpdftex. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX -\Fld@listcount=\count109 -\c@bookmark@seq@number=\count110 - -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty -Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 -82. -) -\Hy@SectionHShift=\skip45 -) -(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty -Package: float 2001/11/08 v1.3d Float enhancements (AL) -\c@float@type=\count111 -\float@exts=\toks18 -\float@box=\box28 -\@float@everytoks=\toks19 -\@floatcapt=\box29 -) -(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty -Package: textcomp 2005/09/27 v1.99g Standard LaTeX package -Package textcomp Info: Sub-encoding information: -(textcomp) 5 = only ISO-Adobe without \textcurrency -(textcomp) 4 = 5 + \texteuro -(textcomp) 3 = 4 + \textohm -(textcomp) 2 = 3 + \textestimated + \textcurrency -(textcomp) 1 = TS1 - \textcircled - \t -(textcomp) 0 = TS1 (full) -(textcomp) Font families with sub-encoding setting implement -(textcomp) only a restricted character set as indicated. -(textcomp) Family '?' is the default used for unknown fonts. -(textcomp) See the documentation for details. -Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. - -(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def -File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file -) -LaTeX Info: Redefining \oldstylenums on input line 334. -Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. -Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. -Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. -Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. -Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. -Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. -Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. -Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. -Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. -Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. -Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. -Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. -Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. -Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. -Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. -Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. -Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. -Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. -Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. -Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. -Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. -Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. -Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. -Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. - -Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. -Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. -Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. -Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. -Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. -Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. -Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. -Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. -Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. -Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. -Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. -Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. -Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. -Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. -Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. -Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. -Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. -Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. -Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. -Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. -Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. -Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. -Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. -Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. -Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. -Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. -Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. -Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. -Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. -Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. -Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. -Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. -Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. -Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. -Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. -Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. -Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. -) -(/usr/share/texlive/texmf-dist/tex/latex/caption/subcaption.sty -Package: subcaption 2016/02/20 v1.1-142 Sub-captions (AR) -\c@subfigure=\count112 -\c@subtable=\count113 -) -Package hyperref Info: Option `colorlinks' set `true' on input line 18. - (./Final.aux) -\openout1 = `Final.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 19. -LaTeX Font Info: ... okay on input line 19. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 19. -LaTeX Font Info: Try loading font information for TS1+cmr on input line 19. - -(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd -File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions -) -LaTeX Font Info: ... okay on input line 19. - -*geometry* driver: auto-detecting -*geometry* detected driver: pdftex -*geometry* verbose mode - [ preamble ] result: -* driver: pdftex -* paper: a4paper -* layout: <same size as paper> -* layoutoffset:(h,v)=(0.0pt,0.0pt) -* modes: -* h-part:(L,W,R)=(85.35826pt, 426.79135pt, 85.35826pt) -* v-part:(T,H,B)=(85.35826pt, 674.33032pt, 85.35826pt) -* \paperwidth=597.50787pt -* \paperheight=845.04684pt -* \textwidth=426.79135pt -* \textheight=674.33032pt -* \oddsidemargin=13.08827pt -* \evensidemargin=13.08827pt -* \topmargin=-23.91173pt -* \headheight=12.0pt -* \headsep=25.0pt -* \topskip=12.0pt -* \footskip=30.0pt -* \marginparwidth=35.0pt -* \marginparsep=10.0pt -* \columnsep=10.0pt -* \skip\footins=10.8pt plus 4.0pt minus 2.0pt -* \hoffset=0.0pt -* \voffset=0.0pt -* \mag=1000 -* \@twocolumnfalse -* \@twosidefalse -* \@mparswitchfalse -* \@reversemarginfalse -* (1in=72.27pt=25.4mm, 1cm=28.453pt) - -(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii -[Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count114 -\scratchdimen=\dimen130 -\scratchbox=\box30 -\nofMPsegments=\count115 -\nofMParguments=\count116 -\everyMPshowfont=\toks20 -\MPscratchCnt=\count117 -\MPscratchDim=\dimen131 -\MPnumerator=\count118 -\makeMPintoPDFobject=\count119 -\everyMPtoPDFconversion=\toks21 -) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty -Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf - -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty -Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) -) -Package grfext Info: Graphics extension search list: -(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE -G,.JBIG2,.JB2,.eps] -(grfext) \AppendGraphicsExtensions on input line 452. - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv -e -)) -Package caption Info: Begin \AtBeginDocument code. -Package caption Info: float package is loaded. -Package caption Info: hyperref package is loaded. -Package caption Info: listings package is loaded. -Package caption Info: End \AtBeginDocument code. -\c@lstlisting=\count120 -\AtBeginShipoutBox=\box31 - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty -Package: color 2016/01/03 v1.1b Standard LaTeX Color (DPC) - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg -File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive -) -Package color Info: Driver file: pdftex.def on input line 143. -) -Package hyperref Info: Link coloring ON on input line 19. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty -Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) -) -\c@section@level=\count121 -) -LaTeX Info: Redefining \ref on input line 19. -LaTeX Info: Redefining \pageref on input line 19. -LaTeX Info: Redefining \nameref on input line 19. - -(./Final.out) (./Final.out) -\@outlinefile=\write3 -\openout3 = `Final.out'. - - <iit.png, id=164, 185.94469pt x 189.70876pt> -File: iit.png Graphic file (type png) - -<use iit.png> -Package pdftex.def Info: iit.png used on input line 23. -(pdftex.def) Requested size: 128.0387pt x 130.63286pt. - <fossee-logo.png, id=166, 145.0234pt x 55.5923pt> -File: fossee-logo.png Graphic file (type png) - -<use fossee-logo.png> -Package pdftex.def Info: fossee-logo.png used on input line 25. -(pdftex.def) Requested size: 170.71393pt x 65.44308pt. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <14.4> on input line 37. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <7> on input line 37. - - -LaTeX Warning: No \author given. - -[1 - -{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./iit.png> <./fossee-logo. -png>] (./Final.toc -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <12> on input line 3. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 3. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <6> on input line 3. -pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has -been already used, duplicate ignored -<to be read again> - \relax -l.33 ...entiometer Examples}{25}{subsection.7.3.5} - [1 - -]) -\tf@toc=\write4 -\openout4 = `Final.toc'. - - [2] (./Final.lof) -\tf@lof=\write5 -\openout5 = `Final.lof'. - - -[3 - -] -Chapter 1. -[4 - -] -Chapter 2. -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -[5 - -] -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -Underfull \hbox (badness 10000) in paragraph at lines 70--71 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -Underfull \hbox (badness 10000) in paragraph at lines 72--75 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 72--75 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -Underfull \hbox (badness 10000) in paragraph at lines 76--77 - - [] - - -Overfull \hbox (17.94862pt too wide) in paragraph at lines 79--83 -\OT1/cmr/m/n/12 Open pid-mata3 sketch: File \TS1/cmr/m/n/12 ^^Y\OT1/cmr/m/n/12 -Open \TS1/cmr/m/n/12 ^^Y\OT1/cmr/m/n/12 OpenModelicaEmbedded \TS1/cmr/m/n/12 ^^ -Y\OT1/cmr/m/n/12 Firmware \TS1/cmr/m/n/12 ^^Y\OT1/cmr/m/n/12 Arduino - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 79--83 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -[6] -Underfull \hbox (badness 10000) in paragraph at lines 90--93 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 94--98 - - [] - -[7] -Chapter 3. - -Underfull \hbox (badness 10000) in paragraph at lines 101--108 - - [] - - -Overfull \hbox (18.41837pt too wide) in paragraph at lines 101--108 -\OT1/cmr/m/n/12 fol-low-ing the in-struc-tions on [][]$\OT1/cmtt/m/n/12 https : - / / openmodelica . org / download / download-[]linux$[][]\OT1/cmr/m/n/12 . - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 101--108 - - [] - - -Overfull \hbox (38.20384pt too wide) in paragraph at lines 101--108 -\OT1/cmr/m/n/12 The setup for Open-Mod-el-ica on Win-dows can be down-loaded fr -om [][]$\OT1/cmtt/m/n/12 https : / / openmodelica . - [] - - -Overfull \hbox (3.69864pt too wide) in paragraph at lines 113--116 -\OT1/cmr/m/n/12 Energia is a Arduino-like cod-ing en-vi-ron-ment de-signed for -Texas In-stru-ments Launch- - [] - - -Overfull \hbox (10.69019pt too wide) in paragraph at lines 113--116 -\OT1/cmr/m/n/12 pads. The setup for En-er-gia can be down-loaded from [][]$\OT1 -/cmtt/m/n/12 http : / / energia . nu / download/$[][]\OT1/cmr/m/n/12 . - [] - - -Overfull \hbox (22.49632pt too wide) in paragraph at lines 113--116 -\OT1/cmr/m/n/12 For Linux: [][]$\OT1/cmtt/m/n/12 http : / / energia . nu / guid -e / guide _ linux/$[][] \OT1/cmr/m/n/12 For Win-dows: [][]$\OT1/cmtt/m/n/12 htt -p : / / energia . - [] - -[8 - -] -Chapter 4. - -Underfull \hbox (badness 10000) in paragraph at lines 120--126 - - [] - -<package_str.PNG, id=335, 129.98563pt x 100.375pt> -File: package_str.PNG Graphic file (type png) - <use package_str.PNG> -Package pdftex.def Info: package_str.PNG used on input line 129. -(pdftex.def) Requested size: 213.39568pt x 164.78452pt. - -[9 - - <./package_str.PNG>] <realtime.PNG, id=341, 311.1625pt x 308.15125pt> -File: realtime.PNG Graphic file (type png) - -<use realtime.PNG> -Package pdftex.def Info: realtime.PNG used on input line 139. -(pdftex.def) Requested size: 128.0387pt x 126.79892pt. - <realtimepara.PNG, id=342, 357.83687pt x 307.1475pt> -File: realtimepara.PNG Graphic file (type png) - -<use realtimepara.PNG> -Package pdftex.def Info: realtimepara.PNG used on input line 140. -(pdftex.def) Requested size: 277.41176pt x 238.13058pt. - -Underfull \hbox (badness 10000) in paragraph at lines 146--147 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -<pin11.PNG, id=343, 371.3875pt x 312.66812pt> -File: pin11.PNG Graphic file (type png) - <use pin11.PNG> -Package pdftex.def Info: pin11.PNG used on input line 152. -(pdftex.def) Requested size: 170.71393pt x 143.72412pt. - -<pin12.PNG, id=344, 350.81062pt x 362.35374pt> -File: pin12.PNG Graphic file (type png) - <use pin12.PNG> -Package pdftex.def Info: pin12.PNG used on input line 153. -(pdftex.def) Requested size: 234.73654pt x 242.46611pt. - [10 <./realtime.PNG> <./realtimepara.PNG>] -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - <pin21.PNG, id=351, 366.36874pt x 311.1625pt> -File: pin21.PNG Graphic file (type png) - -<use pin21.PNG> -Package pdftex.def Info: pin21.PNG used on input line 160. -(pdftex.def) Requested size: 170.71393pt x 144.99294pt. - <pin22.PNG, id=352, 345.79187pt x 306.14375pt> -File: pin22.PNG Graphic file (type png) - <use pin22.PNG> -Package pdftex.def Info: pin22.PNG used on input line 161. -(pdftex.def) Requested size: 234.73654pt x 207.82463pt. -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -<pin31.PNG, id=353, 370.38374pt x 309.155pt> -File: pin31.PNG Graphic file (type png) - <use pin31.PNG> -Package pdftex.def Info: pin31.PNG used on input line 168. -(pdftex.def) Requested size: 170.71393pt x 142.49133pt. - -<pin32.PNG, id=354, 275.0275pt x 292.09125pt> -File: pin32.PNG Graphic file (type png) - <use pin32.PNG> -Package pdftex.def Info: pin32.PNG used on input line 169. -(pdftex.def) Requested size: 234.73654pt x 249.30827pt. - [11 <./pin11.PNG> <./pin12.PNG> <./pin21.PNG> <./pin22.PNG>] -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -<pin41.PNG, id=363, 358.33875pt x 309.155pt> -File: pin41.PNG Graphic file (type png) - <use pin41.PNG> -Package pdftex.def Info: pin41.PNG used on input line 176. -(pdftex.def) Requested size: 170.71393pt x 147.28413pt. - -<pin42.PNG, id=364, 245.91875pt x 251.94125pt> -File: pin42.PNG Graphic file (type png) - <use pin42.PNG> -Package pdftex.def Info: pin42.PNG used on input line 177. -(pdftex.def) Requested size: 234.73654pt x 240.49611pt. - -<pin51.PNG, id=365, 359.3425pt x 311.1625pt> -File: pin51.PNG Graphic file (type png) - <use pin51.PNG> -Package pdftex.def Info: pin51.PNG used on input line 184. -(pdftex.def) Requested size: 170.71393pt x 147.82745pt. - -<pin52.PNG, id=366, 653.94313pt x 338.76563pt> -File: pin52.PNG Graphic file (type png) - <use pin52.PNG> -Package pdftex.def Info: pin52.PNG used on input line 185. -(pdftex.def) Requested size: 234.73654pt x 121.59885pt. - [12 <./pin31.PNG> <./pin32.PNG> <./pin41.PNG> <./pin42.PNG>] -<board1.PNG, id=376, 317.68687pt x 307.64937pt> -File: board1.PNG Graphic file (type png) - <use board1.PNG> -Package pdftex.def Info: board1.PNG used on input line 197. -(pdftex.def) Requested size: 106.69783pt x 103.32722pt. - -<board2.PNG, id=377, 315.67938pt x 307.64937pt> -File: board2.PNG Graphic file (type png) - <use board2.PNG> -Package pdftex.def Info: board2.PNG used on input line 204. -(pdftex.def) Requested size: 106.69783pt x 103.98444pt. - -<board3.PNG, id=378, 319.1925pt x 308.65312pt> -File: board3.PNG Graphic file (type png) - <use board3.PNG> -Package pdftex.def Info: board3.PNG used on input line 211. -(pdftex.def) Requested size: 106.69783pt x 103.17455pt. - [13 <./pin51.PNG> <./pin52.PNG> <./board1.PNG> <./board2.PNG>] -<board4.PNG, id=387, 315.1775pt x 307.1475pt> -File: board4.PNG Graphic file (type png) - <use board4.PNG> -Package pdftex.def Info: board4.PNG used on input line 218. -(pdftex.def) Requested size: 106.69783pt x 103.97884pt. - -<board5.PNG, id=388, 308.65312pt x 309.65688pt> -File: board5.PNG Graphic file (type png) - <use board5.PNG> -Package pdftex.def Info: board5.PNG used on input line 225. -(pdftex.def) Requested size: 106.69783pt x 107.04436pt. - [14 <./board3.PNG> <./board4.PNG> <./board5.PNG>] [15] -Chapter 5. -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -Underfull \hbox (badness 10000) in paragraph at lines 244--245 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 249--250 - - [] - -[16 - -] -Chapter 6. -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -<pid.png, id=404, 989.19562pt x 565.36218pt> -File: pid.png Graphic file (type png) - <use pid.png> -Package pdftex.def Info: pid.png used on input line 261. -(pdftex.def) Requested size: 384.1096pt x 219.53279pt. - -<pid_ex.PNG, id=405, 466.74374pt x 375.20175pt> -File: pid_ex.PNG Graphic file (type png) - <use pid_ex.PNG> -Package pdftex.def Info: pid_ex.PNG used on input line 270. -(pdftex.def) Requested size: 384.1096pt x 308.78954pt. - [17 - - <./pid.png>] <pid_graph.PNG, id=410, 953.36176pt x 467.346pt> -File: pid_graph.PNG Graphic file (type png) - <use pid_graph.PNG> -Package pdftex.def Info: pid_graph.PNG used on input line 276. -(pdftex.def) Requested size: 384.1096pt x 188.29pt. - -[18 <./pid_ex.PNG> <./pid_graph.PNG>] -Chapter 7. -<arduino_uno_pinout.png, id=418, 1027.84pt x 1027.84pt> -File: arduino_uno_pinout.png Graphic file (type png) - -<use arduino_uno_pinout.png> -Package pdftex.def Info: arduino_uno_pinout.png used on input line 286. -(pdftex.def) Requested size: 320.0935pt x 320.08568pt. - [19 - - <./arduino_uno_pinout.png>] -Overfull \hbox (2.61125pt too wide) in paragraph at lines 302--305 -[]\OT1/cmr/m/n/12 Click File \TS1/cmr/m/n/12 ^^Y\OT1/cmr/m/n/12 Open and browse - Open-Mod-el-i-caEm-bed-ded \TS1/cmr/m/n/12 ^^Y\OT1/cmr/m/n/12 Firmware \TS1/cm -r/m/n/12 ^^Y\OT1/cmr/m/n/12 Arduino - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 302--305 - - [] - -[20] -Underfull \hbox (badness 10000) in paragraph at lines 321--322 - - [] - -<1.PNG, id=440, 385.94188pt x 274.02374pt> -File: 1.PNG Graphic file (type png) - <use 1.PNG> -Package pdftex.def Info: 1.PNG used on input line 328. -(pdftex.def) Requested size: 213.39568pt x 151.51215pt. - -<led_ex1.PNG, id=441, 436.63126pt x 358.33875pt> -File: led_ex1.PNG Graphic file (type png) - <use led_ex1.PNG> -Package pdftex.def Info: led_ex1.PNG used on input line 333. -(pdftex.def) Requested size: 213.39568pt x 175.1337pt. - -Overfull \hbox (2.61108pt too wide) in paragraph at lines 326--336 -[]$[]$ $[]$ - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 341--342 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 343--344 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 345--346 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 347--348 - - [] - -<2.PNG, id=443, 421.575pt x 259.97125pt> -File: 2.PNG Graphic file (type png) - <use 2.PNG> -Package pdftex.def Info: 2.PNG used on input line 354. -(pdftex.def) Requested size: 213.39568pt x 131.59584pt. - -<pb_ex1.PNG, id=444, 510.10574pt x 369.7815pt> -File: pb_ex1.PNG Graphic file (type png) - <use pb_ex1.PNG> -Package pdftex.def Info: pb_ex1.PNG used on input line 359. -(pdftex.def) Requested size: 213.39568pt x 154.69214pt. - -Overfull \hbox (2.61108pt too wide) in paragraph at lines 352--362 -[]$[]$ $[]$ - [] - -[21 <./1.PNG> <./led_ex1.PNG>] -<pb_ex1_print.PNG, id=452, 799.18575pt x 155.3805pt> -File: pb_ex1_print.PNG Graphic file (type png) - <use pb_ex1_print.PNG> -Package pdftex.def Info: pb_ex1_print.PNG used on input line 368. -(pdftex.def) Requested size: 426.79135pt x 82.97954pt. - -Underfull \hbox (badness 10000) in paragraph at lines 375--376 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 377--378 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 379--380 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 381--382 - - [] - -<3.PNG, id=453, 425.59pt x 235.88126pt> -File: 3.PNG Graphic file (type png) - <use 3.PNG> -Package pdftex.def Info: 3.PNG used on input line 388. -(pdftex.def) Requested size: 213.39568pt x 118.27505pt. - -<ldr_ex2.PNG, id=454, 368.577pt x 357.7365pt> -File: ldr_ex2.PNG Graphic file (type png) - <use ldr_ex2.PNG> -Package pdftex.def Info: ldr_ex2.PNG used on input line 393. -(pdftex.def) Requested size: 213.39568pt x 207.12158pt. - -Overfull \hbox (2.61108pt too wide) in paragraph at lines 386--396 -[]$[]$ $[]$ - [] - -[22 <./2.PNG> <./pb_ex1.PNG> <./pb_ex1_print.PNG>] -Underfull \hbox (badness 10000) in paragraph at lines 401--402 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 403--404 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -Underfull \hbox (badness 10000) in paragraph at lines 405--406 - - [] - -<4.PNG, id=462, 380.42125pt x 270.00874pt> -File: 4.PNG Graphic file (type png) - <use 4.PNG> -Package pdftex.def Info: 4.PNG used on input line 412. -(pdftex.def) Requested size: 320.0935pt x 227.19719pt. - -<dc_ex2.PNG, id=463, 337.86224pt x 313.77225pt> -File: dc_ex2.PNG Graphic file (type png) - <use dc_ex2.PNG> -Package pdftex.def Info: dc_ex2.PNG used on input line 417. -(pdftex.def) Requested size: 128.0387pt x 118.90912pt. - -<dc_ex2_2.PNG, id=464, 373.99725pt x 337.26pt> -File: dc_ex2_2.PNG Graphic file (type png) - <use dc_ex2_2.PNG> -Package pdftex.def Info: dc_ex2_2.PNG used on input line 418. -(pdftex.def) Requested size: 128.0387pt x 115.46454pt. - -<dc_ex2_3.PNG, id=465, 372.1905pt x 334.24875pt> -File: dc_ex2_3.PNG Graphic file (type png) - <use dc_ex2_3.PNG> -Package pdftex.def Info: dc_ex2_3.PNG used on input line 419. -(pdftex.def) Requested size: 128.0387pt x 114.98442pt. - -Underfull \hbox (badness 10000) in paragraph at lines 410--422 -[]$[]$ - [] - -[23 <./3.PNG> <./ldr_ex2.PNG>] -Underfull \hbox (badness 10000) in paragraph at lines 427--428 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! - -Underfull \hbox (badness 10000) in paragraph at lines 429--430 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 431--432 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 433--434 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -<5.PNG, id=472, 486.31688pt x 328.22626pt> -File: 5.PNG Graphic file (type png) - <use 5.PNG> -Package pdftex.def Info: 5.PNG used on input line 440. -(pdftex.def) Requested size: 213.39568pt x 144.02434pt. - -<potentio_ex1.PNG, id=473, 373.99725pt x 357.7365pt> -File: potentio_ex1.PNG Graphic file (type png) - <use potentio_ex1.PNG> -Package pdftex.def Info: potentio_ex1.PNG used on input line 445. -(pdftex.def) Requested size: 213.39568pt x 204.11934pt. - -Overfull \hbox (2.61108pt too wide) in paragraph at lines 438--448 -[]$[]$ $[]$ - [] - -[24 <./4.PNG> <./dc_ex2.PNG> <./dc_ex2_2.PNG> <./dc_ex2_3.PNG>] -Underfull \hbox (badness 10000) in paragraph at lines 453--454 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 455--456 - - [] - -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -Missing character: There is no in font cmr12! -<6.PNG, id=483, 624.3325pt x 312.66812pt> -File: 6.PNG Graphic file (type png) - <use 6.PNG> -Package pdftex.def Info: 6.PNG used on input line 462. -(pdftex.def) Requested size: 213.39568pt x 106.86871pt. - -<thermistor_ex1.PNG, id=484, 242.1045pt x 227.04825pt> -File: thermistor_ex1.PNG Graphic file (type png) - -<use thermistor_ex1.PNG> -Package pdftex.def Info: thermistor_ex1.PNG used on input line 467. -(pdftex.def) Requested size: 213.39568pt x 200.13219pt. - -Overfull \hbox (2.61108pt too wide) in paragraph at lines 460--470 -[]$[]$ $[]$ - [] - -[25 <./5.PNG> <./potentio_ex1.PNG>] -Underfull \hbox (badness 10000) in paragraph at lines 475--476 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 477--478 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 479--480 - - [] - - -Overfull \hbox (35.56775pt too wide) in paragraph at lines 481--482 -[]\OT1/cmr/m/n/12 In Servo pin, set In-putU-nit to Open-Mod-el-i-caEm-bed-ded.I -nternal.Types.ServoUnit.None. - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 481--482 - - [] - -<servo_datasheet.PNG, id=492, 551.05875pt x 196.3335pt> -File: servo_datasheet.PNG Graphic file (type png) - -<use servo_datasheet.PNG> -Package pdftex.def Info: servo_datasheet.PNG used on input line 487. -(pdftex.def) Requested size: 426.79135pt x 152.06401pt. - [26 <./6.PNG> <./thermistor_ex1.PNG>] -<7.PNG, id=499, 391.96437pt x 269.005pt> -File: 7.PNG Graphic file (type png) - <use 7.PNG> -Package pdftex.def Info: 7.PNG used on input line 495. -(pdftex.def) Requested size: 213.39568pt x 146.45499pt. - -<servo_ex3.PNG, id=500, 396.88275pt x 352.31625pt> -File: servo_ex3.PNG Graphic file (type png) - <use servo_ex3.PNG> -Package pdftex.def Info: servo_ex3.PNG used on input line 500. -(pdftex.def) Requested size: 213.39568pt x 189.43617pt. - -Overfull \hbox (2.61108pt too wide) in paragraph at lines 493--503 -[]$[]$ $[]$ - [] - -[27 <./servo_datasheet.PNG> <./7.PNG> <./servo_ex3.PNG>] -Chapter 8. -<tiva_c_launchpad_pinout.png, id=508, 1129.97156pt x 846.91406pt> -File: tiva_c_launchpad_pinout.png Graphic file (type png) - -<use tiva_c_launchpad_pinout.png> -Package pdftex.def Info: tiva_c_launchpad_pinout.png used on input line 512. -(pdftex.def) Requested size: 426.79135pt x 319.87933pt. - [28 - - <./tiva_c_launchpad_pinout.png>] -Underfull \hbox (badness 10000) in paragraph at lines 539--540 - - [] - -<tiva_led.PNG, id=516, 303.63437pt x 236.38312pt> -File: tiva_led.PNG Graphic file (type png) - <use tiva_led.PNG> -Package pdftex.def Info: tiva_led.PNG used on input line 544. -(pdftex.def) Requested size: 320.0935pt x 249.20149pt. - [29] -Underfull \hbox (badness 10000) in paragraph at lines 548--549 - - [] - -[30 <./tiva_led.PNG>] -Chapter 9. - -Underfull \hbox (badness 10000) in paragraph at lines 553--554 - - [] - -[31 - -] -Overfull \hbox (80.05858pt too wide) in paragraph at lines 569--570 -[][][]$\OT1/cmtt/m/n/12 https : / / www . codeproject . com / Articles / 84461 -/ MinGW-[]Static-[]and-[]Dynamic-[]Libraries$[][] - [] - - -Overfull \hbox (173.68362pt too wide) in paragraph at lines 570--571 -[][][]$\OT1/cmtt/m/n/12 https : / / stackoverflow . com / questions / 10039401 -/ use-[]32bit-[]shared-[]library-[]from-[]64bit-[]application$[][] - [] - - -Overfull \hbox (162.33362pt too wide) in paragraph at lines 571--572 -[][][]$\OT1/cmtt/m/n/12 https : / / stackoverflow . com / questions / 142508 / -how-[]do-[]i-[]check-[]os-[]with-[]a-[]preprocessor-[]directive$[][] - [] - - -Overfull \hbox (16.30855pt too wide) in paragraph at lines 573--574 -[][][]$\OT1/cmtt/m/n/12 https : / / openmodelica . org / doc / OpenModelicaUser -sGuide / latest / interop _ - [] - -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 576. -[32] -Package atveryend Info: Empty hook `AfterLastShipout' on input line 576. - (./Final.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 576. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 576. -Package rerunfilecheck Info: File `Final.out' has not changed. -(rerunfilecheck) Checksum: C39EA63355D40134AB746DB78954129D;2640. - - -LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. - -Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 576. - ) -Here is how much of TeX's memory you used: - 9015 strings out of 493029 - 134922 string characters out of 6136234 - 221197 words of memory out of 5000000 - 12056 multiletter control sequences out of 15000+600000 - 10527 words of font info for 37 fonts, out of 8000000 for 9000 - 1141 hyphenation exceptions out of 8191 - 36i,8n,39p,809b,463s stack positions out of 5000i,500n,10000p,200000b,80000s -{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</usr/share/texli -ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/tex -mf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist -/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/ -type1/public/amsfonts/cm/cmtt12.pfb></usr/share/texmf/fonts/type1/public/cm-sup -er/sfrm1200.pfb> -Output written on Final.pdf (33 pages, 4536910 bytes). -PDF statistics: - 605 PDF objects out of 1000 (max. 8388607) - 474 compressed objects within 5 object streams - 140 named destinations out of 1000 (max. 500000) - 541 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/Report/Final.out b/Report/Final.out deleted file mode 100644 index 348814b..0000000 --- a/Report/Final.out +++ /dev/null @@ -1,40 +0,0 @@ -\BOOKMARK [0][-]{chapter.1}{Introduction}{}% 1 -\BOOKMARK [0][-]{chapter.2}{Implementation}{}% 2 -\BOOKMARK [1][-]{section.2.1}{Algorithm}{chapter.2}% 3 -\BOOKMARK [1][-]{section.2.2}{Making changes in source code}{chapter.2}% 4 -\BOOKMARK [2][-]{subsection.2.2.1}{How to make changes to source code and make libraries}{section.2.2}% 5 -\BOOKMARK [2][-]{subsection.2.2.2}{Working with Arduino UNO [Atmega328p]}{section.2.2}% 6 -\BOOKMARK [2][-]{subsection.2.2.3}{Working with Tiva C [TM4C123G]}{section.2.2}% 7 -\BOOKMARK [0][-]{chapter.3}{Download and Installation}{}% 8 -\BOOKMARK [1][-]{section.3.1}{OpenModelica}{chapter.3}% 9 -\BOOKMARK [1][-]{section.3.2}{Arduino IDE}{chapter.3}% 10 -\BOOKMARK [1][-]{section.3.3}{Energia IDE}{chapter.3}% 11 -\BOOKMARK [0][-]{chapter.4}{About OpenModelicaEmbedded package}{}% 12 -\BOOKMARK [1][-]{section.4.1}{SynchronizeRealTime Block}{chapter.4}% 13 -\BOOKMARK [1][-]{section.4.2}{Pins}{chapter.4}% 14 -\BOOKMARK [1][-]{section.4.3}{Boards}{chapter.4}% 15 -\BOOKMARK [1][-]{section.4.4}{Examples}{chapter.4}% 16 -\BOOKMARK [1][-]{section.4.5}{ArduinoExamples}{chapter.4}% 17 -\BOOKMARK [1][-]{section.4.6}{TivaC\137Examples}{chapter.4}% 18 -\BOOKMARK [1][-]{section.4.7}{Internal}{chapter.4}% 19 -\BOOKMARK [0][-]{chapter.5}{Hardware In Loop Simulation}{}% 20 -\BOOKMARK [1][-]{section.5.1}{Implementation}{chapter.5}% 21 -\BOOKMARK [0][-]{chapter.6}{PID Controller}{}% 22 -\BOOKMARK [1][-]{section.6.1}{Implementation}{chapter.6}% 23 -\BOOKMARK [1][-]{section.6.2}{Example for PID}{chapter.6}% 24 -\BOOKMARK [0][-]{chapter.7}{Working with Arduino UNO}{}% 25 -\BOOKMARK [1][-]{section.7.1}{Connecting and Configuring the Board}{chapter.7}% 26 -\BOOKMARK [1][-]{section.7.2}{Interfacing with OpenModelica}{chapter.7}% 27 -\BOOKMARK [1][-]{section.7.3}{Examples for Arduino}{chapter.7}% 28 -\BOOKMARK [2][-]{subsection.7.3.1}{LED Examples}{section.7.3}% 29 -\BOOKMARK [2][-]{subsection.7.3.2}{Push Button Examples}{section.7.3}% 30 -\BOOKMARK [2][-]{subsection.7.3.3}{LDR Examples}{section.7.3}% 31 -\BOOKMARK [2][-]{subsection.7.3.4}{DC Motor Examples}{section.7.3}% 32 -\BOOKMARK [2][-]{subsection.7.3.5}{Potentiometer Examples}{section.7.3}% 33 -\BOOKMARK [2][-]{subsection.7.3.6}{Thermistor Examples}{section.7.3}% 34 -\BOOKMARK [2][-]{subsection.7.3.7}{Servo Motor Examples}{section.7.3}% 35 -\BOOKMARK [0][-]{chapter.8}{Working with Tiva C Launchpad}{}% 36 -\BOOKMARK [1][-]{section.8.1}{Connecting and Configuring the Board}{chapter.8}% 37 -\BOOKMARK [1][-]{section.8.2}{Interfacing with OpenModelica}{chapter.8}% 38 -\BOOKMARK [1][-]{section.8.3}{Examples for Tiva C}{chapter.8}% 39 -\BOOKMARK [0][-]{chapter.9}{Conclusion}{}% 40 diff --git a/Report/Final.pdf b/Report/Final.pdf Binary files differdeleted file mode 100644 index bf3c688..0000000 --- a/Report/Final.pdf +++ /dev/null diff --git a/Report/Final.tex b/Report/Final.tex deleted file mode 100644 index 8a6906d..0000000 --- a/Report/Final.tex +++ /dev/null @@ -1,578 +0,0 @@ -\documentclass[12pt,a4paper]{report} -\usepackage[hmargin=3cm,vmargin=3cm]{geometry} -\usepackage{graphicx} -\usepackage{caption} -\usepackage{array} -\usepackage{listings} -\usepackage{hyperref} -\usepackage{float} -\usepackage{textcomp} -\usepackage{subcaption} -\newcommand\tab[1][0.5cm]{\hspace*{#1}} -\graphicspath{Images} - -\hypersetup{ - colorlinks=true, - linkcolor=black, - urlcolor=blue -} -\begin{document} - -\begin{figure} -\centering -\includegraphics[width = 0.3\textwidth]{iit} -\hspace{1cm} -\includegraphics[width = 0.4\textwidth]{fossee-logo} -\end{figure} - -\title{\textbf{\textbf{Developing a Generic Purpose OpenModelica Library for Embedded Applications}}\vspace{5mm}\\ -\vspace{5mm} \large Developer's Document - II\vspace{5mm} \\ \vspace{5mm}\small by\\ \vspace{1mm} \large \textbf{Manas Ranjan Das}\\ \vspace{5mm} -%\small Under the guidance of \\ \vspace{2mm} -%\large \textbf{Mentor: Mr. Manas Ranjan Das}\\ \vspace{3mm} -%\large \textbf{Prof. Kannan M. Moudgalya} \vspace{1mm}\\Department of Chemical Engineering \vspace{1mm} \\IIT Bombay -} -%\vspace{1cm} - -\maketitle - -\tableofcontents -\listoffigures - -\chapter{\textbf{Introduction}} -OpenModelica is a free and open source environment based on the Modelica modeling language for simulating, optimizing and analyzing complex dynamic systems. OpenModelica is used in academic and industrial environments. Industrial applications include the use of OpenModelica along with proprietary software in the fields of power plant optimization, automotive and water treatment. Models are either built through line by line code or graphical code in OpenModelica. OpenModelica can interact with C, Python languages and can call C, Python functions from within its models. OpenModelica is a powerful tool that can be used to design and simulate complete control systems. - -Our project was to implement model based design i.e. creating models for different embedded applications and generating C code that can be ported to the respective family of microcontrollers.We also worked towards Improving the Hardware In Loop (HIL) implementation on OpenModelica and microcontrollers like arduino and TivaC.The current implementation which is based on Inter Process Communication (IPC) needs to be made robust. Hence there is a need to come up with a less cumbersome IPC for HIL. - - -\chapter{\textbf{Implementation}} -\section{Algorithm} -\begin{enumerate} -\item Once you have installed OpenModelica, launch OMEdit and open the OpenModelicaEmbedded package. -\item To use the above package you will also need to load Modelica\_DeviceDrivers package. The ‘synchronizeRealtime’ block present in this package is used to make the simulation of models real-time. All it does is that, it maps the time interval provided by you before simulation with clock your PC. -\item The components provided in this package are: -\begin{enumerate} -\item Pins: It contains Analog input, Analog output, Digital input, Digital output and Servo pins to perform corresponding function in model. -\item Boards: Any of the provided board can be used depending the one you are using, else use the ‘customBoard’ provided and vary it’s parameters to match the configuration of the development board you are using. -\end{enumerate} -\item Take a look at the examples provided along with the package to understand the basics structure of a model. Each model has ‘Board’ block which represents the development board used. This block when added to a model, on simulation calls a couple of functions present in ‘Internal > ExternalFunctions’ which set the initialisation parameters for communication like PORT, BAUD rate, etc. -\item These modelica functions present in ‘ExternalFunctions’ then call external C functions which perform the actual task the function is supposed to do. -\item These external C functions are bundled together and provided in the form of libraries. The Libraries used will be ‘*.dll’ in case of WindowsOS and ‘*.so’ in case of Linux. -\item After adding a board to your model add pins using blocks provided for the same. If you want to send some data from OpenModelica to connected microcontroller the use Analog/Digital Output Pin, and vice versa. Use Analog Pin while working with real data and Digital pin while working with Boolean. -\item These pin blocks again call functions in similar manner to either send or receive data. -\item Once your model is ready and check is successful, upload appropriate Firmware on microcontroller board connected. -\item The Firmware’s for Arduino and Tiva C borads have been provided along with the package. Open Arduino IDE if using Arduino board and Energia IDE if using Tiva C board and upload corresponding firmware on board. -\item The Firmware implements Firmata protocol to establish communication with OpenModelica. -\item Now go back to OpenModelica and simulate your model. -\end{enumerate} - -\section{Making changes in source code} -\subsection{How to make changes to source code and make libraries} -{\textbf {Linux Operating System}}\\ - -Open the source codes by browsing to this location : OpenModelicaEmbedded \textrightarrow Source.After making changes to the source code files open Terminal.Browse to OpenModelicaEmbedded \textrightarrow Source folder using ‘cd’ command.Run command ‘make’ to generate shared object file('*.so').\\ -\\ -{\textbf {Windows Operating System}}\\ - -Open the source codes by browsing to this location : OpenModelicaEmbedded \textrightarrow Source. After making changes to the source code, open Command Prompt (cmd).Browse to OpenModelicaEmbedded \textrightarrow Source folder using ‘cd’ command.To compile the CPP files run the command: g++ -c modelPlugFirmata.cpp serial.cpp. To create a DLL from generated object files, run the command: g++ -shared -o modelPlugFirmata.dll modelPlugFirmata.o serial.o.Then copy the generated DLL file and paste it in folders: OpenModelicaEmbedded and Resources \textrightarrow Library \textrightarrow win64.\\ - -\subsection{Working with Arduino UNO [Atmega328p]} - Setting up firmware for Arduino board\\ - In Tools Menu, select appropriate Board (Arduino/Genuino UNO) and Port as the available serial port to which Arduino is connected.\\ - Open pidmata3 sketch: File \textrightarrow Open \textrightarrow OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Arduino \textrightarrow pidmata3 \textrightarrow pidmata3.ino. - Upload the sketch to the board.\\ - -\textbf{Simulating the Modelica model}\\ -Now open OMEdit window.\\ -Open ‘package.mo’ file OpenModelicaEmbedded folder.\\ -In OpenModelicaEmbedded package, open ArduinoExamples’ package which consists of examples for arduino board. Check and simulate the example models and verify the results. - -\subsection{Working with Tiva C [TM4C123G]} -In Energia, open the firmware for Tiva C provided in folder through path : File \textrightarrow Open \textrightarrow OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Tiva C \textrightarrow StandardFirmata \textrightarrow \\ StandardFirmata.ino or add zip file of this StandardFirmata as an external library in Energia from the same folder.\\ -Select appropriate Board (Tiva C) and Port (USB port where Tiva C is connected) in Tools menu.\\ -Then, upload the firmware on board.\\ - -\textbf{Simulate a model with Tiva C.}\\ -Now open OMEdit and Open the package.mo file from OpenModelicaEmbedded package\\ -Open an example provided in the OpenModelicaEmbedded package which includes a Tiva C board.\\ -Check and Simulate the model and verify the results in Plotting window.\\ - -\chapter{\textbf{Download and Installation}} -\section{OpenModelica} -OpenModelica can be downloaded online from \url{https://openmodelica.org}.\\ -\\ -For Linux:\\ -The Debian/Ubuntu package for OpenModelica can be downloaded and installed by following the instructions on \url{https://openmodelica.org/download/download-linux}. OMEdit can be launched by typing OMEdit in the Terminal.\\ -\\ -For Windows:\\ -The setup for OpenModelica on Windows can be downloaded from \url{https://openmodelica.org/download/download-windows}. After downloading and installation of the software, OMEdit or OpenModelica Connection Editor can be launched by clicking on its icon or by navigating through Start menu. - -\section{Arduino IDE} -The open source Arduino Software is used to write codes and upload them to the board. For the setup of Arduino IDE for both Windows and Linux go to \url{https://www.arduino.cc/en/Main/Software} and follow the download and install instructions. - -\section{Energia IDE} -Energia is a Arduino-like coding environment designed for Texas Instruments Launchpads. The setup for Energia can be downloaded from \url{http://energia.nu/download/}. The instructions for installation can be referred from - \\ -For Linux: \url{http://energia.nu/guide/guide_linux/} -For Windows: \url{http://energia.nu/guide/guide_windows/} - - -\chapter{\textbf{About OpenModelicaEmbedded package}} - -OpenModelicaEmbedded package is designed to interact between embedded systems and OpenModelica models using C/C++ functions. This package can work for both Atmega series (tested for Arduino UNO - Atmega328p) and Texas Instruments Tiva C series (tested for Tiva C EK-TM4C123GXL Launchpad).\\ -\\ -The package can be downloaded from the following link:\\ -\url{https://github.com/manasdas17/OpenModelicaEmbedded}\\ -This library requires Modelica\_DeviceDrivers library as a supporting library which can be downloaded from the following link:\\ -\url{https://github.com/modelica/Modelica_DeviceDrivers} - -\begin{figure}[H] -\centering -\includegraphics[width =0.5 \textwidth]{package_str} -\caption{Structure of OpenModelicaEmbedded package} -\label{figure:1} -\end{figure} - -\section{SynchronizeRealTime Block} -This block is a part of Modelica\_DeviceDrivers library used for real-time simulation of the model, i.e., this block synchronizes simulation time of the process to real- time clock of the operating system. Without this block, the models designed using this package will not be able to give proper real-time output. This block works at five different priorty levels which can be changed in Parameters dialog box by double-clicking the block. - -\begin{figure}[H] -\centering -\includegraphics[width = 0.3\textwidth]{realtime} -\includegraphics[width = 0.65\textwidth]{realtimepara} -\caption{SymchronizeRealTime block} -\label{figure:2} -\end{figure} - -\section{Pins} -This package contains blocks which define to input and output pins of the board to which our hardware can be connected. These pin components define the properties and working of the pins used in the hardware.\\ - -\begin{itemize} -\item \textbf{AnalogInput:} It reads an analog signal from the specified pin. This component uses the function ‘analogRead’ of Arduino. It takes minimum and maximum values of the signal as parameter (default values being 0 and 1 respectively) and gives output depending on the size of ADC (analog to digital convertor) which is 10-bit for Arduino UNO board and 12-bit for Tiva C series TM4C123G board. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin11} -\includegraphics[width = 0.55\textwidth]{pin12} -\caption{AnalogInput block} -\label{figure:3} -\end{figure} -\item \textbf{AnalogOutput:} It writes analog value (PWM wave) to the specified pin. This component uses the function ‘analogWrite’ of Arduino. It takes minimum and maximum values of the signal as parameter (default values being 0 and 1 respectively) and gives output depending on the size of ADC. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin21} -\includegraphics[width = 0.55\textwidth]{pin22} -\caption{AnalogOutput block} -\label{figure:4} -\end{figure} -\item \textbf{DigitalInput:} It reads an digital signal from the specified pin. This component uses the function ‘digitalRead’ of Arduino. It only takes boolean signals. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin31} -\includegraphics[width = 0.55\textwidth]{pin32} -\caption{DigitalInput block} -\label{figure:5} -\end{figure} -\item \textbf{DigitalOutput:} It writes digital value to the specified pin. This component uses the function ‘digitalWrite’ of Arduino. It only takes boolean signals. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin41} -\includegraphics[width = 0.55\textwidth]{pin42} -\caption{DigitalOutput block} -\label{figure:6} -\end{figure} -\item \textbf{Servo:} It controls a servo motor attached to the specified pin. This component uses the 'Servo' library of Arduino. By default, the range goes from 0 to 1, which corresponds to 0 to 180 degrees. If you want to input values in degrees or radians, you can change the parameter 'InputUnit' to 'Degrees' or 'Radians'. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin51} -\includegraphics[width = 0.55\textwidth]{pin52} -\caption{Servo block} -\label{figure:7} -\end{figure} -\end{itemize} - -\section{Boards} -This package contains block components which enable connection with different firmata boards. These components take serial port used for connection as parameter. -\begin{itemize} -\item \textbf{Arduino:} Used for connecting to Arduino boards, such as Arduino UNO, Arduino Mega 2500 and others having similar firmata. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board1} -\caption{Arduino block} -\label{figure:8} -\end{figure} -\item \textbf{ArduinoLeonardo:} Supports Arduino Leonardo board and other boards using native USB. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board2} -\caption{ArduinoLeonardo block} -\label{figure:9} -\end{figure} -\item \textbf{StandardFirmata:} Connects to Arduino compatible boards. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board3} -\caption{StandardFirmata block} -\label{figure:10} -\end{figure} -\item \textbf{CustomFirmata:} Supports any board firmata. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board4} -\caption{CustomFirmata block} -\label{figure:11} -\end{figure} -\item \textbf{customBoard:} Takes name of the board also as parameter and can be used to connect any board supporting firmata. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board5} -\caption{customBoard block} -\label{figure:12} -\end{figure} -\end{itemize} - -\section{Examples} -The package contains example models to get introduced to the working of components of the package. These models accomplish different tasks using different blocks provided in Pins and Boards package. - -\section{ArduinoExamples} -The package contains example models specifc to Arduino UNO board. It can be used for other Arduino boards by change Pin Number parameter for the Pin blocks. Detailed description for the package is given in 'Working with Arduino'. - -\section{TivaC\_Examples} -The package contains example models specifc to Tiva C Launchpad TM4C123G board. It can be used for other similar boards by change Pin Number parameter for the Pin blocks. Detailed description for the package is given in 'Working with Tiva C'. - -\section{Internal} -The components of this package cannot be used directly in the models. This package consists of icons and connectors defined and used for block designing, new types defined and used for the blocks and functions designed using external C/C++ functions at backend. - -\chapter{\textbf{Hardware In Loop Simulation}} -\tab Hardware-in-the-loop (HIL) simulation, or HWIL, is a technique that is used in the development and test of complex real-time embedded systems. HIL simulation provides an effective platform by adding the complexity of the plant under control to the test platform. The complexity of the plant under control is included in test and development by adding a mathematical representation of all related dynamic systems. These mathematical representations are referred to as the “plant simulation”. The embedded system to be tested interacts with this plant simulation.\\ - -A HIL simulation must include electrical emulation of sensors and actuators. These electrical emulations act as the interface between the plant simulation and the embedded system under test. The value of each electrically emulated sensor is controlled by the plant simulation and is read by the embedded system under test (feedback). Likewise, the embedded system under test implements its control algorithms by outputting actuator control signals. Changes in the control signals result in changes to variable values in the plant simulation. - -\section{Implementation} -\tab The package developed (OpenModelicaEmbedded) has several components like micro-controller boards, Digital/Analog Pins, etc. which you will have to use in your model to make it interact with connected hardware device. These components make calls to external C functions present in the library provided in Library directory. Those functions using serial communication communicate with the connected device. This source file will remain same irrespective of the connected hardware device and platform used (Windows, Linux, Mac).\\ - -The connected hardware device uses Firmata protocol to communicate with OpenModelica. The source code implementing Firmata protocol on hardware will vary depending on the language/ IDE used by that hardware/microcontroller, but the underlying protocol remains the same. - -\chapter{\textbf{PID Controller}} -A \textbf{proportional - integral - derivative controller} (\textbf{PID controller} or \textbf{three term controller}) is a control loop feedback mechanism widely used in industrial control systems and a variety of other applications requiring continuously modulated control. A PID controller continuously calculates an error value e(t) as the difference between a desired setpoint (SP) and a measured process variable (PV) and applies a correction based on proportional, integral, and derivative terms (denoted P, I, and D respectively) which give the controller its name. - -\section{Implementation} -The PID is implemented in the Firmware present on the hardware device using ‘AutoPID’ Library. To use the hardware for PID you will have to change the Firmware (Arduino source code) a bit by following the instructions mentioned in the Firmware itself. The only thing you have to do is just comment/uncomment a few macros depending on your application. - -\begin{figure}[H] -\centering -\includegraphics[width =0.9\textwidth]{pid} -\caption{Firmata to work with PID Controller} -\label{figure:24} -\end{figure} - -\section{Example for PID} -\textbf{Example:} DCMotorWithPID (from Examples package) -\begin{figure}[H] -\centering -\includegraphics[width =0.9\textwidth]{pid_ex} -\caption{Model for PID Controller with DC Motor} -\label{figure:25} -\end{figure} -\begin{figure}[H] -\centering -\includegraphics[width = 0.9\textwidth]{pid_graph} -\caption{Plot for PID Controller with DC Motor} -\label{figure:26} -\end{figure} - -\chapter{\textbf{Working with Arduino UNO}} -The Arduino UNO is a widely used microcontroller board based of ATmega328P microcontroller IC and is developed by Arduino.cc. It operates at a voltage of 5V. The board contains 14 Digital and 6 Analog input/output (I/O) pins, a 10-bit ADC (Analog to Digital Convertor), 8-bit DAC, a in-built LED connected to digital pin no. 13 and many other features. - -\begin{figure}[H] -\centering -\includegraphics[width =0.75 \textwidth]{arduino_uno_pinout} -\caption{Pin Diagram of Arduino UNO} -\label{figure:13} -\end{figure} - -\section{Connecting and Configuring the Board} -\begin{enumerate} -\item Connect the Arduino UNO board to the computer using a USB cable. -\item Open Arduino IDE. -\item In Tools Menu, select Board \textrightarrow Arduino/Genuino UNO and Port as the available serial port to which Arduino is connected. -\item The serial port can be identified by:\\ -For Linux:\\ -Type the command \textbf{ls -l /dev/ttyACM*} in the terminal and the output it returns gives the port to which Arduino is connected, for example \textbf{/dev/ttyACM0}.\\ -For Windows:\\ -Open \textbf{Device Manager} and check for the name of connected port which will be in the form, for example, \textbf{COM5}. -\item Click Sketch \textrightarrow Include libraries and select Manage libraries, type AutoPID in the search bar and install the library. -\item Click File \textrightarrow Open and browse OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Arduino \textrightarrow pidmata3 and open pidmata3.ino.\\ -OR\\ -Open StandardFirmata sketch: File \textrightarrow Examples \textrightarrow StandardFirmata , if not working with PID.\\ -\item Upload the sketch to the board. -\end{enumerate} - -\section{Interfacing with OpenModelica} -\begin{enumerate} -\item Upload StandardFirmata sketch to the Arduino board. -\item Open package.mo from OpenModelicaEmbedded package, also open package.mo file from Modelica\_DeviceDrivers library. -\item In OpenModelicaEmbedded package, open ArduinoExamples package. -\item In Diagram view, change the port name for the board component to the port to which board is connected by double-clicking on it. -\item Simulate the example model. -\end{enumerate} - -\section{Examples for Arduino} -ArduinoExamples package consists of example models designed for specificly to work with Arduino UNO board. In order to work with these examples, double-click of board block in the Diagram view and change port name to the port to which board is connected. If working with any other similar Arduino board, double-click the pin blocks and change pin number as per the used board. - -\subsection{LED Examples} -\textbf{Example:} arduino\_ex1\_led\_blue\\ - -The following is an example to turn on the blue led indefinitely. Double clicking each block opens the parameter window for it. Change the parameters according to the following image. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{1} -\caption{Connections for lighting up blue led} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{led_ex1} -\caption{Model for lighting up blue led} -\end{subfigure} -\caption {Arduino Led Example} -\label{figure:14} -\end{figure} - -\subsection{Push Button Examples} -\textbf{Example:} arduino\_ex1\_push\_button\_status\\ - -The following example is to read the status of the pushbutton and display it on the serial monitor.\\ - -In this model, a BooleanValue block is used to show boolean value coming from the digital input pin of arduino on Simulation Output. The block BooleanValue can be found at Modelica.Blocks.Interaction.Show.BooleanValue.\\ - -Moreover, a print statement to print boolean value is written in the Text view of the model which can be seen in ~\ref{figure:23}.\\ - -Double clicking each block opens the parameter window for it. Change the parameters according to the following image. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{2} -\caption{Connections for push button} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{pb_ex1} -\caption{Model for checking status of push button} -\end{subfigure} -\caption {Arduino Push Button Example} -\label{figure:15} -\end{figure} - -\begin{figure}[H] -\centering -\includegraphics[width =\textwidth]{pb_ex1_print} -\caption{Print Statement} -\label{figure:23} -\end{figure} - - -\subsection{LDR Examples} -\textbf{Example:} arduino\_ex2\_ldr\_read\\ - -Turning the blue LED on and off according to the values of LDR (Light Dependent Resistor).\\ - -In this model, 2 blocks have been used namely Less and Constant.\\ - -Less block takes 2 input and gives 1 output according to the values of input. For example in the case below, when value from pin 19 is less than k = 300, output is true (or 1) and when value from pin 19 is greater than equal to k=300, its output is false (or 0). The block can be found at Modelica.Blocks.Logical.Less.\\ - -Constant block provides with a constant value which can be set by user. The block can be found at Modelica.Blocks.Sources.Constant. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{3} -\caption{Connections for ldr} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{ldr_ex2} -\caption{Model for switching led depending on ldr value} -\end{subfigure} -\caption {Arduino LDR Example} -\label{figure:16} -\end{figure} - -\subsection{DC Motor Examples} -\textbf{Example:} arduino\_ex2\_dcmotor\_both\\ - -The following example is of rotating the DC motor in both directions. As visible in the model below, 2 pulse blocks are used to manage this. \\ - -A pulse block generates pulse signals of real value. It’s amplitude, duty cycle, time period, start time can be varied through changing amplitude, width, period, startTime respectively in the parameter window of the pulse. The block can be found at Modelica.Blocks.Sources.Pulse.\\ - -Double clicking each block opens the parameter window for it. Change the parameters according to the following image. - -\begin{figure}[H] -\begin{subfigure}{.75\textwidth} -\centering -\includegraphics[width =\linewidth]{4} -\caption{Connections for dc motor} -\end{subfigure} -\begin{subfigure}{\textwidth} -\centering -\includegraphics[width =0.3\linewidth]{dc_ex2} -\includegraphics[width =0.3\linewidth]{dc_ex2_2} -\includegraphics[width =0.3\linewidth]{dc_ex2_3} -\caption{Model for rotating dc motor in both directions} -\end{subfigure} -\caption {Arduino DC Motor Example} -\label{figure:17} -\end{figure} - -\subsection{Potentiometer Examples} -\textbf{Example:} arduino\_ex1\_pot\_threshold\\ - -The following example is of turning on LEDs depending on the potentiometer threshold. As seen in the model below, we’ve used Xor and GreaterEqualThreshold blocks. \\ - -The GreaterEqualThreshold block has a parameter-threshold; if the input value to the block is greater than or equal to this threshold then the output is the same as input, otherwise 0.\\ - -This block can be found at Modelica.Blocks.Logical.GreaterEqualThreshold.\\ - -The other one is Xor block which simply xor’s ihe 2 input values it gets. This block can be found at Modelica.Blocks.Logical.Xor. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{5} -\caption{Connections for potentiometer} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{potentio_ex1} -\caption{Model for potentiometer threshold ranges} -\end{subfigure} -\caption {Arduino Potentiometer Example} -\label{figure:18} -\end{figure} - -\subsection{Thermistor Examples} -\textbf{Example:} arduino\_ex1\_therm\_read\\ - -Turning the buzzer on and off using the thermistor values read by ADC. \\ - -It’s model has Greater block. Greater block takes 2 input and gives 1 output according to the values of input. For example in the case below, when value from pin 18 is greater than k = 500, output is true(or 1) and when value from pin 18 is less than equal to k=500, its output is false(or 0). The block can be found at Modelica.Blocks.Logical.Greater. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{6} -\caption{Connections for thermistor} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{thermistor_ex1} -\caption{Model for checking value of thermistor} -\end{subfigure} -\caption {Arduino Thermistor Example} -\label{figure:19} -\end{figure} - -\subsection{Servo Motor Examples} -\textbf{Example:} arduino\_ex3\_servo\_loop\\ - -Rotating the servo in increments. \\ - -The model contains blocks like Product, RealToInteger, IntegerToReal, Constant and Ramp. The Ramp block gives a strictly increasing value. On using RealToInteger block on the output, it converts it to step function. Now as the Product block accepts 2 input in real format only, there was a need to convert the value back to real using IntegerToReal block.\\ - -In Servo pin, set InputUnit to OpenModelicaEmbedded.Internal.Types.ServoUnit.None. \\ - -As can be seen from data sheet (Figure:~\ref{figure:27}) SG90 has a duty cycle of 5-10\% where if it is 5\%, the position of motor is -90 degrees and if 10\%, it is +90 degrees. So as we were simulating for 10 seconds, MinPulse was 0.5 sec and MaxPulse was 1sec in Servo pin Parameters. - -\begin{figure}[H] -\centering -\includegraphics[width =\textwidth]{servo_datasheet} -\caption{Data Sheet for Servo Motor SG90} -\label{figure:27} -\end{figure} - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{7} -\caption{Connections for Servo Motor} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{servo_ex3} -\caption{Model for working with Servo Motor} -\end{subfigure} -\caption {Arduino Servo Motor Example} -\label{figure:20} -\end{figure} - -\chapter{\textbf{Working with Tiva C Launchpad}} -The Tiva C series Launchpad Evaluation board (EK-TM4C123GXL) is low cost ARM-Cortex-M4F based microcontroller. The board contains 40 I/O pins, two user programmable push buttons, a RGB led and many more features. - -\begin{figure}[H] -\centering -\includegraphics[width =\textwidth]{tiva_c_launchpad_pinout} -\caption{Pin Diagram of Tiva C Launchpad} -\label{figure:21} -\end{figure} - -\section{Connecting and Configuring the Board} -\begin{enumerate} -\item Connect the Tiva C board to the computer using a USB cable. -\item Open Energia IDE. -\item In Tools Menu, select Board \textrightarrow Tiva C and Port as the available serial port to which Arduino is connected. -\item If Tiva C board is not present, then click on Board Manager, type Tiva C in search bar and then click on Install to install board library, then apply Step 3. -\item In Sketch menu, Select Include Library \textrightarrow Add .zip library and add the zip file provided in the Firmware folder. Then open StandardFirmata sketch: File \textrightarrow Examples \textrightarrow StandardFirmata.\\ -OR\\ -Click File \textrightarrow Open and browse OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Tiva C \textrightarrow StandardFirmata and open StandardFiramata.ino. -\item Upload the sketch to the board. -\end{enumerate} - -\section{Interfacing with OpenModelica} -\begin{enumerate} -\item Upload StandardFirmata sketch to the Tiva C board. -\item Open package.mo from OpenModelicaEmbedded package, also open package.mo file from Modelica\_DeviceDrivers library. -\item In OpenModelicaEmbedded library, open TivaC\_Examples package. -\item In Diagram view, change the port name for the board component to the port to which board is connected by double-clicking on it. -\item Simulate the example model. -\end{enumerate} - -\section{Examples for Tiva C} -The examples explained in package for tiva-c are same as that for arduino board except that the pin configurations are different. The configuration can be seen from the pin diagram from Figure~\ref{figure:21}.\\ - -\textbf{Example:} tivac\_ex1\_led\_blue -\begin{figure}[H] -\centering -\includegraphics[width =0.75\textwidth]{tiva_led} -\caption{Tiva C Led Example} -\label{figure:22} -\end{figure} -The example Tiva-C Led works same as the one which is explained for arduino except for the fact that the pin configuration has been changed,for arduino it was pin number 9 while for tiva-c board it is pin number 40 as can be reffered from the pin diagram of tiva-c board (Figure: ~\ref{figure:21}). All other working remains same as already explained in case of Arduino.\\ - -For all other models also only pin number changes in case of Arduino rest they are similar to those present in ArduinoExamples package. - -\chapter{\textbf{Conclusion}} -\tab The project "Interfacing of Embedded Systems with OpenModelica", is based on implementing an example package for Arduino board as well as for tiva-C board.We implemented the same set of examples on both Arduino board as well as Tiva-c board because Tiva-c board targets industries.We implemented hardware in loop simulation and PID tuning was done. Indeed the same set of codes can be used for linux as well as for windows plateform. We also explored the embedded targets package of the Modelica\_DeviceDrivers library.\\ - -Although, there were many issues initially, most of them got resolved in the course of the project. While working on the project with OpenModelica we came to a conclusion that OpenModelica is an open source software based on Modelica language to design and simulate complex physical systems through code as well as graphical blocks which is also very useful for electronics prototyping and real time simulations. The main drawback of the library is its lack of appropriate documentation and various other hardware supports in the electronics hardware area. Such modules are open for modifications and can be extended by future developers. Therefore we have explored OpenModelica in detail and tried to provide a better insight in this open source software which will help developers in the future. - -\newpage -\title{\textbf{\textbf{\LARGE -\begin{flushleft} -\textbf{Reference} -\end{flushleft} -}}} -The following sources were referred to while working on this project: -\begin{itemize} -\item Peter Fritzson :Principles of Object-Oriented Modeling and Simulation with Modelica 3.3: A Cyber-Physical Approach -\item \url{ https://www.openmodelica.org/} -\item \url{ http://book.xogeny.com/} -\item \url{ https://build.openmodelica.org/Documentation/Modelica.html} -\item \url{ https://www.codeproject.com/Articles/84461/MinGW-Static-and-Dynamic-Libraries} -\item \url{https://stackoverflow.com/questions/10039401/use-32bit-shared-library-from-64bit-application} -\item \url{ https://stackoverflow.com/questions/142508/how-do-i-check-os-with-a-preprocessor-directive} -\item \url{https://en.wikipedia.org/wiki/PID_controller} -\item \url { https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/interop_c_python.html} -\end{itemize} - -\end{document} - - diff --git a/Report/Final.tex~ b/Report/Final.tex~ deleted file mode 100644 index 872cd3e..0000000 --- a/Report/Final.tex~ +++ /dev/null @@ -1,591 +0,0 @@ -\documentclass[12pt,a4paper]{report} -\usepackage[hmargin=3cm,vmargin=3cm]{geometry} -\usepackage{graphicx} -\usepackage{caption} -\usepackage{array} -\usepackage{listings} -\usepackage{hyperref} -\usepackage{float} -\usepackage{textcomp} -\usepackage{subcaption} -\newcommand\tab[1][0.5cm]{\hspace*{#1}} -\graphicspath{Images} - -\hypersetup{ - colorlinks=true, - linkcolor=black, - urlcolor=blue -} -\begin{document} - -\begin{figure} -\centering -\includegraphics[width = 0.3\textwidth]{iit} -\hspace{1cm} -\includegraphics[width = 0.4\textwidth]{fossee-logo} -\end{figure} - -\title{\textbf{\textbf{Developing a Generic Purpose OpenModelica Library for Embedded Applications}}\vspace{5mm}\\ -\vspace{5mm} \large Developer's Document - II\vspace{5mm} \\ \vspace{5mm}\small by\\ \vspace{1mm} \large \textbf{Manas Ranjan Das}\\ \vspace{5mm} -%\small Under the guidance of \\ \vspace{2mm} -%\large \textbf{Mentor: Mr. Manas Ranjan Das}\\ \vspace{3mm} -%\large \textbf{Prof. Kannan M. Moudgalya} \vspace{1mm}\\Department of Chemical Engineering \vspace{1mm} \\IIT Bombay -} -%\vspace{1cm} - -\maketitle - - -\newpage -\title{\textbf{\textbf{\LARGE -\begin{flushleft} -\textbf{Acknowledgment} -\end{flushleft} -}}} -%\begin{flushleft} -We are grateful to FOSSEE, IIT Bombay and our mentor Mr. Manas Ranjan Das for giving us the opportunity to work on the project Implementing an embedded package for OpenModelica. We express our sincere gratitude to our mentor Mr. Manas Ranjan Das for his support, help and encouragement throughout the project. We would also like to thank Professor Kannan M.Moudgalya who introduced us to FOSSEE, its projects and the significance of its work.we are grateful for we would not have worked on the open source software at this level of exposure without your guidance and support.\\ - - Also we would like to recognize the support and contribution of all the team members. -%\end{flushleft} - -\tableofcontents -\listoffigures - -\chapter{\textbf{Introduction}} -OpenModelica is a free and open source environment based on the Modelica modeling language for simulating, optimizing and analyzing complex dynamic systems. OpenModelica is used in academic and industrial environments. Industrial applications include the use of OpenModelica along with proprietary software in the fields of power plant optimization, automotive and water treatment. Models are either built through line by line code or graphical code in OpenModelica. OpenModelica can interact with C, Python languages and can call C, Python functions from within its models. OpenModelica is a powerful tool that can be used to design and simulate complete control systems. - -Our project was to implement model based design i.e. creating models for different embedded applications and generating C code that can be ported to the respective family of microcontrollers.We also worked towards Improving the Hardware In Loop (HIL) implementation on OpenModelica and microcontrollers like arduino and TivaC.The current implementation which is based on Inter Process Communication (IPC) needs to be made robust. Hence there is a need to come up with a less cumbersome IPC for HIL. - - -\chapter{\textbf{Implementation}} -\section{Algorithm} -\begin{enumerate} -\item Once you have installed OpenModelica, launch OMEdit and open the OpenModelicaEmbedded package. -\item To use the above package you will also need to load Modelica\_DeviceDrivers package. The ‘synchronizeRealtime’ block present in this package is used to make the simulation of models real-time. All it does is that, it maps the time interval provided by you before simulation with clock your PC. -\item The components provided in this package are: -\begin{enumerate} -\item Pins: It contains Analog input, Analog output, Digital input, Digital output and Servo pins to perform corresponding function in model. -\item Boards: Any of the provided board can be used depending the one you are using, else use the ‘customBoard’ provided and vary it’s parameters to match the configuration of the development board you are using. -\end{enumerate} -\item Take a look at the examples provided along with the package to understand the basics structure of a model. Each model has ‘Board’ block which represents the development board used. This block when added to a model, on simulation calls a couple of functions present in ‘Internal > ExternalFunctions’ which set the initialisation parameters for communication like PORT, BAUD rate, etc. -\item These modelica functions present in ‘ExternalFunctions’ then call external C functions which perform the actual task the function is supposed to do. -\item These external C functions are bundled together and provided in the form of libraries. The Libraries used will be ‘*.dll’ in case of WindowsOS and ‘*.so’ in case of Linux. -\item After adding a board to your model add pins using blocks provided for the same. If you want to send some data from OpenModelica to connected microcontroller the use Analog/Digital Output Pin, and vice versa. Use Analog Pin while working with real data and Digital pin while working with Boolean. -\item These pin blocks again call functions in similar manner to either send or receive data. -\item Once your model is ready and check is successful, upload appropriate Firmware on microcontroller board connected. -\item The Firmware’s for Arduino and Tiva C borads have been provided along with the package. Open Arduino IDE if using Arduino board and Energia IDE if using Tiva C board and upload corresponding firmware on board. -\item The Firmware implements Firmata protocol to establish communication with OpenModelica. -\item Now go back to OpenModelica and simulate your model. -\end{enumerate} - -\section{Making changes in source code} -\subsection{How to make changes to source code and make libraries} -{\textbf {Linux Operating System}}\\ - -Open the source codes by browsing to this location : OpenModelicaEmbedded \textrightarrow Source.After making changes to the source code files open Terminal.Browse to OpenModelicaEmbedded \textrightarrow Source folder using ‘cd’ command.Run command ‘make’ to generate shared object file('*.so').\\ -\\ -{\textbf {Windows Operating System}}\\ - -Open the source codes by browsing to this location : OpenModelicaEmbedded \textrightarrow Source. After making changes to the source code, open Command Prompt (cmd).Browse to OpenModelicaEmbedded \textrightarrow Source folder using ‘cd’ command.To compile the CPP files run the command: g++ -c modelPlugFirmata.cpp serial.cpp. To create a DLL from generated object files, run the command: g++ -shared -o modelPlugFirmata.dll modelPlugFirmata.o serial.o.Then copy the generated DLL file and paste it in folders: OpenModelicaEmbedded and Resources \textrightarrow Library \textrightarrow win64.\\ - -\subsection{Working with Arduino UNO [Atmega328p]} - Setting up firmware for Arduino board\\ - In Tools Menu, select appropriate Board (Arduino/Genuino UNO) and Port as the available serial port to which Arduino is connected.\\ - Open pidmata3 sketch: File \textrightarrow Open \textrightarrow OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Arduino \textrightarrow pidmata3 \textrightarrow pidmata3.ino. - Upload the sketch to the board.\\ - -\textbf{Simulating the Modelica model}\\ -Now open OMEdit window.\\ -Open ‘package.mo’ file OpenModelicaEmbedded folder.\\ -In OpenModelicaEmbedded package, open ArduinoExamples’ package which consists of examples for arduino board. Check and simulate the example models and verify the results. - -\subsection{Working with Tiva C [TM4C123G]} -In Energia, open the firmware for Tiva C provided in folder through path : File \textrightarrow Open \textrightarrow OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Tiva C \textrightarrow StandardFirmata \textrightarrow \\ StandardFirmata.ino or add zip file of this StandardFirmata as an external library in Energia from the same folder.\\ -Select appropriate Board (Tiva C) and Port (USB port where Tiva C is connected) in Tools menu.\\ -Then, upload the firmware on board.\\ - -\textbf{Simulate a model with Tiva C.}\\ -Now open OMEdit and Open the package.mo file from OpenModelicaEmbedded package\\ -Open an example provided in the OpenModelicaEmbedded package which includes a Tiva C board.\\ -Check and Simulate the model and verify the results in Plotting window.\\ - -\chapter{\textbf{Download and Installation}} -\section{OpenModelica} -OpenModelica can be downloaded online from \url{https://openmodelica.org}.\\ -\\ -For Linux:\\ -The Debian/Ubuntu package for OpenModelica can be downloaded and installed by following the instructions on \url{https://openmodelica.org/download/download-linux}. OMEdit can be launched by typing OMEdit in the Terminal.\\ -\\ -For Windows:\\ -The setup for OpenModelica on Windows can be downloaded from \url{https://openmodelica.org/download/download-windows}. After downloading and installation of the software, OMEdit or OpenModelica Connection Editor can be launched by clicking on its icon or by navigating through Start menu. - -\section{Arduino IDE} -The open source Arduino Software is used to write codes and upload them to the board. For the setup of Arduino IDE for both Windows and Linux go to \url{https://www.arduino.cc/en/Main/Software} and follow the download and install instructions. - -\section{Energia IDE} -Energia is a Arduino-like coding environment designed for Texas Instruments Launchpads. The setup for Energia can be downloaded from \url{http://energia.nu/download/}. The instructions for installation can be referred from - \\ -For Linux: \url{http://energia.nu/guide/guide_linux/} -For Windows: \url{http://energia.nu/guide/guide_windows/} - - -\chapter{\textbf{About OpenModelicaEmbedded package}} - -OpenModelicaEmbedded package is designed to interact between embedded systems and OpenModelica models using C/C++ functions. This package can work for both Atmega series (tested for Arduino UNO - Atmega328p) and Texas Instruments Tiva C series (tested for Tiva C EK-TM4C123GXL Launchpad).\\ -\\ -The package can be downloaded from the following link:\\ -\url{https://github.com/manasdas17/OpenModelicaEmbedded}\\ -This library requires Modelica\_DeviceDrivers library as a supporting library which can be downloaded from the following link:\\ -\url{https://github.com/modelica/Modelica_DeviceDrivers} - -\begin{figure}[H] -\centering -\includegraphics[width =0.5 \textwidth]{package_str} -\caption{Structure of OpenModelicaEmbedded package} -\label{figure:1} -\end{figure} - -\section{SynchronizeRealTime Block} -This block is a part of Modelica\_DeviceDrivers library used for real-time simulation of the model, i.e., this block synchronizes simulation time of the process to real- time clock of the operating system. Without this block, the models designed using this package will not be able to give proper real-time output. This block works at five different priorty levels which can be changed in Parameters dialog box by double-clicking the block. - -\begin{figure}[H] -\centering -\includegraphics[width = 0.3\textwidth]{realtime} -\includegraphics[width = 0.65\textwidth]{realtimepara} -\caption{SymchronizeRealTime block} -\label{figure:2} -\end{figure} - -\section{Pins} -This package contains blocks which define to input and output pins of the board to which our hardware can be connected. These pin components define the properties and working of the pins used in the hardware.\\ - -\begin{itemize} -\item \textbf{AnalogInput:} It reads an analog signal from the specified pin. This component uses the function ‘analogRead’ of Arduino. It takes minimum and maximum values of the signal as parameter (default values being 0 and 1 respectively) and gives output depending on the size of ADC (analog to digital convertor) which is 10-bit for Arduino UNO board and 12-bit for Tiva C series TM4C123G board. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin11} -\includegraphics[width = 0.55\textwidth]{pin12} -\caption{AnalogInput block} -\label{figure:3} -\end{figure} -\item \textbf{AnalogOutput:} It writes analog value (PWM wave) to the specified pin. This component uses the function ‘analogWrite’ of Arduino. It takes minimum and maximum values of the signal as parameter (default values being 0 and 1 respectively) and gives output depending on the size of ADC. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin21} -\includegraphics[width = 0.55\textwidth]{pin22} -\caption{AnalogOutput block} -\label{figure:4} -\end{figure} -\item \textbf{DigitalInput:} It reads an digital signal from the specified pin. This component uses the function ‘digitalRead’ of Arduino. It only takes boolean signals. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin31} -\includegraphics[width = 0.55\textwidth]{pin32} -\caption{DigitalInput block} -\label{figure:5} -\end{figure} -\item \textbf{DigitalOutput:} It writes digital value to the specified pin. This component uses the function ‘digitalWrite’ of Arduino. It only takes boolean signals. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin41} -\includegraphics[width = 0.55\textwidth]{pin42} -\caption{DigitalOutput block} -\label{figure:6} -\end{figure} -\item \textbf{Servo:} It controls a servo motor attached to the specified pin. This component uses the 'Servo' library of Arduino. By default, the range goes from 0 to 1, which corresponds to 0 to 180 degrees. If you want to input values in degrees or radians, you can change the parameter 'InputUnit' to 'Degrees' or 'Radians'. -\begin{figure}[H] -\centering -\includegraphics[width = 0.4\textwidth]{pin51} -\includegraphics[width = 0.55\textwidth]{pin52} -\caption{Servo block} -\label{figure:7} -\end{figure} -\end{itemize} - -\section{Boards} -This package contains block components which enable connection with different firmata boards. These components take serial port used for connection as parameter. -\begin{itemize} -\item \textbf{Arduino:} Used for connecting to Arduino boards, such as Arduino UNO, Arduino Mega 2500 and others having similar firmata. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board1} -\caption{Arduino block} -\label{figure:8} -\end{figure} -\item \textbf{ArduinoLeonardo:} Supports Arduino Leonardo board and other boards using native USB. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board2} -\caption{ArduinoLeonardo block} -\label{figure:9} -\end{figure} -\item \textbf{StandardFirmata:} Connects to Arduino compatible boards. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board3} -\caption{StandardFirmata block} -\label{figure:10} -\end{figure} -\item \textbf{CustomFirmata:} Supports any board firmata. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board4} -\caption{CustomFirmata block} -\label{figure:11} -\end{figure} -\item \textbf{customBoard:} Takes name of the board also as parameter and can be used to connect any board supporting firmata. -\begin{figure}[H] -\centering -\includegraphics[width =0.25 \textwidth]{board5} -\caption{customBoard block} -\label{figure:12} -\end{figure} -\end{itemize} - -\section{Examples} -The package contains example models to get introduced to the working of components of the package. These models accomplish different tasks using different blocks provided in Pins and Boards package. - -\section{ArduinoExamples} -The package contains example models specifc to Arduino UNO board. It can be used for other Arduino boards by change Pin Number parameter for the Pin blocks. Detailed description for the package is given in 'Working with Arduino'. - -\section{TivaC\_Examples} -The package contains example models specifc to Tiva C Launchpad TM4C123G board. It can be used for other similar boards by change Pin Number parameter for the Pin blocks. Detailed description for the package is given in 'Working with Tiva C'. - -\section{Internal} -The components of this package cannot be used directly in the models. This package consists of icons and connectors defined and used for block designing, new types defined and used for the blocks and functions designed using external C/C++ functions at backend. - -\chapter{\textbf{Hardware In Loop Simulation}} -\tab Hardware-in-the-loop (HIL) simulation, or HWIL, is a technique that is used in the development and test of complex real-time embedded systems. HIL simulation provides an effective platform by adding the complexity of the plant under control to the test platform. The complexity of the plant under control is included in test and development by adding a mathematical representation of all related dynamic systems. These mathematical representations are referred to as the “plant simulation”. The embedded system to be tested interacts with this plant simulation.\\ - -A HIL simulation must include electrical emulation of sensors and actuators. These electrical emulations act as the interface between the plant simulation and the embedded system under test. The value of each electrically emulated sensor is controlled by the plant simulation and is read by the embedded system under test (feedback). Likewise, the embedded system under test implements its control algorithms by outputting actuator control signals. Changes in the control signals result in changes to variable values in the plant simulation. - -\section{Implementation} -\tab The package developed (OpenModelicaEmbedded) has several components like micro-controller boards, Digital/Analog Pins, etc. which you will have to use in your model to make it interact with connected hardware device. These components make calls to external C functions present in the library provided in Library directory. Those functions using serial communication communicate with the connected device. This source file will remain same irrespective of the connected hardware device and platform used (Windows, Linux, Mac).\\ - -The connected hardware device uses Firmata protocol to communicate with OpenModelica. The source code implementing Firmata protocol on hardware will vary depending on the language/ IDE used by that hardware/microcontroller, but the underlying protocol remains the same. - -\chapter{\textbf{PID Controller}} -A \textbf{proportional - integral - derivative controller} (\textbf{PID controller} or \textbf{three term controller}) is a control loop feedback mechanism widely used in industrial control systems and a variety of other applications requiring continuously modulated control. A PID controller continuously calculates an error value e(t) as the difference between a desired setpoint (SP) and a measured process variable (PV) and applies a correction based on proportional, integral, and derivative terms (denoted P, I, and D respectively) which give the controller its name. - -\section{Implementation} -The PID is implemented in the Firmware present on the hardware device using ‘AutoPID’ Library. To use the hardware for PID you will have to change the Firmware (Arduino source code) a bit by following the instructions mentioned in the Firmware itself. The only thing you have to do is just comment/uncomment a few macros depending on your application. - -\begin{figure}[H] -\centering -\includegraphics[width =0.9\textwidth]{pid} -\caption{Firmata to work with PID Controller} -\label{figure:24} -\end{figure} - -\section{Example for PID} -\textbf{Example:} DCMotorWithPID (from Examples package) -\begin{figure}[H] -\centering -\includegraphics[width =0.9\textwidth]{pid_ex} -\caption{Model for PID Controller with DC Motor} -\label{figure:25} -\end{figure} -\begin{figure}[H] -\centering -\includegraphics[width = 0.9\textwidth]{pid_graph} -\caption{Plot for PID Controller with DC Motor} -\label{figure:26} -\end{figure} - -\chapter{\textbf{Working with Arduino UNO}} -The Arduino UNO is a widely used microcontroller board based of ATmega328P microcontroller IC and is developed by Arduino.cc. It operates at a voltage of 5V. The board contains 14 Digital and 6 Analog input/output (I/O) pins, a 10-bit ADC (Analog to Digital Convertor), 8-bit DAC, a in-built LED connected to digital pin no. 13 and many other features. - -\begin{figure}[H] -\centering -\includegraphics[width =0.75 \textwidth]{arduino_uno_pinout} -\caption{Pin Diagram of Arduino UNO} -\label{figure:13} -\end{figure} - -\section{Connecting and Configuring the Board} -\begin{enumerate} -\item Connect the Arduino UNO board to the computer using a USB cable. -\item Open Arduino IDE. -\item In Tools Menu, select Board \textrightarrow Arduino/Genuino UNO and Port as the available serial port to which Arduino is connected. -\item The serial port can be identified by:\\ -For Linux:\\ -Type the command \textbf{ls -l /dev/ttyACM*} in the terminal and the output it returns gives the port to which Arduino is connected, for example \textbf{/dev/ttyACM0}.\\ -For Windows:\\ -Open \textbf{Device Manager} and check for the name of connected port which will be in the form, for example, \textbf{COM5}. -\item Click Sketch \textrightarrow Include libraries and select Manage libraries, type AutoPID in the search bar and install the library. -\item Click File \textrightarrow Open and browse OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Arduino \textrightarrow pidmata3 and open pidmata3.ino.\\ -OR\\ -Open StandardFirmata sketch: File \textrightarrow Examples \textrightarrow StandardFirmata , if not working with PID.\\ -\item Upload the sketch to the board. -\end{enumerate} - -\section{Interfacing with OpenModelica} -\begin{enumerate} -\item Upload StandardFirmata sketch to the Arduino board. -\item Open package.mo from OpenModelicaEmbedded package, also open package.mo file from Modelica\_DeviceDrivers library. -\item In OpenModelicaEmbedded package, open ArduinoExamples package. -\item In Diagram view, change the port name for the board component to the port to which board is connected by double-clicking on it. -\item Simulate the example model. -\end{enumerate} - -\section{Examples for Arduino} -ArduinoExamples package consists of example models designed for specificly to work with Arduino UNO board. In order to work with these examples, double-click of board block in the Diagram view and change port name to the port to which board is connected. If working with any other similar Arduino board, double-click the pin blocks and change pin number as per the used board. - -\subsection{LED Examples} -\textbf{Example:} arduino\_ex1\_led\_blue\\ - -The following is an example to turn on the blue led indefinitely. Double clicking each block opens the parameter window for it. Change the parameters according to the following image. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{1} -\caption{Connections for lighting up blue led} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{led_ex1} -\caption{Model for lighting up blue led} -\end{subfigure} -\caption {Arduino Led Example} -\label{figure:14} -\end{figure} - -\subsection{Push Button Examples} -\textbf{Example:} arduino\_ex1\_push\_button\_status\\ - -The following example is to read the status of the pushbutton and display it on the serial monitor.\\ - -In this model, a BooleanValue block is used to show boolean value coming from the digital input pin of arduino on Simulation Output. The block BooleanValue can be found at Modelica.Blocks.Interaction.Show.BooleanValue.\\ - -Moreover, a print statement to print boolean value is written in the Text view of the model which can be seen in ~\ref{figure:23}.\\ - -Double clicking each block opens the parameter window for it. Change the parameters according to the following image. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{2} -\caption{Connections for push button} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{pb_ex1} -\caption{Model for checking status of push button} -\end{subfigure} -\caption {Arduino Push Button Example} -\label{figure:15} -\end{figure} - -\begin{figure}[H] -\centering -\includegraphics[width =\textwidth]{pb_ex1_print} -\caption{Print Statement} -\label{figure:23} -\end{figure} - - -\subsection{LDR Examples} -\textbf{Example:} arduino\_ex2\_ldr\_read\\ - -Turning the blue LED on and off according to the values of LDR (Light Dependent Resistor).\\ - -In this model, 2 blocks have been used namely Less and Constant.\\ - -Less block takes 2 input and gives 1 output according to the values of input. For example in the case below, when value from pin 19 is less than k = 300, output is true (or 1) and when value from pin 19 is greater than equal to k=300, its output is false (or 0). The block can be found at Modelica.Blocks.Logical.Less.\\ - -Constant block provides with a constant value which can be set by user. The block can be found at Modelica.Blocks.Sources.Constant. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{3} -\caption{Connections for ldr} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{ldr_ex2} -\caption{Model for switching led depending on ldr value} -\end{subfigure} -\caption {Arduino LDR Example} -\label{figure:16} -\end{figure} - -\subsection{DC Motor Examples} -\textbf{Example:} arduino\_ex2\_dcmotor\_both\\ - -The following example is of rotating the DC motor in both directions. As visible in the model below, 2 pulse blocks are used to manage this. \\ - -A pulse block generates pulse signals of real value. It’s amplitude, duty cycle, time period, start time can be varied through changing amplitude, width, period, startTime respectively in the parameter window of the pulse. The block can be found at Modelica.Blocks.Sources.Pulse.\\ - -Double clicking each block opens the parameter window for it. Change the parameters according to the following image. - -\begin{figure}[H] -\begin{subfigure}{.75\textwidth} -\centering -\includegraphics[width =\linewidth]{4} -\caption{Connections for dc motor} -\end{subfigure} -\begin{subfigure}{\textwidth} -\centering -\includegraphics[width =0.3\linewidth]{dc_ex2} -\includegraphics[width =0.3\linewidth]{dc_ex2_2} -\includegraphics[width =0.3\linewidth]{dc_ex2_3} -\caption{Model for rotating dc motor in both directions} -\end{subfigure} -\caption {Arduino DC Motor Example} -\label{figure:17} -\end{figure} - -\subsection{Potentiometer Examples} -\textbf{Example:} arduino\_ex1\_pot\_threshold\\ - -The following example is of turning on LEDs depending on the potentiometer threshold. As seen in the model below, we’ve used Xor and GreaterEqualThreshold blocks. \\ - -The GreaterEqualThreshold block has a parameter-threshold; if the input value to the block is greater than or equal to this threshold then the output is the same as input, otherwise 0.\\ - -This block can be found at Modelica.Blocks.Logical.GreaterEqualThreshold.\\ - -The other one is Xor block which simply xor’s ihe 2 input values it gets. This block can be found at Modelica.Blocks.Logical.Xor. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{5} -\caption{Connections for potentiometer} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{potentio_ex1} -\caption{Model for potentiometer threshold ranges} -\end{subfigure} -\caption {Arduino Potentiometer Example} -\label{figure:18} -\end{figure} - -\subsection{Thermistor Examples} -\textbf{Example:} arduino\_ex1\_therm\_read\\ - -Turning the buzzer on and off using the thermistor values read by ADC. \\ - -It’s model has Greater block. Greater block takes 2 input and gives 1 output according to the values of input. For example in the case below, when value from pin 18 is greater than k = 500, output is true(or 1) and when value from pin 18 is less than equal to k=500, its output is false(or 0). The block can be found at Modelica.Blocks.Logical.Greater. - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{6} -\caption{Connections for thermistor} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{thermistor_ex1} -\caption{Model for checking value of thermistor} -\end{subfigure} -\caption {Arduino Thermistor Example} -\label{figure:19} -\end{figure} - -\subsection{Servo Motor Examples} -\textbf{Example:} arduino\_ex3\_servo\_loop\\ - -Rotating the servo in increments. \\ - -The model contains blocks like Product, RealToInteger, IntegerToReal, Constant and Ramp. The Ramp block gives a strictly increasing value. On using RealToInteger block on the output, it converts it to step function. Now as the Product block accepts 2 input in real format only, there was a need to convert the value back to real using IntegerToReal block.\\ - -In Servo pin, set InputUnit to OpenModelicaEmbedded.Internal.Types.ServoUnit.None. \\ - -As can be seen from data sheet (Figure:~\ref{figure:27}) SG90 has a duty cycle of 5-10\% where if it is 5\%, the position of motor is -90 degrees and if 10\%, it is +90 degrees. So as we were simulating for 10 seconds, MinPulse was 0.5 sec and MaxPulse was 1sec in Servo pin Parameters. - -\begin{figure}[H] -\centering -\includegraphics[width =\textwidth]{servo_datasheet} -\caption{Data Sheet for Servo Motor SG90} -\label{figure:27} -\end{figure} - -\begin{figure}[H] -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{7} -\caption{Connections for Servo Motor} -\end{subfigure} -\begin{subfigure}{.5\textwidth} -\centering -\includegraphics[width =\linewidth]{servo_ex3} -\caption{Model for working with Servo Motor} -\end{subfigure} -\caption {Arduino Servo Motor Example} -\label{figure:20} -\end{figure} - -\chapter{\textbf{Working with Tiva C Launchpad}} -The Tiva C series Launchpad Evaluation board (EK-TM4C123GXL) is low cost ARM-Cortex-M4F based microcontroller. The board contains 40 I/O pins, two user programmable push buttons, a RGB led and many more features. - -\begin{figure}[H] -\centering -\includegraphics[width =\textwidth]{tiva_c_launchpad_pinout} -\caption{Pin Diagram of Tiva C Launchpad} -\label{figure:21} -\end{figure} - -\section{Connecting and Configuring the Board} -\begin{enumerate} -\item Connect the Tiva C board to the computer using a USB cable. -\item Open Energia IDE. -\item In Tools Menu, select Board \textrightarrow Tiva C and Port as the available serial port to which Arduino is connected. -\item If Tiva C board is not present, then click on Board Manager, type Tiva C in search bar and then click on Install to install board library, then apply Step 3. -\item In Sketch menu, Select Include Library \textrightarrow Add .zip library and add the zip file provided in the Firmware folder. Then open StandardFirmata sketch: File \textrightarrow Examples \textrightarrow StandardFirmata.\\ -OR\\ -Click File \textrightarrow Open and browse OpenModelicaEmbedded \textrightarrow Firmware \textrightarrow Tiva C \textrightarrow StandardFirmata and open StandardFiramata.ino. -\item Upload the sketch to the board. -\end{enumerate} - -\section{Interfacing with OpenModelica} -\begin{enumerate} -\item Upload StandardFirmata sketch to the Tiva C board. -\item Open package.mo from OpenModelicaEmbedded package, also open package.mo file from Modelica\_DeviceDrivers library. -\item In OpenModelicaEmbedded library, open TivaC\_Examples package. -\item In Diagram view, change the port name for the board component to the port to which board is connected by double-clicking on it. -\item Simulate the example model. -\end{enumerate} - -\section{Examples for Tiva C} -The examples explained in package for tiva-c are same as that for arduino board except that the pin configurations are different. The configuration can be seen from the pin diagram from Figure~\ref{figure:21}.\\ - -\textbf{Example:} tivac\_ex1\_led\_blue -\begin{figure}[H] -\centering -\includegraphics[width =0.75\textwidth]{tiva_led} -\caption{Tiva C Led Example} -\label{figure:22} -\end{figure} -The example Tiva-C Led works same as the one which is explained for arduino except for the fact that the pin configuration has been changed,for arduino it was pin number 9 while for tiva-c board it is pin number 40 as can be reffered from the pin diagram of tiva-c board (Figure: ~\ref{figure:21}). All other working remains same as already explained in case of Arduino.\\ - -For all other models also only pin number changes in case of Arduino rest they are similar to those present in ArduinoExamples package. - -\chapter{\textbf{Conclusion}} -\tab The project "Interfacing of Embedded Systems with OpenModelica", is based on implementing an example package for Arduino board as well as for tiva-C board.We implemented the same set of examples on both Arduino board as well as Tiva-c board because Tiva-c board targets industries.We implemented hardware in loop simulation and PID tuning was done. Indeed the same set of codes can be used for linux as well as for windows plateform. We also explored the embedded targets package of the Modelica\_DeviceDrivers library.\\ - -Although, there were many issues initially, most of them got resolved in the course of the project. While working on the project with OpenModelica we came to a conclusion that OpenModelica is an open source software based on Modelica language to design and simulate complex physical systems through code as well as graphical blocks which is also very useful for electronics prototyping and real time simulations. The main drawback of the library is its lack of appropriate documentation and various other hardware supports in the electronics hardware area. Such modules are open for modifications and can be extended by future developers. Therefore we have explored OpenModelica in detail and tried to provide a better insight in this open source software which will help developers in the future. - -\newpage -\title{\textbf{\textbf{\LARGE -\begin{flushleft} -\textbf{Reference} -\end{flushleft} -}}} -The following sources were referred to while working on this project: -\begin{itemize} -\item Peter Fritzson :Principles of Object-Oriented Modeling and Simulation with Modelica 3.3: A Cyber-Physical Approach -\item \url{ https://www.openmodelica.org/} -\item \url{ http://book.xogeny.com/} -\item \url{ https://build.openmodelica.org/Documentation/Modelica.html} -\item \url{ https://www.codeproject.com/Articles/84461/MinGW-Static-and-Dynamic-Libraries} -\item \url{https://stackoverflow.com/questions/10039401/use-32bit-shared-library-from-64bit-application} -\item \url{ https://stackoverflow.com/questions/142508/how-do-i-check-os-with-a-preprocessor-directive} -\item \url{https://en.wikipedia.org/wiki/PID_controller} -\item \url { https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/interop_c_python.html} -\end{itemize} - -\end{document} - - diff --git a/Report/Final.toc b/Report/Final.toc deleted file mode 100644 index bb465e8..0000000 --- a/Report/Final.toc +++ /dev/null @@ -1,40 +0,0 @@ -\contentsline {chapter}{\numberline {1}\textbf {Introduction}}{4}{chapter.1} -\contentsline {chapter}{\numberline {2}\textbf {Implementation}}{5}{chapter.2} -\contentsline {section}{\numberline {2.1}Algorithm}{5}{section.2.1} -\contentsline {section}{\numberline {2.2}Making changes in source code}{6}{section.2.2} -\contentsline {subsection}{\numberline {2.2.1}How to make changes to source code and make libraries}{6}{subsection.2.2.1} -\contentsline {subsection}{\numberline {2.2.2}Working with Arduino UNO [Atmega328p]}{6}{subsection.2.2.2} -\contentsline {subsection}{\numberline {2.2.3}Working with Tiva C [TM4C123G]}{7}{subsection.2.2.3} -\contentsline {chapter}{\numberline {3}\textbf {Download and Installation}}{8}{chapter.3} -\contentsline {section}{\numberline {3.1}OpenModelica}{8}{section.3.1} -\contentsline {section}{\numberline {3.2}Arduino IDE}{8}{section.3.2} -\contentsline {section}{\numberline {3.3}Energia IDE}{8}{section.3.3} -\contentsline {chapter}{\numberline {4}\textbf {About OpenModelicaEmbedded package}}{9}{chapter.4} -\contentsline {section}{\numberline {4.1}SynchronizeRealTime Block}{9}{section.4.1} -\contentsline {section}{\numberline {4.2}Pins}{10}{section.4.2} -\contentsline {section}{\numberline {4.3}Boards}{13}{section.4.3} -\contentsline {section}{\numberline {4.4}Examples}{14}{section.4.4} -\contentsline {section}{\numberline {4.5}ArduinoExamples}{14}{section.4.5} -\contentsline {section}{\numberline {4.6}TivaC\_Examples}{15}{section.4.6} -\contentsline {section}{\numberline {4.7}Internal}{15}{section.4.7} -\contentsline {chapter}{\numberline {5}\textbf {Hardware In Loop Simulation}}{16}{chapter.5} -\contentsline {section}{\numberline {5.1}Implementation}{16}{section.5.1} -\contentsline {chapter}{\numberline {6}\textbf {PID Controller}}{17}{chapter.6} -\contentsline {section}{\numberline {6.1}Implementation}{17}{section.6.1} -\contentsline {section}{\numberline {6.2}Example for PID}{18}{section.6.2} -\contentsline {chapter}{\numberline {7}\textbf {Working with Arduino UNO}}{19}{chapter.7} -\contentsline {section}{\numberline {7.1}Connecting and Configuring the Board}{20}{section.7.1} -\contentsline {section}{\numberline {7.2}Interfacing with OpenModelica}{20}{section.7.2} -\contentsline {section}{\numberline {7.3}Examples for Arduino}{20}{section.7.3} -\contentsline {subsection}{\numberline {7.3.1}LED Examples}{21}{subsection.7.3.1} -\contentsline {subsection}{\numberline {7.3.2}Push Button Examples}{21}{subsection.7.3.2} -\contentsline {subsection}{\numberline {7.3.3}LDR Examples}{22}{subsection.7.3.3} -\contentsline {subsection}{\numberline {7.3.4}DC Motor Examples}{23}{subsection.7.3.4} -\contentsline {subsection}{\numberline {7.3.5}Potentiometer Examples}{24}{subsection.7.3.5} -\contentsline {subsection}{\numberline {7.3.6}Thermistor Examples}{25}{subsection.7.3.6} -\contentsline {subsection}{\numberline {7.3.7}Servo Motor Examples}{26}{subsection.7.3.7} -\contentsline {chapter}{\numberline {8}\textbf {Working with Tiva C Launchpad}}{28}{chapter.8} -\contentsline {section}{\numberline {8.1}Connecting and Configuring the Board}{28}{section.8.1} -\contentsline {section}{\numberline {8.2}Interfacing with OpenModelica}{29}{section.8.2} -\contentsline {section}{\numberline {8.3}Examples for Tiva C}{29}{section.8.3} -\contentsline {chapter}{\numberline {9}\textbf {Conclusion}}{31}{chapter.9} diff --git a/Report/arduino_uno_pinout.png b/Report/arduino_uno_pinout.png Binary files differdeleted file mode 100644 index dd8bf2f..0000000 --- a/Report/arduino_uno_pinout.png +++ /dev/null diff --git a/Report/board1.PNG b/Report/board1.PNG Binary files differdeleted file mode 100644 index 35dfc72..0000000 --- a/Report/board1.PNG +++ /dev/null diff --git a/Report/board2.PNG b/Report/board2.PNG Binary files differdeleted file mode 100644 index 44b56a2..0000000 --- a/Report/board2.PNG +++ /dev/null diff --git a/Report/board3.PNG b/Report/board3.PNG Binary files differdeleted file mode 100644 index 2d2e7f5..0000000 --- a/Report/board3.PNG +++ /dev/null diff --git a/Report/board4.PNG b/Report/board4.PNG Binary files differdeleted file mode 100644 index 85654e8..0000000 --- a/Report/board4.PNG +++ /dev/null diff --git a/Report/board5.PNG b/Report/board5.PNG Binary files differdeleted file mode 100644 index 373221f..0000000 --- a/Report/board5.PNG +++ /dev/null diff --git a/Report/dc_ex2.PNG b/Report/dc_ex2.PNG Binary files differdeleted file mode 100644 index 6a679eb..0000000 --- a/Report/dc_ex2.PNG +++ /dev/null diff --git a/Report/dc_ex2_2.PNG b/Report/dc_ex2_2.PNG Binary files differdeleted file mode 100644 index 3dabc77..0000000 --- a/Report/dc_ex2_2.PNG +++ /dev/null diff --git a/Report/dc_ex2_3.PNG b/Report/dc_ex2_3.PNG Binary files differdeleted file mode 100644 index 0e2bd48..0000000 --- a/Report/dc_ex2_3.PNG +++ /dev/null diff --git a/Report/fossee-logo.png b/Report/fossee-logo.png Binary files differdeleted file mode 100644 index 6feda2d..0000000 --- a/Report/fossee-logo.png +++ /dev/null diff --git a/Report/iit.png b/Report/iit.png Binary files differdeleted file mode 100644 index 15b0bf6..0000000 --- a/Report/iit.png +++ /dev/null diff --git a/Report/ldr_ex1.PNG b/Report/ldr_ex1.PNG Binary files differdeleted file mode 100644 index 868b758..0000000 --- a/Report/ldr_ex1.PNG +++ /dev/null diff --git a/Report/ldr_ex2.PNG b/Report/ldr_ex2.PNG Binary files differdeleted file mode 100644 index 98e1810..0000000 --- a/Report/ldr_ex2.PNG +++ /dev/null diff --git a/Report/led_ex1.PNG b/Report/led_ex1.PNG Binary files differdeleted file mode 100644 index 5b68afa..0000000 --- a/Report/led_ex1.PNG +++ /dev/null diff --git a/Report/package_str.PNG b/Report/package_str.PNG Binary files differdeleted file mode 100644 index 815ad3b..0000000 --- a/Report/package_str.PNG +++ /dev/null diff --git a/Report/pb_ex1.PNG b/Report/pb_ex1.PNG Binary files differdeleted file mode 100644 index 6622f48..0000000 --- a/Report/pb_ex1.PNG +++ /dev/null diff --git a/Report/pb_ex1_print.PNG b/Report/pb_ex1_print.PNG Binary files differdeleted file mode 100644 index c6681e0..0000000 --- a/Report/pb_ex1_print.PNG +++ /dev/null diff --git a/Report/pid.png b/Report/pid.png Binary files differdeleted file mode 100644 index 9dec9b0..0000000 --- a/Report/pid.png +++ /dev/null diff --git a/Report/pid_ex.PNG b/Report/pid_ex.PNG Binary files differdeleted file mode 100644 index 9851a5f..0000000 --- a/Report/pid_ex.PNG +++ /dev/null diff --git a/Report/pid_graph.PNG b/Report/pid_graph.PNG Binary files differdeleted file mode 100644 index 59c4938..0000000 --- a/Report/pid_graph.PNG +++ /dev/null diff --git a/Report/pin11.PNG b/Report/pin11.PNG Binary files differdeleted file mode 100644 index 1ad4831..0000000 --- a/Report/pin11.PNG +++ /dev/null diff --git a/Report/pin12.PNG b/Report/pin12.PNG Binary files differdeleted file mode 100644 index 454d38f..0000000 --- a/Report/pin12.PNG +++ /dev/null diff --git a/Report/pin21.PNG b/Report/pin21.PNG Binary files differdeleted file mode 100644 index 24cd388..0000000 --- a/Report/pin21.PNG +++ /dev/null diff --git a/Report/pin22.PNG b/Report/pin22.PNG Binary files differdeleted file mode 100644 index 0fc26d8..0000000 --- a/Report/pin22.PNG +++ /dev/null diff --git a/Report/pin31.PNG b/Report/pin31.PNG Binary files differdeleted file mode 100644 index 1fdc019..0000000 --- a/Report/pin31.PNG +++ /dev/null diff --git a/Report/pin32.PNG b/Report/pin32.PNG Binary files differdeleted file mode 100644 index 27af782..0000000 --- a/Report/pin32.PNG +++ /dev/null diff --git a/Report/pin41.PNG b/Report/pin41.PNG Binary files differdeleted file mode 100644 index ca1c573..0000000 --- a/Report/pin41.PNG +++ /dev/null diff --git a/Report/pin42.PNG b/Report/pin42.PNG Binary files differdeleted file mode 100644 index 1fa0997..0000000 --- a/Report/pin42.PNG +++ /dev/null diff --git a/Report/pin51.PNG b/Report/pin51.PNG Binary files differdeleted file mode 100644 index fbb20d3..0000000 --- a/Report/pin51.PNG +++ /dev/null diff --git a/Report/pin52.PNG b/Report/pin52.PNG Binary files differdeleted file mode 100644 index f578875..0000000 --- a/Report/pin52.PNG +++ /dev/null diff --git a/Report/potentio_ex1.PNG b/Report/potentio_ex1.PNG Binary files differdeleted file mode 100644 index 8838ff8..0000000 --- a/Report/potentio_ex1.PNG +++ /dev/null diff --git a/Report/realtime.PNG b/Report/realtime.PNG Binary files differdeleted file mode 100644 index 515cee5..0000000 --- a/Report/realtime.PNG +++ /dev/null diff --git a/Report/realtimepara.PNG b/Report/realtimepara.PNG Binary files differdeleted file mode 100644 index 54d8b64..0000000 --- a/Report/realtimepara.PNG +++ /dev/null diff --git a/Report/servo_datasheet.PNG b/Report/servo_datasheet.PNG Binary files differdeleted file mode 100644 index a3d3b74..0000000 --- a/Report/servo_datasheet.PNG +++ /dev/null diff --git a/Report/servo_ex3.PNG b/Report/servo_ex3.PNG Binary files differdeleted file mode 100644 index 7e59d95..0000000 --- a/Report/servo_ex3.PNG +++ /dev/null diff --git a/Report/thermistor_ex1.PNG b/Report/thermistor_ex1.PNG Binary files differdeleted file mode 100644 index e9a7066..0000000 --- a/Report/thermistor_ex1.PNG +++ /dev/null diff --git a/Report/tiva_c_launchpad_pinout.png b/Report/tiva_c_launchpad_pinout.png Binary files differdeleted file mode 100644 index 947fb60..0000000 --- a/Report/tiva_c_launchpad_pinout.png +++ /dev/null diff --git a/Report/tiva_c_launchpad_pinout_001b.jpg b/Report/tiva_c_launchpad_pinout_001b.jpg Binary files differdeleted file mode 100644 index 4c12430..0000000 --- a/Report/tiva_c_launchpad_pinout_001b.jpg +++ /dev/null diff --git a/Report/tiva_led.PNG b/Report/tiva_led.PNG Binary files differdeleted file mode 100644 index 6f0d8e3..0000000 --- a/Report/tiva_led.PNG +++ /dev/null |