polishing for assembly instructions
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
This file contains assembly instructions for building the robots and soldering the electronics.
|
This file contains assembly instructions for building the robots and soldering the electronics.
|
||||||
|
|
||||||
|
Here is how the finished robot will look like:
|
||||||
|
![finished robot](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/finished_robot_2.jpeg)
|
||||||
|
|
||||||
## Components
|
## Components
|
||||||
|
|
||||||
The robot consists of the following components:
|
The robot consists of the following components:
|
||||||
|
@ -42,15 +45,15 @@ Assemble the chassis according to the instructions provided by adafruit ([see he
|
||||||
| Description | Image|
|
| Description | Image|
|
||||||
|--------------|---------------|
|
|--------------|---------------|
|
||||||
| Solder on two rows of 8 male pin headers to the D1 mini | ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/d1_mini_pins.jpg) |
|
| Solder on two rows of 8 male pin headers to the D1 mini | ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/d1_mini_pins.jpg) |
|
||||||
| Solder on two rows of 8 female pin headers to the motor shield . | ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_1.JPG) ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_2.JPG)|
|
| Solder on two rows of 8 female pin headers to the motor shield . | ![Motor shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_1.JPG) ![Motor shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_2.JPG)|
|
||||||
| Also solder a single row of bent pins to the motor shield. Make sure they are soldered on the right way around.| ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_3.JPG)|
|
| Also solder a single row of bent pins to the motor shield. Make sure they are soldered on the right way around.| ![Motor shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_3.JPG)|
|
||||||
| Solder a jumper to the motor shield to connect the RTS and 3V pin. This will become important later on. Also solder the I2C bridge. | ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_jumper.jpeg)|
|
| Solder a jumper to the motor shield to connect the RTS and 3V pin. This will become important later on. Also solder the I2C bridge. | ![Motor shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_jumper.jpeg)|
|
||||||
| Solder on two rows of 8 female pin headers with long pins to the battery shield | ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_1.JPG) ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_2.JPG) |
|
| Solder on two rows of 8 female pin headers with long pins to the battery shield | ![Battery shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_1.JPG) ![Battery shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_2.JPG) |
|
||||||
| Cut off the tips of the long pins such that the battery shield nicely fits into the motor shield | ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_3.JPG) ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_4.JPG) ![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_5.JPG) |
|
| Cut off the tips of the long pins such that the battery shield nicely fits into the motor shield | ![Mind the gap](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_3.JPG) ![Cut off tips](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_4.JPG) ![Nice fit](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_shield_5.JPG) |
|
||||||
|
|
||||||
#### Connecting battery shield and motor shield for motor power supply
|
#### Connecting battery shield and motor shield for motor power supply
|
||||||
In the next step we connect the battery connector pins of the battery shield to the + and - pins of the motor shield. In addition we will add a connector to the motor shield where we can plug in the battery. Here is a schematic:
|
In the next step we connect the battery connector pins of the battery shield to the + and - pins of the motor shield. In addition we will add a connector to the motor shield where we can plug in the battery. Here is a schematic:
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_bb.jpg)
|
![Motor shield and battery shield sketch](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_bb.jpg)
|
||||||
*Note: I added a new connector instead of using the one already on the battery shield because the plug of my battery wouldn't fit in the on on the shield*
|
*Note: I added a new connector instead of using the one already on the battery shield because the plug of my battery wouldn't fit in the on on the shield*
|
||||||
|
|
||||||
- First, solder two wires to the + and - pins of the battery shield and isolate them with heat shrink:
|
- First, solder two wires to the + and - pins of the battery shield and isolate them with heat shrink:
|
||||||
|
@ -58,28 +61,28 @@ In the next step we connect the battery connector pins of the battery shield to
|
||||||
| Description | Image|
|
| Description | Image|
|
||||||
|--------------|---------------|
|
|--------------|---------------|
|
||||||
|Cut two small pieces of wire (about 4 cm), remove the isolation on both ends and cover them with a bit of solder | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_batter_stack_2.jpeg)|
|
|Cut two small pieces of wire (about 4 cm), remove the isolation on both ends and cover them with a bit of solder | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_batter_stack_2.jpeg)|
|
||||||
|Solder the first wire to the + pin of the battery shield | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_3.jpeg) |
|
|Solder the first wire to the + pin of the battery shield | ![First wire soldered](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_3.jpeg) |
|
||||||
| Solder the second wire to the - pin | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_4.jpeg) |
|
| Solder the second wire to the - pin | ![Second wire soldered](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_4.jpeg) |
|
||||||
| Cover both wires with small pieces of heat shrink tube | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_5.jpeg) |
|
| Cover both wires with small pieces of heat shrink tube | ![Heat shrink](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_5.jpeg) |
|
||||||
| Heat the shrink tube with a lighter | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_6.jpeg) |
|
| Heat the shrink tube with a lighter | ![I see fire](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_6.jpeg) |
|
||||||
| This is how the battery shield should look like with the two wires | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_6.5.jpeg) |
|
| This is how the battery shield should look like with the two wires | ![Two wires with heat shrink](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_6.5.jpeg) |
|
||||||
|
|
||||||
- Next, we create a connector for the female JST 2-Pin connector for plugin in the battery:
|
- Next, we create a connector for the female JST 2-Pin connector for plugin in the battery:
|
||||||
|
|
||||||
| Description | Image|
|
| Description | Image|
|
||||||
|--------------|---------------|
|
|--------------|---------------|
|
||||||
| Cut two small pieces of wire (about 3 cm), remove the isolation on both ends and cover them with a bit of solder | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_7.jpeg) |
|
| Cut two small pieces of wire (about 3 cm), remove the isolation on both ends and cover them with a bit of solder | ![DIY JST connector](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_7.jpeg) |
|
||||||
| Solder the first wire to the JST connector |![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_8.jpeg) |
|
| Solder the first wire to the JST connector |![First wire soldered](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_8.jpeg) |
|
||||||
| Solder the second wire to the JST connector | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_9.jpeg) |
|
| Solder the second wire to the JST connector | ![Second wire soldered](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_9.jpeg) |
|
||||||
| Cover both wires with heat shrink | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_10.jpeg) |
|
| Cover both wires with heat shrink | ![Heat shrink cover](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_10.jpeg) |
|
||||||
| Solder the wires to the motor shield, paying attention to the polarity *(make sure it matches the polarity of your batteries!)* | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_11.jpeg) |
|
| Solder the wires to the motor shield, paying attention to the polarity *(make sure it matches the polarity of your batteries!)* | ![Battery connector to motor shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_11.jpeg) |
|
||||||
|
|
||||||
- Now, stack the battery shield on top of the motor shield and solder the battery connector:
|
- Now, stack the battery shield on top of the motor shield and solder the battery connector:
|
||||||
|
|
||||||
| Description | Image|
|
| Description | Image|
|
||||||
|---|---|
|
|---|---|
|
||||||
| Connect the + pin of the battery shield to the + pin of the motor shield. Be sure to isolate the connection with heat shrink. Then repeat the same for the - pins. | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_15.JPG)|
|
| Connect the + pin of the battery shield to the + pin of the motor shield. Be sure to isolate the connection with heat shrink. Then repeat the same for the - pins. | ![Motor shield and battery shield connection](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_15.JPG)|
|
||||||
| This is how it should look like in the end. | ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_12.jpeg) ![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_14.jpeg) |
|
| This is how it should look like in the end. | ![Side view](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_12.jpeg) ![Top view](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_14.jpeg) |
|
||||||
|
|
||||||
### Next steps
|
### Next steps
|
||||||
|
|
||||||
|
|
|
@ -78,12 +78,12 @@ Use some jumper cables to connect the motor shield and the D1 mini in the follow
|
||||||
|3V | 3V|
|
|3V | 3V|
|
||||||
|GND | GND |
|
|GND | GND |
|
||||||
|
|
||||||
![D1 mini](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_firmware_update_bb.jpg)
|
![Firmware fix connections sketch](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_firmware_update_bb.jpg)
|
||||||
![Motor shield jumper](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_fix_4.JPG)
|
![Firmware fix connections image](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_fix_4.JPG)
|
||||||
|
|
||||||
### Flash the new firmware on the STM32:
|
### Flash the new firmware on the STM32:
|
||||||
- Connect the D1 mini to your PC using a micro USB cable.
|
- Connect the D1 mini to your PC using a micro USB cable.
|
||||||
![Motor shield jumper](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_fix_1.JPG)
|
![Micro USB connection](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_shield_fix_1.JPG)
|
||||||
- Check if you can communicate with the STM32:
|
- Check if you can communicate with the STM32:
|
||||||
```
|
```
|
||||||
$ stm32flash /dev/ttyUSB0
|
$ stm32flash /dev/ttyUSB0
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
This file explains how to setup the software for the robots. It assumes that you already assembled your robot according to the instructions in [1_ASSEMBLY.md](https://imaginaerraum.de/git/Telos4/RoboRally/src/branch/master/docs/1_ASSEMBLY.md) and that you updated the firmware of the motor shield as described in [2_MOTOR_SHIELD_FIX.md](https://imaginaerraum.de/git/Telos4/RoboRally/src/branch/master/docs/2_MOTOR_SHIELD_FIX.md).
|
This file explains how to setup the software for the robots. It assumes that you already assembled your robot according to the instructions in [1_ASSEMBLY.md](https://imaginaerraum.de/git/Telos4/RoboRally/src/branch/master/docs/1_ASSEMBLY.md) and that you updated the firmware of the motor shield as described in [2_MOTOR_SHIELD_FIX.md](https://imaginaerraum.de/git/Telos4/RoboRally/src/branch/master/docs/2_MOTOR_SHIELD_FIX.md).
|
||||||
|
|
||||||
Before we start, stack the D1 mini ontop of the battery shield and connect it to your computer using a micro USB cable:
|
Before we start, stack the D1 mini ontop of the battery shield and connect it to your computer using a micro USB cable:
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_13.jpeg)
|
![Electronics assembly done](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/motor_battery_stack_13.jpeg)
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/usb_connection.jpeg)
|
![Micro USB connection](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/usb_connection.jpeg)
|
||||||
|
|
||||||
### Flash Micropython to the Wemos D1 mini
|
### Flash Micropython to the Wemos D1 mini
|
||||||
The first step is to flash the micropython firmware to the D1 mini.
|
The first step is to flash the micropython firmware to the D1 mini.
|
||||||
|
@ -52,9 +52,9 @@ First we enable WebREPL on the microcontroller which allows us to easily upload
|
||||||
|
|
||||||
Join the same WiFi network with your PC (either the access point or the local network) and connect to the D1 mini via the [online WebREPL](http://micropython.org/webrepl):
|
Join the same WiFi network with your PC (either the access point or the local network) and connect to the D1 mini via the [online WebREPL](http://micropython.org/webrepl):
|
||||||
Enter IP from above and click connect. Login with the password you set for the WebREPL.
|
Enter IP from above and click connect. Login with the password you set for the WebREPL.
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl0.jpg)
|
![WebREPL connection](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl0.jpg)
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl1.jpg)
|
![WebREPL login](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl1.jpg)
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl2.jpg)
|
![WebREPL prompt](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl2.jpg)
|
||||||
|
|
||||||
### Making settings permanent
|
### Making settings permanent
|
||||||
In order to avoid having to set up the WebREPL and the WiFi everytime we reboot the robot we can upload a file called boot.py which runs each time the robot restarts:
|
In order to avoid having to set up the WebREPL and the WiFi everytime we reboot the robot we can upload a file called boot.py which runs each time the robot restarts:
|
||||||
|
@ -71,7 +71,7 @@ dns = '192.168.1.1'
|
||||||
# TODO end edit
|
# TODO end edit
|
||||||
```
|
```
|
||||||
- Upload boot.py via WebREPL
|
- Upload boot.py via WebREPL
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl3.jpg)
|
![WebREPL file upload](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/webrepl3.jpg)
|
||||||
- Now the robot will automatically connect to WiFi network you set and start a WebREPL server after reboot.
|
- Now the robot will automatically connect to WiFi network you set and start a WebREPL server after reboot.
|
||||||
*Note: If the WiFi network cannot be found the microcontroller will instead open an access point.*
|
*Note: If the WiFi network cannot be found the microcontroller will instead open an access point.*
|
||||||
|
|
||||||
|
@ -88,11 +88,11 @@ You can upload these files the same way you did before with the WebREPL. After u
|
||||||
Now it's time to test if everything is working fine.
|
Now it's time to test if everything is working fine.
|
||||||
|
|
||||||
- Disconnect the USB cable from the microcontroller and connect the battery to the battery connector:
|
- Disconnect the USB cable from the microcontroller and connect the battery to the battery connector:
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_connection.jpeg)
|
![Battery connection](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_connection.jpeg)
|
||||||
|
|
||||||
- Next, connect the two motors of the robot to the motor shield according to the following sketch:
|
- Next, connect the two motors of the robot to the motor shield according to the following sketch:
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/robot_bb.jpg)
|
![Connect motors to motor shield](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/robot_bb.jpg)
|
||||||
![Battery Shield Wires](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_connection_overview.jpeg)
|
![Motor and battery connection overview](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/battery_connection_overview.jpeg)
|
||||||
|
|
||||||
- Test if you can reach the robot using
|
- Test if you can reach the robot using
|
||||||
```
|
```
|
||||||
|
@ -120,12 +120,12 @@ Have a look at the `keyboard_controller.py` script to see how this works in pyth
|
||||||
Since the mounting plates of the robot are made of metal it is a good idea to put some isolation around the electronics. You can use some isolation tape to cover the exposed connections:
|
Since the mounting plates of the robot are made of metal it is a good idea to put some isolation around the electronics. You can use some isolation tape to cover the exposed connections:
|
||||||
![Isolation tape](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/isolation_tape_2.JPG)
|
![Isolation tape](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/isolation_tape_2.JPG)
|
||||||
You can also add some velcro tape to the electronics, the battery and the robot to easily attach and remove the microcontroller from the robot.
|
You can also add some velcro tape to the electronics, the battery and the robot to easily attach and remove the microcontroller from the robot.
|
||||||
![Velcro tape](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/velcro_tape_2.jpeg)
|
![Velcro tape electronics and battery](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/velcro_tape_2.jpeg)
|
||||||
![Velcro tape](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/velcro_tape_3.jpeg)
|
![Velcro tape robot](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/velcro_tape_3.jpeg)
|
||||||
|
|
||||||
### Charging the battery
|
### Charging the battery
|
||||||
In order to charge the battery of the robot just plug a micro USB cable into the USB port of the battery shield.
|
In order to charge the battery of the robot just plug a micro USB cable into the USB port of the battery shield.
|
||||||
![Velcro tape](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/charging.jpeg)
|
![Battery charging](https://imaginaerraum.de/git/Telos4/RoboRally/raw/branch/master/docs/images/charging.jpeg)
|
||||||
|
|
||||||
### Next steps
|
### Next steps
|
||||||
The next step is to setup the position detection using ROS. For this see the 4_ROS_SETUP.txt
|
The next step is to setup the position detection using ROS. For this see the 4_ROS_SETUP.txt
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 137 KiB |