Hackster is hosting Hackster Holidays, Ep. 7: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Friday!Stream Hackster Holidays, Ep. 7 on Friday!
Florin Pantilimonescu
Published © GPL3+

Voice Activated Switch for DC Powered Actuators

An Apple Siri-controlled switch based on Infineon's XMC1100 industrial microcontroller and 600VCoolMOS G7 power transistor.

IntermediateFull instructions provided18 hours1,117
Voice Activated Switch for DC Powered Actuators

Things used in this project

Hardware components

Infineon XMC1100-T016
×1
Infineon IPT 60R028G7 transistor
×1
Infineon IFX25001MEV33
×1
RN 42
×1
Infineon Detachable SEGGER J-Link
×1
Resistor 1k ohm
Resistor 1k ohm
×1
PSG-BB-400 - Breadboard,
×1
Car power LED light
×1
Infineon Shield2Go Security OPTIGA™ Trust
×1

Software apps and online services

Siricontrol-system
Infineon DAVE
Raspberry Pi OS

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Siri Based Switch

Protoype XMC1100 MCU with IPT60R028G7 transistor as power switch

Breadboard prototype

Experimental Siri Based Switch with components on breadboard
File missing, please reupload.

Dave components

Software components from Infineon DAVE for XMC1100 code

Dave pins

Allocation XMC1100 pins in DAVE code

Code

XMC1100 DAVE

C/C++
Run on XMC1100 , receive message from rasperry pi Siricontrol
e1.Software for XMC1100 

/*
Infineon Powering the Future -
Voice activated switch for DC powered actuators
 
 Transistor IPT60RO28G7 is connected via optocoupler to XMC1100 TSOP16
  The cathode of the diode in the optocoupler is connected to P2.10. The anode is connected to      *  3.3V via a 330 Ohm resistor.
 Commands are received through the serial interface on the Debug module.
 Tx is at P2.0 and Rx is at P2.6
 Transistor switches to 12V a headlamp LED.
Author: Florin Pantilimonescu
 
*/

#include <DAVE.h>

Lightoff()         // interrupt handlelr
     {
	  PWM_SetDutyCycle(&PWM_0, 10000); // Light stop
	  DIGITAL_IO_SetOutputLow (&led);  // control com. LED
      }

int main(void)
{
 uint8_t j;         // car. receptionat
  DAVE_Init();		//* Initializare  DAVE APPs
  DIGITAL_IO_SetOutputHigh (&led);  // control com. LED
  PWM_SetFreq(&PWM_0, 100);         // freq. 100 Hz
  PWM_SetDutyCycle(&PWM_0,10000 );  //  PWM 100%
  PWM_Start(&PWM_0);

  UART_SetRXFIFOTriggerLimit(&UART_0, 0); // buffer 1 character

  while(1U)
     {
	if(UART_GetRXFIFOStatus(&UART_0))   // char. available
	 	         {
	UART_ClearRXFIFOStatus(&UART_0, 1); // clear status
	j = UART_GetReceivedWord(&UART_0);  // receive data

	  if (j=='1')                       // words "Light first"
	      {
	DIGITAL_IO_ToggleOutput (&led);     // test char. OK
     PWM_SetDutyCycle(&PWM_0, 9900);     // light small
	       }
	  if(j=='2')                        // words "Light middle"
	      {
		  DIGITAL_IO_ToggleOutput (&led); // test char. OK
		  PWM_SetDutyCycle(&PWM_0, 8500); // light middle
	       }

	  if(j=='3')                          // words "Light huge"
	    {
		DIGITAL_IO_ToggleOutput (&led);  // test char. OK
		PWM_SetDutyCycle(&PWM_0, 100);   // light max.
	       }
	  	 	       }
	  if(j=='0')                          // words "Light stop"
	    {
	  DIGITAL_IO_ToggleOutput (&led);     // test char. OK
	  PWM_SetDutyCycle(&PWM_0, 10000);    // Light stop
	  	  	 	       }
	    }
 }
}



                                                        Fig. 2 DAVE Components

                                                        Fig.3  DAVE pin alocator

Raspberry Pi Python modules for Siricontro-system

Python
Extract Notes from Gmail and send control massages to Siri Based Switch
e2.  Raspberry Pi Siricontrol-System  software modules 


Python module for the words "Light First "
 

# Infineon Powering the Future -
# Voice activated switch for DC powered actuators
# Author: Florin Pantilimonescu
import serial
#Name of the module 
moduleName = "light_first"

#Command words
commandWords = ["light","first"]

#Function related to  command words are said
def execute(command):
    
    port=serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=4.0)
    port.write("1")	
    port.close()
	    

	



Python module for the words "Light middle" 


# Infineon Powering the Future -
# Voice activated switch for DC powered actuators
# Author: Florin Pantilimonescu
import serial
#Name of the module 
moduleName = "light_middle"

#Command words
commandWords = ["light","middle"]

#Function related to  command words are said
def execute(command):
    
    port=serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=4.0)
    port.write("2")	
    port.close()
	    



Python module for the words "Light huge" 


# Infineon Powering the Future -
# Voice activated switch for DC powered actuators
# Author: Florin Pantilimonescu
import serial
#Name of the module 
moduleName = "light_huge"

#Command words
commandWords = ["light","huge"]

#Function related to  command words are said
def execute(command):
    
    port=serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=4.0)
    port.write("3")	
    port.close()
	    

 
Python module for the words "Light stop" 


# Infineon Powering the Future -
# Voice activated switch for DC powered actuators
# Author: Florin Pantilimonescu
import serial
#Name of the module 
moduleName = "light_stop"

#Command words
commandWords = ["light","stop"]

#Function related to  command words are said
def execute(command):
    
    port=serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=4.0)
    port.write("0")	
    port.close()
	    

Credits

Florin Pantilimonescu
1 project • 3 followers

Comments