From b71d746a5d1132aa645319ddc3c0672a52f5bd22 Mon Sep 17 00:00:00 2001 From: David K Date: Fri, 22 Mar 2024 15:27:49 +0000 Subject: [PATCH] #51 Final Pre-con prep Fixed the Mk1 pinout diagram even though it's old Removed the surplus config files --- Mk1Pinout-Outdated.md | 20 ++++++ Pinout.md | 20 ------ ServoSkull.sln | 2 +- skullOS.HardwareServices/SpeakerService.cs | 3 +- skullOS.Modules/Camera.cs | 59 ++++++++++++++++-- skullOS.Modules/Data/CameraSettings.txt | 1 + skullOS.Modules/Prop.cs | 5 +- .../195912__acpascal__start-beep.mp3 | Bin 0 -> 8777 bytes .../51360__thecheeseman__camera_snap1.mp3 | Bin 0 -> 7523 bytes skullOS.Modules/Resources/Sources.txt | 4 +- skullOS.Modules/skullOS.Modules.csproj | 6 ++ skullOS/Data/Modules.txt | 3 +- skullOS/Data/SkullInputSettings.txt | 1 - skullOS/Data/SkullModules.txt | 6 -- skullOS/skullOS.csproj | 6 -- 15 files changed, 93 insertions(+), 43 deletions(-) create mode 100644 Mk1Pinout-Outdated.md delete mode 100644 Pinout.md create mode 100644 skullOS.Modules/Resources/195912__acpascal__start-beep.mp3 create mode 100644 skullOS.Modules/Resources/51360__thecheeseman__camera_snap1.mp3 delete mode 100644 skullOS/Data/SkullInputSettings.txt delete mode 100644 skullOS/Data/SkullModules.txt diff --git a/Mk1Pinout-Outdated.md b/Mk1Pinout-Outdated.md new file mode 100644 index 0000000..430378f --- /dev/null +++ b/Mk1Pinout-Outdated.md @@ -0,0 +1,20 @@ +|Env Sensor|Grey |x|x| | | +|Env Sensor|Green |x|x|White |RGB Array | +|Env Sensor|Blue |x|x|Grey |RGB Array | +| | |x|x| | | +|Env Sensor|Purple|x|x| | | +| | |x|x| | | +| | |x|x|Brown |Power LED | +| | |x|x|Red |Power LED | +| | |x|x| | | +|RGB Array |Black |x|x|Yellow |Button | +| | |x|x|Yellow |Button | +| | |x|x| | | +|Buzzer |Black |x|x| | | +| | |x|x| | | +| | |x|x|Orange |Notification LED| +| | |x|x|Yellow |Notification LED| +|Buzzer |White |x|x|Green |Warning LED | +| | |x|x|Dark Blue|Warning LED | +|White LED |Red |x|x| | | +|White LED |Brown |x|x| | | \ No newline at end of file diff --git a/Pinout.md b/Pinout.md deleted file mode 100644 index addea1d..0000000 --- a/Pinout.md +++ /dev/null @@ -1,20 +0,0 @@ -|Env Sensor|Grey|x|x| | | -|Env Sensor|Green|x|x|White|RGB Array| -|Env Sensor|Blue|x|x|Grey|RGB Array| -| | |x|x| | | -|Env Sensor|Purple|x|x| | | -| | |x|x| | | -| | |x|x|Brown|Power LED| -| | |x|x|Red|Power LED| -| | |x|x| | | -|RGB Array|Black|x|x|Yellow|Button| -| | |x|x|Yellow|Button| -| | |x|x| | | -|Buzzer|Black|x|x| | | -| | |x|x| | | -| | |x|x|Orange|Notification LED| -| | |x|x|Yellow|Notification LED| -|Buzzer|White|x|x|Green|Warning LED| -| | |x|x|Dark Blue|Warning LED| -|White LED|Red|x|x| | | -|White LED|Brown|x|x| | | \ No newline at end of file diff --git a/ServoSkull.sln b/ServoSkull.sln index e9ed18e..5266c87 100644 --- a/ServoSkull.sln +++ b/ServoSkull.sln @@ -17,7 +17,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{EE38A10C-F0BB-40B5-B1E6-8CB16C6E452C}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig - Pinout.md = Pinout.md + Mk1Pinout-Outdated.md = Mk1Pinout-Outdated.md EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "skullOS.API", "skullOS.API\skullOS.API.csproj", "{5E1EC385-4B61-4E8C-82C7-46695A33AC72}" diff --git a/skullOS.HardwareServices/SpeakerService.cs b/skullOS.HardwareServices/SpeakerService.cs index 5263792..baad4c7 100644 --- a/skullOS.HardwareServices/SpeakerService.cs +++ b/skullOS.HardwareServices/SpeakerService.cs @@ -5,7 +5,8 @@ namespace skullOS.HardwareServices { /// /// Service to communicate with audio output - /// Requires `sudo apt install --no-install-recommends vlc-bin vlc-plugin-base` to have been ran first + /// Requires `sudo apt install --no-install-recommends vlc-bin vlc-plugin-base` to have been ran first which isn't on lite os + /// If deploying to a pizero, may also need to do the following: https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage /// public class SpeakerService : ISpeakerService { diff --git a/skullOS.Modules/Camera.cs b/skullOS.Modules/Camera.cs index a778883..95ce260 100644 --- a/skullOS.Modules/Camera.cs +++ b/skullOS.Modules/Camera.cs @@ -15,11 +15,14 @@ public class Camera : Module, ICameraModule { public CameraService CameraService; public MicrophoneService? MicrophoneService = null; + public SpeakerService? SpeakerService = null; public LedService? LedService = null; public CameraMode CameraMode = CameraMode.Image; - public BuzzerService BuzzerService; + public BuzzerService? BuzzerService = null; bool useMic = false; + bool useSpeaker = false; + bool useBuzzer = false; bool isActive = false; public Camera() @@ -53,8 +56,36 @@ public Camera() LedService = new LedService(pins); } } - - BuzzerService = new BuzzerService(13); + if (cameraSettings.ContainsKey("UseBuzzer")) + { + if (cameraSettings.TryGetValue("UseBuzzer", out string shouldUseBuzzer)) + { + if (bool.Parse(shouldUseBuzzer)) + { + BuzzerService = new BuzzerService(13); + useBuzzer = true; + } + else + { + //No Mic desired + } + } + } + if (cameraSettings.ContainsKey("UseSpeaker")) + { + if (cameraSettings.TryGetValue("UseSpeaker", out string shouldUseSpeaker)) + { + if (bool.Parse(shouldUseSpeaker)) + { + SpeakerService = new SpeakerService(); + useSpeaker = true; + } + else + { + //No Mic desired + } + } + } } public async Task TakePicture() @@ -66,7 +97,14 @@ public async Task TakePicture() { LedService.BlinkLight("CameraLight"); } - BuzzerService.Buzzer.PlayTone(1500, 500); + if (useBuzzer) + { + BuzzerService.Buzzer.PlayTone(1500, 500); + } + if (useSpeaker) + { + _ = SpeakerService.PlayAudio(@"Resources\51360__thecheeseman__camera_snap1.mp3"); + } string result = await CameraService.TakePictureAsync($"{FileManager.GetSkullDirectory()}/Captures/"); LogMessage(result); isActive = false; @@ -83,13 +121,24 @@ public async Task RecordShortVideo() { LedService.TurnOn("CameraLight"); } - BuzzerService.Buzzer.PlayTone(1500, 500); + if (useBuzzer) + { + BuzzerService.Buzzer.PlayTone(1500, 500); + } + if (useSpeaker) + { + _ = SpeakerService.PlayAudio(@"Resources\195912__acpascal__start-beep.mp3"); + } string result = await CameraService.RecordShortVideoAsync($"{FileManager.GetSkullDirectory()}/Captures/", false); LogMessage(result); if (LedService != null && LedService.LEDs.ContainsKey("CameraLight")) { LedService.TurnOff("CameraLight"); } + if (useSpeaker) + { + //Play camera stop sound + } isActive = false; } diff --git a/skullOS.Modules/Data/CameraSettings.txt b/skullOS.Modules/Data/CameraSettings.txt index 11ba788..1c90400 100644 --- a/skullOS.Modules/Data/CameraSettings.txt +++ b/skullOS.Modules/Data/CameraSettings.txt @@ -1,2 +1,3 @@ UseMic=False +UseBuzzer=False CameraLight=6 \ No newline at end of file diff --git a/skullOS.Modules/Prop.cs b/skullOS.Modules/Prop.cs index 6b87bc7..3fe5481 100644 --- a/skullOS.Modules/Prop.cs +++ b/skullOS.Modules/Prop.cs @@ -79,7 +79,10 @@ private void PlayIdleSound_Elapsed(object? sender, System.Timers.ElapsedEventArg Random random = new Random(); int selection = random.Next(0, numberOfIdles + 1); SpeakerService.PlayAudio(sounds[selection]); - if (propSettings.ContainsKey("Servos")) + + propSettings.TryGetValue("Servos", out string servosState); + bool useServos = bool.Parse(servosState); + if (propSettings.ContainsKey("Servos") && useServos) { if (random.NextSingle() <= 0.5) { diff --git a/skullOS.Modules/Resources/195912__acpascal__start-beep.mp3 b/skullOS.Modules/Resources/195912__acpascal__start-beep.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f93a47c7d04c471b76e088a8181043ce298b5985 GIT binary patch literal 8777 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 PU5_NAf4i6bDyZ{+we2-n literal 0 HcmV?d00001 diff --git a/skullOS.Modules/Resources/51360__thecheeseman__camera_snap1.mp3 b/skullOS.Modules/Resources/51360__thecheeseman__camera_snap1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5bb917fbbe73fafa151b42dde8039dcf437a2d3b GIT binary patch literal 7523 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 Always + + Always + + + Always + PreserveNewest diff --git a/skullOS/Data/Modules.txt b/skullOS/Data/Modules.txt index e4fe3cb..35ee7bf 100644 --- a/skullOS/Data/Modules.txt +++ b/skullOS/Data/Modules.txt @@ -1,2 +1,3 @@ Camera=True -Prop=True \ No newline at end of file +Prop=True +Adventure=True \ No newline at end of file diff --git a/skullOS/Data/SkullInputSettings.txt b/skullOS/Data/SkullInputSettings.txt deleted file mode 100644 index 0902930..0000000 --- a/skullOS/Data/SkullInputSettings.txt +++ /dev/null @@ -1 +0,0 @@ -Camera(Image)=0 \ No newline at end of file diff --git a/skullOS/Data/SkullModules.txt b/skullOS/Data/SkullModules.txt deleted file mode 100644 index 2fcce2f..0000000 --- a/skullOS/Data/SkullModules.txt +++ /dev/null @@ -1,6 +0,0 @@ -Camera=True -Downlink=True -Uplink=True -Prop=True -QrCodeReader=True -Buzzer=True diff --git a/skullOS/skullOS.csproj b/skullOS/skullOS.csproj index 56f4901..cc04f2a 100644 --- a/skullOS/skullOS.csproj +++ b/skullOS/skullOS.csproj @@ -24,12 +24,6 @@ Always - - Always - - - Always -