From 7fb92b2703a0c762dc83b8e8799045782978232d Mon Sep 17 00:00:00 2001 From: Andy Liu Date: Thu, 5 Dec 2024 08:31:18 -0800 Subject: [PATCH] Fix/add madgraphics demo (#33) --- .../13MoreProjects/Fireworks/.gitignore | 8 + .../13MoreProjects/Fireworks/Package.mmp | 28 ++ .../13MoreProjects/Fireworks/Package.swift | 28 ++ .../Resources/Fonts/Roboto-Regular.ttf | Bin 0 -> 168260 bytes .../Fireworks/Resources/Sounds/boom.wav | Bin 0 -> 86592 bytes .../Fireworks/Sources/Firework.swift | 89 +++++++ .../Fireworks/Sources/Fireworks.swift | 94 +++++++ .../Fireworks/Sources/Particle.swift | 29 +++ .../Fireworks/Sources/SoundThread.swift | 51 ++++ .../Fireworks/Sources/Spark.swift | 42 +++ .../13MoreProjects/HilbertCurve/.gitignore | 8 + .../13MoreProjects/HilbertCurve/Package.mmp | 28 ++ .../13MoreProjects/HilbertCurve/Package.swift | 28 ++ .../Sources/HilbertCurve/Hilbert.swift | 71 ++++++ .../Sources/HilbertCurve/HilbertCurve.swift | 112 ++++++++ .../13MoreProjects/MazeGame/.gitignore | 8 + .../13MoreProjects/MazeGame/Package.mmp | 28 ++ .../13MoreProjects/MazeGame/Package.swift | 29 +++ .../Resources/Fonts/Roboto-Regular.ttf | Bin 0 -> 168260 bytes .../MazeGame/Sources/MazeGame/Ball.swift | 20 ++ .../MazeGame/Sources/MazeGame/Game.swift | 241 ++++++++++++++++++ .../MazeGame/Sources/MazeGame/Grid.swift | 13 + .../MazeGame/Sources/MazeGame/Maze.swift | 186 ++++++++++++++ .../MazeGame/Sources/MazeGame/MazeGame.swift | 53 ++++ .../13MoreProjects/SandSimulation/.gitignore | 8 + .../13MoreProjects/SandSimulation/Package.mmp | 28 ++ .../SandSimulation/Package.swift | 29 +++ .../Sources/SandSimulation/Sand.swift | 180 +++++++++++++ .../SandSimulation/SandSimulation.swift | 43 ++++ .../13MoreProjects/SpinningCube/.gitignore | 8 + .../13MoreProjects/SpinningCube/Package.mmp | 28 ++ .../13MoreProjects/SpinningCube/Package.swift | 28 ++ .../Sources/SpinningCube/SpinningCube.swift | 99 +++++++ .../Sources/SpinningCube/Uitls.swift | 68 +++++ .../13MoreProjects/WordClock/.gitignore | 8 + .../13MoreProjects/WordClock/Package.mmp | 28 ++ .../13MoreProjects/WordClock/Package.swift | 29 +++ .../Resources/Fonts/Graduate-Regular.ttf | Bin 0 -> 21288 bytes .../Sources/WordClock/WordClock.swift | 107 ++++++++ .../Sources/WordClock/WordView.swift | 56 ++++ .../WordClock/Sources/WordClock/Words.swift | 135 ++++++++++ 41 files changed, 2076 insertions(+) create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/.gitignore create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.mmp create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Resources/Fonts/Roboto-Regular.ttf create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Resources/Sounds/boom.wav create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Firework.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Fireworks.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Particle.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/SoundThread.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Spark.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/.gitignore create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.mmp create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/Hilbert.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/HilbertCurve.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/.gitignore create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.mmp create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Resources/Fonts/Roboto-Regular.ttf create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Ball.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Game.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Grid.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Maze.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/MazeGame.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/.gitignore create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.mmp create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/Sand.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/SandSimulation.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/.gitignore create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.mmp create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/SpinningCube.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/Uitls.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/.gitignore create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.mmp create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/Resources/Fonts/Graduate-Regular.ttf create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/Sources/WordClock/WordClock.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/Sources/WordClock/WordView.swift create mode 100644 Examples/SwiftIOPlayground/13MoreProjects/WordClock/Sources/WordClock/Words.swift diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/.gitignore b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.mmp b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.mmp new file mode 100644 index 0000000..8af5322 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.mmp @@ -0,0 +1,28 @@ +# This is a MadMachine project file in TOML format +# This file contains parameters that cannot be managed by SwiftPM +# Editing this file will alter the behavior of the build/download process +# Project files within dependent libraries will be IGNORED + +# Specify the board name below +# Supported boards are listed as follows +# "SwiftIOBoard" +# "SwiftIOMicro" +board = "SwiftIOMicro" + +# Specify the target triple below +# Supported architectures are listed as follows +# "thumbv7em-unknown-none-eabi" +# "thumbv7em-unknown-none-eabihf" +# "armv7em-none-none-eabi" +triple = "armv7em-none-none-eabi" + +# Enable or disable hardware floating-point support below +# If your code involves significant floating-point calculations, please set it to 'true' +hard-float = true + +# Enable or disable float register below +# If your code involves significant floating-point calculations, please set it to 'true' +float-abi = false + +# Reserved for future use +version = 1 \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.swift b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.swift new file mode 100644 index 0000000..8d25e0c --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "Fireworks", + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(url: "https://github.com/madmachineio/SwiftIO.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadBoards.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadDrivers.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/CFreeType", from: "2.13.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "Fireworks", + dependencies: [ + "SwiftIO", + "MadBoards", + // Use specific library name rather than "MadDrivers" would speed up the build procedure. + .product(name: "ST7789", package: "MadDrivers"), + "CFreeType" + ]), + ] +) diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Resources/Fonts/Roboto-Regular.ttf b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Resources/Fonts/Roboto-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ddf4bfacb396e97546364ccfeeb9c31dfaea4c25 GIT binary patch literal 168260 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

S&jh1n&JeeMOkU4{=4@cYr6k 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≤FHXCuU9Qce=@vmZ{%9^5??OaVQJ8!4u8-w;yt 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

N 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 literal 0 HcmV?d00001 diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Firework.swift b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Firework.swift new file mode 100644 index 0000000..86102f4 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Firework.swift @@ -0,0 +1,89 @@ +import MadGraphics +import ST7789 +import SwiftIO + +struct Firework { + var particle: Particle + var sparks: [Spark] = [] + + var exploded = false + + let color: Color + let size = 2 + + // Create a firework at the bottom of the screen. + init(color: Color, maxWidth: Int) { + self.color = color + + let x = Array(0..<(maxWidth - 1)).shuffled().randomElement()! + particle = Particle(pos: Point(x: x, y: maxWidth - 1)) + } + + // Update firework's position. + // If it explodes, it will return true to indicate it's time to play sound. + mutating func update(_ layer: Layer) -> Bool { + if exploded { + for spark in sparks { + layer.draw() { canvas in + canvas.fillCircle(at: spark.pos, radius: size, data: Color.black.rawValue) + } + } + + updateSparks() + + for spark in sparks { + let color = Color.blend(foreground: color.rawValue, background: Color.black.rawValue, mask: spark.lifespan) + layer.draw() { canvas in + canvas.fillCircle(at: spark.pos, radius: size, data: color.rawValue) + } + } + } else { + layer.draw() { canvas in + canvas.fillCircle(at: particle.pos, radius: size, data: Color.black.rawValue) + } + + let playSound = updateParticle() + + layer.draw() { canvas in + canvas.fillCircle(at: particle.pos, radius: size, data: color.rawValue) + } + return playSound + } + + return false + } + + // Update sparks' position and speed over time. + mutating func updateSparks() { + for i in sparks.indices.reversed() { + sparks[i].update() + // If + if sparks[i].done() { + sparks.remove(at: i) + } + } + } + + // Update particle's position and speed over time. + mutating func updateParticle() -> Bool { + particle.update() + if particle.willExplode() { + exploded = true + explode() + return true + } + + return false + } + + // Generate firework sparks after explosion. + mutating func explode() { + for _ in 0..<100 { + sparks.append(Spark(pos: particle.pos)) + } + } + + func done() -> Bool { + return exploded && sparks.count == 0 + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Fireworks.swift b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Fireworks.swift new file mode 100644 index 0000000..2724192 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Fireworks.swift @@ -0,0 +1,94 @@ +import SwiftIO +import MadBoard +import ST7789 +import MadGraphics + +// Use lock to protect data from simultaneous access by multiple threads. +let i2sLock = Mutex() +// Whether the speaker will play sound. +var playSound = false + +@main +public struct Fireworks { + public static func main() { + // Initialize the SPI pin and the digital pins for the LCD. + let bl = DigitalOut(Id.D2) + let rst = DigitalOut(Id.D12) + let dc = DigitalOut(Id.D13) + let cs = DigitalOut(Id.D5) + let spi = SPI(Id.SPI0, speed: 30_000_000) + + // Initialize the LCD using the pins above. Rotate the screen to keep the original at the upper left. + let screen = ST7789(spi: spi, cs: cs, dc: dc, rst: rst, bl: bl, rotation: .angle90) + var screenBuffer = [UInt16](repeating: 0, count: screen.width * screen.width) + var frameBuffer = [UInt32](repeating: 0, count: screen.width * screen.width) + + var colorIndex = 0 + let colors: [Color] = [ + .pink, .red, .lime, .blue, .cyan, + .purple, .magenta, .orange, .yellow + ] + + let layer = Layer(at: Point.zero, anchorPoint: UnitPoint.zero, width: screen.width, height: screen.height) + + + let font = Font(path: "/lfs/Resources/Fonts/Roboto-Regular.ttf", pointSize: 10, dpi: 220) + let text1 = TextLayer(at: Point(x: layer.bounds.size.halfWidth, y: 40), anchorPoint: UnitPoint.center, string: "Happy", font: font, foregroundColor: Color.red) + let text2 = TextLayer(at: Point(x: layer.bounds.size.halfWidth, y: 80), anchorPoint: UnitPoint.center, string: "Christmas", font: font, foregroundColor: Color.red) + + layer.append(text1) + layer.append(text2) + + var fireworks: [Firework] = [] + var exploded = false + + createThread( + name: "play_sound", + priority: 3, + stackSize: 1024 * 64, + soundThread + ) + + sleep(ms: 10) + + while true { + if Int.random(in: 0..<100) < 10 { + fireworks.append(Firework(color: colors[colorIndex], maxWidth: layer.bounds.width)) + // Update firwork's color. + colorIndex += 1 + if colorIndex == colors.count { + colorIndex = 0 + } + } + + var i = 0 + while i < fireworks.count { + if fireworks[i].update(layer) { + exploded = true + } + + // If a all sparks of a firework disppear, remove the firework. + if fireworks[i].done() { + fireworks.remove(at: i) + } else { + i += 1 + } + } + + // If any firework has exploded, update the global variable. + if exploded { + i2sLock.lock() + playSound = true + i2sLock.unlock() + + exploded = false + } + + layer.render(into: &frameBuffer, output: &screenBuffer, transform: Color.getRGB565LE) { dirty, data in + screen.writeBitmap(x: dirty.x, y: dirty.y, width: dirty.width, height: dirty.height, data: data) + } + + sleep(ms: 10) + } + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Particle.swift b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Particle.swift new file mode 100644 index 0000000..6aa613c --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Particle.swift @@ -0,0 +1,29 @@ +import MadGraphics + +// The firework before explosion. +struct Particle { + var pos: Point + var velocity: (x: Float, y: Float) + var acceleration: (x: Float, y: Float) + + // Create a particle with a random velocity and acceleration. + init(pos: Point) { + self.pos = pos + velocity = (0, Float.random(in: (-14.0)...(-10.0))) + acceleration = (0, Float.random(in: 0.3..<0.4)) + } + + // Update the particle's position and velocity over time. + mutating func update() { + pos.x += Int(velocity.x) + pos.y += Int(velocity.y) + + velocity.x += acceleration.x + velocity.y += acceleration.y + } + + // Whether the particle reaches its maximum height. + func willExplode() -> Bool { + return velocity.y > 0 + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/SoundThread.swift b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/SoundThread.swift new file mode 100644 index 0000000..69ff853 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/SoundThread.swift @@ -0,0 +1,51 @@ +import SwiftIO +import MadBoard + +func soundThread(_ a: UnsafeMutableRawPointer?, _ b: UnsafeMutableRawPointer?, _ c: UnsafeMutableRawPointer?) -> () { + let speaker = I2S(Id.I2S0, rate: 44_100) + + // Read sound data from file. + let sound = readSoundData(from: "/lfs/Resources/Sounds/boom.wav") + var startPlay = false + + while true { + sleep(ms: 100) + + // Check the global variable to see if the speaker need to play sound. + i2sLock.lock() + if playSound { + startPlay = true + } + i2sLock.unlock() + + if startPlay { + speaker.write(sound) + startPlay = false + + // Update the global variable. + i2sLock.lock() + playSound = false + i2sLock.unlock() + } + } + + func readSoundData(from path: String) -> [UInt8] { + let headerSize = 0x2C + var buffer = [UInt8]() + + do { + let file = try FileDescriptor.open(path) + try file.seek(offset: 0, from: FileDescriptor.SeekOrigin.end) + let size = try file.tell() - headerSize + + buffer = [UInt8](repeating: 0, count: size) + try file.read(fromAbsoluteOffest: headerSize, into: &buffer, count: size) + try file.close() + } catch { + print("File \(path) handle error: \(error)") + return [] + } + + return buffer + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Spark.swift b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Spark.swift new file mode 100644 index 0000000..9a76ea3 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/Fireworks/Sources/Spark.swift @@ -0,0 +1,42 @@ +import MadGraphics + +// The firework after explosion. +struct Spark { + var pos: Point + var velocity: (x: Float, y: Float) + var acceleration: (x: Float, y: Float) + // How long the spark shows on the screen. + var lifespan: UInt8 = 255 + + // Create a particle with a random velocity and acceleration. + // Its initial position is the maximum height of the firework particle. + init(pos: Point) { + self.pos = pos + + // The speed of the spark at a random direction. + velocity.x = Float(Array(-100..<100).shuffled().randomElement()!) / 50 + velocity.y = Float(Array(-100..<100).shuffled().randomElement()!) / 50 + velocity.x *= Float.random(in: 1...4) + velocity.y *= Float.random(in: 1...4) + + acceleration = (0, Float.random(in: 0.3..<0.4)) + } + + // Update the particle's position and velocity over time. + mutating func update() { + velocity.x *= 0.8 + velocity.y *= 0.8 + lifespan -= 5 + + pos.x += Int(velocity.x) + pos.y += Int(velocity.y) + + velocity.x += acceleration.x + velocity.y += acceleration.y + } + + // Whether the spark will disappear. + func done() -> Bool { + return lifespan <= 0 + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/.gitignore b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.mmp b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.mmp new file mode 100644 index 0000000..8af5322 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.mmp @@ -0,0 +1,28 @@ +# This is a MadMachine project file in TOML format +# This file contains parameters that cannot be managed by SwiftPM +# Editing this file will alter the behavior of the build/download process +# Project files within dependent libraries will be IGNORED + +# Specify the board name below +# Supported boards are listed as follows +# "SwiftIOBoard" +# "SwiftIOMicro" +board = "SwiftIOMicro" + +# Specify the target triple below +# Supported architectures are listed as follows +# "thumbv7em-unknown-none-eabi" +# "thumbv7em-unknown-none-eabihf" +# "armv7em-none-none-eabi" +triple = "armv7em-none-none-eabi" + +# Enable or disable hardware floating-point support below +# If your code involves significant floating-point calculations, please set it to 'true' +hard-float = true + +# Enable or disable float register below +# If your code involves significant floating-point calculations, please set it to 'true' +float-abi = false + +# Reserved for future use +version = 1 \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.swift b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.swift new file mode 100644 index 0000000..6d7f734 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "HilbertCurve", + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(url: "https://github.com/madmachineio/SwiftIO.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadBoards.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadDrivers.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/CFreeType", from: "2.13.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "HilbertCurve", + dependencies: [ + "SwiftIO", + "MadBoards", + // Use specific library name rather than "MadDrivers" would speed up the build procedure. + .product(name: "ST7789", package: "MadDrivers"), + "CFreeType", + ]), + ] +) diff --git a/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/Hilbert.swift b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/Hilbert.swift new file mode 100644 index 0000000..ba3d481 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/Hilbert.swift @@ -0,0 +1,71 @@ +import MadGraphics + +struct Hilbert { + // The order of the Hilbert curve. + let order: Int + // The points of the Hilbert curve. + var points = [Point]() + + let size: Int + let total: Int + + // The four corners of a unit square. + let unitSquarePoints = [Point(0, 0), Point(0, 1), Point(1, 1), Point(1, 0)] + + // Generate a Hilbert curve with a specified order. + init(order: Int) { + self.order = order + + // Total number of points in the curve. + size = Int(Float.pow(2, Float(order))) + total = size * size + for i in 0.. Point { + var i = i + // One of the four corners of the unit square, which serves as the initial point. + var point = unitSquarePoints[i % 4] + + // Update the point iteratively. + for j in 1.. Float + +private extension Float { + @_transparent + static func pow(_ x: Float, _ y: Float) -> Float { + guard x >= 0 else { return .nan } + if x == 0 && y == 0 { return .nan } + return powf(x, y) + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/HilbertCurve.swift b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/HilbertCurve.swift new file mode 100644 index 0000000..803135b --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/HilbertCurve/Sources/HilbertCurve/HilbertCurve.swift @@ -0,0 +1,112 @@ +import SwiftIO +import MadBoard +import ST7789 +import MadGraphics + +@main +public struct HilbertCurve { + public static func main() { + // Initialize the SPI pin and the digital pins for the LCD. + let bl = DigitalOut(Id.D2) + let rst = DigitalOut(Id.D12) + let dc = DigitalOut(Id.D13) + let cs = DigitalOut(Id.D5) + let spi = SPI(Id.SPI0, speed: 30_000_000) + + // Initialize the LCD using the pins above. Rotate the screen to keep the original at the upper left. + let screen = ST7789(spi: spi, cs: cs, dc: dc, rst: rst, bl: bl, rotation: .angle90) + + let width = 240 + let height = 240 + + var screenBuffer = [UInt16](repeating: 0, count: width * height) + + // layer used to draw the Hilbert curve. + let layer = Layer(at: Point.zero, anchorPoint: UnitPoint.zero, width: width, height: height) + var frameBuffer = [UInt32](repeating: 0, count: width * height) + + var colorIndex = 0 + let colors: [Color] = [ + .red, .orange, .yellow, .lime, .blue, + Color(UInt32(0x4B0082)), Color(UInt32(0x9400D3)) + ] + + let minOrder = 1 + let maxOrder = 6 + var order = minOrder + var increaseOrder = true + + var hilbert = Hilbert(order: order) + // Scale and position each point to fit the layer. + var length: Int { width / hilbert.size } + + var pointIndex = 1 + + drawBorder() + + while true { + if pointIndex == hilbert.total { + // Generate a new Hilbert curve. + order = increaseOrder ? order + 1 : order - 1 + + if order == maxOrder { + increaseOrder = false + } else if order == minOrder { + increaseOrder = true + } + + hilbert = Hilbert(order: order) + // Clear the canvas. + layer.draw() { canvas in + canvas.fill(Color.black.rawValue) + } + drawBorder() + + colorIndex = 0 + pointIndex = 1 + + sleep(ms: 500) + } else { + // Draw a single line each time. + drawLine(pointIndex) + + colorIndex = (pointIndex / 4) % colors.count + pointIndex += 1 + + sleep(ms: 2) + } + + layer.render(into: &frameBuffer, output: &screenBuffer, transform: Color.getRGB565LE) { dirty, data in + screen.writeBitmap(x: dirty.x, y: dirty.y, width: dirty.width, height: dirty.height, data: data) + } + } + + // Connect the given point with its preceding point on the curve. + func drawLine(_ index: Int) { + let x1 = hilbert.points[index - 1].x * length + length / 2 + let y1 = hilbert.points[index - 1].y * length + length / 2 + let x2 = hilbert.points[index].x * length + length / 2 + let y2 = hilbert.points[index].y * length + length / 2 + + layer.draw() { canvas in + canvas.drawLine(from: Point(x1, y1), to: Point(x2, y2), data: colors[colorIndex].rawValue) + } + } + + // Outline the canvas with a border. + func drawBorder() { + layer.draw() { canvas in + canvas.drawLine(from: Point(0, 0), to: Point(width - 1, 0), data: Color.silver.rawValue) + } + layer.draw() { canvas in + canvas.drawLine(from: Point(0, height - 1), to: Point(width - 1, height - 1), data: Color.silver.rawValue) + } + layer.draw() { canvas in + canvas.drawLine(from: Point(0, 0), to: Point(0, height - 1), data: Color.silver.rawValue) + } + layer.draw() { canvas in + canvas.drawLine(from: Point(width - 1, 0), to: Point(width - 1, height - 1), data: Color.silver.rawValue) + } + } + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/.gitignore b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.mmp b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.mmp new file mode 100644 index 0000000..8af5322 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.mmp @@ -0,0 +1,28 @@ +# This is a MadMachine project file in TOML format +# This file contains parameters that cannot be managed by SwiftPM +# Editing this file will alter the behavior of the build/download process +# Project files within dependent libraries will be IGNORED + +# Specify the board name below +# Supported boards are listed as follows +# "SwiftIOBoard" +# "SwiftIOMicro" +board = "SwiftIOMicro" + +# Specify the target triple below +# Supported architectures are listed as follows +# "thumbv7em-unknown-none-eabi" +# "thumbv7em-unknown-none-eabihf" +# "armv7em-none-none-eabi" +triple = "armv7em-none-none-eabi" + +# Enable or disable hardware floating-point support below +# If your code involves significant floating-point calculations, please set it to 'true' +hard-float = true + +# Enable or disable float register below +# If your code involves significant floating-point calculations, please set it to 'true' +float-abi = false + +# Reserved for future use +version = 1 \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.swift b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.swift new file mode 100644 index 0000000..acf4109 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Package.swift @@ -0,0 +1,29 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "MazeGame", + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(url: "https://github.com/madmachineio/SwiftIO.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadBoards.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadDrivers.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/CFreeType", from: "2.13.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "MazeGame", + dependencies: [ + "SwiftIO", + "MadBoards", + // Use specific library name rather than "MadDrivers" would speed up the build procedure. + .product(name: "ST7789", package: "MadDrivers"), + .product(name: "LIS3DH", package: "MadDrivers"), + "CFreeType", + ]), + ] +) diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Resources/Fonts/Roboto-Regular.ttf b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Resources/Fonts/Roboto-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ddf4bfacb396e97546364ccfeeb9c31dfaea4c25 GIT binary patch literal 168260 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

S&jh1n&JeeMOkU4{=4@cYr6k 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≤FHXCuU9Qce=@vmZ{%9^5??OaVQJ8!4u8-w;yt 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 Bool { + return ball.x1 / width == maze.column - 1 && ball.y1 / width == maze.row - 1 + } + + // Update the ball's position based on the acceleration. + func update(_ acceleration: (x: Float, y: Float, z: Float)) { + guard !finished() else { + finishGame() + return + } + + let lastBallPos = Point(ball.x1, ball.y1) + + // Move to the left. + if acceleration.x > 0.25 { + ball.x1 -= speed + + let gridXmin = max(ball.x1 / width, 0) + let gridXmax = min(ball.x2 / width, maze.column - 1) + let gridYmin = max(ball.y1 / width, 0) + let gridYmax = min(ball.y2 / width, maze.row - 1) + + // Check if the ball collides with any walls. + // If it does, reposition it close to the wall. + for y in gridYmin...gridYmax { + for x in gridXmin...gridXmax { + let result = checkGridWalls(ballPos: Point(ball.x1, ball.y1), gridPos: Point(x, y)) + + if result.top || result.bottom || result.right { + ball.x1 = (x + 1) * width + 1 + } + + if result.left { + ball.x1 = x * width + 1 + } + } + } + } + + // Move to the right + if acceleration.x < -0.25 { + ball.x1 += speed + + let gridXmin = max(ball.x1 / width, 0) + let gridXmax = min(ball.x2 / width, maze.column - 1) + let gridYmin = max(ball.y1 / width, 0) + let gridYmax = min(ball.y2 / width, maze.row - 1) + + for y in gridYmin...gridYmax { + for x in gridXmin...gridXmax { + let result = checkGridWalls(ballPos: Point(ball.x1, ball.y1), gridPos: Point(x, y)) + + if result.top || result.bottom || result.left { + ball.x1 = x * width - ball.size - 1 + } + + if result.right { + ball.x1 = (x + 1) * width - ball.size - 1 + } + } + } + } + + // Move downwards. + if acceleration.y > 0.25 { + ball.y1 += speed + + let gridXmin = max(ball.x1 / width, 0) + let gridXmax = min(ball.x2 / width, maze.column - 1) + let gridYmin = max(ball.y1 / width, 0) + let gridYmax = min(ball.y2 / width, maze.row - 1) + + for y in gridYmin...gridYmax { + for x in gridXmin...gridXmax { + let result = checkGridWalls(ballPos: Point(ball.x1, ball.y1), gridPos: Point(x, y)) + + if result.bottom { + ball.y1 = (y + 1) * width - 1 - ball.size + } + + if result.top || result.right || result.left { + ball.y1 = y * width - 1 - ball.size + } + } + } + } + + // Move upwards. + if acceleration.y < -0.25 { + ball.y1 -= speed + + let gridXmin = max(ball.x1 / width, 0) + let gridXmax = min(ball.x2 / width, maze.column - 1) + let gridYmin = max(ball.y1 / width, 0) + let gridYmax = min(ball.y2 / width, maze.row - 1) + + for y in gridYmin...gridYmax { + for x in gridXmin...gridXmax { + let result = checkGridWalls(ballPos: Point(ball.x1, ball.y1), gridPos: Point(x, y)) + + if result.top { + ball.y1 = y * width + 1 + } + + if result.bottom || result.right || result.left { + ball.y1 = (y + 1) * width + 1 + } + } + } + } + + // If the ball's position has changed, update the display. + if lastBallPos.x != ball.x1 || lastBallPos.y != ball.y1 { + layer.draw() { canvas in + canvas.fillRectangle(at: lastBallPos, width: ball.size, height: ball.size, data: maze.bgColor.rawValue) + } + layer.draw() { canvas in + canvas.fillRectangle(at: Point(ball.x1, ball.y1), width: ball.size, height: ball.size, data: ballColor.rawValue) + } + layer.render(into: &frameBuffer, output: &screenBuffer, transform: Color.getRGB565LE) { dirty, data in + screen.writeBitmap(x: dirty.x, y: dirty.y, width: dirty.width, height: dirty.height, data: data) + } + } + } + + // Check if the ball collides with a wall. + func checkCollision(ballPos: Point, wallP1: Point, wallP2: Point) -> Bool { + return ball.x1 <= wallP2.x && ball.x2 >= wallP1.x && ball.y1 <= wallP2.y && ball.y2 >= wallP1.y + } + + // Check if the ball collides with any wall of a cell in the maze grid. + func checkGridWalls(ballPos: Point, gridPos: Point) -> Wall { + let walls = maze.grids[maze.getIndex(gridPos)].walls + var result = Wall(top: false, right: false, bottom: false, left: false) + + if walls.top && + checkCollision(ballPos: ballPos, wallP1: Point(gridPos.x * width, gridPos.y * width), wallP2: Point((gridPos.x + 1) * width, gridPos.y * width)) { + result.top = true + } + + if walls.right && + checkCollision(ballPos: ballPos, wallP1: Point((gridPos.x + 1) * width, gridPos.y * width), wallP2: Point((gridPos.x + 1) * width, (gridPos.y + 1) * width)) { + result.right = true + + } + + if walls.bottom && + checkCollision(ballPos: ballPos, wallP1: Point(gridPos.x * width, (gridPos.y + 1) * width), wallP2: Point((gridPos.x + 1) * width, (gridPos.y + 1) * width)) { + result.bottom = true + } + + if walls.left && + checkCollision(ballPos: ballPos, wallP1: Point(gridPos.x * width, gridPos.y * width), wallP2: Point(gridPos.x * width, (gridPos.y + 1) * width)) { + result.left = true + } + + return result + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Grid.swift b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Grid.swift new file mode 100644 index 0000000..9ccabe5 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Grid.swift @@ -0,0 +1,13 @@ +struct Wall { + var top: Bool + var right: Bool + var bottom: Bool + var left: Bool +} + +struct Grid { + let x: Int + let y: Int + var walls = Wall(top: true, right: true, bottom: true, left: true) + var visited = false +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Maze.swift b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Maze.swift new file mode 100644 index 0000000..815134b --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/Maze.swift @@ -0,0 +1,186 @@ +import MadGraphics +import ST7789 +import SwiftIO + +// Generate a random maze. +struct Maze { + let width: Int + let column: Int + let row: Int + + let bgColor = Color(UInt32(0x3F52E3)) + let wallColor = Color.white + let canvasSize: Size + + var current = Point(0, 0) + var grids: [Grid] = [] + var stack: [Point] = [] + + init(width: Int, layer: Layer) { + self.canvasSize = layer.bounds.size + self.width = width + column = canvasSize.width / width + row = canvasSize.height / width + reset(layer) + } + + // Reset all walls to their default state. + mutating func reset(_ layer: Layer) { + grids = [] + stack = [] + current = Point(0, 0) + + // Initially, all walls are present. + for y in 0.. Bool { + return grids.filter { !$0.visited }.count == 0 + } + + // Calculate the index of a cell in the array. + func getIndex(_ point: Point) -> Int { + return point.x + point.y * column + } + + // Remove the wall between two cells. + mutating func removeWall(_ current: Point, _ next: Point) { + let x = current.x - next.x + + if x == 1 { + grids[getIndex(current)].walls.left = false + grids[getIndex(next)].walls.right = false + } else if x == -1 { + grids[getIndex(current)].walls.right = false + grids[getIndex(next)].walls.left = false + } + + let y = current.y - next.y + + if y == 1 { + grids[getIndex(current)].walls.top = false + grids[getIndex(next)].walls.bottom = false + } else if y == -1 { + grids[getIndex(current)].walls.bottom = false + grids[getIndex(next)].walls.top = false + } + } + + // Find nearby cells that haven't been visited yet, and select one randomly. + func getNext() -> Point? { + var neighbors: [Point] = [] + + if current.y > 0 { + let top = Point(current.x, current.y - 1) + + if !grids[getIndex(top)].visited { + neighbors.append(top) + } + } + if current.x < column - 1 { + let right = Point(current.x + 1, current.y) + + if !grids[getIndex(right)].visited { + neighbors.append(right) + } + } + + if current.y < row - 1 { + let bottom = Point(current.x, current.y + 1) + if !grids[getIndex(bottom)].visited { + neighbors.append(bottom) + } + } + + if current.x > 0 { + let left = Point(current.x - 1, current.y) + if !grids[getIndex(left)].visited { + neighbors.append(left) + } + } + + return neighbors.randomElement() + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/MazeGame.swift b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/MazeGame.swift new file mode 100644 index 0000000..2b2300d --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/MazeGame/Sources/MazeGame/MazeGame.swift @@ -0,0 +1,53 @@ +import SwiftIO +import MadBoard +import ST7789 +import MadGraphics +import LIS3DH + +@main +public struct MazeGame { + public static func main() { + // Initialize the SPI pin and the digital pins for the LCD. + let bl = DigitalOut(Id.D2) + let rst = DigitalOut(Id.D12) + let dc = DigitalOut(Id.D13) + let cs = DigitalOut(Id.D5) + let spi = SPI(Id.SPI0, speed: 30_000_000) + + // Initialize the LCD using the pins above. Rotate the screen to keep the original at the upper left. + let screen = ST7789(spi: spi, cs: cs, dc: dc, rst: rst, bl: bl, rotation: .angle90) + + let i2c = I2C(Id.I2C0) + let accelerometer = LIS3DH(i2c) + + let layer = Layer(at: Point.zero, anchorPoint: UnitPoint.zero, width: screen.width, height: screen.height) + let mazeGame = Game(screen: screen, layer: layer) + + let resetButton = DigitalIn(Id.D1) + + var reset = false + resetButton.setInterrupt(.falling) { + reset = true + } + + var sleepTime: Float = 0 + let maxTime: Float = 20 + let minTime: Float = 5 + + while true { + // If the reset button is pressed, restart the game. + if reset { + mazeGame.reset() + reset = false + } + + // Update ball's position based on the acceleration. + let acceleration = accelerometer.readXYZ() + mazeGame.update(acceleration) + + // Map the acceleration into a sleep time in order to control the speed of the ball. + sleepTime = min(max(abs(acceleration.x), abs(acceleration.y)), 1) * (minTime - maxTime) + maxTime + sleep(ms: Int(sleepTime)) + } + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/.gitignore b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.mmp b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.mmp new file mode 100644 index 0000000..8af5322 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.mmp @@ -0,0 +1,28 @@ +# This is a MadMachine project file in TOML format +# This file contains parameters that cannot be managed by SwiftPM +# Editing this file will alter the behavior of the build/download process +# Project files within dependent libraries will be IGNORED + +# Specify the board name below +# Supported boards are listed as follows +# "SwiftIOBoard" +# "SwiftIOMicro" +board = "SwiftIOMicro" + +# Specify the target triple below +# Supported architectures are listed as follows +# "thumbv7em-unknown-none-eabi" +# "thumbv7em-unknown-none-eabihf" +# "armv7em-none-none-eabi" +triple = "armv7em-none-none-eabi" + +# Enable or disable hardware floating-point support below +# If your code involves significant floating-point calculations, please set it to 'true' +hard-float = true + +# Enable or disable float register below +# If your code involves significant floating-point calculations, please set it to 'true' +float-abi = false + +# Reserved for future use +version = 1 \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.swift b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.swift new file mode 100644 index 0000000..619d9c7 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Package.swift @@ -0,0 +1,29 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "SandSimulation", + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(url: "https://github.com/madmachineio/SwiftIO.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadBoards.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadDrivers.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/CFreeType", from: "2.13.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "SandSimulation", + dependencies: [ + "SwiftIO", + "MadBoards", + // Use specific library name rather than "MadDrivers" would speed up the build procedure. + .product(name: "ST7789", package: "MadDrivers"), + .product(name: "LIS3DH", package: "MadDrivers"), + "CFreeType", + ]), + ] +) diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/Sand.swift b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/Sand.swift new file mode 100644 index 0000000..cc97551 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/Sand.swift @@ -0,0 +1,180 @@ +import MadGraphics + +struct Particle { + var x: Int + var y: Int + var xSpeed: Float + var ySpeed: Float + let color: Color +} + +struct Sand { + let count = 1000 + let size = 3 + var particles: [Particle] = [] + + let colors: [Color] = [.red, .orange, .yellow, .lime, .cyan, .blue, .purple, .magenta] + var grid: [Bool] + + let column: Int + let row: Int + + init(layer: Layer, _ acceleration: (x: Float, y: Float, z: Float)) { + column = layer.bounds.width / size + row = layer.bounds.height / size + grid = [Bool](repeating: false, count: column * row) + + // Draw the particles on the top of the layer. + var index = 0 + + while index < count { + let x = index % column + let y = index / column + + particles.append(Particle(x: x, y: y, xSpeed: 0, ySpeed: 0, color: colors.randomElement()!)) + layer.draw() { canvas in + canvas.fillRectangle(at: Point(x * size, y * size), width: size, height: size, data: particles[y * column + x].color.rawValue) + } + grid[y * column + x] = true + + index += 1 + } + } + + mutating func update(layer: Layer, _ acceleration: (x: Float, y: Float, z: Float)) { + updateSpeed(acceleration) + + for i in particles.indices { + var xSpeed = particles[i].xSpeed + var ySpeed = particles[i].ySpeed + + let lastX = particles[i].x + let lastY = particles[i].y + + var newX = particles[i].x + Int(xSpeed) + var newY = particles[i].y + Int(ySpeed) + + // If the particle collides with a wall, bounce it. + if newX > column - 1 { + newX = column - 1 + xSpeed /= -2 + } else if newX < 0 { + newX = 0 + xSpeed /= -2 + } + + if newY > row - 1 { + newY = row - 1 + ySpeed /= -2 + } else if newY < 0 { + newY = 0 + ySpeed /= -2 + } + + let lastIndex = lastY * column + lastX + let newIndex = newY * column + newX + + // The particle moves and collide with other particle. + if lastIndex != newIndex && grid[newIndex] { + if abs(lastIndex - newIndex) == 1 { + // The particle moves horizontally. + xSpeed /= -2 + newX = lastX + } else if abs(lastIndex - newIndex) == column { + // The particle moves vertically. + ySpeed /= -2 + newY = lastY + } else { + // If the particle moves diagonally, find an available position adjacent to the particle to place it. + if abs(xSpeed) >= abs(ySpeed) { + // The speed on the x-axis is greater than the speed on the y-axis. + if !grid[lastY * column + newX] { + // Suppress movement along the y-axis. + newY = lastY + ySpeed /= -2 + } else if !grid[newY * column + lastX] { + // Suppress movement along the x-axis. + newX = lastX + xSpeed /= -2 + } else { + // Remain still. + newX = lastX + newY = lastY + xSpeed /= -2 + ySpeed /= -2 + } + } else { + // The speed on the x-axis is less than the speed on the y-axis. + if !grid[newY * column + lastX] { + // Suppress movement along the x-axis. + newX = lastX + xSpeed /= -2 + } else if !grid[lastY * column + newX] { + // Suppress movement along the y-axis. + newY = lastY + ySpeed /= -2 + } else { + // Remain still. + newX = lastX + newY = lastY + xSpeed /= -2 + ySpeed /= -2 + } + } + } + } + + particles[i].x = newX + particles[i].y = newY + particles[i].xSpeed = xSpeed + particles[i].ySpeed = ySpeed + grid[lastY * column + lastX] = false + grid[newY * column + newX] = true + layer.draw() { canvas in + canvas.fillRectangle(at: Point(lastX * size, lastY * size), width: size, height: size, data: Color.black.rawValue) + } + layer.draw() { canvas in + canvas.fillRectangle(at: Point(newX * size, newY * size), width: size, height: size, data: particles[i].color.rawValue) + } + } + } + + mutating func updateSpeed(_ acceleration: (x: Float, y: Float, z: Float)) { + var xAccel = -acceleration.x + var yAccel = acceleration.y + var zAccel = min(abs(acceleration.z), 1) + + if abs(xAccel) <= 0.1 && abs(yAccel) <= 0.1 { + // Prevent the particles from moving when the board is lying on the table not completely level. + for i in particles.indices { + particles[i].xSpeed = 0 + particles[i].ySpeed = 0 + } + } else { + // Acceleration on z-axis simulates the effect of gravitational on the motion of the particles. + // When z-axis acceleration is close to 1, sensor is flat, and gravity barely affects xy movement. + // Lower z-axis acceleration means more gravity influence on xy motion. + zAccel = 0.5 - zAccel / 2 + xAccel -= zAccel + yAccel -= zAccel + + //A slight random motion is added to each particle according to the z-axis acceleration. + // Their speed stays below 1 to avoid overlap. + // However, the rapid iteration speed creates the illusion of smooth particle movement. + for i in particles.indices { + var xSpeed = particles[i].xSpeed + xAccel + Float.random(in: 0...zAccel) + if abs(xSpeed) > 1 { + xSpeed /= abs(xSpeed) + } + + var ySpeed = particles[i].ySpeed + yAccel + Float.random(in: 0...zAccel) + if abs(ySpeed) > 1 { + ySpeed /= abs(ySpeed) + } + + particles[i].xSpeed = xSpeed + particles[i].ySpeed = ySpeed + } + } + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/SandSimulation.swift b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/SandSimulation.swift new file mode 100644 index 0000000..42c2e61 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SandSimulation/Sources/SandSimulation/SandSimulation.swift @@ -0,0 +1,43 @@ +import SwiftIO +import MadBoard +import ST7789 +import MadGraphics +import LIS3DH + +@main +public struct SandSimulation { + public static func main() { + // Initialize the SPI pin and the digital pins for the LCD. + let bl = DigitalOut(Id.D2) + let rst = DigitalOut(Id.D12) + let dc = DigitalOut(Id.D13) + let cs = DigitalOut(Id.D5) + let spi = SPI(Id.SPI0, speed: 30_000_000) + + // Initialize the LCD using the pins above. Rotate the screen to keep the original at the upper left. + let screen = ST7789(spi: spi, cs: cs, dc: dc, rst: rst, bl: bl, rotation: .angle90) + var screenBuffer = [UInt16](repeating: 0, count: screen.width * screen.width) + var frameBuffer = [UInt32](repeating: 0, count: screen.width * screen.width) + + let layer = Layer(at: Point.zero, anchorPoint: UnitPoint.zero, width: screen.width, height: screen.height) + + // Initialize the accelerometer. + let i2c = I2C(Id.I2C0) + let accelerometer = LIS3DH(i2c) + + // Draw the sand particle. + var sand = Sand(layer: layer, accelerometer.readXYZ()) + layer.render(into: &frameBuffer, output: &screenBuffer, transform: Color.getRGB565LE) { dirty, data in + screen.writeBitmap(x: dirty.x, y: dirty.y, width: dirty.width, height: dirty.height, data: data) + } + + // Update sand particle positions based on movement. + while true { + sand.update(layer: layer, accelerometer.readXYZ()) + layer.render(into: &frameBuffer, output: &screenBuffer, transform: Color.getRGB565LE) { dirty, data in + screen.writeBitmap(x: dirty.x, y: dirty.y, width: dirty.width, height: dirty.height, data: data) + } + sleep(ms: 1) + } + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/.gitignore b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.mmp b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.mmp new file mode 100644 index 0000000..8af5322 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.mmp @@ -0,0 +1,28 @@ +# This is a MadMachine project file in TOML format +# This file contains parameters that cannot be managed by SwiftPM +# Editing this file will alter the behavior of the build/download process +# Project files within dependent libraries will be IGNORED + +# Specify the board name below +# Supported boards are listed as follows +# "SwiftIOBoard" +# "SwiftIOMicro" +board = "SwiftIOMicro" + +# Specify the target triple below +# Supported architectures are listed as follows +# "thumbv7em-unknown-none-eabi" +# "thumbv7em-unknown-none-eabihf" +# "armv7em-none-none-eabi" +triple = "armv7em-none-none-eabi" + +# Enable or disable hardware floating-point support below +# If your code involves significant floating-point calculations, please set it to 'true' +hard-float = true + +# Enable or disable float register below +# If your code involves significant floating-point calculations, please set it to 'true' +float-abi = false + +# Reserved for future use +version = 1 \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.swift b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.swift new file mode 100644 index 0000000..4be7625 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "SpinningCube", + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(url: "https://github.com/madmachineio/SwiftIO.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadBoards.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadDrivers.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/CFreeType", from: "2.13.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "SpinningCube", + dependencies: [ + "SwiftIO", + "MadBoards", + // Use specific library name rather than "MadDrivers" would speed up the build procedure. + .product(name: "ST7789", package: "MadDrivers"), + "CFreeType", + ]), + ] +) diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/SpinningCube.swift b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/SpinningCube.swift new file mode 100644 index 0000000..a594d0d --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/SpinningCube.swift @@ -0,0 +1,99 @@ +import SwiftIO +import MadBoard +import ST7789 +import MadGraphics + + +@main +public struct SpinningCube { + public static func main() { + // Initialize the SPI pin and the digital pins for the LCD. + let bl = DigitalOut(Id.D2) + let rst = DigitalOut(Id.D12) + let dc = DigitalOut(Id.D13) + let cs = DigitalOut(Id.D5) + let spi = SPI(Id.SPI0, speed: 30_000_000) + + // Initialize the LCD using the pins above. Rotate the screen to keep the original at the upper left. + let screen = ST7789(spi: spi, cs: cs, dc: dc, rst: rst, bl: bl, rotation: .angle90) + var screenBuffer = [UInt16](repeating: 0, count: screen.width * screen.height) + + let layer = Layer(at: Point.zero, anchorPoint: UnitPoint.zero, width: screen.width, height: screen.height) + var frameBuffer = [UInt32](repeating: 0, count: screen.width * screen.height) + + let colors: [Color] = [.red, .orange, .yellow, .lime, .blue, Color(0x4B0082), .purple] + + // The vertices of the cube in 3D space. + let points: [[Float]] = [ + [-0.5, -0.5, -0.5], + [0.5, -0.5, -0.5], + [0.5, 0.5, -0.5], + [-0.5, 0.5, -0.5], + + [-0.5, -0.5, 0.5], + [0.5, -0.5, 0.5], + [0.5, 0.5, 0.5], + [-0.5, 0.5, 0.5] + ] + + // The coordinates on 2D plan of cube vertices. + var projectedPoints = [Point](repeating: Point.zero, count: points.count) + var lastProjectedPoints = projectedPoints + + var angle: Float = 0 + let width: Float = 200 + let offset = Point(x: 120, y: 120) + + while true { + // Rotate vertices of the cube and project them onto a 2D plane using perspective projection. + for i in points.indices { + let rotated = rotate([[points[i][0]], [points[i][1]], [points[i][2]]], angle: angle) + let projected = project(distance: 2, point: rotated) + projectedPoints[i] = Point(x: Int(projected[0][0] * width), y: Int(projected[1][0] * width)) + } + + // Draw the cube in its current position. + for i in 0..<4 { + layer.draw() { canvas in + canvas.drawLine(from: lastProjectedPoints[i] + offset, + to: lastProjectedPoints[(i + 1) % 4] + offset, + data: colors[(3 * i) % colors.count].rawValue) + + canvas.drawLine(from: lastProjectedPoints[i + 4] + offset, + to: lastProjectedPoints[(i + 1) % 4 + 4] + offset, + data: colors[(3 * i + 1) % colors.count].rawValue) + + canvas.drawLine(from: lastProjectedPoints[i] + offset, + to: lastProjectedPoints[i + 4] + offset, + data: colors[(3 * i + 2) % colors.count].rawValue) + } + } + + layer.render(into: &frameBuffer, output: &screenBuffer, transform: Color.getRGB565LE) { dirty, data in + screen.writeBitmap(x: dirty.x, y: dirty.y, width: dirty.width, height: dirty.height, data: data) + } + + sleep(ms: 10) + + // Clear the cube from its last position + for i in 0..<4 { + layer.draw() { canvas in + canvas.drawLine(from: lastProjectedPoints[i] + offset, + to: lastProjectedPoints[(i + 1) % 4] + offset, + data: Color.black.rawValue) + + canvas.drawLine(from: lastProjectedPoints[i + 4] + offset, + to: lastProjectedPoints[(i + 1) % 4 + 4] + offset, + data: Color.black.rawValue) + + canvas.drawLine(from: lastProjectedPoints[i] + offset, + to: lastProjectedPoints[i + 4] + offset, + data: Color.black.rawValue) + } + } + + lastProjectedPoints = projectedPoints + angle += 0.02 + } + } +} \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/Uitls.swift b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/Uitls.swift new file mode 100644 index 0000000..c0f4de1 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/SpinningCube/Sources/SpinningCube/Uitls.swift @@ -0,0 +1,68 @@ +// Calculate the projection of a point onto a 2D plane using perspective projection. +// `distance` refers to the distance from the viewer. +func project(distance: Float, point: [[Float]]) -> [[Float]] { + let z = 1 / (distance - point[2][0]) + let projectionMatrix: [[Float]] = [ + [z, 0, 0], + [0, z, 0] + ] + + return matrixMultiply(projectionMatrix, point) +} + +// Rotate a point around the x, y, and z axes by a given angle. +func rotate(_ point: [[Float]], angle: Float) -> [[Float]] { + var rotated = matrixMultiply(rotateX(angle), point) + rotated = matrixMultiply(rotateY(angle), rotated) + rotated = matrixMultiply(rotateZ(angle), rotated) + return rotated +} + +// Rotate around x-axis. +func rotateX(_ angle: Float) -> [[Float]] { + return [[1, 0, 0], + [0, cosf(angle), -sinf(angle)], + [0, sinf(angle), cosf(angle)]] +} + +// Rotate around y-axis. +func rotateY(_ angle: Float) -> [[Float]] { + return [[cosf(angle), 0, sinf(angle)], + [0, 1, 0], + [-sinf(angle), 0, cosf(angle)]] +} + +// Rotate around z-axis. +func rotateZ(_ angle: Float) -> [[Float]] { + return [[cosf(angle), -sinf(angle), 0], + [sinf(angle), cosf(angle), 0], + [0, 0, 1]] +} + +func matrixMultiply(_ matrix1: [[Float]], _ matrix2: [[Float]]) -> [[Float]] { + // Check if matrices are compatible for multiplication + guard matrix1[0].count == matrix2.count else { + return [[]] + } + + // Initialize result matrix with zeros + var result = Array(repeating: Array(repeating: Float(0), count: matrix2[0].count), count: matrix1.count) + + // Perform matrix multiplication + for i in 0.. Float + +@_extern(c, "sinf") +func sinf(_: Float) -> Float \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/WordClock/.gitignore b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.mmp b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.mmp new file mode 100644 index 0000000..8af5322 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.mmp @@ -0,0 +1,28 @@ +# This is a MadMachine project file in TOML format +# This file contains parameters that cannot be managed by SwiftPM +# Editing this file will alter the behavior of the build/download process +# Project files within dependent libraries will be IGNORED + +# Specify the board name below +# Supported boards are listed as follows +# "SwiftIOBoard" +# "SwiftIOMicro" +board = "SwiftIOMicro" + +# Specify the target triple below +# Supported architectures are listed as follows +# "thumbv7em-unknown-none-eabi" +# "thumbv7em-unknown-none-eabihf" +# "armv7em-none-none-eabi" +triple = "armv7em-none-none-eabi" + +# Enable or disable hardware floating-point support below +# If your code involves significant floating-point calculations, please set it to 'true' +hard-float = true + +# Enable or disable float register below +# If your code involves significant floating-point calculations, please set it to 'true' +float-abi = false + +# Reserved for future use +version = 1 \ No newline at end of file diff --git a/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.swift b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.swift new file mode 100644 index 0000000..f7d8e42 --- /dev/null +++ b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Package.swift @@ -0,0 +1,29 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "WordClock", + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(url: "https://github.com/madmachineio/SwiftIO.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadBoards.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/MadDrivers.git", branch: "develop"), + .package(url: "https://github.com/madmachineio/CFreeType", from: "2.13.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "WordClock", + dependencies: [ + "SwiftIO", + "MadBoards", + // Use specific library name rather than "MadDrivers" would speed up the build procedure. + .product(name: "ST7789", package: "MadDrivers"), + .product(name: "PCF8563", package: "MadDrivers"), + "CFreeType", + ]), + ] +) diff --git a/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Resources/Fonts/Graduate-Regular.ttf b/Examples/SwiftIOPlayground/13MoreProjects/WordClock/Resources/Fonts/Graduate-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..29061d9df631fb0eac31b8026fcd50d0de764781 GIT binary patch literal 21288 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 [[Mask]] { + var characterMasks = [[Mask]](repeating: [Mask](), count: Words.row) + + let font = Font(path: path, pointSize: pointSize, dpi: dpi) + for y in 0.. (minute: [Minute], prep: Preposition?, hour: Hour) { + static func getWords(hourNumber: Int, minuteNumber: Int) -> Words { + var minuteWord: [MinuteWord] = [] + var hourWord = HourWord(rawValue: hourNumber < 12 ? hourNumber : hourNumber % 12)! + var prepWord: PrepositionWord? = nil + + switch minuteNumber { + case 5..<10: + minuteWord.append(.five) + prepWord = .past + case 10..<15: + minuteWord.append(.ten) + prepWord = .past + case 15..<20: + minuteWord.append(.quarter) + prepWord = .past + case 20..<25: + minuteWord.append(.twenty) + prepWord = .past + case 25..<30: + minuteWord.append(.twenty) + minuteWord.append(.five) + prepWord = .past + case 30..<35: + minuteWord.append(.half) + prepWord = .past + case 35..<40: + //minuteWord.append(contentsOf: [.twenty, .five]) + minuteWord.append(.twenty) + minuteWord.append(.five) + prepWord = .to + hourWord = HourWord(rawValue: hourNumber + 1 < 12 ? (hourNumber + 1) : (hourNumber + 1) % 12)! + case 40..<45: + minuteWord.append(.twenty) + prepWord = .to + hourWord = HourWord(rawValue: hourNumber + 1 < 12 ? (hourNumber + 1) : (hourNumber + 1) % 12)! + case 45..<50: + minuteWord.append(.quarter) + prepWord = .to + hourWord = HourWord(rawValue: hourNumber + 1 < 12 ? (hourNumber + 1) : (hourNumber + 1) % 12)! + case 50..<55: + minuteWord.append(.ten) + prepWord = .to + hourWord = HourWord(rawValue: hourNumber + 1 < 12 ? (hourNumber + 1) : (hourNumber + 1) % 12)! + case 55..<60: + minuteWord.append(.five) + prepWord = .to + hourWord = HourWord(rawValue: hourNumber + 1 < 12 ? (hourNumber + 1) : (hourNumber + 1) % 12)! + default: break + } + + return Words(hourWord: hourWord, prepWord: prepWord, minuteWord: minuteWord) + } +} \ No newline at end of file