Ardumower future PCB: Unterschied zwischen den Versionen
Aus www.wiki.ardumower.de
(→Software) |
(→Architecture) |
||
(35 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=Abstract= | =Abstract= | ||
− | + | Not really a future PCB, but some ideas about adding an additional CPU to the existing Ardumower HW/SW architecture... | |
=Architecture= | =Architecture= | ||
− | * existing MCU (Mega) board for the controlling (actuators), sensing (sensors) | + | * existing MCU (Mega) board for the controlling (actuators), sensing (sensors) - basically, current Ardumower PCB |
− | * new CPU board for high-level control (brain) | + | * new CPU board for high-level control (brain), examples: Rasperry Zero |
* commuincation interface and protocol (based on RS232 interface and session protocol) | * commuincation interface and protocol (based on RS232 interface and session protocol) | ||
− | * | + | * simple-to-use (plug&play) IDE (including compiler & drivers) for the new CPU board |
* Java interface? | * Java interface? | ||
+ | |||
+ | |||
+ | <gallery> | ||
+ | File: raspberry.jpg | CPU board examples | ||
+ | File: Cpu_mcu.png | Bus architecture | ||
+ | File: Imu_motor_control.png | Motor control loop | ||
+ | File: Power_system.png | Power system | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | * Main: Connectors for PMU, BMU, MMU, AMU, UMU, SMU, GY-521 | ||
+ | * PMU (Perimeter Management Unit): Mega 328 | ||
+ | * BMU (Bumper Management Unit): Mega 328, pressure sensor | ||
+ | * MMU (Motor Management Unit): Motor drivers | ||
+ | * AMU (Akku Management Unit) | ||
+ | * UMU (Ultra-Schall Management Unit) | ||
+ | * SMU (Sound Management Unit) | ||
+ | |||
+ | =Commuincation architecture= | ||
+ | * shared serial bus (RS232 RX/TX) for all sensor/actuator devices | ||
+ | * open collector (OC) outputs for signal triggers/interrupts | ||
+ | * TX/RX for communication protocol (session-based) | ||
=CPU hardware support/drivers= | =CPU hardware support/drivers= | ||
− | * For the driver side, ChibiOS could be a very nice start . It's an RTOS with high integration of hardware drivers , FATFS integration, LWIP etc... http://www.chibios.org/dokuwiki/doku.php?id=chibios:matrix | + | * For the driver side, ChibiOS could be a very nice start . It's an RTOS with high integration of hardware drivers , FATFS integration, LWIP etc... |
+ | http://www.chibios.org/dokuwiki/doku.php?id=chibios:matrix | ||
+ | http://www.stevebate.net/chibios-rpi/GettingStarted.html | ||
− | =IDE/compiler= | + | =IDE/compiler for CPU= |
− | * emBlocks (integrated compiler for many CPUs including Rasperry PI, STM32, etc.) | + | The IDE and integrated compiler should be plug&play (like Arduino IDE). Some ideas: |
+ | * [http://www.emblocks.org emBlocks] (integrated compiler for many CPUs including Rasperry PI, STM32, etc.) | ||
* chibistudio (modified Eclipse) | * chibistudio (modified Eclipse) | ||
+ | |||
+ | <gallery> | ||
+ | File: Emblocks.png | Generating a new CPU binary image using 'emBlocks' IDE | ||
+ | </gallery> | ||
+ | |||
+ | =Running new code on the CPU= | ||
+ | Running new code on the new CPU should be simple for end-users. Some ideas: | ||
+ | * For debugging purpose, a serial connection (TX/RX) should be available for running new code, debugging | ||
+ | * For end-users, a small binary (SD card) should be available for download | ||
+ | |||
+ | <gallery> | ||
+ | File: Sdcard.jpg | Booting a new CPU binary image from SD card | ||
+ | </gallery> |
Aktuelle Version vom 22. Mai 2016, 11:56 Uhr
Inhaltsverzeichnis
Abstract
Not really a future PCB, but some ideas about adding an additional CPU to the existing Ardumower HW/SW architecture...
Architecture
- existing MCU (Mega) board for the controlling (actuators), sensing (sensors) - basically, current Ardumower PCB
- new CPU board for high-level control (brain), examples: Rasperry Zero
- commuincation interface and protocol (based on RS232 interface and session protocol)
- simple-to-use (plug&play) IDE (including compiler & drivers) for the new CPU board
- Java interface?
- Main: Connectors for PMU, BMU, MMU, AMU, UMU, SMU, GY-521
- PMU (Perimeter Management Unit): Mega 328
- BMU (Bumper Management Unit): Mega 328, pressure sensor
- MMU (Motor Management Unit): Motor drivers
- AMU (Akku Management Unit)
- UMU (Ultra-Schall Management Unit)
- SMU (Sound Management Unit)
Commuincation architecture
- shared serial bus (RS232 RX/TX) for all sensor/actuator devices
- open collector (OC) outputs for signal triggers/interrupts
- TX/RX for communication protocol (session-based)
CPU hardware support/drivers
- For the driver side, ChibiOS could be a very nice start . It's an RTOS with high integration of hardware drivers , FATFS integration, LWIP etc...
http://www.chibios.org/dokuwiki/doku.php?id=chibios:matrix http://www.stevebate.net/chibios-rpi/GettingStarted.html
IDE/compiler for CPU
The IDE and integrated compiler should be plug&play (like Arduino IDE). Some ideas:
- emBlocks (integrated compiler for many CPUs including Rasperry PI, STM32, etc.)
- chibistudio (modified Eclipse)
Running new code on the CPU
Running new code on the new CPU should be simple for end-users. Some ideas:
- For debugging purpose, a serial connection (TX/RX) should be available for running new code, debugging
- For end-users, a small binary (SD card) should be available for download