Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Este Instructable es una guía paso a paso para programar y comandar el Mars Reconnaissance Robot.
Para comenzar, se debe obtener la lista de los siguientes materiales: Un iRobot cargado creado personalizado por el Tickle College of Eningeering Univerisity de Tennessee, Una red inalámbrica que está conectada a la Raspberry Pi en el iRobot, UTK iRobot create cargador, compatible con Wifi computadora con acceso a MATLAB e internet.
Paso 1: Caja de herramientas Roomba
Abra MATLAB y cree una nueva carpeta para que los archivos de código se almacenen desde su proyecto. En MATLAB, abra un nuevo script y ejecute el siguiente código. Una vez que se ejecuta el script, agregue la nueva carpeta al directorio donde MATLAB busca archivos.
Código:
función roombaInstallclc; % lista de archivos para instalar archivos = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % ubicación para instalar desde options = weboptions ('CertificateFilename', ''); % decirle que ignore los requisitos del certificado server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Instalación / Actualización de Roomba'; % propósito de visualización y solicitud de confirmación = {'Este programa descargará estos archivos EF 230 Roomba:' '' strjoin (archivos, '') '' 'a esta carpeta:' '' cd '' '¿Desea continuar? '}; bip; yn = questdlg (indicador,… dlgTitle,… 'Sí', 'No', 'Sí');
si ~ strcmp (yn, 'Yes'), return; fin
% obtener la lista de archivos que existen existing_files = files (cellfun (@exist, files)> 0); if ~ isempty (existing_files)% asegúrese de que esté realmente bien reemplazarlos prompt = {'Está reemplazando estos archivos:' '' strjoin (existing_files, '') '' '¿Está bien reemplazar?' }; bip; yn = questdlg (indicador,… dlgTitle,… 'Sí', 'No', 'Sí'); si ~ strcmp (yn, 'Yes'), return; fin fin
% descarga los archivos cnt = 0; para i = 1: longitud (archivos) f = archivos {i}; disp (['Descargando' f]); intente url = [servidor f]; websave (f, url, opciones); % de opciones agregadas para evitar errores de seguridad cnt = cnt + 1; catch disp (['Error al descargar' f]); ficticia = [f '.html']; si existe (ficticio, 'archivo') == 2 eliminar (ficticio) end end end
if cnt == longitud (archivos) msg = 'Instalación exitosa'; esperar (msgbox (msg, dlgTitle)); else msg = 'Error de instalación; consulte la ventana de comandos para obtener más detalles'; esperar (errordlg (msg, dlgTitle)); fin
end% roombaInstalar
Paso 2: prepararse para conectarse
Conecte el micro-USB que sobresale del robot al puerto inferior de la Raspberry Pi. Luego, en la parte superior del Roomba, presione y mantenga presionados simultáneamente los botones de acoplamiento y de foco hasta que la luz del Roomba se atenúe. Debería escuchar una balanza electrónica del Roomba una vez que suelte.
Paso 3: Conexión al robot
Abra las redes disponibles en su computadora y seleccione la red existente entre la computadora y Raspberry Pi. En la carpeta actual de MATLAB, haga clic derecho en la carpeta de su proyecto actual y seleccione la caja de herramientas roomba descargada en el paso 1 y agregue a la ruta. En una red diseñada para múltiples conexiones Pi, especifique su robot creando un objeto de clase Roomba. Ver ejemplo a continuación
Si tiene un Roomba asignado al número 7, ingrese lo siguiente:
r = roomba (7)
% Recuerde que esta variable ahora está asignada al roomba, cualquier comando dado al robot debe ser dirigido por la variable asignada.
Paso 4: Código
drive.google.com/drive/folders/1OVR5oTHUsn…
Usando el enlace de arriba, guarde todos los archivos.m, en la carpeta dada donde se ejecutará el programa principal. El enlace debe estar abierto a todos los que lo tengan. Abra un nuevo script en la carpeta actual y ejecute mycontrolprogram.m como se ve a continuación:
función mycontrolprogram (r) global m m = mobiledev; emailInit (); corriendo = 1; global f global count count = 0; f = r; direc global direc = 0; r.getAngle; r.getDistance; curLoc global curLoc = [0, 0]; pts globales pts = ceros (1, 2, 2); manual = verdadero; graphObs (1); v = 0,15; while count <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (recuento)); else direc = direc + r.getAngle; manualDrive (); end end figSend (); fin
El robot ahora debería realizar su trabajo diseñado.