2.9. ARM-2D based GUI simulation project
good news! The Arm2D module and simulation project of pikascript are preliminarily sorted out! pikaScript, ARM-2D, rt-thread work together, unlock new poses for python to play Arm2D! No hardware is needed, and it can be simulated directly, which is very convenient.
It is also very simple to deploy and run this simulation project on your own computer, just follow the steps below~
2.9.2. Get the simulation project
First enter the code repository of PikaScript
https://github.com/pikastech/pikascript (requires scientific Internet access)
Then click a Star
If you can’t get in, go in here
https://gitee.com/Lyon1998/pikascript (also available in China)
Then also click a Star
Well, after you click on Star, we will start the next step.
We scroll down from the homepage of the code repository, see Get PikaScript, and then click PikaPackage.exe to download the package manager for pikascript.
Next, put PikaPackage.exe on the disk where you want to download PikaScript. In order to save your C drive, you can put PikaPackage.exe on the D drive, which can be any location on the D drive.
Double-click PikaPackage.exe, and the package manager will automatically download the latest PikaScript to the D:/tmp/pikascript folder for you. (If it is placed on the C drive, it will be downloaded to C:/tmp/pikascript)
The download uses domestic resources, does not require scientific Internet access, and the speed should be very good.
After downloading, you can delete this pikaPackage.exe.
If everything goes well, you can find the downloaded pikascript code repository in the /tmp/pikascript folder.
We enter the bsp folder and copy a copy of simulation-rtt-qemu-arm2d out.
So far, the project is ready to be ok.
2.9.3. Install the development environment
After you have the project, you also need to install the development environment. There are only two things that need to be installed. One is rt-thread studio, which is used as an IDE. rt-thread studio integrates qemu, which is very convenient for simulating mcu and gui. The other is the latest arm gcc toolchain.
2.9.4. Pull the module and precompile
We enter the simulation-rtt-qemu-arm2d/packages/pikascrpt directory, which is the pikascrit file.
For the convenience of version management, pikascript uses request.txt to manage the version of the kernel and modules, so there is no source code of pikascript in this folder, only a requestment.txt file. If you are familiar with pip, you will find this file and the version used by pip The description file is exactly the same.
We double-click to run pikaPackage.exe in this folder, and the kernel and modules of pikascript are pulled down.
This is what it looks like after pulling it down.
Finally, we run rust-msc-latest-win10.exe to precompile, and it’s OK.
We open RT-Thread Studio and click Import
Then select the simulation-rtt-qemu-arm2d folder
Select the project, then click the hammer to compile, and then click the bug to enter the simulation
A QEMU box will pop up, then click Run.
If the operation is successful, you can see a small blue square on the white background. So far the deployment has been successful.
2.9.6. Modify the python code and try
The source code of python is in simulation-rtt-qemu-arm2d/packages/pikascript/main.py, you can open it and see~
The following is the content of main.py, create a new box object, and then set the color and position, you can try to change the color to ‘white’ or change the coordinates to see, you can also create another screen.elems.b2 try .
import PikaStdLib import Arm2D mem = PikaStdLib.MemChecker() win = Arm2D.Window() win.init() win.background.setColor('white') win.elems.b1 = Arm2D.Box() win.elems.b1.init() win.elems.b1.setColor('blue') win.elems.b1.move(100, 100) i = 0 x0 = 100 y0 = 100 sizeX0 = 50 sizeY0 = 50 alpha0 = 180 isIncrace = 1 loopTimes = 0 print('hello pikaScript') print('mem used max:') mem.max() print('mem used now:') mem.now() while True: win.elems.b1.move(x0 + i * 2, y0 + i * 1) win.elems.b1.setAlpha(alpha0 - i * 1) win.elems.b1.setSize(sizeX0 + i * 2, sizeY0 + i * 1) win.update() if isIncrace > 0: i = i + 1 if i > 160: isIncrace = 0 if isIncrace < 1: i = i - 1 if i < 0: isIncrace = 1 loopTimes = loopTimes + 1
Remember to precompile after each modification to convert python to .c file in the project
Then compile again, enter the simulation, and you can see the effect. This time I changed the square to red.
This is the Arm-2D warehouse~ Students who haven’t starred remember to add a star~
Thanks to liuduanfei for the rtt-Arm2d-qemu simulation project~ Here is the github homepage of liuduanfei