// 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 件のコメント:
コメントを投稿