El SDK puede instalarse y compilarse en sistemas operativos como Windows, Ubuntu y macOS. Esta guía se centra en la configuración específica para Ubuntu.
1. Instalación de Paquetes Requeridos
Primero, asegúrese de tener instalados los paquetes git y wget. Ejecute el siguiente comando si no están presentes:
sudo apt-get update && sudo apt-get install -y git wget
Para verificar si ya están instalados, use git --version o wget --version.
2. Decsarga y Extracción del Instalador
Descargue el paquete de instalación offline desde el repositorio oficial:
wget https://cdn.iflyos.cn/public/cskTools/csk6_integration_installer_linux_v2.0.0_24012201.tar.xz
Extraiga el contenido del archivo descargado:
tar -xvf csk6_integration_installer_linux_v2.0.0_24012201.tar.xz
3. Ejecución del Instalador
Acceda al directorio extraído y ejecute el script de instalación. El usuario debe pertenecer al grupo sudo y no ser root:
cd lisa_zep_v2.0.0 && ./install.sh
Al finalizar, se mostrará un mensaje de éxito indicando que el entorno está listo.
4. Verificación del Entorno
Confirme la instalación ejecutando el comando:
lisa info zep
La salida detallará las versiones de Node.js, npm, Git, y las herramientas del plugin Zephyr, como el SDK de Zephyr, CMake, y el toolchain ARM.
Obtención e Inicialización del SDK Multimodal
Este SDK está diseñado para la placa CSK6-MIX y contiene aplicaciones de IA y modelos de lenguaje grande (LLM).
1. Clonado del Repositorio
Obtenga el código fuente del SDK desde el repositorio oficial:
git clone --branch release https://cloud.listenai.com/CSKG962172/duomotai_ap.git
2. Inicialización del Proyecto
Dentro del directorio clonado, inicialice el entorno de la aplicación y actualice las dependencias:
cd duomotai_ap && lisa zep init-app && lisa zep update
3. Estructura del SDK
El SDK incluye carpetas como apps con ejemplos de reconocimiento de audio, control por LLM, y demostraciones de visión artificial. La carpeta components contiene módulos reutilizables para audio, WiFi, y comunicación con la nube.
4. Actualización del SDK
Para sincronizar con la última versión, realice un restablecimiento y extracción de cambios en el repositorio, luego actualice las dependencias:
cd duomotai_ap && git reset --hard HEAD && git pull
lisa zep update
Adaptación del SDK para la Placa AI-Talk
La placa AI-Talk difiere del diseño de CSK6-MIX en algunos aspectos de hardware, por lo que se requieren ajustes en los archivos de configuración.
1. Incorporación de Archivos de Dispositivo de Árbol (Device Tree)
Copie la carpeta csk6011a_box_lite al directorio de tableros del SDK, ubicado en duomotai_ap/.sdk/csk/boards/arm/.
2. Personalización de Superposiciones (Overlays)
Para aplicaciones específicas, como LLM_chat, cree un archivo de superposición basado en el existente y modifique la configuración de GPIO. Por ejemplo, cambie la referencia del pin:
spk_pa_mute: spk_pa_mute {
gpios = <&exgpioc 2 GPIO_ACTIVE_HIGH>;
};
3. Ajuste del Controlador de Pantalla LCD
El controlador ST7789V requiere una corrección en la inversión de colores. Modifique la función de inicialización para desactivar la inversión:
static void st7789v_lcd_init(const struct device *dev)
{
// ... código previo ...
st7789v_transmit(dev, ST7789V_CMD_INV_OFF, NULL, 0);
// ... código posterior ...
}
4. Actualización del Enlace de Dispositivo para FT5336
Para soportar el pin de reinicio en el controlador táctil, añada la siguiente definición al archivo YAML de enlace de dispositivo:
reset-gpios:
type: phandle-array
description: |
Pin de reinicio activo para el sensor táctil FT5336.
5. Modificación del Controlador de Brillo de Fondo
Debido a que la polaridad del controlador de retroiluminación es opuesta, ajuste la función que establece el brillo. Introduzca una condición para invertir el valor del ciclo de trabajo PWM si es necesario:
int establecer_brillo(uint8_t ciclo_trabajo_pwm)
{
if (lcd_pwm.bandera == 1) {
ciclo_trabajo_pwm = 100 - ciclo_trabajo_pwm;
}
ciclo_trabajo_pwm = (ciclo_trabajo_pwm > 95) ? 95 : ciclo_trabajo_pwm;
ciclo_trabajo_pwm = (ciclo_trabajo_pwm < 0) ? 0 : ciclo_trabajo_pwm;
// ... resto del código ...
}
6. Inicialización de la Pantalla y Cámara
En la función principal de demostración LCD, invoque explícitamente la función de brillo para activar la retroiluminación:
void lcd_lvgl_demo(void *p1, void *p2, void *p3)
{
extern int ui_set_brightness(uint8_t pwm_duty);
ui_set_brightness(0);
// ... código de inicialización UI ...
}
Para corregir la orientación de la cámara, desactive los controles de volteo vertical y horizontal en la inicialización de la cámara:
int camera_init(void)
{
int valor = false;
ret = video_set_ctrl(camera, VIDEO_CID_VFLIP, &valor);
// ... manejo de errores ...
valor = false;
ret = video_set_ctrl(camera, VIDEO_CID_HFLIP, &valor);
// ... manejo de errores ...
return 0;
}
Compilación del Proyecto
Finalmente, compile la aplicación deseada usando el tablero adaptado. Por ejemplo, para la aplicación LLM_chat:
lisa zep build -b csk6011a_box_lite apps/LLM_chat -p
Repita el proceso cambiando LLM_chat por el nombre de otras aplicaciones según sea necesario.