2022年12月13日火曜日

esp32wroom bluetooth crane


 












// espwroom32_bluetooth_trailer

// Thanks to Hello Raspberry Pi

#include "BluetoothSerial.h"

BluetoothSerial SerialBT;


#include "ESP32MotorControl.h"

ESP32MotorControl MotorControl = ESP32MotorControl();


int greenled = 25;

int redled = 27;

int blueled = 32;

int backled = 33;


int in1 = 13;

int in2 = 14;

int in3 = 15;

int in4 = 16;


void setup() 

{

  pinMode(greenled,OUTPUT);

  pinMode(redled,OUTPUT);

  pinMode(blueled,OUTPUT);

  pinMode(backled,OUTPUT);

  

  pinMode(in1,OUTPUT);

  pinMode(in2,OUTPUT);

  pinMode(in3,OUTPUT);

  pinMode(in4,OUTPUT);

  

  Serial.begin(115200);

  SerialBT.begin("ESP32SPPw");

  Serial.println("The device started.");


  digitalWrite(greenled,HIGH);

  delay(500);

  digitalWrite(greenled,LOW);

  delay(500);

  digitalWrite(redled,HIGH);

  delay(500);

  digitalWrite(redled,LOW);

  delay(500);

  digitalWrite(blueled,HIGH);

  delay(500);

  digitalWrite(blueled,LOW);

  delay(500);


  MotorControl.attachMotors(in1,in2,in3,in4);


}

  

void loop() 

{  

   

  if(SerialBT.available())

  

  {  

    char cmd = SerialBT.read();

    switch(cmd)

    {

      case 'w':

        Forward();

        break;

      case 's':

        MotorStop();

        break;

      case 'x':

        Back();

        break;

      case 'd':

        TurnRight();

        break;

      case 'a':

        TurnLeft();

        break;

      case 'e':

        ForwardRight();

        break;                

      case 'q':

        ForwardLeft();

        break;

      case 'c':

        BackRight();

        break;

      case 'z':

        BackLeft();

        break;


        

      default:

        Serial.println("unknown command");

        break;   

    }       

       

  } 

  delay(20);       

}



void Forward()

{

  digitalWrite(backled,LOW);

  MotorControl.motorForward(0,100);

  MotorControl.motorForward(1,100);  

}


void MotorStop()

{

  digitalWrite(backled,LOW);

  MotorControl.motorsStop();

}


void Back()

{

  digitalWrite(backled,HIGH);

  MotorControl.motorReverse(0,100);

  MotorControl.motorReverse(1,100);

}


void TurnRight()

{

  digitalWrite(backled,LOW);

  MotorControl.motorForward(0,100);

  MotorControl.motorReverse(1,100);

  delay(500);

  Forward();

}


void TurnLeft()

{

  digitalWrite(backled,LOW);

  MotorControl.motorReverse(0,100);

  MotorControl.motorForward(1,100);

  delay(500);

  Forward();

}


void ForwardRight()

{

  digitalWrite(backled,LOW);

  MotorControl.motorForward(0,100);

  MotorControl.motorReverse(1,100);

  delay(100);

  MotorStop();

  

 

}


void ForwardLeft()

{

  digitalWrite(backled,LOW); 

  MotorControl.motorReverse(0,100);

  MotorControl.motorForward(1,100);

  delay(100);

  MotorStop();

}


void BackRight()

{

  digitalWrite(backled,HIGH);

  MotorControl.motorForward(0,100);

  MotorControl.motorReverse(1,100);

  delay(100);

  MotorStop();

}


void BackLeft()

{

  digitalWrite(backled,HIGH);

  MotorControl.motorReverse(0,100);

  MotorControl.motorForward(1,100);

  delay(100);

  MotorStop(); 

}


# /home/masa/BTTR.py

# --/home/masa/.bash_aliases--

# alias kb = 'python /home/masa/BTTR.py

#

# --/home/masa/.config/lxsession/LXDE-pi/autostart--

# lxpanel --profile LXDE-pi

# @pcmanfm --desktop -profile LXDE-pi

# @xscreensaver -no-splash


# @xset s off

# @xset -dpms

# @xset s noblank

# @unclutter

# @lxterminal --geometry=60x15+10+200

# lxterminal font size = 50

# Thanks to Hello Raspberry pi 


from bluetooth import *

from gpiozero import LED

led = LED(18)

from time import sleep

                

addr = "C8:F0:9E:A8:2E:9E"

service_matches = find_service( address = addr)


buf_size = 1024


if len(service_matches) == 0:

    print("couldn't find the SampleServer service ")

    sys.exit(0)

    

for s in range(len(service_matches)):

    print("\nservice_matches: [" + str(s) + "]:")

    print(service_matches[s])

    

first_match = service_matches[0]

port = first_match["port"]

name = first_match["name"]

host = first_match["host"]


port = 1

sock = BluetoothSocket(RFCOMM)

sock.connect((host,port))


print("connected")

for counter in range(3):

    led.on()

    sleep(0.5)

    led.off()

    sleep(0.5)


print("\nType something\n")

while True:

    data = input();

    if len(data) == 0: break

    sock.send(data)

    sock.send("\n")

                                                                                            

sock.close()


print("\n--- bye ---\n")


0 件のコメント:

コメントを投稿