MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Simulator",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "12": {
                "pageid": 12,
                "ns": 0,
                "title": "RemoteControl",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "= Historic Systems =\n\nThe Elcano system can run autonomously or by remote control. There have been four systems built for manual or remote control.\n\n== Joystick ==\nThe first system used an APEM 9000 joystick. The part has five wires: 5V power, ground, and three analog lines. The joystick has two axes. The vertical axis is used for throttle (up) and brakes (down). The third analog signal is the voltage of the joystick when centered. The joystick was used in 2014 and is described in http://www.elcanoproject.org/tutorial/lab2.php.  The Low-level code may still contain inputs and processing for an analog joystick.\n\n== Bluetooth ==\nIn 2015 students built a control system using a Bluetooth receiver to the Arduino. The transmitter was a TI Sitara running Android. \n\n== Amplitude Shift Keying (ASK) RC Controller ==\n\nElcano project used a custom-built radio control system with two arduinos, one in the remote control that collects manual inputs and transmits them with a 433MHz ASK radio transmitter, and one on the Elcano vehicle which receives the information sent over radio and converts it into an ElcanoSerial drive packet which is transmitted to C2 over ElcanoSerial. This information is used to manually drive the trike, begin an autonomous routine, or activate the emergency brake and stop the trike. The RH_ASK system was limited to 40 feet (12 meters) in practice and was never use to drive the vehicle.\n\n= Current System =\n\n== CAN Bus and SAMD21 ==\n\nThe RC transceiver board can be built five different ways:\n\n* Transmitter using Bluetooth\n\n* Receiver using Bluetooth\n\n* Transmitter using radio (RFM69HCW)\n\n* Receiver using radio (RFM69HCW)\n\n* Receiver using 5 or 6 channel radio control (RC)\n\nWhen configured as a receiver it is mounted on the vehicle and communicates drive commands over CAN bus. \n\nCAN is documented on [[Communication]]\n\nAs a transmitter, it is packaged in a remote box with joysticks and switches. Functions and pins are explained in TranceiverPins_1_6.docx on https://github.com/elcano/Transceiver/tree/master/Transceiver%20Documents.\n\n\nThe processor is an Arduino ARM SAMD21 mini dev board, which requires some special steps to install. These are detailed on https://learn.sparkfun.com/tutorials/samd21-minidev-breakout-hookup-guide/setting-up-arduino \n\nReset requires two quick taps of the reset button. After a reset, the blue LED on the board will pulse slowly for a few seconds. If the board is unresponsive, try resetting this way first.'''\n\n== Setting up SAMD21 ==\n\nFollow the instructions on https://learn.sparkfun.com/tutorials/samd21-minidev-breakout-hookup-guide/setting-up-arduino\n\nTools > Board > Boards Manager \u2026 Then find an entry for Arduino SAMD Boards (32-bits ARM Cortex-M0+). Select it, and install.\n\nNext, open your Arduino preferences (File > Preferences). Then find the Additional Board Manager URLs text box, and paste the below link in:\n\nhttps://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json\n\nThen hit \"OK\", and travel back to the Board Manager menu. Find a new entry for SparkFun SAMD Boards.\nOnce the board is installed, you should see new entries in your Tools > Board list. Select SparkFun SAMD21 Mini Breakout.\n\nNext step is to find the needed files.\n\n#include <RH_RF69.h>        // External; documented at \nhttp://www.airspayce.com/mikem/arduino/RadioHead/classRH__RF69.html\n\nDownload the file from http://www.airspayce.com/mikem/arduino/RadioHead/RadioHead-1.97.zip\n\nFollow https://www.arduino.cc/en/Guide/Libraries to add the library. From Sketch > Include Libraries select Add Zip Library and navigate to the right file. You should then see RadioHead in the list of included libraries.\n\n#include <mcp_can_dfs.h>    // <---- Import from another library: Seed-Studio/CAN-BUS-Shield\n\n#include <mcp_can.h>        //       (install Library from Arduino, search for \"Can-Bus-Shield\")\n\nDownload zip from\n\nhttps://github.com/Seeed-Studio/CAN_BUS_Shield\n\nFrom Sketch > Include Libraries select Add Zip Library and navigate to the right file. You should see CAN_BUS-Shield-master in the Include Libraries.\n\n== 5- and 6-channel RC Controller ==\n\nThe system has been run from either a Hitec Optics 5 2.4 five channel unit or a Spektrum DX6i six channel controller. The Low level circuit board has a3x7 pin socket in the corner to accommodate the receiver. Each channel needs to be on its own interrupt. Since the Arduino Mega has only 6 interrupts and the Arduino Micro has 5, this can be a problem, especially since we want another one or two interrupts to handle the speed. Low level code may still have software to handle these interrupts. The RC controllers send a 1.0 to 2.0 ms pulse on each channel at 30 Hz. Some controllers send these signals in turn. We have built a six-input OR circuit to combine all signals, which would allow processing with just one interrupt. Unfortunately, there is no good way to predict whether the RC unit will send pulses in turn or all at once. In fact, the behavior seems to be determined by the receive unit, not the transmitter. Thus a separate interrupt is required for each channel used. Interrupt processing consists of interrupting on a rising edge, then switching to a falling edge interrupt and logging the pulse width. A width of 1.0 ms typically means one extreme, 1.5 ms is centered, and 2.0 ms is the other extreme., This system can get confusing about which channel is assigned which behavior, and the two controllers assign their channels differently. To go beyond the Arduino interrupt limit, the V2 Low Level board has all RC inputs assigned to Analog Input 8 to 13 of the Arduino. These pins are used digitally. Pins A8-A15 on Arduino Mega, all go to the same port. Thus we can use the pin change interrupt, which is activated whenever any bit of the 8-bit port changes.\n\n\n== RFM69HCW and SAMD21 ==\n\nThe RFM69HCW (915MHz) transceiver offers several benefits over the 433MHz ASK radios:\n* greater range with higher transmit power\n* much higher raw bitrate\n* half-duplex communication and received signal strength indicator (RSSI)\n* compatibility with higher-performance 3.3V ARM boards like SAMD21\n\nUsing the RF69 RadioHead library, the RC system has expanded capabilities from the RH ASK implementation. Data is stored on both ends as a C struct, which is broken down and transmitted as bytes by the RF69 library. After successful transmission, the data is accessible directly from the struct and variables larger than one byte need no additional processing before use. After successfully receiving a packet from the remote control, the receiver sends a packet back with an RSSI value. The remote control uses this reply message to indicate radio communication is active. \n\n=== Transmitted data to vehicle ===\n* unsigned 12-bit throttle (0-4095)\n* unsigned 12-bit turn \n* boolean emergency stop\n* boolean autonomous mode\n* signed RSSI of last received packet (from vehicle)\n\n=== Received data from vehicle ===\n* signed RSSI of last received packet (from remote)\n\n\n\n\nNEXT . [[SensorsPage]]"
                    }
                ]
            },
            "7": {
                "pageid": 7,
                "ns": 0,
                "title": "SensorsPage",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "\n\n= Sensors  =\n\n{| \n|-\n| '''Sensor''' || '''Purpose''' \n|-\n| [[Odometer]] || Vehicle speed detection \n|-\n| [[SteeringSensor]] || Turn angle prediction and compass overlay for accurate directional sensing \n|-\n| [[Sonar]] || Obstacle detection\n|-\n| [[ScanseSweep]] || Obstacle detection \n|-\n| [[Camera]] || Cone detection and lane detection; perhaps obstacle detection in the future \n|-\n| [[Hall sensors]] || Higher resolution vehicle speed \n|-\n| [[HighLevelSWv3 | GPS]] || Semi-accurate position data \n|-\n| [[HighLevelSWv3 | Compass/IMU]] || Semi-accurate vehicle headings \n|-\n\n|}"
                    }
                ]
            }
        }
    }
}