Progress commit
This commit is contained in:
parent
60432ca9ed
commit
0ee958e5c4
|
|
@ -9,23 +9,15 @@
|
|||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[platformio]
|
||||
default_envs = esp12e
|
||||
default_envs = leonardo
|
||||
name = RemoteTrainControl
|
||||
|
||||
[env:esp12e]
|
||||
platform = espressif8266
|
||||
[env:leonardo]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = esp12e
|
||||
lib_deps =
|
||||
adafruit/Adafruit ADS1X15@^2.4.0
|
||||
SPI
|
||||
adafruit/Adafruit SSD1306@^2.5.7
|
||||
|
||||
[env:nodemcuv2]
|
||||
platform = espressif8266
|
||||
framework = arduino
|
||||
board = nodemcuv2
|
||||
board = leonardo
|
||||
lib_deps =
|
||||
adafruit/Adafruit ADS1X15@^2.4.0
|
||||
SPI
|
||||
adafruit/Adafruit SSD1306@^2.5.7
|
||||
jgromes/RadioLib@^5.7.0
|
||||
|
|
|
|||
|
|
@ -10,12 +10,11 @@ void controlsInit() {
|
|||
ads1115.setGain(GAIN_ONE);
|
||||
}
|
||||
|
||||
float map(float x, float in_min, float in_max, float out_min, float out_max)
|
||||
{
|
||||
float map(float x, float in_min, float in_max, float out_min, float out_max) {
|
||||
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
||||
}
|
||||
|
||||
void getControlsState(float &throttle, int &direction, bool &horn, bool &bell, bool &lights) {
|
||||
void getControlsState(float &throttle, int8_t &direction, bool &horn, bool &bell, bool &lights) {
|
||||
float throttle_volts = ads1115.computeVolts(ads1115.readADC_SingleEnded(0));
|
||||
float direction_volts = ads1115.computeVolts(ads1115.readADC_SingleEnded(1));
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,6 @@
|
|||
|
||||
void controlsInit();
|
||||
float map(float x, float in_min, float in_max, float out_min, float out_max);
|
||||
void getControlsState(float &throttle, int &direction, bool &horn, bool &bell, bool &lights);
|
||||
void getControlsState(float &throttle, int8_t &direction, bool &horn, bool &bell, bool &lights);
|
||||
|
||||
#endif
|
||||
60
src/main.cpp
60
src/main.cpp
|
|
@ -1,29 +1,69 @@
|
|||
#include "Arduino.h"
|
||||
#include "screen.h"
|
||||
#include "wifi.h"
|
||||
#include "controls.h"
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <string>
|
||||
#include <RadioLib.h>
|
||||
#include "string.h"
|
||||
using namespace std;
|
||||
|
||||
// RF69 has the following connections:
|
||||
// CS pin: 10
|
||||
// DIO0 pin: 2
|
||||
// RESET pin: 3
|
||||
RF69 radio = new Module(10, 2, 3);
|
||||
|
||||
void radioInit() {
|
||||
Serial.print(F("[RF69] Initializing ... "));
|
||||
int state = radio.begin(918.5, 300.0, 60.0, 250.0, 10, 32);
|
||||
if (state == RADIOLIB_ERR_NONE) {
|
||||
Serial.println(F("success!"));
|
||||
} else {
|
||||
Serial.print(F("failed, code "));
|
||||
Serial.println(state);
|
||||
while (true);
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
displayInit();
|
||||
controlsInit();
|
||||
WiFi.softAP(WIFI_SSID, WIFI_PASS);
|
||||
displayWiFiInformation(WIFI_SSID, WIFI_PASS);
|
||||
radioInit();
|
||||
}
|
||||
|
||||
float throttle = 0.0f;
|
||||
uint8_t direction = 0;
|
||||
int8_t direction = 0;
|
||||
bool horn = false;
|
||||
bool bell = false;
|
||||
bool lights = false;
|
||||
|
||||
void sendStringToRadio(String str) {
|
||||
int state = radio.transmit("Hello World!");
|
||||
if (state == RADIOLIB_ERR_NONE) {
|
||||
} else if (state == RADIOLIB_ERR_PACKET_TOO_LONG) {
|
||||
// the supplied packet was longer than 64 bytes
|
||||
Serial.println(F("too long!"));
|
||||
} else {
|
||||
Serial.print(F("failed, code "));
|
||||
Serial.println(state);
|
||||
}
|
||||
}
|
||||
|
||||
void serializeThrottleDirection(float throttle, int8_t direction, String &str) {
|
||||
str += String(throttle);
|
||||
str += ",";
|
||||
str += String(direction);
|
||||
}
|
||||
|
||||
void sendControlOutputs(float throttle, int8_t direction, bool horn, bool bell, bool lights) {
|
||||
String str;
|
||||
serializeThrottleDirection(throttle, direction, str);
|
||||
Serial.println(str);
|
||||
sendStringToRadio(str);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
getControlsState(throttle, direction, horn, bell, lights);
|
||||
displayControlStatus(throttle, direction, horn, bell, lights);
|
||||
//sendControlOutputs(throttle, direction, horn, bell, lights);
|
||||
delay(1);
|
||||
}
|
||||
sendControlOutputs(throttle, direction, horn, bell, lights);
|
||||
delay(100);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include <Wire.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SSD1306.h>
|
||||
#include <string>
|
||||
#include "string.h"
|
||||
using namespace std;
|
||||
|
||||
#define SCREEN_WIDTH 128
|
||||
|
|
@ -21,7 +21,7 @@ void displayInit() {
|
|||
}
|
||||
}
|
||||
|
||||
void displayString(string inputString) {
|
||||
void displayString(String inputString) {
|
||||
if (!displayEnabled) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -30,25 +30,7 @@ void displayString(string inputString) {
|
|||
}
|
||||
}
|
||||
|
||||
void displayWiFiInformation(string wifiSSID, string wifiPassword) {
|
||||
if (!displayEnabled) {
|
||||
return;
|
||||
}
|
||||
display.clearDisplay();
|
||||
display.setTextSize(1);
|
||||
display.setTextColor(SSD1306_WHITE);
|
||||
display.setCursor(0,0);
|
||||
displayString("WiFi Information:");
|
||||
display.setCursor(0,8);
|
||||
displayString("SSID: ");
|
||||
displayString(wifiSSID);
|
||||
display.setCursor(0,16);
|
||||
displayString("Pass: ");
|
||||
displayString(wifiPassword);
|
||||
display.display();
|
||||
}
|
||||
|
||||
void displayDirection(int &direction) {
|
||||
void displayDirection(int8_t &direction) {
|
||||
if (direction == 0) {
|
||||
displayString("N");
|
||||
} else if (direction == 1) {
|
||||
|
|
@ -68,7 +50,7 @@ void displayBool(bool &state) {
|
|||
}
|
||||
}
|
||||
|
||||
void displayControlStatus(float &throttle, int &direction, bool &horn, bool &bell, bool &lights) {
|
||||
void displayControlStatus(float &throttle, int8_t &direction, bool &horn, bool &bell, bool &lights) {
|
||||
if (!displayEnabled) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
#ifndef SCREEN_H
|
||||
#define SCREEN_H
|
||||
|
||||
#include <string>
|
||||
#include "string.h"
|
||||
using namespace std;
|
||||
|
||||
void displayInit();
|
||||
void displayString(string inputString);
|
||||
void displayWiFiInformation(string wifiSSID, string wifiPassword);
|
||||
void displayDirection(int &direction);
|
||||
void displayString(String inputString);
|
||||
void displayDirection(int8_t &direction);
|
||||
void displayBool(bool &state);
|
||||
void displayControlStatus(float &throttle, int &direction, bool &horn, bool &bell, bool &lights);
|
||||
void displayControlStatus(float &throttle, int8_t &direction, bool &horn, bool &bell, bool &lights);
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue