\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{cruzcuautle} \pdfinfo{ /Title (acceso-de-alumnos.pdf) /Creator (Cheatography) /Author (cruzcuautle) /Subject (acceso de alumnos Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A31418} \definecolor{LightBackground}{HTML}{F9F0F0} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{acceso de alumnos Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{cruzcuautle} via \textcolor{DarkBackground}{\uline{cheatography.com/122883/cs/23065/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}cruzcuautle \\ \uline{cheatography.com/cruzcuautle} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 31st May, 2020.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 1: Descarga de Software}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Descargar e instalar el programa de arduino mediante la pagina: \newline % Row Count 2 (+ 2) \seqsplit{https://www.arduino.cc/en/Main/Software}% Row Count 3 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 2: Hardware del producto}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Para la elaboración se necesita el siguiente material: \newline % Row Count 2 (+ 2) - Alambre estañado calibre 22 AWG o cable jumpers \newline % Row Count 4 (+ 2) -1 Buzzer para Alarma \newline % Row Count 5 (+ 1) -2 Resistencias de 330 \newline % Row Count 6 (+ 1) -1 LED \newline % Row Count 7 (+ 1) -2 Sensor Ultrasónico \newline % Row Count 8 (+ 1) -1 Sensor de temperatura lm35 \newline % Row Count 9 (+ 1) -1 Teclado matricial 4x3 \newline % Row Count 10 (+ 1) -1 Placa Arduino Uno R3 \newline % Row Count 11 (+ 1) -1 Protoboard% Row Count 12 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 3: Comprobación de instalación}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/cruzcuautle_1590948293_1.jpg}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Una vez que se tenga el programa instalado y el material se comenzara con la ejecución del programa, y debe de aparecer como se muestra la imagen, a continuación en el paso 5 se mostrara el código el cual se agregara.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 4: Armado del circuito}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/cruzcuautle_1590948753_2.jpg}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{En esta imagen se muestra la instalación del circuito físicamente.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 5: Código a implementar}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\#include \textless{}Keypad.h\textgreater{} \newline char pulsacion; \newline int numero; \newline int pulsacion1; \newline const byte Filas = 4; \newline const byte columnas = 3; \newline byte Pins\_Filas{[}Filas{]} = \{17, 16, 15, 14\}; \newline byte Pins\_Columnas{[}columnas{]} = \{13, 12, 11\};//Pines 5 = 16, 6 = 15, 7 = 14, y 8 = 17 en caso de haber. \newline \newline char Teclas{[}Filas{]}{[}columnas{]} = \{ \newline \{'1', '2', '3'\}, \newline \{'4', '5', '6'\}, \newline \{'7', '8', '9'\}, \newline \{'{\emph{', '0', '\#'\} \newline \}; \newline \newline Keypad Teclado1 = \seqsplit{Keypad(makeKeymap(Teclas)}, Pins\_Filas, Pins\_Columnas, Filas, columnas); \newline \newline int disparo = 9; \newline int eco1 = 10;//Izquierda \newline int eco2 = 8;//Derecha \newline unsigned long contador = 0; \newline float distancia1; \newline float distancia2; \newline float lee\_distancia(char pin) \newline \{ \newline float calculo; \newline digitalWrite(disparo, HIGH); \newline delay(1); \newline digitalWrite(disparo, LOW); \newline contador = pulseIn(pin, HIGH); \newline calculo = (float) contador }} 0.0343 / 2.0; \newline return (calculo); \newline \newline \} \newline int alarma = 2; \newline int conteo = 0; \newline int boton = A4; \newline int reset = 0; \newline int i; \newline int cant; \newline int x, y; \newline \newline float tempC; \newline double pinLM35 = A5; \newline int indice; \newline \newline void setup() \{ \newline pinMode(eco1, INPUT); \newline pinMode(eco2, INPUT); \newline pinMode(disparo, OUTPUT); \newline digitalWrite(disparo, LOW); \newline \newline pinMode (eco1, INPUT); \newline pinMode (eco2, INPUT); \newline \newline pinMode (reset, INPUT); \newline pinMode (alarma, OUTPUT); \newline pinMode (alarma, LOW); \newline \newline Serial.begin(9600); \newline Serial.println(); \newline Serial.println(" | PROYECTO |");//Se puede cambiar el nombre \newline Serial.println(); \newline delay(1000); \newline \newline \newline \} \newline \newline void loop() \{ \newline \newline while (x == 0)\{ \newline \newline Serial.print("Ingrese la "); \newline Serial.print("cantidad limite de alumnos:"); \newline delay(1000); \newline y = 0; \newline while (y == 0)\{ \newline for (i = 7; i \textless{} 9; i++) \{ \newline char pulsacion; \newline pulsacion = Teclado1.waitForKey(); \newline Serial.print(pulsacion); \newline \newline switch (pulsacion) \{ \newline case '1': pulsacion1 = 1; \newline break; \newline case '2': pulsacion1 = 2; \newline break; \newline case '3': pulsacion1 = 3; \newline break; \newline case '4': pulsacion1 = 4; \newline break; \newline case '5': pulsacion1 = 5; \newline break; \newline case '6': pulsacion1 = 6; \newline break; \newline case '7': pulsacion1 = 7; \newline break; \newline case '8': pulsacion1 = 8; \newline break; \newline case '9': pulsacion1 = 9; \newline break; \newline case '0': pulsacion1 = 0; \newline \} \newline switch (i) \{ \newline case 7: cant = pulsacion1 {\emph{ 10; \newline break; \newline case 8: cant = cant + pulsacion1; \newline break; \newline \newline \} \newline \newline delay(500); \newline \} \newline if (cant \textless{} 41)\{ \newline Serial.println(); \newline y = 1; \newline \}else\{ \newline Serial.println(); \newline Serial.println(); \newline Serial.println(" {\bf{ERROR}}"); \newline Serial.println(" {\bf{ Rango maximo: 0 - 40 }}"); \newline Serial.println(); \newline Serial.print("Ingrese la "); \newline Serial.print("cantidad limite de alumnos:"); \newline y = 0; \newline \} \newline \}//Final del while \newline \newline x = 1; \newline if (x == 1) break; \newline \} \newline \newline reset = analogRead(boton); \newline \newline if (reset \textgreater{} 0)\{ \newline conteo = 0; \newline \} \newline \newline if (conteo \textgreater{} cant)\{ \newline pinMode(alarma, HIGH); \newline Serial.print("}} Limite de alumnos superado, "); \newline Serial.println("favor de retirar al ultimo alumno {\emph{"); \newline \}else\{ \newline pinMode(alarma, LOW); \newline \} \newline \newline distancia1 = lee\_distancia(eco1); \newline delay(50); \newline \newline distancia2 = lee\_distancia(eco2); \newline delay(50); \newline \newline if (distancia1 \textless{}= 100 \&\& distancia1 \textgreater{}= 0)\{ \newline conteo = conteo + 1; \newline delay(1000); \newline \} \newline if (distancia2 \textless{}= 100 \&\& distancia2 \textgreater{}= 0)\{ \newline conteo = conteo - 1; \newline delay(1000); \newline \} \newline \newline if (conteo \textless{}= 0) conteo = 0; \newline \newline \seqsplit{Serial.print("Alumnos:");} \newline Serial.print(conteo); \newline Serial.print("/"); \newline Serial.print(cant); \newline Serial.print(" | "); \newline delay(1000); \newline \newline tempC = analogRead(pinLM35); \newline tempC = ((tempC }} 1750) / 1200)/14; \newline \seqsplit{Serial.println("Temperatura:"} + String(tempC) + " 'C"); \newline delay(500); \newline \newline if (tempC \textless{} 36.1 || tempC \textgreater{} 37.2)\{ \newline pinMode(alarma, HIGH); \newline delay(200); \newline pinMode(alarma, LOW); \newline delay(200); \newline pinMode(alarma, HIGH); \newline delay(200); \newline pinMode(alarma, LOW); \newline delay(200); \newline pinMode(alarma, HIGH); \newline delay(200); \newline pinMode(alarma, LOW); \newline delay(200); \newline Serial.println(); \newline Serial.println("{\bf{ Temperatura fuera del rango de tolerancia }}"); \newline Serial.println(); \newline \} \newline \newline \newline \}//Fin del loop \newline \newline \newline //////////////////////////////{\emph{NOTAS}}////////////////////////// \newline /{\emph{ \newline \newline }}/} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 6: Alimentación del producto}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/cruzcuautle_1590950919_4.jpg}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Cuando el circuito se encuentre conectado completamente (como se mostró en el Paso 4) se debe alimentar la placa de Arduino UNO mediante un puerto USB de la computadora o algún otro método compatible con este mismo.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 7: Selección de puerto}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/cruzcuautle_1590951210_5.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Como se muestra en la imagen, mediante la barra de herramientas se puede seleccionar el puerto al cual estará conectado este programa, este varia dependiendo de cada placa Arduino. \newline En este ejemplo se mostró el puerto con el nombre de "COM 9".} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 8: Implementar el codigo}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/cruzcuautle_1590951526_6.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Una vez escrito el código, se dará clic en el icono de verificar, una vez se termine el proceso se dará clic en subir. Con esto el producto queda listo para su uso.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Paso 9: Instalacion}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{-Colocar los sensores ultrasonicos de en la parte superior de la entrada que desee que escanee a los individuos. \newline % Row Count 3 (+ 3) -Colocar el sensor de temperatura un poco mas adelante de los sensores ultrasonicos pero que siga siendo el interior del marco de la puerta, esto para que pueda medir la temperatura de ambos sentidos. \newline % Row Count 8 (+ 5) -Colocar alguna tipo de división en el centro de esta (cortina, pared falsa, trozo de madera) esto para que los sensores no detecten a la misma persona simultáneamente. \newline % Row Count 12 (+ 4) -Encontrar algún sitio donde desee colocar la alarma junto con la pantalla donde se desplegaran los datos (se recomienda que sea en la parte exterior del marco de la puerta).% Row Count 16 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{NOTAS:}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{-La persona tiene que estar dentro del rango de valor (0 a 100 cm) hasta que el contador sume o reste, después de sumar o restar, se puede retirar. \newline % Row Count 3 (+ 3) -Solo se activara la alarma en caso de que la temperatura del individuo se encuentre fuera del rango de temperatura (36.1 a 37.2 °C) . \newline % Row Count 6 (+ 3) -Este programa únicamente acepta un rango no mayor a 40 personas, si al momento de iniciar el programa usted ingresa un valor mayor a 40, este te marcara un Error y te permitirá ingresar únicamente un valor dentro del rango (0 a 40). \newline % Row Count 11 (+ 5) -Si se sobrepasa el numero de personas establecido anteriormente, sonara una alarma indicando que se debe retirar 1 persona. \newline % Row Count 14 (+ 3) -Este producto cuenta con un botón el cual reinicia el conteo de los alumnos dentro de salón.% Row Count 16 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Integrantes}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{CASTRO FLORES MIGUEL ANGEL \newline % Row Count 1 (+ 1) GUTIERREZ CUAUTLE CRUZ \newline % Row Count 2 (+ 1) JAUREGUI BOGARIN ERNESTO \newline % Row Count 3 (+ 1) RUVALCABA LIZARRAGA DYLAN% Row Count 4 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}