HOOK: Friction Drive Mechanism

Share :

Choose Language:

[google-translator]

Details

Innovator Details

Innovation Details

HOOK is an e-bike conversion tech that transforms any bicycle into an electric one in seconds, without tools or technical expertise. Using a friction drive mechanism, it propels the bike via a motorized roller that contacts the tire, offering a speed of 25 km/h and a range of 30 km. Ideal for commuters traveling over 10 km, it easily clips on and off, making it perfect for cycling to work, school, deliveries, or fitness. This modular solution is simpler than chain-driven or hub motor systems.

Have thoughts on this innovation or suggestions for improvement? Kindly Share your feedback !

` : ''; /* * Location / map. * * We first try to find decimal * latitude + longitude in the * database location field. */ const locationValue = practice.location || ''; const coordinates = gridExtractCoordinates( locationValue ); let mapHTML = ''; if(coordinates){ const lat = coordinates.lat; const lng = coordinates.lng; /* * OpenStreetMap embed. * * The marker is directly visible. */ const delta = 0.035; const west = lng - delta; const east = lng + delta; const south = lat - delta; const north = lat + delta; const mapURL = 'https://www.openstreetmap.org/export/embed.html' + '?bbox=' + encodeURIComponent(west) + ',' + encodeURIComponent(south) + ',' + encodeURIComponent(east) + ',' + encodeURIComponent(north) + '&layer=mapnik' + '&marker=' + encodeURIComponent(lat) + ',' + encodeURIComponent(lng); mapHTML = ` `; }else{ mapHTML = `
Location coordinates are not available for this practice.
`; } /* * PAS fields. */ const pasFields = [ ['PAS 1', practice.pas_1], ['PAS 2', practice.pas_2], ['PAS 3', practice.pas_3], ['PAS 4', practice.pas_4], ['PAS 5', practice.pas_5] ]; let pasHTML = ''; pasFields.forEach(function(item){ if( item[1] !== null && item[1] !== undefined && String(item[1]).trim() !== '' ){ pasHTML += `
${gridEscapeHTML( item[0] )}
${gridFormatText( item[1] )}
`; } }); if(!pasHTML){ pasHTML = `
No PAS / resource information available.
`; } /* * Practice fields. */ const practiceFields = [ ['Crop', practice.crop], ['Crop Family', practice.crop_family], [ 'Crop Scientific Name', practice.crop_scientific_name ], [ 'Crop Vernacular Name', practice.crop_vernacular_name ], [ 'Pest Taxonomy', practice.pest_taxonomy ], [ 'Pest Group', practice.pest_group ], [ 'Pest Scientific Name', practice.pest_scientific_names ], [ 'Pest Vernacular Names', practice.pest_vernacular_names ], [ 'Pest Vector Name', practice.pest_vector_name ], [ 'Formulation', practice.formulation ], [ 'Ingredients', practice.ingredients ], [ 'Dosage', practice.dosage ], [ 'Control Mode', practice.control_mode ], [ 'Problem Statement', practice.problem_statement ], [ 'Problem Scale', practice.problem_scale ], [ 'Manufacturing Capacity', practice.manufacturing_capacity ], [ 'Scalability', practice.scalability ], [ 'Potential Users', practice.potential_users ], [ 'Technology Transfer Terms', practice.technology_transfer_terms ], [ 'Scope for Technology Transfer Support', practice.scope_for_technology_transfer_support ], [ 'Limitations', practice.limitations ], [ 'Limitations of Approach', practice.limitations_of_approach ], [ 'Precautions', practice.precautions ] ]; let practiceHTML = ''; practiceFields.forEach(function(item){ if( item[1] !== null && item[1] !== undefined && String(item[1]).trim() !== '' ){ practiceHTML += gridDetailRow( item[0], item[1] ); } }); if(!practiceHTML){ practiceHTML = `
No additional practice details available.
`; } /* * References. */ const referenceFields = [ ['References', practice.references], ['Paper Link 1', practice.paper_link_1], ['Paper Link 2', practice.paper_link_2], ['Paper Link 5', practice.paper_link_5], ['Similar Paper / Patent / Practice', practice.similar_paper_patent_practice], ['Website', practice.website], ['Website Details', practice.website_details], ['Blog Link 1', practice.blog_link_1], ['Blog Link 2', practice.blog_link_2], ['Blog Link 3', practice.blog_link_3], ['Blog Link 5', practice.blog_link_5], ['News Link 1', practice.news_link_1], ['News Link 2', practice.news_link_2], ['News Link 3', practice.news_link_3], ['News Link 4', practice.news_link_4], ['News Link 5', practice.news_link_5] ]; let referencesHTML = ''; referenceFields.forEach(function(item){ if( item[1] !== null && item[1] !== undefined && String(item[1]).trim() !== '' ){ referencesHTML += gridDetailRow( item[0], item[1] ); } }); if(!referencesHTML){ referencesHTML = `
No reference information available.
`; } /* * Final HTML. */ app.innerHTML = `
${imageHTML}
${mapHTML}
${ type ? `
${gridEscapeHTML(type)}
` : '' }

${gridEscapeHTML(title)}

${ category ? `
${gridEscapeHTML(category)}
` : '' } ${ reference ? `
GIAN Reference: ${gridEscapeHTML(reference)}
` : '' }
About the Practice
${ detail ? `
Detail
${gridFormatText(detail)}
` : `
No practice description available.
` }
About the Innovator
${ innovator ? gridDetailRow( 'Knowledge Provider / Innovator', innovator ) : '' } ${ address ? gridDetailRow( 'Address', address ) : '' } ${ city ? gridDetailRow( 'City', city ) : '' } ${ district ? gridDetailRow( 'District', district ) : '' } ${ state ? gridDetailRow( 'State', state ) : '' } ${ pincode ? gridDetailRow( 'PIN Code', pincode ) : '' } ${ practice['Email Address (if any)'] ? gridDetailRow( 'Email', practice['Email Address (if any)'] ) : '' } ${ practice['Contact no: (if any)'] ? gridDetailRow( 'Contact No.', practice['Contact no: (if any)'] ) : '' }
Practice / Technology Details
${practiceHTML}
PAS / Resources
${pasHTML}
References
${referencesHTML}
${imageFallbackScript} `; /* * Back button. */ const backButton = document.getElementById( 'grid-back-practices' ); if(backButton){ backButton.addEventListener( 'click', function(){ /* * Reloading restores the * paginated database. */ window.location.reload(); } ); } /* * Keep map/image at top of * details after AJAX. */ app.scrollIntoView({ behavior:'smooth', block:'start' }); }; /* ===================================================== COORDINATE DETECTION ===================================================== */ window.gridExtractCoordinates = function(value){ if(!value){ return null; } const text = String(value); /* * Decimal pair: * * 21.1702, 72.8311 * * 21.1702 72.8311 */ const match = text.match( /(-?\d+(?:\.\d+)?)\s*[,;]\s*(-?\d+(?:\.\d+)?)/ ); if(match){ const lat = parseFloat(match[1]); const lng = parseFloat(match[2]); if( lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180 ){ return { lat:lat, lng:lng }; } } return null; }; /* ===================================================== DETAIL ROW ===================================================== */ window.gridDetailRow = function(label,value){ return `
${gridEscapeHTML(label)}: ${gridFormatText(value)}
`; }; /* ===================================================== SAFE TEXT ===================================================== */ window.gridEscapeHTML = function(value){ if( value === null || value === undefined ){ return ''; } const div = document.createElement('div'); div.textContent = String(value); return div.innerHTML; }; window.gridEscapeAttribute = function(value){ return gridEscapeHTML(value) .replace( /"/g, '"' ); }; /* ===================================================== FORMAT LONG TEXT + LINKS ===================================================== */ window.gridFormatText = function(value){ if( value === null || value === undefined || value === '' ){ return ''; } let text = gridEscapeHTML(value); /* * Convert URLs into clickable links. */ text = text.replace( /(https?:\/\/[^\s<]+)/g, function(url){ return ` ${url} `; } ); /* * Preserve line breaks. */ text = text.replace( /\r?\n/g, '
' ); return text; }; })();

Got questions? Contact us!

Got questions? Contact us!