Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
Bits3 Bare Minimum
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
bits_libs
Bits3 Bare Minimum
Merge requests
!8
Nacharbeit-skanidis
Code
Review changes
Check out branch
Download
Patches
Plain diff
Expand sidebar
Open
Nacharbeit-skanidis
bits3-nacharbeit/nacharbeit-jfrischa/bits3-bare-minimum:main
into
main
Overview
0
Commits
1
Pipelines
0
Changes
1
Open
Stefanos Alexandros Kanidis
requested to merge
bits3-nacharbeit/nacharbeit-jfrischa/bits3-bare-minimum:main
into
main
10 months ago
Overview
0
Commits
1
Pipelines
0
Changes
1
0
0
Merge request reports
Compare
main
main (base)
and
latest version
latest version
7cf01808
1 commit,
10 months ago
1 file
+
143
−
124
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Conflict: This file was modified in both the source and target branches. Ask someone with write access to resolve it.
Fahrzeug/bits3-bare-minimum/bits3-bare-minimum.ino
+
143
−
124
View file @ 7cf01808
Edit in single-file editor
Open in Web IDE
/***************************************************
________ ___ _________ ________ ________
|\ __ \|\ \|\___ ___\\ ____\|\_____ \
\ \ \|\ /\ \ \|___ \ \_\ \ \___|\|____|\ /_
\ \ __ \ \ \ \ \ \ \ \_____ \ \|\ \
\ \ \|\ \ \ \ \ \ \ \|____|\ \ __\_\ \
\ \_______\ \__\ \ \__\ ____\_\ \|\_______\
\|_______|\|__| \|__| |\_________\|_______|
\|_________|
Name:
- Name des Skripts
Description:
- Beschrebiung was dieses Skript macht
Author:
- Namen der Autoren
**************************************************/
/* ******************************* *
Kommunikation des Arduino Megas
* ******************************* */
//Kommunikation über die USB-Schnittstelle (Serial) oder über WiFi (ESP32 Modul)?
#define SERIAL_COMMUNICATION
// #define WIFI_COMMUNICATION
#ifdef SERIAL_COMMUNICATION
#define _println_(x) Serial.println(x)
#define _print_(x) Serial.print(x)
#else
#ifdef WIFI_COMMUNICATION
#define _println_(x) Serial3.println(x)
#define _print_(x) Serial3.print(x)
#else
#define _println_(x)
#define _print_(x)
#endif
#endif
/* ************************************** *
Einbinden aller benötigten Komponenten
* ************************************** */
#include
"config.h"
#include
"basic_functions.h"
#include
"custom_config.h"
#include
"custom_functions.h"
/* *************** *
Initialisierung
* *************** */
void
setup
()
{
// Hier wird entschieden wie die Serielle Kommunikation vom Mega erfolgen soll.
#ifdef SERIAL_COMMUNICATION
Serial
.
begin
(
115200
);
#endif
#ifdef WIFI_COMMUNICATION
Serial3
.
begin
(
115200
);
#endif
// Starten der I2C Kommunikation
Wire
.
begin
();
// Initialisierung der optischen Time-of-Flight Sensoren
tof_controller
.
init
();
// Initialisierung der LED-Streifen
front_strip
.
init
();
back_strip
.
init
();
left_strip
.
init
();
right_strip
.
init
();
// Pin deklaration der Ultraschallsensoren
pinMode
(
TRIGF
,
OUTPUT
);
pinMode
(
TRIGB
,
OUTPUT
);
pinMode
(
ECHOF
,
INPUT
);
pinMode
(
ECHOB
,
INPUT
);
// Initialisierung des Motors
Motor
.
init
();
// Initialisierung der Servomotoren
ServoSteer
.
begin
();
//ServoSearch.begin();
// Initialisierung der Kommunikation
ir_sensor
.
begin
(
IR_PIN
);
nrf_init
();
// NRF
// Initialisierung abgeschlossen
_println_
(
"Ready!"
);
// buzzer_signal(350, 2, 100); //tone() und IR-Empfangen läuft nicht gleichzeitig!!!!
// Heranfahren an Schranke
drive_light_on
();
ServoSteer
.
turn
(
STEER_START_POS
);
readUS
();
while
(
US_distance_f
>=
100
)
{
//Fahre bis die Schranke 100 mm entfernt
Motor
.
drive_forward
(
50
);
readUS
();
}
Motor
.
stop
();
communication
();
// Kommunikation-Funktion (IR+NRF)
printCourseTable
();
// Ausgabe der Empfangenen Zustandstabelle
set_led_color
(
0
,
100
,
0
);
all_led_blink
(
2
,
200
);
delay
(
3000
);
// Warten bis Schranke offen ist
}
/* ************* *
Hauptprogramm
* ************* */
void
loop
()
{
drive_course
();
//Hier wird nur diese Funktion ausgeführt werden --> Erweitern Sie diese um ihren Funktionen!
//Bearbeiten Sie die drive_course Funktion unter custom_functions und erweitern Sie diese an der gekennzeichneten Stelle um die Parkfunktionen
}
/***************************************************
________ ___ _________ ________ ________
|\ __ \|\ \|\___ ___\\ ____\|\_____ \
\ \ \|\ /\ \ \|___ \ \_\ \ \___|\|____|\ /_
\ \ __ \ \ \ \ \ \ \ \_____ \ \|\ \
\ \ \|\ \ \ \ \ \ \ \|____|\ \ __\_\ \
\ \_______\ \__\ \ \__\ ____\_\ \|\_______\
\|_______|\|__| \|__| |\_________\|_______|
\|_________|
Name:
- skanidis 11158213
Description:
- Nacharbeit Modul BITs´3
Author:
- Stefanos Alexandros Kanidis
**************************************************/
/* ******************************* *
Kommunikation des Arduino Megas
* ******************************* */
//Kommunikation über die USB-Schnittstelle (Serial) oder über WiFi (ESP32 Modul)?
#define SERIAL_COMMUNICATION
// #define WIFI_COMMUNICATION
#ifdef SERIAL_COMMUNICATION
#define _println_(x) Serial.println(x)
#define _print_(x) Serial.print(x)
#else
#ifdef WIFI_COMMUNICATION
#define _println_(x) Serial3.println(x)
#define _print_(x) Serial3.print(x)
#else
#define _println_(x)
#define _print_(x)
#endif
#endif
/* ************************************** *
Einbinden aller benötigten Komponenten
* ************************************** */
#include
"config.h"
#include
"basic_functions.h"
#include
"custom_config.h"
#include
"custom_functions.h"
/* *************** *
Initialisierung
* *************** */
void
setup
()
{
// Hier wird entschieden wie die Serielle Kommunikation vom Mega erfolgen soll.
#ifdef SERIAL_COMMUNICATION
Serial
.
begin
(
115200
);
#endif
#ifdef WIFI_COMMUNICATION
Serial3
.
begin
(
115200
);
#endif
// Starten der I2C Kommunikation
Wire
.
begin
();
// Initialisierung der optischen Time-of-Flight Sensoren
tof_controller
.
init
();
// Initialisierung der LED-Streifen
front_strip
.
init
();
back_strip
.
init
();
left_strip
.
init
();
right_strip
.
init
();
// Pin deklaration der Ultraschallsensoren
pinMode
(
TRIGF
,
OUTPUT
);
pinMode
(
TRIGB
,
OUTPUT
);
pinMode
(
ECHOF
,
INPUT
);
pinMode
(
ECHOB
,
INPUT
);
// Initialisierung des Motors
Motor
.
init
();
// Initialisierung der Servomotoren
ServoSteer
.
begin
();
//ServoSearch.begin();
// Initialisierung der Kommunikation
ir_sensor
.
begin
(
IR_PIN
);
nrf_init
();
// NRF
// Initialisierung abgeschlossen
_println_
(
"Ready!"
);
// buzzer_signal(350, 2, 100); //tone() und IR-Empfangen läuft nicht gleichzeitig!!!!
// Heranfahren an Schranke
drive_light_on
();
ServoSteer
.
turn
(
STEER_START_POS
);
readUS
();
while
(
US_distance_f
>=
100
)
{
//Fahre bis die Schranke 100 mm entfernt
Motor
.
drive_forward
(
50
);
readUS
();
}
Motor
.
stop
();
communication
();
// Kommunikation-Funktion (IR+NRF)
printCourseTable
();
// Ausgabe der Empfangenen Zustandstabelle
set_led_color
(
0
,
100
,
0
);
all_led_blink
(
2
,
200
);
delay
(
3000
);
// Warten bis Schranke offen ist
}
//Ausgabe der Encoder
#include
<Encoder.h>
/
Ausgabe
der
Encoder
-
Werte
long
encoderRight
=
readEncoderRight
();
long
encoderLeft
=
readEncoderLeft
();
_print_
(
"Encoder Right: "
);
//Encoder Rechts
_println_
(
encoderRight
);
_print_
(
"Encoder Left: "
);
//Encoder links
_println_
(
encoderLeft
);
// Ausgabe der Ultraschallsensor-Werte
float
usBack
=
UltrasoundBack
();
float
usFront
=
UltrasoundFront
();
_print_
(
"Ultrasound Back: "
);
// für hinten
_println_
(
usBack
);
_print_
(
"Ultrasound Front: "
);
//für Vorne
_println_
(
usFront
);
/* ************* *
Hauptprogramm
* ************* */
void
loop
()
{
drive_course
();
//Hier wird nur diese Funktion ausgeführt werden --> Erweitern Sie diese um ihren Funktionen!
//Bearbeiten Sie die drive_course Funktion unter custom_functions und erweitern Sie diese an der gekennzeichneten Stelle um die Parkfunktionen
}
Loading