Krishna P Rao
Created September 22, 2020 © Apache-2.0

Tele-health-AI-mchip

COVID-19 health: Telehealth and monitoring. Machine vision and remote control/ Inferencing. Open AI systems/ techniques to diagnose images

IntermediateProtipOver 4 days70
Tele-health-AI-mchip

Things used in this project

Hardware components

Curiosity PIC32MX470
Microchip Curiosity PIC32MX470
This pic32 chip based board can accomodate two click boards
×1
BLE 7 click
MikroE BLE 7 click
This attaches to curiosity board
×1
MIkroe oximeter click board
This attaches to curiosity board
×1

Software apps and online services

Pic32 IDE , curiosity board applications
Pic32 starter kit and curiosity board applications, applications from Mikroe
MPLAB X IDE
Microchip MPLAB X IDE
MPLAB Code Configurator
Microchip MPLAB Code Configurator
Microcontroller main board code from MPLAB
Microchip Studio
Microchip Studio

Hand tools and fabrication machines

uCRobotics micro assembly , mini assembly , prototype build
Build prototype box first. Next optimize and miniaturize and assembly. Raspberry pi size , square stack size , wearable size.

Story

Read more

Custom parts and enclosures

wearable

Example implmentation

ML and DL(Deep learning)

Microchip AI support --Deep AI -- Microsemi -- hello FPGA and Polaris-AI

Prototype box

For reference only :: touchless implementation

AI system flow

Example AI system -camera-to-inference-reslt

Schematics

pic32 processor main board application

Main pic32 processor board plis IO expansion and display boards assembled

Boards

Microcontroller - AI - Flow

oxy-board

Plug-in type of stack board.

internet

plug-in type BLE board

expansion-plugin-board

Board to add plugins for BLE and OXY

pic32 processor

pic32 + IO expansion + display

Code

click board software support

C/C++
The main microcontroller gets interrupts and switches to click board and executes its code
#######################################

OPEN SOFTWARE   FOUNDATION 

#######################################

Main  microcontroller  code  and interrupts 

.......................................

void applicationInit()
{
 oxim_i2cDriverInit( (T_OXIM_P)&_MIKROBUS1_GPIO, (T_OXIM_P)&_MIKROBUS1_I2C, 0x64 );
 Delay_ms( 300 );

 oxim_reset();
 oxim_writeReg( _OXIM_SAMPLE_CLK_REG, 0x0080 );
 oxim_setMode( _OXIM_DEV_PROGRAM_OP_MODE );
 oxim_setTimeSlotA( _OXIM_EN_SLOT, _OXIM_PD1_PD2_PD3_PD4_CONN, _OXIM_LEDX2_EN, _OXIM_SLOT_NORM_OP_MODE );
 oxim_setTimeSlotB( _OXIM_DIS_SLOT, _OXIM_PD1_PD2_PD3_PD4_CONN, _OXIM_LEDX1_EN, _OXIM_SLOT_NORM_OP_MODE );
 oxim_enableChannels( _OXIM_CH1_EN );
 oxim_writeReg( _OXIM_STATUS_REG, 0xFFFF );
 oxim_writeReg( _OXIM_DATA_ACCESS_CTL_REG, 0x0000 );
 oxim_setMode( _OXIM_DEV_NORMAL_OP_MODE );

 mikrobus_logWrite( "Oximeter is initialized", _LOG_LINE );
 mikrobus_logWrite( "", _LOG_LINE );
 Delay_ms( 300 );
}

..........................................



BLE -- support codes 
## (  https://www.mikroe.com/ble-7-click )

void applicationTask()
{
    rx_data = UART_Rdy_Ptr();
    
    if (rx_data != _RX_NOT_READY)
    {
        rx_data = UART_Rd_Ptr();
        
        checkRX();
    }
    
    logRsp();
}

---------

Key functions:

void ble7_uart_isr( void ) - This function reads response bytes from the BGX module and sets flag after each received byte
uint8_t ble7_response_ready( void ) - This function checks does response ready or not.
void ble7_send( uint8_t *tx_data ) - This function allows user to transmit data to the BGX module.

================

Credits

Krishna P Rao

Krishna P Rao

3 projects • 2 followers
Embedded system design, 5G , wireless, chip design Masters degree

Comments