Electronic component for bicycle, system for controlling bicycle, and controller for bicycle

TWI938544BActive Publication Date: 2026-09-11SRAM LLC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
TW112151053
Authority / Receiving Office
TW · TW
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-01-16
Filing Date
2023-12-27
Publication Date
2026-09-11
Estimated Expiration
2043-12-26

Smart Images

  • Figure TWG2TB001910104_001
    Figure TWG2TB001910104_001
  • Figure TWG2TB001910104_002
    Figure TWG2TB001910104_002
  • Figure TWG2TB001910104_003
    Figure TWG2TB001910104_003
Patent Text Reader

Abstract

This invention discloses an electronic component for a bicycle, comprising a processor configured to receive data from a sensor, determine a first speed and a second speed of the bicycle based on a subset of the received data, and determine an acceleration of the bicycle based on the determined first speed and the determined second speed. The processor is further configured to compare the determined acceleration of the bicycle with a predetermined threshold acceleration, and control the bicycle based on the comparison.
Need to check novelty before this filing date? Find Prior Art

Description

Bicycle Control System Field of the Invention The present disclosure is generally directed to an electric bicycle, and more particularly, to the control of the electric bicycle. Background of the Invention A bicycle control system for an electric bicycle tracks the speed of the electric bicycle. Bicycle speed information is typically provided by a sensor (e.g., reed switch, Hall effect sensor) mounted proximate to a wheel (e.g., rear wheel) of the electric bicycle, which senses a magnet mounted to the wheel. Each time the magnet passes by the sensor, the sensor typically generates a pulse for each revolution of the wheel. The time between sensor pulses can be used to calculate the angular velocity of the wheel (e.g., revolutions per minute (RPM)) of the wheel. The speed of the electric bicycle can be calculated by multiplying the wheel RPM by the wheel circumference, and the calculated speed of the electric bicycle can be used to control the electric bicycle. Summary of the Invention In one example, an electronic component for a bicycle includes a processor configured to receive data from a sensor and determine a first speed and a second speed of the bicycle based on a subset of the received data. The processor is further configured to determine an acceleration of the bicycle based on the determined first speed and the determined second speed of the bicycle, and compare the determined acceleration of the bicycle with a predetermined threshold acceleration. The processor is further configured to control the bicycle based on the comparison. In one example, the processor is further configured to identify a wheel slip of a bicycle wheel of the bicycle when, based on the comparison, the determined acceleration of the bicycle is greater than the predetermined threshold acceleration. In one example, the bicycle is an electric bicycle. In one example, the control of the electric bicycle based on the comparison includes the control of an auxiliary motor of the electric bicycle based on the comparison. In one example, the control of the auxiliary motor of the electric bicycle based on the comparison includes reducing a power of the auxiliary motor for a predetermined period of time when, based on the comparison, the determined acceleration of the electric bicycle is greater than the predetermined threshold acceleration. In one example, the predetermined threshold acceleration is a maximum acceleration of the electric bicycle. In one example, the processor is further configured to identify a wheel lock of a bicycle wheel of the bicycle when, based on the comparison, the determined acceleration of the electric bicycle is less than the predetermined threshold acceleration. In one example, the control of the bicycle based on the comparison includes, when the determined acceleration of the bicycle is less than the predetermined threshold acceleration based on the comparison, revoking the activation of the electronic gearshift of the bicycle within a predetermined time period. In one example, the predetermined threshold acceleration is a minimum acceleration of the bicycle. In one example, the sensor is a bicycle wheel speed sensor and is configured to sense at least one sensed element disposed around a bicycle wheel of the bicycle when at least one of the sensed elements rotates past a proximal region of the sensor. In one example, the determination of the first speed includes identifying a first time point and a second time point from the subset of the received data. The identified first time point and the identified second time point are the times when the bicycle wheel speed sensor senses each of the sensed elements of the at least one sensed element. The second time point is after the first time point. The determination of the first speed further includes determining a first elapsed time based on a difference between the identified second time point and the identified first time point, and determining the first speed based on a size of the bicycle wheel and the determined first elapsed time. The determination of the second speed includes identifying the second time point and a third time point from the subset of the received data. The identified third time point is a time when the bicycle wheel speed sensor senses each of the sensed elements of the at least one sensed element. The third time point is after the second time point. The determination of the second speed further includes determining a second elapsed time based on a difference between the identified third time point and the identified second time point, and determining the second speed based on the size of the bicycle wheel and the determined second elapsed time. In one example, the processor is further configured to determine a third speed of the bicycle based on the subset of the received data. The determination of the third speed of the bicycle includes identifying the third time point and a fourth time point from the subset of the received data. The identified fourth time point is a time when the bicycle wheel speed sensor senses each of the sensed elements of the at least one sensed element. The fourth time point is after the third time point. The determination of the third speed of the bicycle further includes determining a third elapsed time based on a difference between the identified fourth time point and the identified third time point, and determining the third speed based on the size of the bicycle wheel and the determined third elapsed time. The determined acceleration of the bicycle is also based on the determined third speed of the bicycle. In one example, the processor is further configured to determine a first acceleration of the bicycle based on the first speed of the bicycle and the second speed of the bicycle, and determine a second acceleration of the bicycle based on the second speed of the bicycle and the third speed of the bicycle. The determination of the acceleration of the bicycle is based on the determined first acceleration of the bicycle and the determined second acceleration of the bicycle. In one example, the electronic component further includes a memory communicatively coupled to the processor. The memory is configured to store the determined first speed of the bicycle, the determined second speed of the bicycle, and the determined third speed of the bicycle as first samples in a first sample buffer, respectively. The memory is configured to store the determined first acceleration of the bicycle and the determined second acceleration of the bicycle as second samples in a second sample buffer, respectively. In one example, the received data includes a plurality of data points respectively identifying magnetic field pulses received by the sensor at a plurality of time points. The plurality of time points includes the first time point, the second time point, the third time point, the fourth time point, and one or more additional time points. The processor is further configured to determine one or more additional speeds of the bicycle based on the fourth time point and the one or more additional time points, and determine one or more additional accelerations of the bicycle based on the determined third speed of the bicycle and the determined one or more additional speeds of the bicycle. The memory is further configured to store the determined one or more additional speeds of the bicycle as one or more additional first samples in the first sample buffer, and store the determined one or more additional accelerations of the bicycle as one or more additional second samples in the second sample buffer. In one example, the determination of the acceleration of the bicycle includes an average of the second samples and the one or more additional second samples stored in the second sample buffer of the memory. In one example, the first sample buffer is configured to store a first predetermined number of first samples, and the second sample buffer is configured to store a second predetermined number of second samples. In one example, the processor is further configured to receive additional data from the sensor. The received additional data identifies a fifth time point of each respective sensed element of the at least one sensed element sensed by the bicycle wheel speed sensor. The fifth time point is after the fourth time point. The processor is further configured to determine a fourth speed based on the fourth time point and the fifth time point, and determine a third acceleration based on the determined third speed of the bicycle and the determined fourth speed of the bicycle. When the number of the first samples stored in the first sample buffer is the same as the first predetermined number of the first samples such that the first sample buffer is full, the memory is configured to store the determined fourth speed of the bicycle as one of the first samples in the first sample buffer and replace one of the oldest samples among the first samples. When the number of the second samples stored in the second sample buffer is the same as the second predetermined number of the second samples such that the second sample buffer is full, the memory is configured to store the determined third acceleration of the bicycle as one of the second samples in the second sample buffer and replace one of the oldest samples among the second samples. The determination of the acceleration of the bicycle includes an average value of the second samples within a predetermined time period. In one example, a system for controlling a bicycle includes a sensor configured to generate first data. The first data includes a plurality of data points generated at respective time points. The plurality of data points respectively identify receptions of magnetic field pulses at the respective time points. The system also includes: a memory configured to store wheel size data for a wheel of the bicycle; and a processor in communication with the memory and the sensor. The processor is configured to receive the first data from the sensor, determine a first speed and a second speed of the bicycle based on a subset of the received data and the stored wheel size data, and determine an acceleration of the bicycle based on the determined first speed of the bicycle and the determined second speed of the bicycle. The processor is further configured to compare the determined acceleration of the bicycle with a predetermined threshold acceleration and control the bicycle based on the comparison. In one example, a controller for a bicycle includes a processor configured to receive data from a sensor. The received data includes a plurality of data points generated at respective time points. The plurality of data points identify receptions of magnetic field pulses at the respective time points. The processor is further configured to determine a plurality of speeds of the bicycle based on respective subsets of the received data, determine a plurality of accelerations of the bicycle based on the determined plurality of speeds of the bicycle, and determine an average acceleration of the determined plurality of accelerations of the bicycle over a predetermined time period. The processor is further configured to compare the determined average acceleration of the bicycle with a predetermined threshold acceleration and control the bicycle based on the comparison. Detailed Description of the Preferred Embodiment A bicycle (e.g., an electric bicycle) is provided that has an electric pedal assist motor that can be independent of the crank drive chain. The bicycle includes a wheel speed sensor and a crank cadence sensor. The wheel speed sensor and the crank cadence sensor respectively measure the wheel speed and the crank cadence and provide the measured wheel speed and crank cadence to an electric rear derailleur or a controller (e.g., including a processor) of the bicycle. For example, the electric rear derailleur is configured to shift gears of the bicycle (e.g., when performing an automatic shifting method) and / or instruct an electronic bicycle controller to activate motor overdrive based on the measured wheel speed and / or the measured crank cadence. The wheel speed sensor includes, for example, a reed switch or a Hall effect sensor mounted close to the rear wheel of the bicycle. The wheel speed sensor detects a magnet mounted to the rear wheel. Each time the magnet passes the wheel speed sensor, the wheel speed sensor typically generates a pulse for each revolution of the rear wheel. An automatic shifting method performed by an electric bicycle, for example, uses wheel speed sensor data and controls shifting by adjusting a gear index to keep a target cadence within a desired range. Wheel speed sensor data for a slipping wheel reports incorrect speed information to the automatic shifting method, resulting in an undesired shift. For example, the automatic shifting method receives speed information higher than the actual speed of the electric bicycle, causing a higher gear ratio to be selected. In this case, on an electric bicycle with additional motor assistance, the assist motor of the electric bicycle further increases the wheel speed due to the higher gear ratio. This causes even more shift events to occur within the automatic shifting method to reach a higher gear index. This situation may end with a sudden shift effect, resulting in a safety-threatening situation and causing injury to the rider. A locked wheel causes the automatic shifting method to assume a speed of 0 kph, resulting in a shift to the smallest gear ratio. This is not what the rider wants when the wheel is locked; the rider wants the bicycle not to shift when the wheel is locked for a short period of time. The control system of one or more of the embodiments of the present invention includes, for example, a wheel speed sensor configured to determine the speed of the bicycle at a wheel (e.g., the rear wheel) of the bicycle, and a processor in communication with the wheel speed sensor. Bicycle speed information is derived by measuring the time between pulses generated each time a portion of the rotating wheel (e.g., a magnet attached to the rotating wheel) passes the wheel speed sensor. The time between two consecutive pulses is measured, and with knowledge of the number of pulses per wheel rotation and the wheel diameter, the processor can determine the wheel rotation frequency or wheel speed based on the measured time. Each determined wheel rotation frequency or wheel speed is stored as a sample in a sample buffer in the memory of the control system. The processor can determine the wheel acceleration by deriving two consecutive samples (e.g., two consecutive determined wheel speeds) of the sample buffer over time. These acceleration values are stored in another sample buffer. By averaging the acceleration samples over a predetermined number of samples (e.g., corresponding to a predetermined time period), the effect of system inaccuracies can be compensated for by a responsiveness cost. The maximum acceleration threshold value can be defined based on the maximum acceleration achievable by the rider on the electric bicycle. In other words, an acceleration of the bicycle above the maximum acceleration threshold value may be unrealistic. The processor can compare the average value of the acceleration samples with the defined maximum acceleration threshold value, and when, based on this comparison, the average value of the acceleration samples is greater than the maximum acceleration threshold value, the processor can assume that the current wheel acceleration is caused by a slipping wheel. The maximum deceleration threshold value (e.g., a negative acceleration value or minimum acceleration threshold value) can be defined based on the maximum deceleration achievable by the rider on the electric bicycle. In other words, a deceleration of the bicycle above the maximum deceleration threshold value (e.g., an acceleration of the bicycle below the minimum acceleration threshold value) may be unrealistic. For example, the processor can compare the average value of the acceleration samples with the defined minimum acceleration threshold value, and when, based on this comparison, the average value of the acceleration samples is less than the minimum acceleration threshold value, the processor can assume that the current wheel acceleration is caused by a locked wheel. The processor can initiate preventive measures (e.g., by controlling one or more components of the bicycle) when the processor detects a slipping wheel or a locked wheel. The preventive measures can include, for example, withdrawing the activation of the automatic gearshift method for a period of time or reducing the motor power for a period of time. A significant advantage of the disclosed bicycle control is that determining the acceleration of the bicycle based on wheel speed information does not require any additional sensor hardware, since wheel speed measurements using, for example, reed switches or Hall effect sensors are currently provided on state-of-the-art electric bicycles. Thus, the disclosed bicycle control provides low-cost detection of wheel slipping and wheel locking to avoid safety-endangering situations for the rider. Wireless communication between components is described herein. Although this specification describes components and functions that may be implemented in specific wireless communication embodiments with reference to specific standards and protocols, the present invention is not limited to such standards and protocols. For example, standards for Internet and other packet-switched network transmissions (e.g., TCP / IP, UDP / IP, HTML, HTTP, HTTPS) represent examples of current state-of-the-art technologies. Such standards are periodically replaced by faster or more efficient equivalents having substantially the same functionality. Accordingly, replacement standards and protocols having the same or similar functionality as those disclosed herein are considered to be equivalents thereof. In one embodiment, components of the bicycle described herein will communicate with each other. In the case of wireless communication, the components will initially be paired to allow for secure communication between components on the bicycle without interfering with devices not associated with the system. One or more of the components may also be paired with a separate device such as a computer, tablet, or phone (e.g., a mobile computing device). This paired device may provide a user interface to allow the user to communicate with the components on the bicycle. Examples of communication are updating firmware, setting variables, and running diagnostic tools and analytics. To those of ordinary skill in the art, after reading this disclosure, these and other objects, features, and advantages of the disclosed bicycle component control will become apparent. Throughout the figures, where like reference numerals are used, like reference numerals represent the same or substantially similar parts among the various disclosed examples. Additionally, specific examples are disclosed and described herein that utilize specific combinations of the disclosed aspects, features, and components of this disclosure. However, in other examples that may not be disclosed or described herein, each disclosed aspect, feature, and / or component of this disclosure may be used independently of or in a different combination from other aspects, features, and components of this disclosure. Turning now to the drawings, FIG. 1 illustrates an exemplary bicycle 100 (e.g., an electric bicycle or e-bike), which includes a frame 106, handlebars 108, and a seat 110. The bicycle 100 also includes a first or front wheel 112 and a second or rear wheel 114. Front brakes 116 and / or rear brakes are included to brake the front wheel 112 and rear wheel 114, respectively. The front brakes 116 and / or rear brakes are controlled by at least one brake actuator 120. The bicycle 100 includes a drivetrain 122. The drivetrain 122 of FIG. 1 includes a crank assembly 124 operatively coupled to a rear cassette 126 via a chain 128. The crank assembly 124 includes crank arms 130 and pedals 132, and at least one chain link 134 that is configured to operatively couple with the chain 128 to transmit the force and / or power applied to the crank assembly 124 to the chain 128. This force and / or power is transmitted by the chain 128 to the rear cassette 126, whereby the driving force and / or power is transmitted from the rear cassette 126 to the rear wheel 114. Although the drivetrain 122 includes a gear shifter (e.g., a rear derailleur 102 in the illustrated embodiment), other drive mechanisms, such as internal gear hubs, gearboxes, and / or continuously variable transmissions may be applied to the bicycle 100. The drivetrain 122 may also include a power assist device 140. The rider applies a pedaling torque to the crank assembly 124 by using the pedals 132 and crank arms 130. The power assist device 140 is configured to assist the rotation of the rear wheel 114. In the illustrated embodiment, the power assist device 140 is configured to assist the rotation of the rear wheel 114 via a coupling connection with the crank assembly 124. The power assist device 140 includes a power assist motor 141 powered by a remote power source 142. The chain 128 can be moved between individual sprockets of the rear cassette 126 using a gear shifter, such as a rear derailleur 102, as shown in FIG. 1. For example, the rear derailleur 102 is an electric gear shifter that is controlled by a signal indicating that a shift command has been actuated by a bicycle operator or rider. The electric rear derailleur 102 can alternatively be powered by an integrated power source or a remote power source 142 using a conductive connector or cable. Electrical power can be provided from the remote power source 142 to an intermediate power connector coupled to the rear derailleur 102 via a cable. The shift command is implemented using an electric actuator 148 that can be manually operated by the rider. A signal indicating the shift command can be communicated to the electric rear derailleur 102 using wired and / or wireless communication technologies. Referring to Figure 2, the rear derailleur 102 is attached to the bicycle frame 106 and is positioned adjacent to the rear cassette 126. The chain 128 is shown schematically only in dashed lines. The electric or electromechanical rear derailleur 102 includes a base member 150 (e.g., "b-knuckle"), an outer link 152, and an inner link 154 (e.g., a connecting rod). The base member 150 can be attached to the bicycle frame 106 in a conventional manner. For example, the inner link 154 is pivotally attached to the base member 150 and the outer link 152 by a connecting rod pin. A movable member or assembly 156 (e.g., "p-knuckle") is pivotally connected to the outer link 152 and the inner link 154 at an end opposite to the base member 150 to permit displacement of the movable assembly 156 relative to the base member 150. A chain guiding assembly 157 (e.g., a cage) is configured to engage the chain 128 and maintain the tension in the chain, and is pivotally connected to a part of the movable assembly 156. The cage 157 can rotate or pivot about a cage axis of rotation in a damping direction and a chain tensioning direction. The rear derailleur 102 can also be configured to operate in conjunction with an integrated power source 158, such as a removable battery pack. In the example shown in FIGS. 1 and 2, the integrated power source or battery pack 158 is attached to the rear derailleur 102. The integrated power source 158 can supply power to, for example, a motor (e.g., a motor module) of the rear derailleur 102 for shifting the rear derailleur 102. The motor module can include a gear mechanism or a transmission. As is known in the art, a motor module including a gear mechanism can be coupled to the links 152, 154, for example, to laterally move the cage 157 and thus switch the chain 128 among the sprockets of the rear cassette 126. As shown in FIG. 1, the bicycle 100 also has a user interface 164 mounted on the handlebars by means of a shift actuator or an electric actuator 148. All of the electric components and / or other electric components discussed above can be connected to a remote power source or a remote battery pack 142. Additionally, all communication between the electronic bicycle central control system or controller and each of these electric components is achieved through wired or wireless communication. Discrete control can be performed by individual wires from the central controller to each component, or the system can use a controller area network ("CAN") bus, which is designed to allow microcontrollers and devices to communicate with each other in an application. Although the illustrated bicycle 100 is a mountain bike and can include a suspension assembly, such as a shock-absorbing front fork, the embodiments disclosed herein can be implemented by other types of bicycles, such as road bikes. The forward and / or positive orientation of the bicycle 100 is indicated by the direction of the arrow "A" in FIG. 1. Thus, the positive direction of the bicycle movement is indicated by the direction of the arrow A. The central control system or controller of the electric bicycle can be supported by the same housing as the remote power source 142. The electric bicycle controller can control the power from the remote power source 142 to the components on the bicycle 100, such as the power assist device 140. The electric bicycle controller can control the power to other and / or different components on the bicycle 100. The electric bicycle controller can send signals (e.g., commands) to the components on the bicycle 100 and / or receive data (e.g., commands and / or sensor data) from the components on the bicycle 100 to activate and / or control the components of the bicycle 100, such as the transmission 102, the suspension system, and / or the seat post assembly. In other embodiments, the electric bicycle controller can be located in other positions on the bicycle 100 (e.g., mounted on the handlebar 108), or alternatively, can be distributed among various components of the bicycle 100, where communication links are routed to accommodate the necessary signal and power paths. The electric bicycle controller can also not be located on the bicycle 100, such as on the rider's wrist or in a jersey pocket. The communication link can include wires, can be wireless, or can be a combination thereof. In one example, the electric bicycle controller can be integrated with the rear derailleur 102 to communicate control commands between components. The electric bicycle controller can include a processor, a communication device (e.g., a wireless communication device), a memory, and one or more communication interfaces. In one example, the controller of the transmission and / or the electric bicycle controller wirelessly activates the motor module and / or the assist motor of the derailleur 102 and operates the derailleur 102 for performing gear shifts and gear selections. Additionally or alternatively, the controller of the derailleur 102 and / or the electric bicycle controller can be configured to control the shifting of the front derailleur. The bicycle 100 can include one or more sensors. For example, the one or more sensors include a wheel speed sensor 160, which is configured to determine the wheel speed based on sensing a sensing element 162 (e.g., a magnet) located on, for example, the rear wheel 114 of the bicycle 100. The one or more sensors can include more and / or different sensors. Figure 3 shows an example of a control system 300 (e.g., an electromechanical control system) for the bicycle 100. The control system 300 includes an electric bicycle controller 302, a power assist device 140, a rear derailleur 102, and one or more sensors. The power assist device 140 includes, for example, an assist motor. One or more sensors include, for example, a pedal speed sensor 304, a wheel speed sensor 306 (e.g., wheel speed sensor 160), and another sensor 308 (e.g., a torque sensor). For example, the pedal speed sensor 304 measures the rotational speed of at least one of the crank arms 130, and the wheel speed sensor 306 measures the rotational speed of at least one of the wheels 114, 112. In one embodiment, one or more sensors may include at least two wheel speed sensors 306, one for the front wheel 112 and one for the rear wheel 114. In one embodiment, the pedal speed sensor 304 and the wheel speed sensor 306 may be combined speed and cadence sensors. Such speed and cadence sensors may include a spoke magnet attached to the spokes of the front wheel 112 or the rear wheel 114 and / or a cadence magnet attached to one of the crank arms 130, and a sensor (e.g., a Hall effect sensor) attached to the frame 106 of the bicycle 100. The sensor attached to the frame 106 of the bicycle is configured to identify and count the rotations of one of the crank arms 130 and / or the front wheel 112 or the rear wheel 114 respectively based on the cadence magnet and / or the spoke magnet passing by the sensor attached to the frame 106. The control system 300 may include more, fewer, and / or different sensors. For example, one or more sensors may include a torque sensor that measures the torque on the crank assembly 124 and / or the torque on the output shaft of the assist motor (e.g., assist motor 141) of the power assist device 140. Any number of different types of torque sensors may be provided. For example, the torque sensor may include a magnetoelastic torque sensor, a strain gauge, a SAW device, and / or other types of torque sensors. In one embodiment, the torque sensor is a current sensor that measures the current passing through the assist motor of the power assist device 140. The amount of current consumed by the assist motor of the power assist device 140 is proportional to the torque applied by the assist motor to the drive train of the bicycle 100. As shown in the embodiment of FIG. 3, the power assist device 140, the rear transmission 102, and one or more sensors (e.g., the pedal speed sensor 304 and the wheel speed sensor 306) can communicate directly with the e-bike controller 302. Alternatively or additionally, at least some components of the control system 300 can communicate indirectly with the e-bike controller 302. For example, the wheel speed sensor 306 and the pedal speed sensor 304 can communicate directly with the rear transmission 102 and communicate indirectly with the e-bike controller 302 via the rear transmission 102. In one embodiment, at least each of the rear transmission 102 and the e-bike controller 302 communicates directly with both the pedal speed sensor 304 and the wheel speed sensor 306. Other and / or different components of the control system 300 can communicate directly with all sensors of one or more sensors (e.g., the power assist device 140). The communication between the components of the control system 300 can be wired communication and / or wireless communication. Each communication link 310 between the components of the control system 300 can be bidirectional. In other words, the data flow between the components that communicate directly in the control system 300 can be bidirectional. For example, the wheel speed sensor 306 can receive a signal (e.g., regarding when to measure the rotational speed) from the e-bike controller 302 or the rear transmission 102 and transmit the measured rotational speed back to the e-bike controller 302 or the rear transmission 102. FIG. 4 is a block diagram of the operating component 400. The operating component 400 can be one or more of the previously described components or can be a part thereof, such as the rear transmission 102, the e-bike controller 302, and the front gear shifter. The operating component 400 can also be another component, such as the power assist device 140, the internal transmission component, the suspension or adjustable suspension component, or the adjustable seat component. Multiple operating components 400 can be provided. The operating component 400 includes an operating unit 402, which can be a circuit board or an alternative configuration. The operating unit 402 includes an operating processor 404, an operating memory 406, an operating user interface 408, an operating power supply 410, an operating communication interface 412, and an operating device interface 414. In one embodiment, the operating communication interface 412 communicates with the operating communication device 416. In one embodiment, the operating device interface 414 communicates with the operating device 418. Additional, different, or fewer components can be provided. For example, the operating user interface 408 can be omitted. The structure, connection, and function of the operation processor 404 may represent the structure, connection, and function of the rear transmission 102, the front transmission, the electronic bicycle controller 302, or another component. The operation processor 404 may include a general-purpose processor, a digital signal processor, an ASIC, an FPGA, analog circuitry, digital circuitry, a combination thereof, or other processors known now or developed later. The operation processor 404 may be a single device or a combination of devices, such as through shared or parallel processing. The operation memory 406 may be electrical memory or non-electrical memory. The operation memory 406 may include one or more of ROM, RAM, flash memory, EEPROM, or other types of memory. The operation memory 406 may be removable from the operation component 400, such as an SD memory card. In a particular non-limiting exemplary embodiment, the computer-readable medium may include solid-state memory, such as a memory card or other package containing one or more non-electrical read-only memories. Additionally, the computer-readable medium may be random access memory or other electrically rewritable memory. Additionally, the computer-readable medium may include magneto-optical or optical media, such as a magnetic disk or tape or other storage device. Thus, the present disclosure is considered to include any one or more of the computer-readable media and other equivalents and successor media in which data or instructions may be stored. The operation memory 406 is a non-transitory computer-readable medium and is described as a single medium. However, the term "computer-readable medium" includes a single medium or multiple media, such as a centralized or distributed memory structure, and / or an associated cache memory operable to store one or more instruction sets and other data. The term "computer-readable medium" should also include any medium capable of storing, encoding, or carrying an instruction set for execution by a processor or causing a computer system to perform any one or more of the methods or operations disclosed herein. The operation power source 410 is a portable power source that may be stored inside or outside the operation component 400 and communicates with the operation component through a conductive cable. The operation power source 410 may involve, for example, using a mechanical generator, a fuel cell device, a photovoltaic cell, piezoelectricity, or other power generation devices to generate electricity. The operation power source 410 may include a battery pack, such as a device composed of two or more electrochemical cells that convert stored chemical energy into electrical energy. The operation power source 410 may include multiple battery packs or a combination of other power supply devices. Special assembly or configured battery pack types or standard battery pack types may be used. In an example where the operation component 400 is the rear transmission 102, the operation power source 410 may be stored inside the operable component 400. In an example where the operation component 400 is the electronic bicycle controller 302, the operation power source 410 may be stored inside or outside the operation component 400. For example, the electronic bicycle controller 302 may be supported within the housing of the remote power source 142 in FIG. 1. The operating device interface 414 provides the operation of the components of the bicycle 100. For example, the operating device interface 414 can transmit power from the operating power source 410 to generate movement in the operating device 418. In various embodiments, the operating device interface 414 sends power to control the movement of the power assist device 140, the motor of the rear derailleur 102, the motor of the front derailleur, or any combination thereof. In one embodiment, the operating component 400 is the electronic bicycle controller 302, and the operating device interface 414 sends power to control the movement of the power assist device 140. The operating device interface 414 includes a wired conductive signal and / or data communication circuitry operable to control the operating device 418. The operating user interface 408 can be one or more buttons, a keypad, a keyboard, a mouse, a stylus, a trackball, a rocker switch, a touchpad, a voice recognition circuit, or other devices or components for communicating data between the user and the operating component 400. The operating user interface 408 can be a touch screen, which can be capacitive or resistive. The operating user interface 408 can include an LCD panel, an LED, an LED screen, a TFT screen, or another type of display. The operating user interface 408 can also include audio functions or speakers. The operation communication interface 412 is configured to receive data by operating the communication device 416, such as measurement data (e.g., rotational crank speed, rotational wheel speed, bicycle speed, and / or torque), forecast signals, operation signals, and / or other signals from bicycle components (e.g., pedal speed sensor 304, wheel speed sensor 306, torque sensor, and / or electronic bicycle controller 302). In one embodiment, the operation component 400 includes more than one operation communication interface 412 that communicates with more than one operation communication device 416, respectively. The operation communication interface 412 may also be configured to send data, such as status signals (e.g., temperature sensor signals) for reception by, for example, the electronic bicycle controller 302. The operation communication interface 412 uses any operable connection to convey data. The operable connection may be a connection where signals, physical communication, and / or logical communication can be sent and / or received. The operable connection may include a physical interface, an electrical interface, and / or a data interface. One or more operation communication interfaces may provide wireless communication through the operation communication device 416 in any currently known or later developed format. Although this specification describes components and functions that may be implemented with reference to specific standards and protocols in specific embodiments, the present invention is not limited to such standards and protocols. For example, standards for Internet and other packet-switched network transmissions (e.g., TCP / IP, UDP / IP, HTML, HTTP, HTTPS) represent examples of current state-of-the-art technologies. Such standards are periodically replaced by faster or more efficient equivalents having substantially the same functionality. Therefore, alternative standards and protocols having the same or similar functions as those disclosed herein are considered to be their equivalents. According to various embodiments of the present disclosure, the methods described herein may be implemented with software programs executable by a computer system, such as components of the control system 300 (e.g., the electronic bicycle controller 302 and the rear derailleur 102) and / or other components on the bicycle 100 and / or worn by a user. Additionally, non-limiting examples, implementations may include distributed processing, component / object distributed processing, and parallel processing. Alternatively, virtual computer system processing may be constructed to implement one or more of the methods or functionality described herein. A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and a computer program can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for an operating environment. A computer program does not necessarily correspond to a file in a file system. The program can be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), stored in a single file dedicated to the program being discussed, or stored in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program can be deployed to execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network. The processes and logical flows described in this specification can be performed by one or more programmable processors that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows can also be performed by, and the apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA or an ASIC. As used in this application, the term "circuitry" or "circuit" refers to all of the following: (a) only hardware circuit implementations, such as those in only analog and / or digital circuitry, and (b) combinations of circuits and software (and / or firmware), such as, where appropriate: (i) combinations of processors or (ii) portions of processors / software, including digital signal processors, software, and memory that work together to cause an apparatus such as a mobile phone or a server to perform various functions; and (c) circuits, such as a microprocessor or a portion of a microprocessor, that require software or firmware for operation even if the software or firmware is not physically present. This definition of "circuitry" applies to all uses of this term in this application, including uses in any claims. As another example, as used in this application, the term "circuitry" will also cover implementations that include only a processor (or processors) or portions of a processor and their accompanying software and / or firmware and other electronic components. The term "circuitry" will also cover, for example and if applicable to the particular claim element, a baseband integrated circuit or an application processor integrated circuit for a mobile computing device, or a similar integrated circuit in a server, a cellular network device, or other network device. As an example, processors suitable for executing computer programs include both general-purpose microprocessors and special-purpose microprocessors, as well as any one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing the instructions and data. Generally, a computer also includes one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or is operatively coupled to receive data from or transfer data to the one or more mass storage devices, or both. However, a computer need not have such devices. In addition, a computer may be embedded in another device, such as a mobile phone, a personal digital assistant ("PDA"), a mobile audio player, a global positioning system ("GPS") receiver, a control unit, a rear derailleur, or a front gear shifter (to name a few). Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, by way of example including: semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disk drives or removable disks); magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special-purpose logic circuitry. The operation communication device 416 provides data and / or signal communication from the operation component 400 to another component of the bicycle 100 or an external device such as a mobile phone or other computing device. The operation communication device uses any operable connection to convey data. The operable connection may be a connection where signals, physical communication, and / or logical communication can be sent and / or received. The operable connection may include a physical interface, an electrical interface, and / or a data interface. The control communication device may be configured to communicate wirelessly and thus includes one or more antennas. The control communication device provides wireless communication in any currently known or later developed format. A control antenna may also be provided. The control antenna may be multiple control antennas. The operation component 400 may include an antenna of the circuitry of the PCB having the operation component 400; however, additional antennas may also be included in the circuitry. The control antenna may be integrated with another component of the bicycle 100 or may be a separate component. For example, the control antenna may be integrated as part of the electronic bicycle controller 302 and / or integrated as part of the rear derailleur 102. The transmission 102 may permit configurations of multiple driving modes, and the control unit (e.g., the e-bike controller 302 or another controller on or outside the bicycle 100) may switch between these driving modes. The control unit may switch the driving mode based on user input (e.g., via the electric actuator 148 or another interface) or automatically based on the sensed conditions. In each mode, various characteristics of the driving mode can be adjusted. For example, the shift delay, the minimum gear for shifting without pedaling, and / or other characteristics can be adjusted. FIG. 5 is a flowchart of an embodiment of a method 500 for electromechanical control of components such as the bicycle 100. The method 500 includes a first embodiment of a mechanism for identifying wheel events (e.g., wheel slip and / or wheel lock). The flowchart also depicts a method for transmitting and receiving wireless signals on the bicycle 100. As presented in the following sections, these actions can be performed using any combination of the components indicated in the previous figures. For example, the following actions can be performed by at least some components of the control system 300 and additional or other components. In one embodiment, these actions can be performed by, for example, the rear derailleur 102, the e-bike controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. These actions are performed in the order shown or in other orders. One or more of these actions may be repeated. In operation 502, the processor activates a mode of the bicycle (e.g., the fully automated mode). In the fully automated mode, the transmission (e.g., the transmission 102) shifts gears without user input to maintain a gear position that keeps the rider's pace close to a defined target based on the current wheel speed. The processor may activate the fully automated mode based on user input or automatically based on the sensed driving conditions. In one embodiment, the processor is the processor of the transmission and activates the fully automated mode based on instructions from another processor (e.g., the e-bike controller 302) that receives user input or identifies the sensed driving conditions. In operation 504, the processor receives data representing the wheel speed from a sensor (e.g., a wheel speed sensor such as the wheel speed sensor 306). The wheel speed sensor measures the rotational speed of the wheel continuously or at intervals (e.g., a variable interval based on the rotational speed of the wheel). The received data representing the wheel speed can be used for the front wheel and / or the rear wheel of the bicycle. The data representing the wheel speed can be a rotational speed value (e.g., in revolutions per minute (RPM)). In operation 506, the processor receives data representing a pacing speed from a sensor (e.g., a pedal speed sensor or a crank cadence sensor; pedal speed sensor 304). The pedal speed sensor measures the rotational speed of the crank arm to which the bicycle pedal is attached continuously or at intervals (e.g., variable intervals based on the rotational speed of the crank arm). The data representing the pacing speed can be a rotational speed value (e.g., in RPM). In operation 508, the processor compares the data representing the pacing speed (e.g., the current pacing speed) received in operation 506 with a target pacing speed. The target pacing speed can be user-defined. For example, the bicycle can include one or more control devices (e.g., two control buttons) mounted on the handlebars of the bicycle. The two control buttons can communicate (e.g., wirelessly and / or wired) with, for example, a controller (e.g., electronic bicycle controller 302) and / or other components on the bicycle. Pressing one of the two control buttons can generate a signal indicating an increase in the target pacing speed, and pressing the other of the two control buttons can generate a signal indicating a decrease in the target pacing speed. Pressing either of the two control buttons once, for example, increments or decrements the target pacing speed (e.g., the set point) by an adjustable number of RPMs. In one embodiment, the set point can be adjusted within a functionally practical predetermined limit (e.g., 60 RPM to 120 RPM). In one embodiment, the shift buttons that control the upshift and downshift actions of the rear derailleur can have a dual purpose to control the set point of the automatic shift target pacing. If the shift button is pressed for less than a predetermined amount of time (e.g., less than 300 milliseconds), the upshift and downshift buttons can trigger the upshift and downshift actions of the rear derailleur, respectively. If the shift button is pressed and held for longer than a predetermined amount of time (e.g., a long press), the long press can be regarded as a set point adjustment command and can increment or decrement the target pacing. Each set point adjustment can make only a small modification (e.g., 1 RPM) to the target pacing to achieve precise adjustment. In one embodiment, to make a larger adjustment to the target pacing quickly, one or more short presses (e.g., less than 300 milliseconds) can follow the long press. As long as each short press occurs within a certain threshold time (e.g., 800 milliseconds) after the previous press, the short presses can each cause an additional increment or decrement of the set point. A memory (e.g., the memory of the derailleur 102 or the memory of the electronic bicycle controller 302) communicating with the processor stores a gear ratio table and an upshift / downshift table. When the set point is adjusted by the rider, the processor recalculates the gear ratio table and the upshift / downshift table based on the adjusted set point. If the closest gear ratio changes during the set point adjustment, the derailleur immediately shifts gears, thereby ignoring the hysteresis built into the upshift / downshift table. In one embodiment, setpoint adjustment is configured through a system control interface (e.g., an e-bike system control interface). The system control interface may be able to display the current setpoint and directly adjust the setpoint on the rear derailleur. In another embodiment, setpoint adjustment is performed via a mobile device application that communicates directly with the rear derailleur. In operation 510, the processor determines, based on the comparison of operation 506, whether the current pace speed received in operation 506 is within a range (e.g., within 3 RPM) relative to the target pace speed. If the current pace speed is within the range, the method returns to operation 504. If the current pace speed is outside the range, the method moves to operation 512. In operation 512, the processor compares the current wheel speed with a predetermined minimum wheel speed. For example, the processor calculates the difference between the current wheel speed and the predetermined minimum wheel speed. The predetermined minimum wheel speed represents, for example, a functional minimum rotational wheel speed. In operation 514, the processor determines, based on the comparison in operation 512, whether the current wheel speed is greater than or less than the predetermined minimum wheel speed. If the processor determines that the current wheel speed is less than the predetermined minimum wheel speed, the shift is not initiated and the method returns to operation 504. If the processor determines that the current wheel speed is greater than the predetermined minimum wheel speed, the method moves to operation 516. In operation 516, the processor determines whether the crank arm is rotating. For example, the processor determines whether the crank arm is rotating based on the current pace speed received at operation 506. If the current pace speed is greater than zero, the method moves to operation 518. If the current pace speed is equal to or approximately zero (e.g., less than or equal to 1 RPM), the method moves to operation 520. In operation 518, the processor instructs the motor (e.g., the motor of the derailleur or the power assist device 140) to actuate and shift to maintain a gear position that brings the rider's pace close to (e.g., within the range discussed above) the target pace speed identified in operation 508. After operation 518, the method returns to operation 504. When performing automatic shifting, the derailleur may adjust the minimum timing between shifts based on the current wheel speed, the current gear teeth, the current rider pace, or some other parameter to ensure that each shift is completed before attempting the next shift. This timing is optimized to allow shifting as quickly as possible without causing shifting failures. In operation 520, the processor instructs, for example, the assist motor to run for a period of time to allow the chain to derail to the target gear teeth (e.g., by the motor of the derailleur). After operation 520, the method returns to operation 504. A sensor (e.g., wheel speed sensor 306) that senses a slipping wheel (e.g., rear wheel 114) reports incorrect speed information to the fully automatic mode (e.g., performing an automatic gear shifting algorithm) initiated in operation 502, e.g., thereby resulting in an undesirable gear shift. In the case of a slipping wheel, the sensor sends speed information, and the automatic gear shifting algorithm receives the speed information, which is higher than the actual speed of the bicycle (e.g., bicycle 100), thereby causing a higher gear ratio to be selected. On an electric bicycle (e.g., bicycle 100) with additional motor assistance, in the case of a slipping wheel, the power assist motor (e.g., power assist motor 141) will further increase the speed of the wheel (e.g., rear wheel 114) due to the higher gear ratio. This will result in even more automatic gear shifting events to reach a higher gear index. This situation may end with a jerky effect of gear shifting, thereby causing a safety-threatening situation and harming the rider. This failure can be avoided by detecting a slipping wheel and deactivating the automatic gear shifting mechanism when a slipping wheel is detected. In a driving scenario where a wheel (e.g., rear wheel 114) is slipping, the negative impact of the wheel slip can be made worse due to the power assist motor applying additional power to the drive train (e.g., drive train 122) of the bicycle (e.g., bicycle 100). This scenario can cause a safety-threatening situation where the rider is impacted and injured. This dangerous driving situation can be avoided by detecting a slipping wheel and reducing the additional power applied by the power assist motor in this scenario. A sensor (e.g., wheel speed sensor 306) that senses a locked wheel (e.g., rear wheel 114) also reports incorrect speed information to the fully automatic mode (e.g., automatic gear shifting algorithm) initiated in operation 502, e.g., thereby causing an undesirable gear shift to the minimum gear ratio. In the case of a locked wheel, the sensor sends speed information and the automatic gear shifting algorithm receives the speed information, which indicates a speed of 0 kph, thereby causing a gear shift to the minimum gear ratio. This is not what the rider wants because the rider expects the bicycle not to shift gears when the wheel is locked for a short period of time. This failure can be avoided by detecting a locked wheel and deactivating the automatic gear shifting algorithm when a locked wheel is detected. An electric bicycle (e.g., bicycle 100) can derive wheel speed information from a speed sensor that senses the speed of, for example, the rear wheel of the bicycle (e.g., rear wheel 114). The speed information is derived by measuring the time period between the pulses detected by the sensor. These pulses are generated each time a portion of the wheel (e.g., magnet 162 attached to rear wheel 114) rotates past the sensor. Multiple magnets can be attached to and distributed around the actual wheel such that, for example, the sensor detects multiple pulses each time the wheel rotates. The more pulses per wheel rotation, the higher the accuracy of the derived wheel speed information. Given the number of pulses per wheel rotation (e.g., the number of magnets attached to the rear wheel) and the known wheel diameter, the measured time period between the pulses can be used to determine the wheel rotation frequency or wheel speed. Wheel acceleration can be determined based on the determined wheel speed, and the determined wheel acceleration can then be used to identify wheel slip or wheel lockup. FIG. 6 is a flowchart of one embodiment of a method 600 for electromechanical control of components of a bicycle (e.g., bicycle 100). The flowchart also depicts a method for transmitting and receiving wireless signals on a bicycle. As presented in the following sections, these actions can be performed using any combination of the components indicated in the previous figures. For example, the following actions can be performed by at least some of the components of control system 300 and additional or other components. In one embodiment, the actions can be performed by, for example, rear derailleur 102, electronic bicycle controller 302, power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions can be provided. The actions are performed in the order shown or in other orders. The actions can be repeated. In operation 602, the processor receives data from sensors of the bicycle. The processor can be a processor of any number of different components of the bicycle, including, for example, a rear derailleur (e.g., rear derailleur 102), a controller of the bicycle (e.g., electronic bicycle controller 302), or a combination thereof. The sensors can be wheel speed sensors (e.g., wheel speed sensor 306), such as reed switches or Hall effect sensors mounted to the frame of the bicycle. The sensors can be mounted on or in any number of different parts of the bicycle, including, for example, on the chain stays of the frame, at the fork ends (e.g., lower fork) of the frame, or in the drive unit of the bicycle (e.g., power assist device 140). The sensors can be configured to sense at least one sensed element disposed around, for example, a bicycle wheel (e.g., front wheel, such as front wheel 112 and / or rear wheel, such as rear wheel 114) of the bicycle as the at least one sensed element rotates past a proximal region of the sensor. The proximal region of the sensor can be the region where the sensed element can be detected by the sensor. At least one of the sensed elements includes one or more magnets attached to a bicycle wheel. In one embodiment, at least one of the sensed elements includes a single magnet that is attached to the bicycle wheel at a radial position in the proximal region of the sensor through the bicycle wheel (e.g., such that the single magnet is centered relative to the sensor as the single magnet rotates past the sensor with the bicycle wheel). In another embodiment, at least one of the sensed elements includes two or more magnets attached to the bicycle wheel such that the two or more magnets are equidistantly spaced circumferentially. The two or more magnets may be respectively attached to the bicycle wheel at a radial position in the proximal region of the sensor through the bicycle wheel. Each time the sensor detects that the magnetic flux density around the sensor (e.g., within the proximal region) is higher than a predetermined threshold value, the sensor generates a signal (e.g., a pulse; an output voltage such as a Hall voltage). In other words, the signal generated by the sensor identifies the reception of a magnetic field pulse by the sensor. The predetermined threshold value is set such that each time a magnet on the bicycle wheel passes through the proximal region of the sensor, the magnetic flux density of the magnet detected by the sensor causes the sensor to generate a signal. Each time the sensor generates, for example, an output voltage (e.g., a wheel speed event), the sensor may transmit the respective output voltage and / or data points of data identifying when the respective output voltage is generated by the sensor to a processor. Alternatively or additionally, the processor may monitor or sample the sensor and identify when the respective output voltage is generated by the sensor. For example, the processor may generate data points of data identifying when the respective output voltage is generated by the sensor (e.g., via the clock of the electronic bicycle controller 302). As an example, after three wheel speed events (e.g., after the bicycle starts moving from a stationary position), the data includes a first data point, a second data point, and a third data point that respectively identify the reception of a magnetic field pulse by the sensor at a first time point, a second time point, and a third time point. The second time point is after the first time point, and the third time point is after the second time point. When the sensor generates an output voltage with the identified wheel speed event (e.g., at least one magnet rotates past the proximal region of the sensor), a memory (e.g., of the electronic bicycle controller 302) communicating with the processor may store the data (e.g., the time when the wheel speed event occurs). The processor may identify respective subsets of the data (e.g., initially including the first data point and the second data point that respectively represent the first time point and the second time point when the first output voltage and the second output voltage are generated by the sensor) for wheel speed calculation in the case of each newly identified wheel speed event. In operation 604, the processor determines the speed of the bicycle (e.g., the wheel speed of the bicycle) based on a subset of the received data of operation 602. For example, the processor determines a first speed of the bicycle based on a first data point of the received data of operation 602 (e.g., a first time point corresponding to a first wheel speed event) and a second data point (e.g., a second time point corresponding to a second wheel speed event). The memory may store the size of the bicycle wheel. For example, the stored size of the bicycle wheel may be the circumferential distance (e.g., the wheel circumference per magnet) of the bicycle wheel (e.g., rear wheel 114) between wheel speed events. For example, in an embodiment where a single magnet is attached to the bicycle wheel, the memory may store the circumference of the bicycle wheel. In an embodiment where two or more magnets are attached to the bicycle wheel, the memory may store a portion of the circumference of the bicycle wheel corresponding to the number of magnets attached to the bicycle wheel (e.g., half of the circumference for an embodiment where two magnets are attached to the bicycle wheel; one-third of the circumference for an embodiment where three magnets are attached to the bicycle wheel). The circumferential distance stored in the memory represents the distance traveled by the bicycle between wheel speed events. The processor may determine the time period between two most recent wheel speed events (e.g., a first wheel speed event and a second wheel speed event corresponding to the first data point and the second data point of the received data, respectively). For example, the processor may determine the time period (e.g., elapsed time) between the first time point and the second time point. The processor may determine the speed of the bicycle based on the circumferential distance stored in the memory and the determined time period between the two wheel speed events. For example, the processor may calculate the speed of the bicycle by dividing the circumferential distance stored in the memory by the determined time period between the two wheel speed events. The memory or another memory communicating with the processor (e.g., the memory) may store the determined bicycle speed as a sample in a sample buffer (e.g., a first sample buffer). The memory may store the determined bicycle speed according to a high-resolution first-in first-out (FIFO) method, which is further discussed below. The first sample buffer may be of any size. In other words, the first sample buffer may store any number of (e.g., 32, 64, or 128) samples. The determined speed may be determined and corresponding to an associated time point, and may be stored in the sample buffer together with the associated time point. For example, the bicycle speed determined in operation 604 may correspond to the later time point (e.g., the second time point) of the two time points (e.g., the first time point and the second time point) used to determine the bicycle speed. Alternatively, the corresponding time point may be between the two time points used to determine the bicycle speed (e.g., the midpoint between the first time point and the second time point; the first time point plus half of the determined time period). Before the first sample buffer is full (e.g., all samples in the first sample buffer include the determined bicycle speed), the determined speed (e.g., the first speed) is stored in the first sample buffer without replacing any previously stored samples (e.g., the determined speed) in the first sample buffer. For example, referring to FIG. 7, the first speed determined in operation 604 is stored as a sample (see FIG. 7) in the first sample buffer. For example, when the first speed determined in operation 604 is stored as sample n in the first sample buffer, other samples may have a value of 0. In one embodiment, operations 602 and 604 may be repeated at least once before the remainder of method 600 is executed. In another embodiment, operations 602 and 604 may be repeated multiple times until the first sample buffer is full before the remainder of method 600 is executed. In operation 606, the processor determines the acceleration of the bicycle (e.g., the most recently determined acceleration) based on the bicycle speed determined in operation 604. For example, the processor determines the acceleration of the bicycle based on the bicycle speed determined and stored as, for example, sample n (see FIG. 7) in operation 604 and the bicycle speed determined immediately before the determination in operation 604 (e.g., the bicycle speed stored as sample n - 1 in the first sample buffer in FIG. 7). Referring to FIG. 7, the processor may determine the acceleration of the bicycle (e.g., the first acceleration) based on the following equation: In other words, the first acceleration acc(n) is equal to the difference between the bicycle speed (e.g., the first speed) stored as sample n in the first sample buffer and the bicycle speed stored as sample n - 1 in the first sample buffer divided by the elapsed time (e.g., the time period) between the two samples (e.g., sample n and sample n - 1 in the first sample buffer). A memory or another memory in communication with the processor (e.g., the memory) may store the determined first acceleration of the bicycle as a sample in a sample buffer (e.g., the second sample buffer). Similar to the first sample buffer, for example, the memory may store the determined first acceleration of the bicycle according to a high-resolution first-in first-out (FIFO) method. Before the second sample buffer is full (e.g., all samples of the second sample buffer include the determined bicycle acceleration), the determined first acceleration is stored in the second sample buffer, for example, without replacing any previously stored samples (e.g., the determined acceleration) in the second sample buffer. For example, similar to the sample buffer of FIG. 7, the first acceleration determined in operation 606 is stored as a sample (e.g., sample n) in the second sample buffer. For example, when the first acceleration determined in operation 606 is stored as sample n in the second sample buffer, other samples may have a value of 0. The second sample buffer can be of any number of sizes. In other words, the second sample buffer can store any number of samples (e.g., 32, 64, or 128). The determined first acceleration can be determined for and corresponding to an associated time point and can be stored in the second sample buffer together with the associated time point. For example, the first acceleration of the bicycle can correspond to a time point (e.g., the second time point) associated with the most recently determined bicycle speed in operation 604. Alternatively, the corresponding time point can be between two time points respectively associated with the determined bicycle speeds used to determine the acceleration of the bicycle. In operation 608, the processor can determine the average acceleration of the bicycle. For example, the processor can determine the average acceleration of the bicycle based on a subset (e.g., all or less than all) of the samples stored in the second sample buffer. The subset of samples can be a predetermined number of samples (e.g., 32 samples) of the second sample buffer. The predetermined number of samples can be a predetermined number of the most recently determined accelerations stored as samples in the second sample buffer, including, for example, the first acceleration determined and stored as sample n in operation 606. By averaging a subset of the samples (e.g., acceleration samples) stored in the second sample buffer within a plurality of samples (N), the effect of system inaccuracy can be compensated for by the responsiveness cost. In one embodiment, the size (e.g., the number of samples therein) of the subset of samples used for averaging is variable and represents a predetermined time period (e.g., one second). For example, the time period between the samples (e.g., the determined speeds) stored in the first sample buffer changes with the speed of the bicycle, and thus the time period between the samples (e.g., the accelerations) stored in the second sample buffer also changes with the speed of the bicycle. Therefore, the number of the stored samples in the second sample buffer that cover the predetermined time period can also change with the speed of the bicycle. In one embodiment, the average acceleration is determined in operation 608 only until the second sample buffer is full. In other words, operations 602 to 606 are repeated until the second sample buffer is full, and then method 600 moves to operation 608, in which the average acceleration is determined. In another embodiment, the average acceleration is determined in operation 608 only until a subset of the samples in the second sample buffer (e.g., corresponding to a predetermined number of samples) has been filled with the determined accelerations. In other words, operations 602 to 606 are repeated until a subset of the samples in the second sample buffer is full, and then method 600 moves to operation 608, in which the average acceleration is determined. In operation 610, the processor compares the average acceleration determined in operation 608 with one or more predetermined threshold accelerations (e.g., a predetermined threshold acceleration). The predetermined threshold acceleration can be stored in a memory or another memory in communication with the memory. The predetermined threshold acceleration (e.g., a first predetermined threshold acceleration) can be or can be based on the maximum acceleration that a rider can achieve on a bicycle (e.g., bicycle 100, which is an electric bicycle). The processor can compare the average acceleration determined in operation 608 with the first predetermined threshold acceleration because the processor can determine whether the average acceleration determined in operation 608 is greater than the first predetermined threshold acceleration. In one embodiment, the processor determines whether the average acceleration determined in operation 608 is greater than or equal to the first predetermined threshold acceleration. Alternatively, the predetermined threshold acceleration (e.g., a second predetermined threshold acceleration) can be or can be based on the minimum acceleration (e.g., maximum deceleration) that a rider can achieve on a bicycle. The processor can compare the average acceleration determined in operation 608 with the second predetermined threshold acceleration, e.g., because the processor can determine whether the average acceleration determined in operation 608 is less than the second predetermined threshold acceleration. In one embodiment, the processor determines whether the average acceleration determined in operation 608 is less than or equal to the second predetermined threshold acceleration. In one embodiment, the processor compares the average acceleration determined in operation 608 with both the first predetermined threshold acceleration and the second predetermined threshold acceleration. For example, the processor determines whether the average acceleration determined in operation 608 is greater than the first predetermined threshold acceleration and determines whether the average acceleration determined in operation 608 is less than the second predetermined threshold acceleration. For example, the maximum acceleration and / or the minimum acceleration can be determined experimentally and stored in a memory as the first predetermined threshold acceleration and / or the second predetermined threshold acceleration, respectively, for example, when manufacturing a bicycle or before selling a bicycle. In one embodiment, the first predetermined threshold acceleration and / or the second predetermined threshold acceleration can be changed by a rider, for example, in the memory. In operation 612, the processor can control the bicycle (e.g., components of the bicycle) based on the comparison in operation 610. For example, the processor can control the auxiliary motor (e.g., auxiliary motor 141) and / or the transmission (e.g., rear derailleur 102) of the bicycle based on the comparison in operation 608. When the processor determines, based on the comparison in operation 610, that the average acceleration of the bicycle determined in operation 608 is greater than the first predetermined threshold acceleration, the processor identifies wheel slip of a wheel (e.g., rear wheel 114) of the bicycle (e.g., bicycle 100). When the processor identifies wheel slip based on the comparison in operation 610, the processor can control the power assist motor (e.g., power assist motor 141) of the bicycle. Controlling the power assist motor of the bicycle by the processor can include reducing the power (e.g., output power) of the power assist motor. The power of the power assist motor can be reduced to, for example, zero, but other reduction amounts can be provided (e.g., output power reduced by 80% or output power reduced by 90%). In one embodiment, the processor is configured to prevent or stop the power assist motor of the bicycle from providing power to the transmission system (e.g., transmission system 122) of the bicycle. In one embodiment, reducing the power of the power assist motor with the control of the bicycle in operation 612 can continue for a predetermined period. For example, the processor can reduce the power of the power assist motor within any number of different predetermined periods, which include, for example, 30 seconds, one minute, or two minutes. The predetermined period can be a shorter amount of time or a longer period. Once the predetermined period has passed, the power assist from the power assist motor can be restored (e.g., according to the power assist control method). In one embodiment, when the processor identifies wheel slip based on the comparison in operation 610, the processor can alternatively or additionally control the transmission (e.g., rear derailleur 102) of the bicycle. For example, the processor can pause (e.g., cancel activation) of the automatic shifting control method (e.g., the full automatic mode of FIG. 5). In one embodiment, canceling the activation of the automatic shifting control method can continue for a predetermined period, for example. The processor can cancel the activation of the automatic shifting control method within any number of different predetermined periods, which include, for example, 30 seconds, one minute, or two minutes. The predetermined period can be a shorter amount of time or a longer period. Once the predetermined period has passed, the automatic shifting can be restored (e.g., according to the full automatic mode of FIG. 5). In one embodiment, when the automatic gearshift control method is deactivated, the processor can reduce the power assist from the power assist motor within the same predetermined time period. In another embodiment, the processor reduces the power assist from the power assist motor in different predetermined time periods respectively and deactivates the automatic gearshift control method. In other words, the power assist reduction lasts for a longer or shorter time period compared to the amount of time during which the automatic gearshift is deactivated. When the processor determines, based on the comparison in operation 610, that the average acceleration of the bicycle determined in operation 608 is less than a second predetermined threshold acceleration, the processor identifies wheel lock of a wheel (e.g., rear wheel 114) of the bicycle (e.g., bicycle 100). When the processor identifies wheel lock based on the comparison in operation 610, the processor can control a transmission of the bicycle (e.g., rear derailleur 102). For example, the processor can pause (e.g., deactivate) the automatic gearshift control method (e.g., the full automatic mode of FIG. 5). In one embodiment, deactivating the automatic gearshift control method can last for a predetermined time period, for example. For example, the processor can deactivate the automatic gearshift control method in any number of different predetermined time periods, which can include, for example, 30 seconds, one minute, or two minutes. The predetermined time period can be a shorter time amount or a longer time period. Once the predetermined time period has passed, the automatic gearshift can resume (e.g., according to the full automatic mode of FIG. 5). In one embodiment, when the processor identifies wheel lock based on the comparison in operation 610, the processor can alternatively or additionally control a power assist motor of the bicycle (e.g., power assist motor 141). Controlling the power assist motor of the bicycle by the processor can include reducing, for example, the output power of the power assist motor. The power of the power assist motor can be reduced to, for example, zero, but other reduced amounts can be provided (e.g., 80% reduction in output power or 90% reduction in output power). In one embodiment, the processor is configured to prevent or stop the power assist motor of the bicycle from providing power to the transmission system of the bicycle. In one embodiment, reducing the power of the power assist motor can last for a predetermined time period, for example. For example, the processor can reduce the power of the power assist motor in any number of different predetermined time periods, which can include, for example, 30 seconds, one minute, or two minutes. The predetermined time period can be a shorter time amount or a longer time period. Once the predetermined time period has passed, the power assist from the power assist motor can resume (e.g., according to the power assist control method). In one embodiment, when the automatic gear shift control method is deactivated, the processor may reduce the power assist from the power assist motor within the same predetermined time period. In another embodiment, the processor reduces the power assist from the power assist motor in different predetermined time periods respectively and deactivates the automatic gear shift control method. In other words, the power assist reduction lasts for a longer or shorter amount of time compared to the amount of time the automatic gear shift is deactivated. FIG. 7 is a flowchart of one embodiment of a method 700 for identifying wheel events on a bicycle. When a wheel event is not identified (e.g., wheel slip and wheel lock are not identified), a fully automated mode (e.g., according to method 500 of FIG. 5) may be executed at operation 702. For example, during the fully automated mode, the average acceleration of the bicycle (e.g., wheel acceleration or wheel deceleration) determined according to a method for electromechanical control of the components of the bicycle (e.g., method 600) is compared with one or more acceleration threshold values (e.g., an acceleration threshold value and a deceleration threshold value). When, based on this comparison, the wheel acceleration is greater than the acceleration threshold value (see arrow 704), wheel slip is identified at operation 706. After identifying the wheel slip, one or more components of the bicycle are controlled based on the identified wheel slip. For example, the automatic gear shift of the bicycle (e.g., as part of the fully automated mode) and / or the power assist from the power assist motor of the bicycle is suspended for a predetermined amount of time (e.g., the slipping wheel timeout; see arrow 708). Once the slipping wheel timeout has passed, the fully automated mode may resume at operation 702. In one embodiment, after the slipping wheel timeout or after another time period, the power assist from the power assist motor may be allowed again. When, for example, based on this comparison, the wheel deceleration is greater than the deceleration threshold value (see arrow 710), wheel lock is identified at operation 712. After identifying the wheel lock, one or more components of the bicycle are controlled based on the identified wheel lock. For example, the automatic gear shift of the bicycle (e.g., as part of the fully automated mode) and / or the power assist from the power assist motor of the bicycle is suspended or deactivated for a predetermined amount of time (e.g., the locked wheel timeout; see arrow 714). Once the locked wheel timeout has passed, the fully automated mode may resume at operation 702. In one embodiment, after the locked wheel timeout or after another time period, the power assist from the power assist motor may be allowed again. Referring to FIG. 6, after operation 612, method 600 returns to operation 602 and repeats method 600. The processor receives a new data point (e.g., the next data point; the third data point) of data from a sensor of the bicycle (e.g., identifying a new wheel speed event). In repeating operation 604, the processor determines a new speed (e.g., the second speed) of the bicycle based on the new subset of the received data. For example, the processor determines the second speed of the bicycle based on the second data point (e.g., the second time point corresponding to the second wheel speed event) and the third data point (e.g., the third time point corresponding to the third wheel speed event). The determined second speed of the bicycle is stored in the memory (e.g., within the first sample buffer of the memory), which will be further described below. In repeating operation 606, the processor determines a new acceleration (e.g., the second acceleration) of the bicycle based on the most recently determined speed of the bicycle (e.g., the second speed) and the speed determined immediately before the most recently determined speed of the bicycle (e.g., the first speed). The determined second acceleration of the bicycle is stored in the memory (e.g., within the second sample buffer of the memory). In repeating operation 608, the processor determines a new average acceleration of the bicycle based on the new acceleration of the bicycle determined in repeating operation 606. In repeating operation 610, the new average acceleration determined in repeating operation 608 is compared with a first predetermined threshold acceleration and / or a second predetermined threshold acceleration, and in repeating operation 612, the processor controls the bicycle based on the comparison in repeating operation 610. Method 600 can be repeated any number of times. For example, method 600 can be repeated as long as the bicycle is moving. When the processor determines that the bicycle is no longer moving based on data from the sensor or another sensor of the bicycle (e.g., an accelerometer), the processor can pause the repetition of method 600. Once the processor determines that the bicycle is moving again based on data from the sensor or other sensors of the bicycle, the repetition of method 600 can be resumed. Referring to FIG. 8, the speed of the bicycle determined in operation 604 is stored in the first sample buffer of the memory, for example, according to the FIFO method. For example, when method 600 is repeated and the second speed is determined in repeating operation 604, the second speed is stored as sample n at the back of the FIFO queue within the first sample buffer of the memory. The oldest sample stored in the first sample buffer of the memory (e.g., as sample n-N, where N is the size of the first sample buffer or the size of the subset of samples) is removed from the queue, and the other previously stored samples (e.g., sample n-1, sample n-2, sample n-3, etc.) are shifted towards the front of the FIFO queue within the first sample buffer of the memory. The same FIFO storage method applies to the acceleration of the bicycle determined and stored in the second sample buffer of the memory in repeating operation 606, respectively. The processor can identify wheel slip and wheel lock in any number of other ways. For example, in a second embodiment of the mechanism for identifying wheel events, wheel slip or wheel lock can be identified by comparing the wheel speed of the front wheel (e.g., front wheel 112) with the wheel speed of the rear wheel (e.g., rear wheel 114). For example, a bicycle can include a first wheel speed sensor and a second wheel speed sensor. The first wheel speed sensor and the second wheel speed sensor can be reed switches or Hall effect sensors mounted to the frame of the bicycle. The first wheel speed sensor and the second wheel speed sensor can be mounted on or in any number of different parts of the bicycle, including, for example, on the chain stay of the frame, at the fork ends (e.g., lower fork) of the frame, or in the drive unit (e.g., power assist device 140) of the bicycle. The first wheel speed sensor can be configured to sense at least one first sensed element disposed around, for example, a first bicycle wheel (e.g., rear wheel 114) of the bicycle when at least one first sensed element rotates through the proximal region of the first wheel speed sensor. The second wheel speed sensor can be configured to sense at least one second sensed element disposed around, for example, a second bicycle wheel (e.g., front wheel 112) of the bicycle when at least one second sensed element rotates through the proximal region of the second wheel speed sensor. A wheel slip event can occur at the rear wheel because the rear wheel is the drive wheel. Similarly, a wheel lock event due to braking can occur at the rear wheel because it is easier to lock the rear wheel by the rider pulling hard on the brake lever even under good traction conditions; in contrast, it is more difficult to lock the front wheel during braking. Comparison of the wheel speed of the rear wheel (e.g., determined based on data from the first wheel speed sensor) with the wheel speed of the front wheel (e.g., determined based on data from the second wheel speed sensor) can be used to identify wheel slip or wheel lock under many conditions. If the wheel speed of the front wheel differs from the wheel speed of the rear wheel by at least a threshold percentage (e.g., 10%, 15%, 20%, 30%, or 50%), the processor can assume that the wheel speed of the front wheel corresponds to the true ground speed of the bicycle. The processor can take specific actions related to the identified wheel slip or wheel lock, but continue to operate the automatic gearshift based on the wheel speed of the front wheel. FIG. 9 is a graph of wheel speed versus time for the rear wheel speed (e.g., the bold line in FIG. 9), the front wheel speed (e.g., the dashed line in FIG. 9), and the error (e.g., difference) between the rear wheel speed and the front wheel speed. The graph of FIG. 9 illustrates the identification of a wheel slip event using a second embodiment of the mechanism for identifying wheel events. For example, in the graph of FIG. 9, between three seconds and five seconds, the error between the rear wheel speed and the front wheel speed increases from approximately 0 RPM to almost 100 RPM. Relative to the baseline of the front wheel speed at approximately 150 RPM, this error represents an error percentage of over 60%. When the error percentage exceeds a threshold percentage (e.g., 30%, which corresponds to an error of approximately 45 RPM at approximately 4.3 seconds in FIG. 9), where the rear wheel speed is greater than the front wheel speed, the processor can identify a wheel slip event according to the second embodiment of the mechanism. FIG. 10 is a graph of wheel speed versus time for the rear wheel speed (e.g., the bold line in FIG. 10), the front wheel speed (e.g., the dashed line in FIG. 10), and the error (e.g., difference) between the rear wheel speed and the front wheel speed. The graph of FIG. 10 illustrates the identification of a wheel lock event using a second embodiment of the mechanism for identifying wheel events. For example, in the graph of FIG. 10, between three seconds and five seconds, the error between the rear wheel speed and the front wheel speed increases from approximately 0 RPM to approximately 150 RPM. Relative to the baseline of the front wheel speed at approximately 150 RPM, this error represents an error percentage of almost 100%. When the error percentage exceeds a threshold percentage (e.g., 50%, which corresponds to an error of approximately 75 RPM at approximately 3.8 seconds in FIG. 10), where the front wheel speed is greater than the rear wheel speed, the processor can identify a wheel lock event according to the second embodiment of the mechanism. As another example, the bicycle can include an accelerometer in one or more components of the bicycle. In a third embodiment of the mechanism for identifying wheel events, the acceleration of the bicycle in the direction of travel recorded by the accelerometer can be continuously compared with the acceleration measured by the wheel speed sensor of the bicycle, as described above. If, based on this comparison, the values of the acceleration differ by more than a predetermined threshold within a predetermined threshold time period, a wheel slip or wheel lock event can be detected, and the activation of the automatic gear shift can be revoked within a predetermined time period. FIG. 11 is a graph of the acceleration of a bicycle versus time: the bold line represents the acceleration of the bicycle determined using a wheel speed sensor; the dashed line represents the acceleration of the bicycle determined using an accelerometer; and the other lines represent the error (e.g., difference) between the acceleration determined using the wheel speed sensor and the acceleration determined using the accelerometer. The graph of FIG. 11 illustrates the use of a third embodiment of a mechanism for identifying wheel events to identify a wheel slip event. For example, in the graph of FIG. 11, between three seconds and five seconds, the error between the acceleration determined using the wheel speed sensor and the acceleration determined using the accelerometer increases from approximately 0 RPM to approximately 5.0 RPM. When the error exceeds a predetermined error threshold value (e.g., exceeds 1.0 m / s 2 of the predetermined error threshold value, which occurs at approximately 3.7 seconds in FIG. 11), where the acceleration determined using the wheel speed sensor is positive, the processor can identify a wheel slip event according to the third embodiment of the mechanism. FIG. 12 is a graph of the acceleration of a bicycle versus time: the bold line represents the acceleration of the bicycle determined using a wheel speed sensor; the dashed line represents the acceleration of the bicycle determined using an accelerometer; and the other lines represent the error (e.g., difference) between the acceleration determined using the wheel speed sensor and the acceleration determined using the accelerometer. The graph of FIG. 12 illustrates the use of a third embodiment of a mechanism for identifying wheel events to identify a wheel lock event. For example, in the graph of FIG. 12, between three seconds and five seconds, the error between the acceleration determined using the wheel speed sensor and the acceleration determined using the accelerometer decreases from approximately 0 RPM to approximately -7.0 RPM (e.g., or the absolute value of the error increases from approximately 0 RPM to approximately 7.0 RPM). When the error (e.g., or the absolute value of the error) exceeds a predetermined error threshold value (e.g., exceeds 1.0 m / s 2 of the predetermined error threshold value, which occurs at approximately 3.7 seconds in FIG. 12), where the acceleration determined using the wheel speed sensor is negative, the processor can identify a wheel lock event according to the third embodiment of the mechanism. All of the signals described above can be adjusted. The adjustment can prepare the signals for use by the bicycle control system described above. Examples of adjustments that can be used include, but are not limited to, Kalman filtering or finite impulse response (「FIR」) filtering. The drawings of the embodiments described herein are intended to provide a general understanding of the structures of the various embodiments. These drawings are not intended to serve as a complete description of all elements and features of the devices and systems that utilize the structures or methods described herein. To those skilled in the art, many other embodiments may become apparent upon review of this disclosure. Other embodiments may be utilized and other embodiments may be derived from this disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. Additionally, the drawings are merely representative and may not be drawn to scale. Some of the ratios within the drawings may be exaggerated while others may be minimized. Accordingly, this disclosure and the figures should be regarded as illustrative rather than restrictive. Although this specification contains many specifics, these specifics should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of the invention. Certain features that are described in this specification in the context of separate embodiments may also be implemented in combination within a single embodiment. Conversely, the various features that are described in the context of a single embodiment may also be implemented separately or in any suitable sub-combination in multiple embodiments. In addition, although the features may be described above as acting in certain combinations and even initially claimed as such, one or more features from the claimed combination may in some cases be deleted from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination. Similarly, although operations and / or acts are depicted in the drawings and described herein in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all of the illustrated operations be performed to achieve a desired result. In some cases, multitasking and parallel processing may be advantageous. Additionally, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that any of the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products. For convenience only and not intending to limit the scope of this application voluntarily to any particular invention or inventive concept, one or more embodiments of this disclosure may be referred to herein individually and / or collectively by the term "the invention." Additionally, although specific embodiments have been illustrated and described herein, it should be understood that any subsequent configurations designed to achieve the same or similar purpose may replace the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of the various embodiments. To those skilled in the art, after reviewing this specification, combinations of the above embodiments with other embodiments not specifically described herein will be apparent. A summary of the present disclosure is provided to comply with 37 C.F.R. §1.72(b), and it should be understood at the time of filing that it will not be used to interpret or limit the scope or meaning of the patent claims. Additionally, in the foregoing embodiments, for the purpose of simplifying the present disclosure, various features may be grouped together or described in a single embodiment. The present disclosure should not be construed as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as reflected in the following claims, the inventive subject matter may lie in less than all of the features of any of the disclosed embodiments. Accordingly, the following claims are incorporated into the embodiments, where each claim stands on its own as if it were individually defining the claimed subject matter. The foregoing embodiments are intended to be illustrative rather than limiting, and it should be understood that the following claims, including all equivalents, are intended to define the scope of the invention. The claims should not be read as limited to the described order or elements unless stated to that effect. Accordingly, all embodiments that come within the scope and spirit of the following claims and their equivalents are claimed as the invention. 100: Exemplary bicycle 102: Electric or electromechanical rear derailleur 106: Bicycle frame 108: Handlebar 110: Seat 112: First or front wheel 114: Second or rear wheel 116: Front brake 120: Brake actuator 122: Drivetrain 124: Crank assembly 126: Rear cassette 128: Chain 130: Crank arm 132: Pedal 134: Chainring 140: Power assist device 141: Power assist motor 142: Remote power / remote battery pack 148: Electric actuator / shift actuator 150: Bottom bracket component 152: Outer link 154: Inner link 156: Movable assembly 157: Chain guide assembly / cage 158: Integrated power / battery pack 160: Wheel speed sensor 162: Sensing element / magnet 164: User interface 300: Control system 302: Electric bicycle controller 304: Pedal speed sensor 306: Wheel speed sensor 308: Sensor 310: Communication link 400: Operating component 402: Operating unit 404: Operating processor 406: Operating memory 408: Operating user interface 410: Operating power supply 412: Operating communication interface 414: Operating device interface 416: Operating communication device 418: Operating device 500, 600, 700: Methods 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 602, 604, 606, 608, 610, 612, 702, 706, 712: Actions 704, 708, 710, 714, A: Arrow The objectives, features, and advantages of the present invention will become apparent upon reading the following description in conjunction with the drawings, in which: FIG. 1 shows a side view of an example of an electric bicycle with component control according to the teachings of the present disclosure; FIG. 2 is a side view of an example of a rear derailleur; FIG. 3 is a block diagram of an embodiment of an electromechanical control system; FIG. 4 is a block diagram of an embodiment of an operating component; FIG. 5 is a flowchart of an embodiment of a method for automatic gear shifting; FIG. 6 is a flowchart of an embodiment of a method for controlling one or more components of a bicycle, including a first embodiment of a mechanism for detecting wheel events; FIG. 7 is a flowchart of an embodiment of a method for identifying wheel events on a bicycle; FIG. 8 illustrates an example of a first-in-first-out (FIFO) storage method; FIG. 9 is a graph of wheel speed versus time, which shows a wheel slip event identified by a second embodiment of a mechanism for detecting wheel events; FIG. 10 is a graph of wheel speed versus time, which shows a wheel lock event identified by a second embodiment of a mechanism for detecting wheel events; FIG. 11 is a graph of acceleration versus time, which shows a wheel slip event identified by a third embodiment of a mechanism for detecting wheel events; and FIG. 12 is a graph of acceleration versus time, which shows a wheel lock event identified by a third embodiment of a mechanism for detecting wheel events. 600: Method 602, 604, 606, 608, 610, 612: Actions

Claims

1. An electronic component for an electric bicycle, the electronic component comprising: a processor configured to: receive data from a sensor; determine a first speed and a second speed of the bicycle based on a subset of the received data; determine an acceleration of the bicycle based on the determined first speed and the determined second speed of the bicycle; and compare the determined acceleration of the bicycle with a predetermined threshold acceleration; characterized in that the control of an auxiliary motor of the bicycle is based on the comparison, wherein the control of the bicycle based on the comparison includes, based on the comparison, canceling the activation of electronic shifting of the bicycle for a predetermined period when the determined acceleration of the bicycle is less than the predetermined threshold acceleration.

2. The electronic component of claim 1, wherein the processor is further configured to identify wheel slippage of one of the bicycle wheels when, based on the comparison, the determined acceleration of the bicycle is greater than the predetermined threshold acceleration.

3. The electronic component of claim 1, wherein the control of the auxiliary motor of the electric bicycle based on the comparison includes reducing the power of one of the auxiliary motors for another predetermined period when the acceleration of the electric bicycle is determined to be greater than the predetermined threshold acceleration based on the comparison.

4. The electronic component of claim 3, wherein the predetermined threshold acceleration is one of the maximum accelerations of the electric bicycle.

5. The electronic component of claim 1, wherein the processor is further configured to identify a wheel lock of one of the bicycle wheels when, based on the comparison, the acceleration of the electric bicycle is determined to be less than the predetermined threshold acceleration.

6. The electronic component of claim 1, wherein the predetermined threshold acceleration is one of the minimum accelerations of the bicycle.

7. The electronic component of claim 1, wherein the sensor is a bicycle wheel speed sensor and is configured to sense the at least one sensed element disposed around a bicycle wheel of the bicycle as at least one sensed element rotates through a proximal region of the sensor.

8. The electronic components as described in claim 7, wherein: The determination of the first speed includes: identifying a first time point and a second time point from the subset of the received data, wherein the first time point and the second time point are the times when the bicycle wheel speed sensor senses each of the at least one sensed element, and the second time point is after the first time point; determining a first elapsed time based on a difference between the identified second time point and the identified first time point; and determining the first speed based on the size of the bicycle wheel and the determined first elapsed time; and the determination of the second speed includes: identifying the second time point and a third time point from the subset of the received data, wherein the third time point is the times when the bicycle wheel speed sensor senses each of the at least one sensed element, and the third time point is after the second time point; determining a second elapsed time based on a difference between the identified third time point and the identified second time point; and determining the second speed based on the size of the bicycle wheel and the determined second elapsed time.

9. The electronic component of claim 8, wherein the processor is further configured to determine a third speed of the bicycle based on a subset of the received data, the determination of the third speed of the bicycle comprising: identifying a third time point and a fourth time point from the subset of the received data, the identified fourth time point being a time when the bicycle wheel speed sensor senses each of the at least one sensed element, the fourth time point being after the third time point; determining a third elapsed time based on a difference between the identified fourth time point and the identified third time point; and determining the third speed based on the size of the bicycle wheel and the determined third elapsed time, wherein the determined acceleration of the bicycle is also based on the determined third speed of the bicycle.

10. The electronic component of claim 9, wherein the processor is further configured to: determine a first acceleration of the bicycle based on the first speed and the second speed of the bicycle; and determine a second acceleration of the bicycle based on the second speed and the third speed of the bicycle, wherein the determination of the acceleration of the bicycle is based on the determined first acceleration and the determined second acceleration of the bicycle.

11. The electronic component of claim 10, further comprising a memory communicating with the processor, wherein the memory is configured to store the determined first speed, the determined second speed and the determined third speed of the bicycle as a first sample of a first sample buffer, and wherein the memory is configured to store the determined first acceleration and the determined second acceleration of the bicycle as a second sample of a second sample buffer.

12. The electronic component of claim 11, wherein the received data includes identifying multiple data points at multiple time points from which the sensor receives magnetic field pulses, the multiple time points including the first time point, the second time point, the third time point, the fourth time point, and one or more additional time points, wherein the processor is further configured to: determine one or more additional speeds of the bicycle based on the fourth time point and the one or more additional time points; and determine one or more additional accelerations of the bicycle based on the determined third speed of the bicycle and the determined one or more additional speeds of the bicycle, wherein the memory is further configured to: store the determined one or more additional speeds of the bicycle as one or more additional first samples of the first sample buffer; and store the determined one or more additional accelerations of the bicycle as one or more additional second samples of the second sample buffer.

13. The electronic component of claim 12, wherein the determination of the acceleration of the bicycle comprises an average of the second samples and the one or more additional second samples stored in the second sample buffer of the memory.

14. The electronic component of claim 11, wherein the first sample buffer is configured to store a first predetermined number of first samples, and the second sample buffer is configured to store a second predetermined number of second samples.

15. The electronic component of claim 11, wherein the processor is further configured to: receive additional data from the sensor, the received additional data identifying a fifth time point at which the bicycle wheel speed sensor senses one of the at least one sensed elements, the fifth time point being after the fourth time point; determine a fourth speed based on the fourth time point and the fifth time point; and determine a third acceleration based on the determined third speed of the bicycle and the determined fourth speed of the bicycle, wherein when the number of one of the first samples stored in the first sample buffer is the same as the first predetermined number of first samples, such that the first sample buffer is full, the memory is configured to store the determined fourth speed of the bicycle as one of the first samples in the first sample buffer and replace one of the oldest samples in the first samples. When the number of one of the second samples stored in the second sample buffer is the same as the second predetermined number of the second samples, such that the second sample buffer is full, the memory is configured to store the determined third acceleration of the bicycle as one of the second samples in the second sample buffer and replace one of the oldest samples in the second samples, and the determination of the acceleration of the bicycle is included in averaging one of the second samples over a predetermined period of time.

16. A system for controlling an electric bicycle, the system comprising: a sensor configured to generate first data, the first data including a plurality of data points generated at a plurality of time points, wherein the plurality of data points respectively identify the reception of magnetic field pulses at the plurality of time points; a memory configured to store wheel size data for one wheel of the bicycle; and a processor configured to: receive the first data from the sensor; determine a first speed and a second speed of the bicycle based on a subset of the received data and the stored wheel size data; determine an acceleration of the bicycle based on the determined first speed and the determined second speed of the bicycle; and compare the determined acceleration of the bicycle with a predetermined threshold acceleration; characterized in that the control of an auxiliary motor of the bicycle is based on the comparison. The control of the bicycle based on the comparison includes canceling the activation of the electronic shifting of the bicycle for a predetermined period when the bicycle's acceleration is determined to be less than the predetermined threshold acceleration based on the comparison.

17. A controller for an electric bicycle, the controller comprising: a processor configured to: receive data from a sensor, the received data including a plurality of data points generated at a plurality of time points, wherein the plurality of data points respectively identify reception of magnetic field pulses at the plurality of time points; determine a plurality of speeds of the bicycle based on a respective subset of the received data; determine a plurality of accelerations of the bicycle based on the determined plurality of speeds of the bicycle; and determine an average acceleration of one of the determined plurality of accelerations of the bicycle over a predetermined time period; and compare the determined average acceleration of the bicycle with a predetermined threshold acceleration; characterized in that control of an auxiliary motor of the bicycle is based on the comparison, wherein the control of the bicycle based on the comparison includes, based on the comparison, canceling the activation of electronic shifting of the bicycle for a predetermined period when the determined average acceleration of the bicycle is less than the predetermined threshold acceleration.

Citation Information

Patent Citations

  • Bicycle control device and bicycle drive device

    CN107128428B

  • Bicycle power assisting method, device and system

    CN108909931A

  • Bicycle control system

    CN111572697A

  • Control method and devices for providing pushing assistance for an electric bicycle

    TW201815620A

  • Bicycle control system

    TW202300392A