# Trabalho 1 - 2024.2

## Introdução
- **Disciplina:** Fundamentos de Sistemas Embarcados (FSE) - UnB/FGA  
- **Professor:** Renato Sampaio  
- **Produto:** [NVIDIA Jetson Nano](https://developer.nvidia.com/embedded/jetson-nano)  
- **Integrantes:**  

| Nome               | Matrícula    |
|--------------------|-------------:|
| Alexia Cardoso     | 202045007    |
| Iago Matos         | 202023743    |
| Lucas Lopes Rocha  | 202023903    |
---

## Informações sobre o Sistema

### Descrição Geral
O **NVIDIA Jetson Nano** é um computador embarcado compacto e poderoso, projetado para desenvolvimento de projetos de inteligência artificial (IA), computação de borda e aplicações em visão computacional, robótica e IoT. Amplamente utilizado em educação, pesquisa e prototipação industrial, ele se destaca por oferecer suporte a redes neurais profundas, processamento paralelo e conectividade avançada. Seu principal objetivo é proporcionar recursos de IA com baixo consumo de energia, tornando-se ideal para dispositivos IoT integrados, drones, veículos autônomos, segurança com reconhecimento de imagens, automação industrial e gravadores de vídeo em rede de nível básico. 

### Características principais
- **Processamento:** Microprocessador Tegra X1 da NVIDIA e GPU de 128 núcleos baseada na arquitetura NVIDIA Maxwell™ (frequência de 640 MHz a 921 MHz).  
- **Desempenho de IA:** 472 GFLOPS, permitindo treinar e implementar modelos de machine learning em tempo real.  
- **Conectividade:** Inclui portas USB, HDMI, GPIO e interfaces de câmera, oferecendo flexibilidade para integração com diferentes sensores e hardware.  

### Aplicações
O Jetson Nano é amplamente aplicado em setores como robótica, visão computacional, reconhecimento de objetos e automação. É uma escolha popular entre startups, pesquisadores e entusiastas que buscam soluções acessíveis para desenvolvimento de IA e aprendizado de máquina. Ele também é utilizado na educação para aprendizagem prática de IA, destacando-se como equipamento de entrada para aprender e pesquisar.

### Comercialização
Disponível como módulo individual ou como Kit de Desenvolvedor, com os modelos mais comuns sendo os de 4GB e 2GB. Um Kit de Desenvolvedor com 4GB custa, em média, R$ 3.800,00. 

### Histórico
Lançado em março de 2019, o Jetson Nano é uma plataforma de desenvolvimento consolidada, com suporte a produtos parceiros compatíveis. Informações adicionais podem ser encontradas na [página oficial da NVIDIA](https://developer.nvidia.com/embedded/jetson-partner-products?t1_supported-jetson=Nano).

![Jetson Nano](JetsonNano/img/jetson1.jpg)

## Listagem de Características

- **Referência:**
        > NVIDIA Developer - Jetson Nano Overview. NVIDIA. Disponível em: <https://developer.nvidia.com/embedded/jetson-nano>. Acesso em: 2 nov. 2024.

### Características Consolidadas do **Jetson Nano**

1. **Unidade de Processamento**
   - **Tipo:** Microprocessador (MPU) NVIDIA Tegra X1
   - **Arquitetura:** ARM Cortex-A57 quad-core (Armv8-A, 64 bits)
   - **GPU:** 128 núcleos CUDA Maxwell
   - **Frequência de Clock:** 1.43 GHz
   - **Fabricante:** NVIDIA

2. **Memória**
   - **RAM:** 4 GB LPDDR4, 64 bits, 1600 MHz, 25.6 GB/s
   - **Memória Interna:** 16 GB eMMC 5.1 (disponível em algumas versões)
   - **Armazenamento Externo:** Suporte para cartão microSD (até 128 GB)

3. **Sistema Operacional**
   - **Tipo:** Linux baseado em Ubuntu 18.04
   - **Gerenciamento:** Compatível com NVIDIA JetPack SDK, incluindo bibliotecas e ferramentas para desenvolvimento de IA e atualizações OTA.

4. **Sensores e Atuadores**
   - **Sensores e Atuadores Integrados:** Não possui.
   - **Compatibilidade:** Integração com sensores (como câmeras CSI, sensores de temperatura) e atuadores (LEDs, motores) via GPIO, I2C, e SPI.

5. **Interfaces de Comunicação**
   - **Com Fio:** Gigabit Ethernet, I2C, SPI, UART, HDMI 2.0, eDP 1.4, USB 3.0 (4x), USB 2.0 Micro-B.
   - **Sem Fio:** Não possui integrado; compatível com adaptadores USB para Wi-Fi e Bluetooth.

6. **Unidades de Entrada/Saída (I/O)**
   - **GPIO:** 40 pinos (compatível com Raspberry Pi)
   - **PWM:** Até 4 canais (para controle de motores ou LEDs)
   - **ADC/DAC:** Não possui integrado, mas pode ser expandido externamente.

7. **Fonte de Energia e Gerenciamento**
   - **Fonte:** Alimentação via USB (5V, 2A) ou conector barril (5V, 4A).
   - **Gerenciamento de Energia (PMIC):** Regulação integrada com suporte a inicialização e reset automáticos.

8. **Firmware e Atualizações**
   - **Firmware:** Gerenciado via JetPack SDK.
   - **Atualizações OTA:** Suporte para pacotes Debian ou baseadas em imagem com redundância de sistema de arquivos.

9. **Proteção e Segurança**
   - **Criptografia:** Suporte a criptografia de disco baseada no Linux Unified Key Setup (LUKS).
   - **TPM:** Suporte opcional para módulos de segurança de hardware.

10. **Armazenamento Externo**
    - **Compatibilidade:** MicroSD, HDD e SSD externos via USB.

11. **Interface com o Usuário (UI)**
    - **Displays:** Compatível com HDMI, DisplayPort, e MIPI-DSI.
    - **Entrada de Comandos:** Suporte a teclados e mouses via USB.

![Jetson Nano](JetsonNano/img/jetson2.jpg)

---

## Artigos acadêmicos relacionados

### Artigo 1
**Título:** Performance comparative of OpenCV Template Matching method on Jetson TX2 and Jetson Nano developer kits  
**Resumo:** Este artigo apresenta uma comparação de desempenho entre os kits de desenvolvimento Jetson TX2 e Jetson Nano ao implementar o método Template Matching do OpenCV. O estudo avalia os tempos de processamento em implementações sequenciais com CPUs e paralelas com GPUs, demonstrando a superioridade do Jetson TX2 em projetos de processamento de imagens.  
**Referência:** BASULTO-LANTSOVA, A.; PADILLA-MEDINA, J. A.; PEREZ-PINAL, F. J.; BARRANCO-GUTIERREZ, A. I. *Performance comparative of OpenCV Template Matching method on Jetson TX2 and Jetson Nano developer kits*. In: 2020 10th Annual Computing and Communication Workshop and Conference (CCWC), Las Vegas, NV, USA, 2020. IEEE, 2020. DOI: 10.1109/CCWC47524.2020.9031166. Disponível em: <https://ieeexplore.ieee.org/abstract/document/9031166>. Acesso em: 20 nov. 2024.

### Artigo 2
**Título:** Nvidia makes it easy to embed AI: The Jetson Nano packs a lot of machine-learning power into DIY projects - [Hands on]  
**Resumo:** Este artigo da IEEE Spectrum aborda como a NVIDIA transformou sua arquitetura de processadores para aplicações de inteligência artificial, destacando a potência do Jetson Nano em projetos de aprendizado de máquina. A publicação também menciona a criação do framework CUDA e sua relevância na evolução do aprendizado profundo.  
**Referência:** CASS, S. *Nvidia makes it easy to embed AI: The Jetson Nano packs a lot of machine-learning power into DIY projects - [Hands on]*. IEEE Spectrum, v. 57, n. 7, p. 14–16, 25 jun. 2020. DOI: 10.1109/MSPEC.2020.9126102. Disponível em: <https://ieeexplore.ieee.org/abstract/document/9126102>. Acesso em: 20 nov. 2024.

### Artigo 3
**Título:** Detection of Drowsiness from Facial Images in Real-Time Video Media using Nvidia Jetson Nano  
**Resumo:** Este artigo apresenta uma abordagem para detecção de sonolência em imagens faciais capturadas em vídeos em tempo real, utilizando o dispositivo Nvidia Jetson Nano. O estudo foca no uso de visão computacional e processamento de imagens para identificar sinais de sonolência, como mudanças no rosto e na boca, com aplicações voltadas à prevenção de acidentes em veículos. Modelos matemáticos e técnicas avançadas de detecção facial foram utilizados para alcançar resultados promissores.  
**Referência:** INTHANON, P.; MUNGSING, S. *Detection of Drowsiness from Facial Images in Real-Time Video Media using Nvidia Jetson Nano.* 2020 17th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology (ECTI-CON), Phuket, Thailand, 2020, p. 246-249. DOI: 10.1109/ECTI-CON49241.2020.9158235. Disponível em: <https://ieeexplore.ieee.org/document/9158235>. Acesso em: 20 nov. 2024.  

---

## Produtos Relacionados  

### Google Coral Dev Board
1. Categoria: Dispositivos de Inteligência Artificial de Bordo
2. Descrição: Este dispositivo utiliza um Edge TPU para acelerar modelos de machine learning. Utilizado por desenvolvedores que desejam criar soluções de IA e visão computacional embarcada.

### Raspberry Pi 4 com módulos de IA adicionais
1. Categoria: Computadores de Placa Única (SBCs)
2. Descrição: Usado com aceleradores de IA, como o Google Coral USB Accelerator ou Intel Movidius Neural Compute Stick, para atender a casos de uso de IA e aprendizado de máquina.

### HiKey 970 (com processador Kirin)
1. Categoria: Desenvolvimento de IA Móvel e Embarcada
2. Descrição: Este dispositivo utiliza um Edge TPU para acelerar modelos de machine learning. Utilizado por desenvolvedores que desejam criar soluções de IA e visão computacional embarcada.

### Jetson Xavier NX
1. Categoria: ARM Cortex-A57 com GPU NVIDIA Volta
2. Descrição: Similar ao Jetson Nano, mas com maior potência e destinado a aplicações mais complexas de IA e robótica, sendo utilizado em projetos de drones e veículos autônomos.

### Intel NCS2 (Neural Compute Stick 2) 
1. Categoria: Aceleradores de IA
2. Descrição: Este é um dispositivo USB que se conecta a PCs e outros dispositivos embarcados para fornecer capacidade de inferência de IA.

---  

**Referências:**  
- NVIDIA Jetson Nano. NVIDIA. Disponível em: <https://developer.nvidia.com/embedded/jetson-nano> 
- JetPack SDK. NVIDIA Developer. Disponível em: <https://developer.nvidia.com/embedded/jetpack>.